|
|
|
|
|
|
|
|
import json |
|
|
import requests |
|
|
|
|
|
|
|
|
API_BASE = "http://localhost:8080" |
|
|
API_KEY = "sk-your-api-key" |
|
|
|
|
|
def test_weather_query(): |
|
|
"""测试天气查询""" |
|
|
print("=" * 50) |
|
|
print("上海天气查询测试") |
|
|
print("=" * 50) |
|
|
|
|
|
|
|
|
tool = { |
|
|
"type": "function", |
|
|
"function": { |
|
|
"name": "get_weather", |
|
|
"description": "查询指定城市的天气信息", |
|
|
"parameters": { |
|
|
"type": "object", |
|
|
"properties": { |
|
|
"city": {"type": "string", "description": "城市名称"}, |
|
|
"date": {"type": "string", "description": "查询日期(可选)"} |
|
|
}, |
|
|
"required": ["city"] |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
headers = { |
|
|
"Content-Type": "application/json", |
|
|
"Authorization": f"Bearer {API_KEY}" |
|
|
} |
|
|
|
|
|
data = { |
|
|
"model": "GLM-4.5", |
|
|
"messages": [ |
|
|
{"role": "user", "content": "查询上海2025年9月3日的天气"} |
|
|
], |
|
|
"tools": [tool] |
|
|
} |
|
|
|
|
|
print("\n发送请求...") |
|
|
response = requests.post(f"{API_BASE}/v1/chat/completions", |
|
|
headers=headers, |
|
|
json=data) |
|
|
|
|
|
if response.status_code == 200: |
|
|
result = response.json() |
|
|
message = result["choices"][0]["message"] |
|
|
|
|
|
print("\n模型响应:") |
|
|
if message.get("tool_calls"): |
|
|
print("检测到工具调用:") |
|
|
for tc in message["tool_calls"]: |
|
|
print(f" - 工具: {tc['function']['name']}") |
|
|
print(f" - 参数: {tc['function']['arguments']}") |
|
|
else: |
|
|
print("未检测到工具调用") |
|
|
print(f"内容: {message.get('content', '无内容')[:100]}...") |
|
|
else: |
|
|
print(f"请求失败: {response.status_code}") |
|
|
print(f"错误信息: {response.text}") |
|
|
|
|
|
if __name__ == "__main__": |
|
|
test_weather_query() |