#!/usr/bin/env python3 """ 测试LLM API调用 """ import requests import json import time # API配置 BASE_URL = "https://oneapi.gongjulian.cn/v1" API_KEY = "sk-lB2Fc9ssY5UuwmiV5dD441F997364d29Be547e008dF5Cf41" MODEL = "deepseek-ai/deepseek-v3.2" def test_api(): """测试API连接""" url = f"{BASE_URL}/models" headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } print("=" * 60) print("测试1: 获取模型列表") print("=" * 60) try: response = requests.get(url, headers=headers, timeout=30) print(f"状态码: {response.status_code}") print(f"响应: {response.text[:500]}") return response.status_code == 200 except requests.exceptions.Timeout: print("超时: 请求超过30秒") return False except requests.exceptions.ConnectionError as e: print(f"连接错误: {e}") return False except Exception as e: print(f"错误: {e}") return False def test_chat_completion(): """测试聊天完成接口""" url = f"{BASE_URL}/chat/completions" headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } payload = { "model": MODEL, "messages": [ { "role": "user", "content": "请简单介绍一下你自己。" } ], "max_tokens": 100, "temperature": 0.7 } print("\n" + "=" * 60) print("测试2: 聊天完成接口") print("=" * 60) print(f"URL: {url}") print(f"Model: {MODEL}") try: start_time = time.time() response = requests.post(url, headers=headers, json=payload, timeout=60) elapsed = time.time() - start_time print(f"状态码: {response.status_code}") print(f"耗时: {elapsed:.2f}秒") if response.status_code == 200: result = response.json() content = result.get("choices", [{}])[0].get("message", {}).get("content", "") print(f"响应内容:\n{content}") return True else: print(f"错误响应: {response.text[:500]}") return False except requests.exceptions.Timeout: print(f"超时: 请求超过60秒") return False except requests.exceptions.ConnectionError as e: print(f"连接错误: {e}") return False except Exception as e: print(f"错误: {e}") return False def test_simple_prompt(): """测试简单提示词""" url = f"{BASE_URL}/chat/completions" headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } payload = { "model": MODEL, "messages": [ { "role": "user", "content": "1+1等于几?" } ], "max_tokens": 50, "temperature": 0.1 } print("\n" + "=" * 60) print("测试3: 简单数学问题") print("=" * 60) try: start_time = time.time() response = requests.post(url, headers=headers, json=payload, timeout=30) elapsed = time.time() - start_time print(f"状态码: {response.status_code}") print(f"耗时: {elapsed:.2f}秒") if response.status_code == 200: result = response.json() content = result.get("choices", [{}])[0].get("message", {}).get("content", "") print(f"响应: {content}") return True else: print(f"错误: {response.text[:300]}") return False except requests.exceptions.Timeout: print("超时") return False except Exception as e: print(f"错误: {e}") return False if __name__ == "__main__": print("LLM API 连接测试") print(f"API地址: {BASE_URL}") print(f"模型: {MODEL}") print() results = [] results.append(("模型列表", test_api())) results.append(("聊天完成", test_chat_completion())) results.append(("简单问题", test_simple_prompt())) print("\n" + "=" * 60) print("测试结果汇总") print("=" * 60) for name, success in results: status = "通过" if success else "失败" print(f"{name}: {status}") all_passed = all(r[1] for r in results) print() if all_passed: print("所有测试通过!") else: print("部分测试失败,请检查API配置和网络连接")