Files
WulaFallenEmpireRW/MCP/使用转发服务指南.md
2025-08-30 16:18:32 +08:00

207 lines
4.2 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兼容接口到阿里云百炼平台智能体应用转发服务使用指南
本文档介绍了如何使用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服务器