stream test
This commit is contained in:
79
fastapi_server/test_openai_client.py
Normal file
79
fastapi_server/test_openai_client.py
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Simple test for OpenAI client chat.completions.create
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
import httpx
|
||||||
|
import openai
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
print("Initializing OpenAI client...")
|
||||||
|
print(f"Base URL: http://localhost:8488/v1")
|
||||||
|
print(f"API Key set: {'Yes' if os.getenv('ALI_API_KEY') else 'No'}")
|
||||||
|
|
||||||
|
# Initialize client (pointing to FastAPI server from server.py)
|
||||||
|
client = openai.OpenAI(
|
||||||
|
api_key=os.getenv("ALI_API_KEY"),
|
||||||
|
base_url="http://localhost:8488/v1",
|
||||||
|
timeout=httpx.Timeout(60.0)
|
||||||
|
)
|
||||||
|
|
||||||
|
print("\nTesting chat completion (non-streaming)...")
|
||||||
|
# try:
|
||||||
|
# # Test chat completion (non-streaming first)
|
||||||
|
# response = client.chat.completions.create(
|
||||||
|
# model="qwen-flash",
|
||||||
|
# messages=[
|
||||||
|
# {'role':'system', 'content': 'your name is steve'}
|
||||||
|
# ,{"role": "user", "content": "Say hello!"}],
|
||||||
|
# stream=False,
|
||||||
|
# max_tokens=100,
|
||||||
|
# temperature=0.7
|
||||||
|
# )
|
||||||
|
|
||||||
|
# print(f"Response ID: {response.id}")
|
||||||
|
# print(f"Model: {response.model}")
|
||||||
|
# print(f"Content: {response.choices[0].message.content}")
|
||||||
|
# print("\n✓ Non-streaming test successful!")
|
||||||
|
|
||||||
|
# except Exception as e:
|
||||||
|
# print(f"\n✗ Error: {str(e)}")
|
||||||
|
# import traceback
|
||||||
|
# traceback.print_exc()
|
||||||
|
|
||||||
|
print("\nTesting chat completion (streaming)...")
|
||||||
|
try:
|
||||||
|
# Test streaming with same message as non-streaming test
|
||||||
|
response = client.chat.completions.create(
|
||||||
|
model="qwen-flash",
|
||||||
|
messages=[
|
||||||
|
{'role':'system', 'content': 'your name is steve'},
|
||||||
|
{"role": "user", "content": "Say hello!"}
|
||||||
|
],
|
||||||
|
stream=True,
|
||||||
|
max_tokens=100,
|
||||||
|
temperature=0.7
|
||||||
|
)
|
||||||
|
|
||||||
|
print("Streaming response:")
|
||||||
|
full_content = ""
|
||||||
|
chunk_count = 0
|
||||||
|
for chunk in response:
|
||||||
|
chunk_count += 1
|
||||||
|
if hasattr(chunk, 'choices') and len(chunk.choices) > 0:
|
||||||
|
if hasattr(chunk.choices[0], 'delta') and chunk.choices[0].delta.content:
|
||||||
|
content = chunk.choices[0].delta.content
|
||||||
|
print(content, end="", flush=True)
|
||||||
|
full_content += content
|
||||||
|
|
||||||
|
print(f"\n\nTotal chunks received: {chunk_count}")
|
||||||
|
print(f"Full content: {repr(full_content)}")
|
||||||
|
print(f"Content length: {len(full_content)}")
|
||||||
|
print("\n✓ Streaming test successful!")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"\n✗ Error: {str(e)}")
|
||||||
|
import traceback
|
||||||
|
traceback.print_exc()
|
||||||
Reference in New Issue
Block a user