第一次提交
This commit is contained in:
200
OpenAI集成说明.md
Normal file
200
OpenAI集成说明.md
Normal file
@@ -0,0 +1,200 @@
|
||||
# OpenAI集成说明
|
||||
|
||||
## ✅ 已完成
|
||||
|
||||
已成功集成OpenAI API,LLM节点现在可以真实调用OpenAI模型。
|
||||
|
||||
## 功能特性
|
||||
|
||||
### 1. LLM服务 (`backend/app/services/llm_service.py`)
|
||||
|
||||
- 支持OpenAI API调用
|
||||
- 支持自定义模型、温度、最大token数等参数
|
||||
- 异步调用,提高性能
|
||||
- 错误处理和异常捕获
|
||||
|
||||
### 2. 工作流引擎集成
|
||||
|
||||
- LLM节点现在会真实调用OpenAI API
|
||||
- 支持prompt模板和变量替换
|
||||
- 自动处理输入数据格式化
|
||||
|
||||
## 配置方法
|
||||
|
||||
### 1. 设置OpenAI API Key
|
||||
|
||||
在 `backend/.env` 文件中添加:
|
||||
|
||||
```env
|
||||
OPENAI_API_KEY=your-openai-api-key-here
|
||||
OPENAI_BASE_URL=https://api.openai.com/v1
|
||||
```
|
||||
|
||||
或者使用环境变量:
|
||||
|
||||
```bash
|
||||
export OPENAI_API_KEY=your-openai-api-key-here
|
||||
export OPENAI_BASE_URL=https://api.openai.com/v1
|
||||
```
|
||||
|
||||
### 2. 重启后端服务
|
||||
|
||||
```bash
|
||||
docker-compose -f docker-compose.dev.yml restart backend
|
||||
```
|
||||
|
||||
## 使用方法
|
||||
|
||||
### 1. 在工作流中添加LLM节点
|
||||
|
||||
1. 打开工作流设计器
|
||||
2. 从节点工具箱拖拽"LLM"节点到画布
|
||||
3. 配置节点参数(见下方)
|
||||
|
||||
### 2. 配置LLM节点
|
||||
|
||||
LLM节点支持以下配置(在节点配置面板中设置):
|
||||
|
||||
```json
|
||||
{
|
||||
"prompt": "请处理以下输入:\n{input}",
|
||||
"provider": "openai",
|
||||
"model": "gpt-3.5-turbo",
|
||||
"temperature": 0.7,
|
||||
"max_tokens": 1000
|
||||
}
|
||||
```
|
||||
|
||||
**参数说明**:
|
||||
- `prompt`: 提示词模板,支持变量替换(如 `{input}`, `{key}` 等)
|
||||
- `provider`: LLM提供商,目前支持 `openai`
|
||||
- `model`: 模型名称,如 `gpt-3.5-turbo`, `gpt-4`, `gpt-4-turbo-preview` 等
|
||||
- `temperature`: 温度参数(0-2),控制输出的随机性,默认0.7
|
||||
- `max_tokens`: 最大生成token数,可选
|
||||
|
||||
### 3. Prompt模板示例
|
||||
|
||||
#### 基础模板
|
||||
```
|
||||
请处理以下输入数据:{input}
|
||||
```
|
||||
|
||||
#### 带变量替换
|
||||
```
|
||||
用户输入:{user_input}
|
||||
请根据以上输入生成回复。
|
||||
```
|
||||
|
||||
#### 复杂模板
|
||||
```
|
||||
输入数据:
|
||||
{input}
|
||||
|
||||
请分析以上数据并给出:
|
||||
1. 主要观点
|
||||
2. 关键信息
|
||||
3. 建议
|
||||
```
|
||||
|
||||
### 4. 执行工作流
|
||||
|
||||
1. 保存工作流
|
||||
2. 点击"运行"按钮
|
||||
3. 输入初始数据(JSON格式)
|
||||
4. 查看执行结果
|
||||
|
||||
## 输入数据处理
|
||||
|
||||
LLM节点会自动处理输入数据:
|
||||
|
||||
1. **如果输入是字典**:
|
||||
- 支持在prompt中使用 `{key}` 替换变量
|
||||
- 如果prompt中没有变量,会将整个输入作为JSON附加到prompt
|
||||
|
||||
2. **如果输入是字符串或其他类型**:
|
||||
- 直接替换 `{input}` 占位符
|
||||
- 如果没有占位符,附加到prompt末尾
|
||||
|
||||
## 错误处理
|
||||
|
||||
如果OpenAI API调用失败,节点会返回错误信息:
|
||||
|
||||
```json
|
||||
{
|
||||
"output": null,
|
||||
"status": "failed",
|
||||
"error": "LLM调用失败: 具体错误信息"
|
||||
}
|
||||
```
|
||||
|
||||
常见错误:
|
||||
- **API Key未配置**:`OpenAI API Key未配置,请在环境变量中设置OPENAI_API_KEY`
|
||||
- **API调用失败**:检查网络连接、API Key有效性、余额等
|
||||
- **模型不存在**:检查模型名称是否正确
|
||||
|
||||
## 支持的模型
|
||||
|
||||
目前支持所有OpenAI Chat模型:
|
||||
- `gpt-3.5-turbo`
|
||||
- `gpt-4`
|
||||
- `gpt-4-turbo-preview`
|
||||
- `gpt-4-32k`
|
||||
- 其他OpenAI兼容的模型(如果使用自定义base_url)
|
||||
|
||||
## 示例工作流
|
||||
|
||||
### 示例1:简单文本处理
|
||||
|
||||
```
|
||||
开始 → LLM节点 → 结束
|
||||
```
|
||||
|
||||
LLM节点配置:
|
||||
```json
|
||||
{
|
||||
"prompt": "请将以下文本翻译成英文:{input}",
|
||||
"model": "gpt-3.5-turbo"
|
||||
}
|
||||
```
|
||||
|
||||
输入:
|
||||
```json
|
||||
{
|
||||
"input": "你好,世界"
|
||||
}
|
||||
```
|
||||
|
||||
### 示例2:数据分析
|
||||
|
||||
```
|
||||
开始 → LLM节点 → 条件节点 → 输出
|
||||
```
|
||||
|
||||
LLM节点配置:
|
||||
```json
|
||||
{
|
||||
"prompt": "分析以下数据:\n{input}\n\n请判断数据是否正常(返回true或false)",
|
||||
"model": "gpt-4",
|
||||
"temperature": 0.3
|
||||
}
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **API费用**:每次调用都会产生费用,请注意控制调用频率
|
||||
2. **API限制**:注意OpenAI的速率限制和配额
|
||||
3. **网络连接**:确保服务器可以访问OpenAI API
|
||||
4. **错误处理**:建议在工作流中添加错误处理节点
|
||||
|
||||
## 后续计划
|
||||
|
||||
- [ ] 支持更多LLM提供商(Anthropic Claude、本地模型等)
|
||||
- [ ] 支持流式输出(Streaming)
|
||||
- [ ] 支持函数调用(Function Calling)
|
||||
- [ ] 支持多轮对话上下文
|
||||
- [ ] 添加模型选择UI组件
|
||||
|
||||
---
|
||||
|
||||
**状态**: ✅ 已完成
|
||||
**时间**: 2024年
|
||||
Reference in New Issue
Block a user