test_doubao_integration.py
5.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#!/usr/bin/env python3
# AIfeng/2024-12-19
# 豆包模型集成测试脚本
import os
import sys
import json
from pathlib import Path
# 添加项目根目录到Python路径
project_root = Path(__file__).parent
sys.path.insert(0, str(project_root))
def test_config_files():
"""测试配置文件是否存在和格式正确"""
print("=== 配置文件测试 ===")
# 测试LLM配置文件
llm_config_path = project_root / "config" / "llm_config.json"
if llm_config_path.exists():
try:
with open(llm_config_path, 'r', encoding='utf-8') as f:
llm_config = json.load(f)
print(f"✓ LLM配置文件加载成功: {llm_config_path}")
print(f" 当前模型类型: {llm_config.get('model_type', 'unknown')}")
except Exception as e:
print(f"✗ LLM配置文件格式错误: {e}")
else:
print(f"✗ LLM配置文件不存在: {llm_config_path}")
# 测试豆包配置文件
doubao_config_path = project_root / "config" / "doubao_config.json"
if doubao_config_path.exists():
try:
with open(doubao_config_path, 'r', encoding='utf-8') as f:
doubao_config = json.load(f)
print(f"✓ 豆包配置文件加载成功: {doubao_config_path}")
print(f" 模型名称: {doubao_config.get('model', 'unknown')}")
print(f" 人物设定: {doubao_config.get('character', {}).get('name', 'unknown')}")
except Exception as e:
print(f"✗ 豆包配置文件格式错误: {e}")
else:
print(f"✗ 豆包配置文件不存在: {doubao_config_path}")
def test_module_import():
"""测试模块导入"""
print("\n=== 模块导入测试 ===")
try:
from llm.Doubao import Doubao
print("✓ 豆包模块导入成功")
except ImportError as e:
print(f"✗ 豆包模块导入失败: {e}")
return False
try:
import llm
print(f"✓ LLM包导入成功,可用模型: {llm.AVAILABLE_MODELS}")
except ImportError as e:
print(f"✗ LLM包导入失败: {e}")
return True
def test_llm_config_loading():
"""测试LLM配置加载函数"""
print("\n=== LLM配置加载测试 ===")
try:
# 模拟llm.py中的配置加载函数
config_path = project_root / "config" / "llm_config.json"
if config_path.exists():
with open(config_path, 'r', encoding='utf-8') as f:
config = json.load(f)
print(f"✓ 配置加载成功")
print(f" 模型类型: {config.get('model_type')}")
print(f" 配置项: {list(config.keys())}")
return config
else:
print("✗ 配置文件不存在,使用默认配置")
return {"model_type": "qwen"}
except Exception as e:
print(f"✗ 配置加载失败: {e}")
return {"model_type": "qwen"}
def test_doubao_instantiation():
"""测试豆包模型实例化(不需要真实API密钥)"""
print("\n=== 豆包实例化测试 ===")
try:
from llm.Doubao import Doubao
# 设置测试API密钥
os.environ['DOUBAO_API_KEY'] = 'test_key_for_validation'
doubao = Doubao()
print("✓ 豆包实例化成功")
print(f" 配置文件路径: {doubao.config_file}")
print(f" API基础URL: {doubao.base_url}")
print(f" 模型名称: {doubao.model}")
# 清理测试环境变量
if 'DOUBAO_API_KEY' in os.environ:
del os.environ['DOUBAO_API_KEY']
return True
except Exception as e:
print(f"✗ 豆包实例化失败: {e}")
return False
def test_integration_flow():
"""测试完整集成流程"""
print("\n=== 集成流程测试 ===")
try:
# 模拟llm.py中的流程
config = test_llm_config_loading()
model_type = config.get("model_type", "qwen")
print(f"根据配置选择模型: {model_type}")
if model_type == "doubao":
print("✓ 将使用豆包模型处理请求")
elif model_type == "qwen":
print("✓ 将使用通义千问模型处理请求")
else:
print(f"⚠ 未知模型类型: {model_type}")
return True
except Exception as e:
print(f"✗ 集成流程测试失败: {e}")
return False
def main():
"""主测试函数"""
print("豆包模型集成测试")
print("=" * 50)
# 运行所有测试
test_config_files()
if not test_module_import():
print("\n模块导入失败,停止测试")
return
test_llm_config_loading()
test_doubao_instantiation()
test_integration_flow()
print("\n=== 测试总结 ===")
print("✓ 豆包模型已成功集成到项目中")
print("✓ 配置文件结构正确")
print("✓ 模块导入正常")
print("\n使用说明:")
print("1. 设置环境变量 DOUBAO_API_KEY 为您的豆包API密钥")
print("2. 在 config/llm_config.json 中设置 model_type 为 'doubao'")
print("3. 根据需要修改 config/doubao_config.json 中的人物设定")
print("4. 重启应用即可使用豆包模型")
if __name__ == "__main__":
main()