brew-profile-parser / test_api.py
于子扬
feat: 手冲方案卡 — 从小红书/抖音链接提取结构化冲煮参数
6cde229
Raw History Blame Contribute Delete
2.73 kB
"""
一键测试脚本:验证 .env 配置和 LLM API 连通性。
用法: python test_api.py
"""
import sys
from pathlib import Path
# 加载 .env
from dotenv import load_dotenv
load_dotenv(Path(__file__).parent / ".env")
from get_notes.config import AppConfig
config = AppConfig()
print("=" * 55)
print(" Get笔记 — API 连通性测试")
print("=" * 55)
print()
# 检查配置
print(f" LLM_BASE_URL: {config.llm.base_url}")
print(f" LLM_MODEL: {config.llm.model}")
key_display = config.llm.api_key[:8] + "..." if len(config.llm.api_key) > 8 else "(未设置)"
print(f" LLM_API_KEY: {key_display}")
print()
if not config.llm.api_key or "填入" in config.llm.api_key:
print(" [!] API Key 未设置")
print(" 请编辑 .env 文件,将 LLM_API_KEY 替换为你的真实 Key")
print()
print(" vim .env")
print(" # 或")
print(" open .env")
sys.exit(1)
# 测试 API 调用
print(" 发送测试请求...")
import requests
try:
resp = requests.post(
f"{config.llm.base_url}/chat/completions",
headers={
"Authorization": f"Bearer {config.llm.api_key}",
"Content-Type": "application/json",
},
json={
"model": config.llm.model,
"temperature": 0.3,
"max_tokens": 100,
"messages": [
{"role": "user", "content": "用一句话介绍手冲咖啡"},
],
},
timeout=30,
)
resp.raise_for_status()
data = resp.json()
content = data["choices"][0]["message"]["content"]
model_used = data.get("model", "unknown")
usage = data.get("usage", {})
print()
print(f" [OK] API 调用成功!")
print(f" 模型: {model_used}")
print(f" Token: {usage.get('prompt_tokens', '?')} + {usage.get('completion_tokens', '?')} = {usage.get('total_tokens', '?')}")
print(f" 回复: {content}")
print()
print("=" * 55)
print(" 一切就绪! 你可以运行:")
print()
print(' python -m get_notes "你的链接" -v')
print()
print(" 或交互模式:")
print()
print(" python -m get_notes --interactive")
print("=" * 55)
except requests.exceptions.HTTPError as e:
print()
print(f" [FAIL] API 返回错误: {e}")
try:
error_detail = resp.json()
print(f" 详情: {error_detail}")
except Exception:
print(f" 响应: {resp.text[:300]}")
sys.exit(1)
except requests.exceptions.ConnectionError:
print()
print(" [FAIL] 无法连接到 API 服务器")
print(f" 请检查 BASE_URL: {config.llm.base_url}")
sys.exit(1)
except Exception as e:
print()
print(f" [FAIL] 发生错误: {e}")
sys.exit(1)