Skip to content

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 "你的问题"

相关命令

  • chat - 交互式对话
  • exec - 执行 AI 生成的命令
  • script - 运行脚本模板