Files
worklist/test_ai_config.py
2026-01-09 09:59:28 +00:00

119 lines
4.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""
AI服务配置测试脚本
测试不同的AI服务配置是否正确工作包括自定义端点支持
"""
import os
import sys
from dotenv import load_dotenv
# 添加backend目录到路径
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'backend'))
from ai_service import AIService
def test_configuration():
"""测试AI服务配置"""
print("=" * 60)
print("AI服务配置测试")
print("=" * 60)
# 加载环境变量
load_dotenv()
# 创建AI服务实例
ai = AIService()
# 显示配置信息
print(f"\n当前配置:")
print(f" 模型: {ai.model}")
print(f" API密钥: {'已配置' if ai.api_key and ai.api_key != 'your_api_key_here' else '未配置'}")
print(f" 自定义端点: {ai.api_base if ai.api_base else '未设置'}")
print(f" 自定义Provider: {ai.custom_llm_provider if ai.custom_llm_provider else '未设置'}")
print(f" 温度: {ai.temperature}")
print(f" 最大Token数: {ai.max_tokens}")
# 获取模型信息
model_info = ai.get_model_info()
print(f"\n模型信息:")
print(f" 服务商: {model_info['provider']}")
print(f" 可用性: {'' if model_info['available'] else ''}")
# 显示使用场景说明
print(f"\n配置说明:")
if ai.custom_llm_provider == 'openai' and ai.api_base:
print(" ✓ 检测到自定义OpenAI格式端点配置")
print(" → 将使用OpenAI兼容格式调用API")
print(f" → 端点: {ai.api_base}")
print(f" → 模型: {ai.model}")
elif ai.model.startswith('gemini-') and not ai.custom_llm_provider:
print(" ✓ 使用原生Gemini API")
print(" → 需要设置 GEMINI_API_KEY 或 AI_API_KEY")
elif ai.model.startswith('claude-'):
print(" ✓ 使用原生Claude API")
print(" → 需要设置 ANTHROPIC_API_KEY 或 AI_API_KEY")
elif ai.model.startswith('gpt-'):
print(" ✓ 使用原生OpenAI API")
print(" → 需要设置 OPENAI_API_KEY 或 AI_API_KEY")
# 环境变量检查
print(f"\n环境变量检查:")
env_vars = {
'AI_MODEL': os.getenv('AI_MODEL'),
'AI_API_KEY': '已设置' if os.getenv('AI_API_KEY') else '未设置',
'AI_API_BASE': os.getenv('AI_API_BASE', '未设置'),
'AI_CUSTOM_PROVIDER': os.getenv('AI_CUSTOM_PROVIDER', '未设置'),
'OPENAI_API_KEY': '已设置' if os.getenv('OPENAI_API_KEY') else '未设置',
'ANTHROPIC_API_KEY': '已设置' if os.getenv('ANTHROPIC_API_KEY') else '未设置',
'GEMINI_API_KEY': '已设置' if os.getenv('GEMINI_API_KEY') else '未设置',
}
for key, value in env_vars.items():
print(f" {key}: {value}")
print("\n" + "=" * 60)
# 测试AI功能如果配置了API密钥
if ai.is_available():
print("\n是否要测试AI润色功能? (y/n): ", end='')
try:
choice = input().strip().lower()
if choice == 'y':
test_text = "完成项目文档"
print(f"\n测试文本: {test_text}")
print("正在调用AI服务...")
try:
result = ai.polish_description(test_text)
print(f"\n润色结果: {result}")
print("\n✓ AI服务测试成功!")
except Exception as e:
print(f"\n✗ AI服务测试失败: {e}")
except KeyboardInterrupt:
print("\n跳过测试")
else:
print("\nAI服务未配置或配置不正确跳过功能测试")
print("\n配置示例:")
print("\n1. 使用原生Gemini API:")
print(" AI_MODEL=gemini-pro")
print(" AI_API_KEY=your_gemini_api_key")
print("\n2. 使用OpenAI格式的自定义端点调用Gemini:")
print(" AI_MODEL=gemini-pro")
print(" AI_API_KEY=your_api_key")
print(" AI_API_BASE=https://your-endpoint.com/v1")
print(" AI_CUSTOM_PROVIDER=openai")
print("\n3. 使用原生OpenAI API:")
print(" AI_MODEL=gpt-3.5-turbo")
print(" AI_API_KEY=your_openai_api_key")
print("\n" + "=" * 60)
if __name__ == '__main__':
test_configuration()