通过 Python 脚本一键测试并切换 Taotoken 上的多个模型
1. 准备工作
在开始编写测试脚本前,请确保已完成以下准备工作。首先登录 Taotoken 控制台,在「API 密钥」页面创建一个新的 API Key 并妥善保存。接着访问「模型广场」页面,记录下您想测试的模型 ID,例如claude-sonnet-4-6、gpt-3.5-turbo等。这些模型 ID 将用于后续的脚本配置。
Python 环境需要安装openai库的最新版本,可通过pip install openai命令完成安装。建议使用 Python 3.8 或更高版本以获得最佳兼容性。
2. 基础测试脚本编写
以下是一个基础测试脚本示例,它会向 Taotoken 的 OpenAI 兼容端点发送请求,并返回指定模型的响应内容:
from openai import OpenAI def test_model(api_key, model_id, prompt): client = OpenAI( api_key=api_key, base_url="https://taotoken.net/api", ) completion = client.chat.completions.create( model=model_id, messages=[{"role": "user", "content": prompt}], ) return completion.choices[0].message.content # 示例使用 api_key = "YOUR_API_KEY" model_id = "claude-sonnet-4-6" prompt = "请用中文简要介绍你自己" response = test_model(api_key, model_id, prompt) print(f"模型 {model_id} 的响应:\n{response}")3. 多模型批量测试实现
为了同时测试多个模型,我们可以扩展上述脚本,添加模型列表循环和结果收集功能:
from openai import OpenAI import time def batch_test_models(api_key, model_list, prompt, delay=1): client = OpenAI( api_key=api_key, base_url="https://taotoken.net/api", ) results = [] for model_id in model_list: try: start_time = time.time() completion = client.chat.completions.create( model=model_id, messages=[{"role": "user", "content": prompt}], ) elapsed_time = time.time() - start_time results.append({ "model": model_id, "response": completion.choices[0].message.content, "usage": dict(completion.usage), "time": elapsed_time }) print(f"已完成测试: {model_id}") time.sleep(delay) # 避免频繁请求 except Exception as e: print(f"测试 {model_id} 时出错: {str(e)}") results.append({"model": model_id, "error": str(e)}) return results # 配置参数 api_key = "YOUR_API_KEY" models_to_test = ["claude-sonnet-4-6", "gpt-3.5-turbo", "llama-2-7b"] test_prompt = "请用200字左右解释量子计算的基本原理" # 执行测试 test_results = batch_test_models(api_key, models_to_test, test_prompt) # 输出结果 for result in test_results: print(f"\n模型: {result['model']}") if 'error' in result: print(f"错误: {result['error']}") else: print(f"响应时间: {result['time']:.2f}s") print(f"Token 使用: {result['usage']}") print(f"响应内容:\n{result['response'][:200]}...") # 截取前200字符4. 结果分析与优化建议
测试完成后,您可以根据实际需求对结果进行分析。以下是一些常见的分析维度:
- 响应质量:检查各模型对测试提示的响应是否符合预期,是否准确回答了问题
- Token 消耗:比较不同模型完成相同任务所需的输入和输出 token 数量
- 响应速度:记录各模型的响应时间,注意网络延迟可能影响此指标
- 错误处理:观察是否有模型返回错误,并记录错误信息用于后续排查
建议在实际项目中根据这些指标权衡选择模型。例如,某些场景可能更看重响应质量而非速度,而另一些场景则可能优先考虑 token 使用效率。
5. 进阶功能扩展
基础测试脚本可以进一步扩展以满足更复杂的需求:
import csv from datetime import datetime def save_results_to_csv(results, filename=None): if not filename: timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") filename = f"model_test_results_{timestamp}.csv" fieldnames = ["model", "time", "prompt_tokens", "completion_tokens", "total_tokens", "response"] with open(filename, mode="w", newline="", encoding="utf-8") as file: writer = csv.DictWriter(file, fieldnames=fieldnames) writer.writeheader() for result in results: if "error" not in result: row = { "model": result["model"], "time": result["time"], "prompt_tokens": result["usage"].get("prompt_tokens", 0), "completion_tokens": result["usage"].get("completion_tokens", 0), "total_tokens": result["usage"].get("total_tokens", 0), "response": result["response"].replace("\n", " ")[:200] # 简化处理 } writer.writerow(row) print(f"结果已保存至 {filename}") # 使用示例 save_results_to_csv(test_results)此扩展功能会将测试结果保存为 CSV 文件,便于后续分析和比较。您还可以添加更多功能,如自定义提示模板、并行测试以加快速度、或集成到自动化测试流程中。
Taotoken