forked from phoenix/litellm-mirror
test_json_response_format_stream
This commit is contained in:
parent
eaf5723b94
commit
f5f36fb96c
1 changed files with 39 additions and 0 deletions
|
@ -86,6 +86,45 @@ class BaseLLMChatTest(ABC):
|
||||||
# relevant issue: https://github.com/BerriAI/litellm/issues/6741
|
# relevant issue: https://github.com/BerriAI/litellm/issues/6741
|
||||||
assert response.choices[0].message.content is not None
|
assert response.choices[0].message.content is not None
|
||||||
|
|
||||||
|
def test_json_response_format_stream(self):
|
||||||
|
"""
|
||||||
|
Test that the JSON response format with streaming is supported by the LLM API
|
||||||
|
"""
|
||||||
|
base_completion_call_args = self.get_base_completion_call_args()
|
||||||
|
litellm.set_verbose = True
|
||||||
|
|
||||||
|
messages = [
|
||||||
|
{
|
||||||
|
"role": "system",
|
||||||
|
"content": "Your output should be a JSON object with no additional properties. ",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"role": "user",
|
||||||
|
"content": "Respond with this in json. city=San Francisco, state=CA, weather=sunny, temp=60",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
response = litellm.completion(
|
||||||
|
**base_completion_call_args,
|
||||||
|
messages=messages,
|
||||||
|
response_format={"type": "json_object"},
|
||||||
|
stream=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
print(response)
|
||||||
|
|
||||||
|
content = ""
|
||||||
|
for chunk in response:
|
||||||
|
content += chunk.choices[0].delta.content or ""
|
||||||
|
|
||||||
|
print("content=", content)
|
||||||
|
|
||||||
|
# OpenAI guarantees that the JSON schema is returned in the content
|
||||||
|
# relevant issue: https://github.com/BerriAI/litellm/issues/6741
|
||||||
|
# we need to assert that the JSON schema was returned in the content, (for Anthropic we were returning it as part of the tool call)
|
||||||
|
assert content is not None
|
||||||
|
assert len(content) > 0
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def pdf_messages(self):
|
def pdf_messages(self):
|
||||||
import base64
|
import base64
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue