chat 命令
chat 命令启动交互式对话模式,允许您与 AI 助手进行多轮对话。
基本用法
bash
mydeskbot chat选项
| 选项 | 简写 | 说明 | 默认值 |
|---|---|---|---|
--model | -m | 指定 AI 模型 | gpt-4 |
--temperature | -t | 设置温度参数 | 0.7 |
--system | -s | 设置系统提示词 | - |
--history | - | 加载历史对话 | - |
--no-stream | - | 禁用流式输出 | false |
交互式命令
在 chat 模式中,可以使用以下命令:
| 命令 | 简写 | 说明 |
|---|---|---|
/help | /h | 显示帮助 |
/clear | /c | 清空对话历史 |
/model <model> | /m | 切换模型 |
/exit | /q | 退出对话 |
/save <file> | /s | 保存对话到文件 |
/load <file> | /l | 从文件加载对话 |
/context <file> | - | 添加上下文文件 |
/system <prompt> | /sys | 设置系统提示词 |
/temperature <value> | /t | 设置温度参数 |
使用示例
基本对话
bash
$ mydeskbot chat
> 你好!
你好!我是 MyDeskBot AI 助手,有什么可以帮助您的吗?
> 如何学习编程?
学习编程的建议:
1. 选择一门编程语言开始
2. 理解基本概念
3. 多动手实践
4. 阅读优秀代码
5. 参与开源项目
...切换模型
bash
> /model gpt-3.5-turbo
已切换到 gpt-3.5-turbo设置系统提示词
bash
> /system 你是一个专业的 Python 开发者,专注于数据分析
系统提示词已更新添加上下文
bash
> /context data.csv
已添加 data.csv 作为上下文
> 分析这个 CSV 文件
[AI 会基于文件内容回答]保存和加载
bash
> /save conversation.json
对话已保存到 conversation.json
> /clear
对话历史已清空
> /load conversation.json
已从 conversation.json 加载对话高级功能
代码编写辅助
bash
> 我要创建一个 REST API
好的,我来帮您设计。您想使用什么技术栈?
> Python + FastAPI
很好!FastAPI 是一个现代、快速(高性能)的 Web 框架。
首先安装依赖:
pip install fastapi uvicorn
创建 main.py:
```python
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello World"}需要我继续添加更多功能吗?
### 调试辅助
```bash
> /context app.py
> 我的代码报错了,请帮我看看
[粘贴错误信息]
让我分析一下错误。错误信息显示是 NameError,表示使用了未定义的变量。
问题在这行代码:
```python
result = calculate(x, y)您使用了 calculate 函数,但代码中没有定义这个函数。
修复方法:
- 定义 calculate 函数
- 或者使用其他已存在的函数
### 学习辅导
```bash
> /system 你是一个耐心的编程导师
系统提示词已更新
> 我不理解递归
没问题,让我用简单的例子解释递归。
递归就是函数调用自己。想象一下:
```python
def countdown(n):
if n <= 0:
print("发射!")
else:
print(n)
countdown(n - 1)
countdown(5)这个函数会:
- 打印 5
- 调用 countdown(4)
- 打印 4
- 调用 countdown(3) ... 直到 n <= 0
关键是要有:
- 基准情况(停止条件)
- 递归情况(继续调用自己)
这样理解了吗?还有什么疑问吗?
## 多文件上下文
```bash
> /context models/user.py
> /context services/user_service.py
> /context controllers/user_controller.py
> 这些文件之间有什么关系?
分析这三个文件的关系:
1. models/user.py - 数据模型层
- 定义 User 类的数据结构
- 包含字段定义和验证
2. services/user_service.py - 业务逻辑层
- 使用 User 模型
- 实现业务规则
- 处理数据验证
3. controllers/user_controller.py - 接口层
- 调用 user_service
- 处理 HTTP 请求
- 返回响应
这是一个典型的三层架构,层次分明,职责清晰。实时协作
代码审查对话
bash
> /context PR-description.md
> /context diff.txt
> 这个 PR 做了什么改动?
根据 PR 描述和代码差异,这个 PR 的主要改动是:
1. **新增功能**:用户认证
- 添加了登录和注册端点
- 实现了 JWT token 生成
2. **代码质量改进**:
- 提取了重复代码
- 添加了错误处理
- 增加了单元测试
3. **潜在问题**:
- 密码存储没有加密(应该使用 bcrypt)
- 缺少速率限制
建议在合并前修复这些问题。需要我提供具体的修复代码吗?配置对话模式
自定义提示词
bash
# 创建自定义系统提示词文件
cat > system-prompt.txt << EOF
你是一个资深的 DevOps 工程师,擅长:
- CI/CD 流程设计
- 容器化部署
- 云基础设施
- 监控和日志
回答时请:
1. 给出实用的解决方案
2. 包含代码示例
3. 说明最佳实践
EOF
# 使用自定义提示词
mydeskbot chat --system "$(cat system-prompt.txt)"对话模板
bash
# 创建对话模板
cat > dev-chat.json << EOF
{
"system": "你是一个全栈开发工程师",
"model": "gpt-4",
"temperature": 0.7,
"messages": []
}
EOF
# 使用模板启动
mydeskbot chat --history dev-chat.json高级技巧
1. 分步解决问题
bash
> 我需要实现一个博客系统
好的,让我们分步来实现。
第一步:设计数据模型
您需要哪些功能?
- 文章管理
- 用户系统
- 评论功能
- 分类和标签
您想从哪个功能开始?
> 先从文章管理开始
好的,我们来设计文章模型...2. 代码迭代
bash
> 写一个排序函数
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr优化这个函数,使用快速排序
python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)快速排序的平均时间复杂度是 O(n log n),比冒泡排序的 O(n²) 快得多。
### 3. 多语言对话
```bash
> 用 Python 写一个 Web 服务器
```python
from http.server import HTTPServer, BaseHTTPRequestHandler
class MyHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write(b"Hello World!")
server = HTTPServer(('localhost', 8080), MyHandler)
server.serve_forever()把这个代码翻译成 JavaScript (Node.js)
javascript
const http = require("http");
const server = http.createServer((req, res) => {
res.writeHead(200, { "Content-Type": "text/html" });
res.end("Hello World!");
});
server.listen(8080, () => {
console.log("Server running on http://localhost:8080");
});两种实现的功能相同,只是语法不同。
## 快捷键
| 快捷键 | 功能 |
|--------|------|
| `Ctrl+C` | 取消当前请求 |
| `Ctrl+L` | 清屏 |
| `Ctrl+D` | 退出对话 |
| `↑/↓` | 浏览历史消息 |
## 配置文件
在 `~/.mydeskbot/config.json` 中配置 chat 默认选项:
```json
{
"chat": {
"model": "gpt-4",
"temperature": 0.7,
"system_prompt": "你是一个有帮助的 AI 助手",
"auto_save": true,
"save_path": "~/.mydeskbot/chat_history"
}
}最佳实践
1. 明确表达意图
bash
# ❌ 不够明确
> 帮我写代码
# ✅ 明确意图
> 写一个 Python 函数,读取 CSV 文件并返回数据框2. 提供上下文
bash
# 添加相关文件
> /context config.yaml
> /context main.go
> 为什么这个配置不能工作?3. 分步提问
bash
# 复杂问题分步解决
> 第一步:设计数据库结构
[...]
> 第二步:生成迁移脚本
[...]4. 使用系统提示词
bash
# 设置专业的角色
> /system 你是一个资深的 React 开发者