#!/usr/bin/env python # -*- coding: utf-8 -*- """ 模型管理器测试脚本 用于验证新模型管理功能的正确性 """ import os import sys import json # 添加项目根目录到Python路径 sys.path.append(os.path.dirname(os.path.abspath(__file__))) from model_manager import model_router, OpenAIProvider, OpenRouterProvider, SiliconFlowProvider from config import settings def test_model_router(): """测试模型路由器功能""" print("=== 测试模型路由器功能 ===") # 显示所有可用模型 print("可用模型:") for model in model_router.list_models(): print(f" - {model}") # 显示所有提供商 print("\n可用提供商:") for provider in model_router.list_providers(): print(f" - {provider}") # 测试模型路由 print("\n测试模型路由:") test_models = ["gpt-3.5-turbo", "text-embedding-ada-002"] for model in test_models: provider = model_router.get_provider_for_model(model) if provider: print(f" {model} -> {provider.name}") else: print(f" {model} -> 未找到提供商") print("\n=== 测试完成 ===") def test_openai_provider(): """测试OpenAI提供商""" print("\n=== 测试OpenAI提供商 ===") if settings.OPENAI_API_KEY: provider = OpenAIProvider( name="openai_test", api_key=settings.OPENAI_API_KEY, base_url=settings.OPENAI_API_BASE or "https://api.openai.com/v1", models=["gpt-3.5-turbo"] ) try: # 测试文本生成 messages = [ {"role": "user", "content": "你好,这是一个测试消息"} ] response = provider.generate_text("gpt-3.5-turbo", messages, max_tokens=50) print(f"文本生成测试通过: {response[:50]}...") # 测试嵌入获取 texts = ["这是一个测试文本"] embeddings = provider.get_embeddings("text-embedding-ada-002", texts) print(f"嵌入获取测试通过: 维度 {len(embeddings[0])}") except Exception as e: print(f"OpenAI提供商测试失败: {e}") else: print("未配置OpenAI API密钥,跳过测试") print("=== OpenAI提供商测试完成 ===") def test_config_loading(): """测试配置加载功能""" print("\n=== 测试配置加载功能 ===") # 检查模型配置文件是否存在 config_file = "model_config.json" if os.path.exists(config_file): try: with open(config_file, 'r', encoding='utf-8') as f: config = json.load(f) print("模型配置文件加载成功") print(f"配置文件包含 {len(config.get('providers', []))} 个提供商") except Exception as e: print(f"模型配置文件加载失败: {e}") else: print("模型配置文件不存在") print("=== 配置加载测试完成 ===") def main(): """主测试函数""" print("开始测试模型管理功能...") # 测试配置加载 test_config_loading() # 测试模型路由器 test_model_router() # 测试OpenAI提供商 test_openai_provider() print("\n所有测试完成!") if __name__ == "__main__": main()