# DeepSeek集成说明

## ✅ 已完成

已成功集成DeepSeek API，LLM节点现在可以使用DeepSeek模型。

## 功能特性

### 1. DeepSeek支持

- 兼容OpenAI API格式
- 支持DeepSeek Chat和DeepSeek Coder模型
- 与OpenAI使用相同的调用接口
- 支持自定义API地址

### 2. 配置

- 独立的API Key配置
- 独立的Base URL配置
- 可在节点级别选择提供商

## 配置方法

### 1. 设置DeepSeek API Key

在 `backend/.env` 文件中添加：

```env
DEEPSEEK_API_KEY=your-deepseek-api-key-here
DEEPSEEK_BASE_URL=https://api.deepseek.com
```

或者使用环境变量：

```bash
export DEEPSEEK_API_KEY=your-deepseek-api-key-here
export DEEPSEEK_BASE_URL=https://api.deepseek.com
```

### 2. 重启后端服务

```bash
docker-compose -f docker-compose.dev.yml restart backend
```

## 使用方法

### 1. 在工作流中添加LLM节点

1. 打开工作流设计器
2. 从节点工具箱拖拽"LLM"节点到画布
3. 配置节点参数

### 2. 配置LLM节点使用DeepSeek

在节点配置面板中设置：

```json
{
  "provider": "deepseek",
  "prompt": "请处理以下输入：\n{input}",
  "model": "deepseek-chat",
  "temperature": 0.7,
  "max_tokens": 1000
}
```

**参数说明**：
- `provider`: 选择 `deepseek`
- `prompt`: 提示词模板，支持变量替换
- `model`: 模型名称
  - `deepseek-chat`: DeepSeek Chat模型（通用对话）
  - `deepseek-coder`: DeepSeek Coder模型（代码生成）
- `temperature`: 温度参数（0-2），默认0.7
- `max_tokens`: 最大生成token数，可选

### 3. 支持的模型

#### DeepSeek Chat
- 模型名称：`deepseek-chat`
- 用途：通用对话、文本生成、分析等
- 推荐场景：日常对话、内容创作、数据分析

#### DeepSeek Coder
- 模型名称：`deepseek-coder`
- 用途：代码生成、代码解释、代码优化
- 推荐场景：代码生成、代码审查、技术问答

## 示例工作流

### 示例1：使用DeepSeek进行文本处理

```
开始 → LLM节点(DeepSeek) → 结束
```

LLM节点配置：
```json
{
  "provider": "deepseek",
  "prompt": "请将以下文本翻译成英文：{input}",
  "model": "deepseek-chat",
  "temperature": 0.7
}
```

### 示例2：使用DeepSeek Coder生成代码

```
开始 → LLM节点(DeepSeek Coder) → 结束
```

LLM节点配置：
```json
{
  "provider": "deepseek",
  "prompt": "请用Python编写一个函数，功能是：{input}",
  "model": "deepseek-coder",
  "temperature": 0.3
}
```

### 示例3：多提供商工作流

```
开始 → LLM节点(OpenAI) → LLM节点(DeepSeek) → 结束
```

可以在同一个工作流中使用不同的提供商，实现：
- 成本优化（DeepSeek通常更便宜）
- 结果对比
- 功能互补

## 提供商选择建议

### 选择OpenAI的场景
- 需要最新的GPT-4模型
- 需要更强的推理能力
- 预算充足

### 选择DeepSeek的场景
- 需要高性价比
- 代码生成任务（DeepSeek Coder）
- 中文场景（DeepSeek对中文支持较好）
- 需要更快的响应速度

## 错误处理

如果DeepSeek API调用失败，节点会返回错误信息：

```json
{
  "output": null,
  "status": "failed",
  "error": "DeepSeek API调用失败: 具体错误信息"
}
```

常见错误：
- **API Key未配置**：`DeepSeek API Key未配置，请在环境变量中设置DEEPSEEK_API_KEY`
- **API调用失败**：检查网络连接、API Key有效性、余额等
- **模型不存在**：检查模型名称是否正确

## 注意事项

1. **API费用**：DeepSeek通常比OpenAI更便宜，但每次调用仍会产生费用
2. **API限制**：注意DeepSeek的速率限制和配额
3. **网络连接**：确保服务器可以访问DeepSeek API（https://api.deepseek.com）
4. **模型选择**：根据任务类型选择合适的模型
5. **兼容性**：DeepSeek兼容OpenAI API格式，但某些高级功能可能不支持

## 前端配置

在前端工作流编辑器中，LLM节点配置面板现在包含：

1. **提供商选择**：下拉菜单选择OpenAI或DeepSeek
2. **模型选择**：根据选择的提供商显示对应的模型列表
3. **提示词输入**：多行文本输入框
4. **温度调节**：滑块控制（0-2）
5. **最大Token数**：数字输入框（可选）

## 测试建议

1. **配置API Key**：在`.env`文件中设置`DEEPSEEK_API_KEY`
2. **创建测试工作流**：添加LLM节点，选择DeepSeek提供商
3. **测试不同模型**：分别测试`deepseek-chat`和`deepseek-coder`
4. **对比结果**：与OpenAI的结果进行对比
5. **检查错误处理**：测试API Key错误、网络错误等情况

## 后续计划

- [ ] 支持更多DeepSeek模型
- [ ] 支持流式输出（Streaming）
- [ ] 添加模型性能对比功能
- [ ] 支持自动选择最优提供商

---

**状态**: ✅ 已完成
**时间**: 2024年
