From 7484a19edf1a6fdd22a5da57949c0eff81605225 Mon Sep 17 00:00:00 2001 From: breno-aumo <160534746+breno-aumo@users.noreply.github.com> Date: Mon, 11 Aug 2025 22:04:58 -0300 Subject: [PATCH] Fix OCI streaming (#13437) * add oci models to model_prices_and_context_window.json * remove unsupported and unavailable oci models from docs * fix: split data chunks when using async streaming * add oci models to model_prices_and_context_window.json * fix: split data chunks when using async streaming * revert model.json modifications --- litellm/llms/oci/chat/transformation.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/litellm/llms/oci/chat/transformation.py b/litellm/llms/oci/chat/transformation.py index 3524817da63..3e05473630d 100644 --- a/litellm/llms/oci/chat/transformation.py +++ b/litellm/llms/oci/chat/transformation.py @@ -2,7 +2,7 @@ import base64 import datetime import hashlib import json -from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union +from typing import TYPE_CHECKING, Any, AsyncIterator, Dict, List, Optional, Tuple, Union from urllib.parse import urlparse import httpx @@ -586,8 +586,15 @@ class OCIChatConfig(BaseConfig): completion_stream = response.aiter_text() + async def split_chunks(completion_stream: AsyncIterator[str]): + async for item in completion_stream: + for chunk in item.split("\n\n"): + if not chunk: + continue + yield chunk.strip() + streaming_response = OCIStreamWrapper( - completion_stream=completion_stream, + completion_stream=split_chunks(completion_stream), model=model, custom_llm_provider=custom_llm_provider, logging_obj=logging_obj,