Files
aiagent/OpenAI集成说明.md
2026-01-19 00:09:36 +08:00

201 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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年