ask 命令
ask 命令是 MyDeskBot CLI 最常用的命令,用于向 AI 助手提问并获得即时答案。
基本用法
bash
mydeskbot ask "你的问题"选项
| 选项 | 简写 | 说明 | 默认值 |
|---|---|---|---|
--model | -m | 指定 AI 模型 | gpt-4 |
--file | -f | 从文件读取问题 | - |
--output | -o | 输出到文件 | - |
--no-stream | - | 禁用流式输出 | false |
--context | -c | 添加上下文文件 | - |
--temperature | -t | 设置温度参数 | 0.7 |
--max-tokens | - | 最大 token 数 | 2000 |
使用示例
基本提问
bash
mydeskbot ask "如何在 Python 中读取 CSV 文件?"指定模型
bash
mydeskbot ask -m gpt-3.5-turbo "解释 JavaScript 的闭包概念"从文件读取问题
bash
# 创建问题文件
cat > question.txt << EOF
请帮我优化以下代码:
[粘贴代码]
要求:
1. 提高性能
2. 提高可读性
3. 添加注释
EOF
# 从文件提问
mydeskbot ask -f question.txt添加上下文
bash
# 提供代码文件作为上下文
mydeskbot ask -c app.py "这个函数有什么问题?"保存输出
bash
mydeskbot ask -o answer.md "生成一个 React 组件的完整代码"禁用流式输出
bash
mydeskbot ask --no-stream "解释微服务架构"高级用法
管道输入
bash
# 从其他命令的输出作为问题
cat error.log | mydeskbot ask "分析这些错误日志,找出问题原因"多轮对话
bash
# 第一轮
mydeskbot ask "创建一个 Python 类来表示用户"
# 第二轮(基于上一轮的回答)
mydeskbot ask "为这个类添加验证方法"代码审查
bash
# 审查当前目录的 Python 文件
mydeskbot ask -c $(find . -name "*.py" -type f) "审查这些代码,指出潜在问题"生成测试用例
bash
mydeskbot ask -c user_service.py "为这个文件生成完整的单元测试"常见场景
学习新技术
bash
mydeskbot ask "解释 Rust 的所有权概念,并提供示例代码"代码调试
bash
mydeskbot ask -c app.js "这段代码报错 TypeError,请帮我找出问题"代码优化
bash
mydeskbot ask -c slow_query.py "优化这个查询,提高性能"生成文档
bash
mydeskbot ask -c api.py "为这个 API 模块生成使用文档"代码转换
bash
mydeskbot ask -c app.js "将这段 JavaScript 代码转换为 TypeScript"提示词技巧
1. 提供上下文
bash
# ❌ 不够具体
mydeskbot ask "优化代码"
# ✅ 提供上下文
mydeskbot ask -c data_processor.py "优化这个数据处理函数,减少内存使用"2. 指定格式
bash
mydeskbot ask "解释闭包,用以下格式:
1. 定义
2. 示例代码
3. 使用场景
4. 注意事项"3. 分步提问
bash
# 第一步:理解需求
mydeskbot ask "设计一个用户认证系统的数据模型"
# 第二步:实现细节
mydeskbot ask "基于刚才的数据模型,生成对应的 SQL 迁移脚本"
# 第三步:API 设计
mydeskbot ask "为这个认证系统设计 REST API 端点"4. 限制范围
bash
mydeskbot ask "解释 React 的 useEffect hook,只关注清理函数"输出格式控制
Markdown 格式
bash
# 默认输出 Markdown 格式
mydeskbot ask -o result.md "生成项目 README"代码块
bash
# 要求只返回代码
mydeskbot ask "生成一个 Python 装饰器,只返回代码,不要解释"JSON 格式
bash
mydeskbot ask "将以下信息转换为 JSON 格式"错误处理
处理超时
bash
# 如果请求超时,减少 max-tokens
mydeskbot ask --max-tokens 1000 "你的问题"处理错误
bash
# 如果遇到错误,检查 API 密钥
mydeskbot config get api.key
# 重新设置 API 密钥
mydeskbot config set api.key sk-your-new-key最佳实践
1. 使用引号包裹问题
bash
# ❌ 不推荐(可能被 shell 解析)
mydeskbot ask 如何在 Python 中使用正则表达式?
# ✅ 推荐
mydeskbot ask "如何在 Python 中使用正则表达式?"2. 使用明确的意图
bash
# ❌ 不够明确
mydeskbot ask "代码"
# ✅ 明确意图
mydeskbot ask "用 Python 写一个快速排序算法"3. 提供足够的上下文
bash
# 添加相关文件作为上下文
mydeskbot ask -c config.yaml -c main.go "为什么这个配置不能工作?"4. 分配适当的上下文
bash
# 只添加相关的文件
mydeskbot ask -c user_service.py "优化这个服务"环境变量
| 变量 | 说明 |
|---|---|
MYDESKBOT_MODEL | 默认模型 |
MYDESKBOT_TEMPERATURE | 默认温度 |
MYDESKBOT_MAX_TOKENS | 默认最大 tokens |
bash
# 设置环境变量
export MYDESKBOT_MODEL=gpt-3.5-turbo
export MYDESKBOT_TEMPERATURE=0.5
# 使用环境变量
mydeskbot ask "你的问题"