模型配置
MyDeskBot 支持多种 AI 模型,您可以根据需求选择最适合的模型。
目录
支持的模型
OpenAI
| 模型 | 上下文 | 速度 | 成本 | 适用场景 |
|---|---|---|---|---|
gpt-4 | 128K | 中 | 高 | 复杂任务、代码生成 |
gpt-4-turbo | 128K | 快 | 中 | 日常开发、分析 |
gpt-4-turbo-preview | 128K | 快 | 中 | 最新功能测试 |
gpt-3.5-turbo | 16K | 很快 | 低 | 简单查询、补全 |
Anthropic Claude
| 模型 | 上下文 | 速度 | 成本 | 适用场景 |
|---|---|---|---|---|
claude-3-opus | 200K | 中 | 高 | 长文档分析、复杂推理 |
claude-3-sonnet | 200K | 快 | 中 | 平衡选择、多场景通用 |
claude-3-haiku | 200K | 很快 | 低 | 快速响应、简单任务 |
其他模型
| 提供商 | 模型 | 特点 |
|---|---|---|
| Google Gemini | gemini-pro | 长上下文、多模态 |
| Azure OpenAI | 各种 GPT 模型 | 企业级、合规性 |
| Ollama | 本地开源模型 | 隐私、离线可用 |
模型选择指南
按使用场景选择
代码生成
推荐:gpt-4 或 claude-3-opus
bash
mydeskbot ask -m gpt-4 "生成一个完整的 REST API 服务"代码审查
推荐:gpt-4-turbo 或 claude-3-sonnet
bash
mydeskbot ask -m claude-3-sonnet -c app.py "审查这段代码"快速查询
推荐:gpt-3.5-turbo 或 claude-3-haiku
bash
mydeskbot ask -m gpt-3.5-turbo "Python 中列表和元组的区别"长文档分析
推荐:claude-3-opus(200K 上下文)
bash
mydeskbot ask -m claude-3-opus -c large_document.md "总结这个文档"按性能需求选择
| 需求 | 推荐模型 | 原因 |
|---|---|---|
| 最高质量 | gpt-4, claude-3-opus | 最强的推理能力 |
| 平衡性价比 | gpt-4-turbo, claude-3-sonnet | 质量与成本的平衡 |
| 最快响应 | gpt-3.5-turbo, claude-3-haiku | 响应速度快 |
| 隐私优先 | 本地模型(Ollama) | 数据不离本地 |
| 企业合规 | Azure OpenAI | 合规性认证 |
配置模型
设置默认模型
bash
# 命令行设置
mydeskbot config set model gpt-4
# 或使用环境变量
export MYDESKBOT_MODEL="gpt-4"为不同任务配置不同模型
json
{
"model": {
"default": "gpt-4",
"chat": "gpt-4-turbo",
"code": "gpt-4",
"completion": "gpt-3.5-turbo",
"review": "claude-3-sonnet"
}
}配置多个模型
bash
# 设置主模型
mydeskbot config set api.key sk-openai-key
# 配置 Anthropic 模型
mydeskbot config set anthropic.key sk-ant-key
mydeskbot config set anthropic.model claude-3-opus模型参数
Temperature(温度)
控制输出的随机性和创造性:
| 值 | 效果 | 适用场景 |
|---|---|---|
| 0.0-0.3 | 确定、一致 | 代码生成、事实性内容 |
| 0.4-0.7 | 平衡 | 日常开发、一般对话 |
| 0.8-1.0 | 创造性 | 创意写作、头脑风暴 |
| 1.0-2.0 | 非常随机 | 探索性任务 |
bash
# 设置温度
mydeskbot ask -t 0.3 "生成 SQL 查询"
mydeskbot ask -t 0.8 "写一个创意故事"Max Tokens(最大输出长度)
控制响应的最大长度:
| 任务 | 推荐值 | 原因 |
|---|---|---|
| 代码补全 | 256-512 | 通常只需少量代码 |
| 代码生成 | 2000-4000 | 完整函数/类 |
| 文档生成 | 1000-2000 | 适中的文档长度 |
| 解释说明 | 1000-1500 | 清晰的解释 |
| 长篇内容 | 4000+ | 完整的文章或文档 |
bash
# 设置最大 tokens
mydeskbot ask --max-tokens 4000 "生成完整的 API 文档"Top P(核采样)
另一种控制随机性的方法(通常与 Temperature 二选一):
bash
# 使用 Top P
mydeskbot ask --top-p 0.9 "生成代码"Frequency Penalty(频率惩罚)
减少重复内容:
bash
# 增加多样性
mydeskbot ask --frequency-penalty 0.5 "列出 10 个 JavaScript 框架"Presence Penalty(存在惩罚)
鼓励讨论新话题:
bash
# 鼓励新想法
mydeskbot ask --presence-penalty 0.3 "讨论不同的编程范式"高级配置
自定义模型端点
json
{
"api": {
"base": "https://custom-api.example.com/v1",
"key": "your-custom-key"
},
"model": {
"custom-model": "my-model-v1"
}
}模型回退
json
{
"model": {
"default": "gpt-4",
"fallback": "gpt-3.5-turbo",
"fallback_on_error": true
}
}模型切换规则
json
{
"model_selection": {
"rules": [
{
"condition": "context_length > 10000",
"model": "claude-3-opus"
},
{
"condition": "task == 'code_review'",
"model": "claude-3-sonnet"
},
{
"condition": "task == 'quick_query'",
"model": "gpt-3.5-turbo"
}
]
}
}模型性能优化
批量请求
bash
# 处理多个问题时,使用批量模式
mydeskbot batch --input questions.txt --output answers.json流式输出
bash
# 启用流式输出(默认启用)
mydeskbot ask "生成代码"
# 禁用流式输出
mydeskbot ask --no-stream "生成代码"缓存结果
bash
# 启用缓存
mydeskbot config set cache.enabled true
# 设置缓存过期时间
mydeskbot config set cache.ttl_hours 24成本估算
估算成本
bash
# 估算请求成本
mydeskbot estimate -m gpt-4 -t 2000 "生成代码"
# 输出示例
# 预计输入 tokens: 150
# 预计输出 tokens: ~2000
# 预计成本: $0.06成本控制
json
{
"cost_control": {
"max_daily_cost": 10.0,
"max_request_cost": 1.0,
"alert_threshold": 5.0,
"model_preference": "cost_effective"
}
}故障排除
模型不可用
bash
# 检查模型状态
mydeskbot model status
# 切换到备用模型
mydeskbot config set model gpt-3.5-turbo上下文超限
bash
# 减少上下文
mydeskbot ask --max-context 5000 "你的问题"
# 或使用长上下文模型
mydeskbot ask -m claude-3-opus "你的问题"最佳实践
1. 根据任务选择合适的模型
- 简单任务:使用快速模型(gpt-3.5-turbo)
- 复杂任务:使用强大模型(gpt-4, claude-3-opus)
- 日常使用:使用平衡模型(gpt-4-turbo)
2. 合理设置温度
- 代码生成:低温度(0.1-0.3)
- 创意任务:高温度(0.7-1.0)
- 一般对话:中温度(0.5-0.7)
3. 控制输出长度
- 避免过长的请求(减少 tokens 成本)
- 设置合理的 max_tokens
- 使用简洁的提示词
4. 监控成本
- 使用成本估算工具
- 设置成本上限
- 定期检查使用情况
下一步
- OpenAI 模型 - OpenAI 模型详解
- Anthropic 模型 - Anthropic 模型详解
- 提示词系统 - 优化提示词