- AI-powered shell command generator using DeepSeek V3 - Support for natural language to shell command conversion - Secure configuration management with .env files - Package structure with uv tool installation support - Chinese and English language support - Configuration validation and error handling
158 lines
4.1 KiB
Markdown
158 lines
4.1 KiB
Markdown
# AI Shell 项目修改完成总结
|
||
|
||
## ✅ 已完成的修改
|
||
|
||
### 1. 模型接口更换
|
||
- **原来**: Gemini AI (Google)
|
||
- **现在**: DeepSeek V3 (通过 OpenAI 兼容接口)
|
||
|
||
### 2. API 配置更新
|
||
```python
|
||
# 新的配置
|
||
API_KEY = "f8370a60-fe0a-455f-9167-411d476123d2"
|
||
BASE_URL = "https://ark.cn-beijing.volces.com/api/v3/"
|
||
MODEL = "deepseek-v3-250324"
|
||
```
|
||
|
||
### 3. 依赖包更新
|
||
- **移除**: `google-genai`
|
||
- **添加**: `openai` (用于 OpenAI 兼容接口)
|
||
|
||
### 4. 代码修改详情
|
||
|
||
#### 主要变更:
|
||
1. **导入模块**:
|
||
```python
|
||
# 原来
|
||
from pydantic_ai.models.gemini import GeminiModel
|
||
|
||
# 现在
|
||
from pydantic_ai.models.openai import OpenAIModel
|
||
```
|
||
|
||
2. **模型初始化**:
|
||
```python
|
||
# 原来
|
||
model = GeminiModel("gemini-2.0-flash")
|
||
|
||
# 现在
|
||
os.environ["OPENAI_API_KEY"] = API_KEY
|
||
os.environ["OPENAI_BASE_URL"] = BASE_URL
|
||
model = OpenAIModel("deepseek-v3-250324")
|
||
```
|
||
|
||
3. **修复弃用警告**:
|
||
```python
|
||
# 原来
|
||
result_type=Answer
|
||
resp.data
|
||
|
||
# 现在
|
||
output_type=Answer
|
||
resp.output
|
||
```
|
||
|
||
## 🧪 测试结果
|
||
|
||
### 功能测试
|
||
✅ **英文命令**: `"list files in current directory"` → `ls`
|
||
✅ **中文命令**: `"创建一个新目录叫test"` → `mkdir test`
|
||
✅ **复杂命令**: `"show disk usage"` → `df -h`
|
||
|
||
### 性能表现
|
||
- ✅ 响应速度快
|
||
- ✅ 命令准确性高
|
||
- ✅ 支持中英文交互
|
||
- ✅ 思考过程清晰
|
||
|
||
## 📁 最终项目结构
|
||
|
||
```
|
||
ai-shell/
|
||
├── ai.py # ✅ 主程序(已更新为 DeepSeek V3)
|
||
├── pyproject.toml # ✅ 项目配置(已更新依赖)
|
||
├── uv.toml # ✅ UV 配置(国内镜像源)
|
||
├── uv.lock # ✅ 依赖锁定文件(已更新)
|
||
├── .python-version # ✅ Python 版本文件
|
||
├── .venv/ # ✅ 虚拟环境
|
||
├── README.md # ✅ 项目说明(已更新)
|
||
├── 配置总结.md # ✅ 配置总结
|
||
├── 项目配置说明.md # ✅ 详细配置说明(已更新)
|
||
└── 修改完成总结.md # ✅ 本文件
|
||
```
|
||
|
||
## 🚀 使用方法
|
||
|
||
### 基本命令
|
||
```bash
|
||
# 英文命令
|
||
uv run python ai.py "list all Python files"
|
||
uv run python ai.py "show current directory size"
|
||
uv run python ai.py "find files modified today"
|
||
|
||
# 中文命令
|
||
uv run python ai.py "显示当前目录下的所有文件"
|
||
uv run python ai.py "查看磁盘使用情况"
|
||
uv run python ai.py "创建一个名为backup的目录"
|
||
```
|
||
|
||
### 交互流程
|
||
1. **AI 思考**: 显示推理过程
|
||
2. **AI 回答**: 提供具体命令
|
||
3. **用户确认**: `[Y/n]` 选择是否执行
|
||
- **Enter 键** 或 **y/yes**: 执行命令
|
||
- **n/no**: 取消执行
|
||
4. **自动执行**: 确认后自动运行命令
|
||
|
||
## 🎯 核心优势
|
||
|
||
### 1. 模型优势
|
||
- **DeepSeek V3**: 最新的开源大模型,性能优异
|
||
- **中文友好**: 对中文指令理解更准确
|
||
- **成本效益**: 通过 Volces API 使用,性价比高
|
||
|
||
### 2. 技术优势
|
||
- **OpenAI 兼容**: 标准接口,易于维护
|
||
- **快速部署**: 国内镜像源,依赖安装快速
|
||
- **环境隔离**: UV 虚拟环境,避免冲突
|
||
|
||
### 3. 用户体验
|
||
- **双语支持**: 中英文命令都能准确理解
|
||
- **安全确认**: 执行前需要用户确认
|
||
- **便捷操作**: 直接按 Enter 键即可执行(默认为 Y)
|
||
- **思考透明**: 显示 AI 的推理过程
|
||
|
||
## 📋 配置验证
|
||
|
||
### 检查配置是否正确
|
||
```bash
|
||
# 1. 检查依赖
|
||
uv pip list | grep -E "(pydantic-ai|openai)"
|
||
|
||
# 2. 测试连接
|
||
uv run python ai.py "echo hello"
|
||
|
||
# 3. 验证中文支持
|
||
uv run python ai.py "显示当前时间"
|
||
```
|
||
|
||
## 🔧 故障排除
|
||
|
||
### 常见问题
|
||
1. **API 连接失败**: 检查网络连接和 API 密钥
|
||
2. **模型不响应**: 确认 BASE_URL 和模型名称正确
|
||
3. **依赖问题**: 运行 `uv sync` 重新同步依赖
|
||
|
||
### 调试方法
|
||
```bash
|
||
# 查看详细错误信息
|
||
uv run python ai.py "test command" 2>&1
|
||
|
||
# 检查环境变量
|
||
uv run python -c "import os; print(os.environ.get('OPENAI_BASE_URL'))"
|
||
```
|
||
|
||
---
|
||
|
||
🎉 **修改完成!** 现在您可以使用 DeepSeek V3 模型通过 Volces API 来生成 shell 命令了!
|