# 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年