Merge branch 'feat/openai-compatible'
This commit is contained in:
commit
b2bbba8db6
|
|
@ -24,7 +24,7 @@ GLM_MODELS = [
|
|||
max_tokens=128000,
|
||||
provider="ZhipuAI",
|
||||
supports_thinking=True,
|
||||
supports_web_search=True,
|
||||
supports_web_search=False,
|
||||
supports_vision=True,
|
||||
supports_files=True,
|
||||
),
|
||||
|
|
@ -46,7 +46,7 @@ GLM_MODELS = [
|
|||
max_tokens=128000,
|
||||
provider="ZhipuAI",
|
||||
supports_thinking=False,
|
||||
supports_web_search=True,
|
||||
supports_web_search=False,
|
||||
supports_vision=True,
|
||||
supports_files=True,
|
||||
),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,84 @@
|
|||
"""
|
||||
GLM 适配器测试脚本
|
||||
测试 GLMAdapter 的流式和非流式调用,包括联网搜索功能
|
||||
"""
|
||||
|
||||
import asyncio
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# Add project root to sys.path
|
||||
root_dir = Path(__file__).parent.parent
|
||||
sys.path.insert(0, str(root_dir))
|
||||
|
||||
from dotenv import load_dotenv
|
||||
|
||||
from adapters.glm_adapter import GLMAdapter
|
||||
from adapters.base import ChatCompletionRequest
|
||||
|
||||
load_dotenv()
|
||||
|
||||
|
||||
async def test_stream():
|
||||
"""测试流式调用(联网搜索)"""
|
||||
adapter = GLMAdapter()
|
||||
|
||||
if not adapter.is_available():
|
||||
print("错误:未配置 ZHIPU_API_KEY 或 GLM_API_KEY")
|
||||
return
|
||||
|
||||
request = ChatCompletionRequest(
|
||||
model="glm-4.6v",
|
||||
messages=[{"role": "user", "content": "今天北京天气怎样?"}],
|
||||
stream=True,
|
||||
temperature=0.7,
|
||||
max_tokens=1024,
|
||||
web_search=True,
|
||||
)
|
||||
|
||||
print("Testing stream with web_search...")
|
||||
response = await adapter.chat(request)
|
||||
|
||||
# 流式响应是 StreamingResponse,需要手动读取
|
||||
async for chunk in response.body_iterator:
|
||||
# body_iterator 已经返回字符串
|
||||
print(chunk, end="")
|
||||
|
||||
|
||||
async def test_sync():
|
||||
"""测试非流式调用(联网搜索)"""
|
||||
adapter = GLMAdapter()
|
||||
|
||||
if not adapter.is_available():
|
||||
print("错误:未配置 ZHIPU_API_KEY 或 GLM_API_KEY")
|
||||
return
|
||||
|
||||
request = ChatCompletionRequest(
|
||||
model="glm-4-flash",
|
||||
messages=[{"role": "user", "content": "今天几号?武汉天气怎样?"}],
|
||||
stream=False,
|
||||
temperature=0.7,
|
||||
max_tokens=1024,
|
||||
web_search=True,
|
||||
)
|
||||
|
||||
print("Testing sync with web_search...")
|
||||
response = await adapter.chat(request)
|
||||
|
||||
# 非流式响应返回 JSONResponse
|
||||
if hasattr(response, "body"):
|
||||
import json
|
||||
|
||||
data = json.loads(response.body)
|
||||
content = data.get("choices", [{}])[0].get("message", {}).get("content", "")
|
||||
print(f"Response: {content}")
|
||||
else:
|
||||
print(f"Response: {response}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# 运行流式测试
|
||||
# asyncio.run(test_stream())
|
||||
# 运行非流式测试
|
||||
asyncio.run(test_sync())
|
||||
Loading…
Reference in New Issue