第二节:首次对话
本节课将带你完成 OpenCode 的首次配置并与 AI 助手进行第一次对话。
📋 目录
配置 API 密钥
方式一:使用 /connect 命令(推荐)
OpenCode 提供了交互式的配置命令:
bash
# 启动配置向导
opencode /connect按照提示选择模型提供商并输入 API 密钥:
? 选择模型提供商:
1. OpenAI
2. Anthropic
3. 智谱 AI
4. DeepSeek
5. MiniMax
6. 其他
> 输入数字或直接输入名称方式二:环境变量
bash
# 设置 OpenAI API 密钥
export OPENAI_API_KEY="sk-xxx"
# 设置智谱 AI API 密钥
export ZHIPU_API_KEY="xxx"
# 设置代理(可选,国内用户建议配置)
export HTTP_PROXY="http://127.0.0.1:7890"
export HTTPS_PROXY="http://127.0.0.1:7890"方式三:配置文件
编辑 ~/.config/opencode/config.yaml:
yaml
# 模型配置
models:
default: zhipu # 默认模型
providers:
zhipu:
api_key: "your-api-key"
base_url: "https://open.bigmodel.cn/api/paas/v4"
deepseek:
api_key: "your-api-key"
base_url: "https://api.deepseek.com"
# 代理配置(可选)
proxy:
http: "http://127.0.0.1:7890"
https: "http://127.0.0.1:7890"
# 其他配置
theme: dark
language: zh-CN测试对话
配置完成后,启动 OpenCode 进行第一次对话:
bash
# 启动交互式对话
opencode
# 或者直接指定任务
opencode "请帮我写一个 Python 快速排序算法"基本对话示例
用户: 你好,请介绍一下你自己
OpenCode: 👋 你好!我是 OpenCode,一个 AI 编程助手。我可以帮助你:
- 📝 编写和调试代码
- 🔍 分析代码问题
- 🛠️ 重构和优化代码
- 📖 解释编程概念
- 💡 提供技术建议
有什么我可以帮助你的吗?代码生成示例
用户: 用 Python 写一个快速排序算法
OpenCode: 当然可以!这是 Python 快速排序的实现:
```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)
# 测试
if __name__ == "__main__":
test_arr = [3, 6, 8, 10, 1, 2, 1]
print("原始数组:", test_arr)
print("排序后:", quick_sort(test_arr))输出:
原始数组: [3, 6, 8, 10, 1, 2, 1]
排序后: [1, 1, 2, 3, 6, 8, 10]需要我解释代码的实现细节吗?
## 基本操作
### 常用命令
| 命令 | 描述 |
|------|------|
| `/connect` | 配置模型连接 |
| `/help` | 显示帮助信息 |
| `/clear` | 清除对话历史 |
| `/exit` | 退出程序 |
| `/save` | 保存对话记录 |
### 对话技巧
1. **明确需求**: 清晰描述你的需求
2. **提供上下文**: 给出相关代码或背景信息
3. **分步请求**: 复杂任务分解为多个步骤
4. **迭代优化**: 根据反馈调整需求
## 常见问题
### Q1: 提示 API 密钥无效?
- 检查 API 密钥是否正确
- 确认 API 密钥是否有余额
- 检查网络连接和代理设置
### Q2: 对话速度慢?
- 检查网络连接
- 尝试切换到更快的模型
- 减少请求的上下文大小
### Q3: 回复内容不准确?
- 明确你的需求
- 提供更多背景信息
- 要求 AI 重新生成
## 🎯 下一步
现在你已经完成了首次对话,继续学习下一节课:
[下一节:项目实战 →](#)(即将推出)
或者返回:
- [课程概览](./overview)
- [第一节:安装配置](./lesson1)
- [教程目录](../)
