第一次提交

This commit is contained in:
rjb
2026-01-19 00:09:36 +08:00
parent de4b5059e9
commit 6674060f2f
191 changed files with 40940 additions and 0 deletions

200
OpenAI集成说明.md Normal file
View File

@@ -0,0 +1,200 @@
# OpenAI集成说明
## ✅ 已完成
已成功集成OpenAI APILLM节点现在可以真实调用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年