# OpenAI兼容接口到阿里云百炼平台智能体应用转发服务使用指南 本文档介绍了如何使用Python编写的转发服务,将OpenAI兼容的API请求转换为阿里云百炼平台智能体应用的请求。 ## 工作原理 该转发服务作为一个代理服务器运行,接收OpenAI兼容的API请求,并将其转换为阿里云百炼平台智能体应用的请求格式,然后将响应转换回OpenAI格式返回给客户端。 ``` 客户端 -> OpenAI兼容请求 -> 转发服务 -> 阿里云百炼平台 -> 转发服务 -> OpenAI兼容响应 -> 客户端 ``` ## 配置要求 ### 环境变量设置 需要设置以下环境变量: 1. `DASHSCOPE_API_KEY` - 阿里云百炼平台的API Key 2. `DASHSCOPE_APP_ID` - 智能体应用的APP ID 3. `PROXY_PORT` (可选) - 转发服务监听的端口,默认为8000 您可以在项目目录下的 [.env](file://c:\Steam\steamapps\common\RimWorld\Mods\3516260226\MCP\.env) 文件中配置这些变量: ```env DASHSCOPE_API_KEY="sk-xxxxxxxx" DASHSCOPE_APP_ID="app-xxxxxxxx" PROXY_PORT=8000 ``` 在Windows系统中设置环境变量的示例: ```cmd set DASHSCOPE_API_KEY=your_api_key_here set DASHSCOPE_APP_ID=your_app_id_here set PROXY_PORT=8000 ``` 在Linux/macOS系统中设置环境变量的示例: ```bash export DASHSCOPE_API_KEY=your_api_key_here export DASHSCOPE_APP_ID=your_app_id_here export PROXY_PORT=8000 ``` ## 启动服务 运行转发服务: ```bash python openai_to_dashscope_proxy.py ``` 服务启动后,将显示以下信息: ``` OpenAI到阿里云百炼平台转发服务启动,监听端口 8000 Base URL: http://localhost:8000/v1 模型名称: dashscope-app ``` ## 在Kilo Code中配置 在Kilo Code中按以下步骤配置: 1. 打开Kilo Code设置面板 2. 选择"API Provider"为"OpenAI Compatible" 3. 设置Base URL为: `http://localhost:8000/v1` (如果使用默认端口) 4. API Key可以任意填写(服务不会验证) 5. 模型名称填写: `dashscope-app` ## 支持的功能 ### 1. 基本文本对话 发送聊天完成请求: ```json { "model": "dashscope-app", "messages": [ { "role": "user", "content": "你好,你是谁?" } ] } ``` ### 2. 流式输出 启用流式输出: ```json { "model": "dashscope-app", "messages": [ { "role": "user", "content": "讲一个有趣的故事" } ], "stream": true } ``` ## 技术细节 ### 请求转换 OpenAI兼容请求格式: ```json { "model": "dashscope-app", "messages": [ {"role": "user", "content": "提示词"} ] } ``` 转换为阿里云百炼平台请求格式: ```json { "input": { "prompt": "提示词" }, "parameters": {}, "debug": {} } ``` ### 响应转换 阿里云百炼平台响应格式: ```json { "output": { "text": "响应内容", "finish_reason": "stop" } } ``` 转换为OpenAI兼容响应格式: ```json { "id": "chatcmpl-request_id", "object": "chat.completion", "created": 1234567890, "model": "dashscope-app", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "响应内容" }, "finish_reason": "stop" } ] } ``` ## 故障排除 ### 1. 环境变量未设置 错误信息: ``` ValueError: 请设置环境变量 DASHSCOPE_API_KEY ``` 解决方案: 确保已正确设置环境变量 `DASHSCOPE_API_KEY` 和 `DASHSCOPE_APP_ID`。 ### 2. 网络连接问题 错误信息: ``` requests.exceptions.ConnectionError ``` 解决方案: 检查网络连接,确保可以访问阿里云百炼平台。 ### 3. API Key或APP ID错误 错误信息: ``` 401 Unauthorized ``` 解决方案: 检查API Key和APP ID是否正确。 ### 4. 端口被占用 错误信息: ``` OSError: [Errno 98] Address already in use ``` 解决方案: 更改端口号,通过设置 `PROXY_PORT` 环境变量或修改代码中的默认端口。 ## 最佳实践 1. **安全性**:在生产环境中,建议将转发服务部署在安全的网络环境中 2. **监控**:启用日志记录以便监控服务运行状态 3. **错误处理**:确保正确处理各种错误情况 4. **性能**:对于高并发场景,考虑使用异步框架如FastAPI替代内置的HTTP服务器