4.2 KiB
4.2 KiB
OpenAI兼容接口到阿里云百炼平台智能体应用转发服务使用指南
本文档介绍了如何使用Python编写的转发服务,将OpenAI兼容的API请求转换为阿里云百炼平台智能体应用的请求。
工作原理
该转发服务作为一个代理服务器运行,接收OpenAI兼容的API请求,并将其转换为阿里云百炼平台智能体应用的请求格式,然后将响应转换回OpenAI格式返回给客户端。
客户端 -> OpenAI兼容请求 -> 转发服务 -> 阿里云百炼平台 -> 转发服务 -> OpenAI兼容响应 -> 客户端
配置要求
环境变量设置
需要设置以下环境变量:
DASHSCOPE_API_KEY- 阿里云百炼平台的API KeyDASHSCOPE_APP_ID- 智能体应用的APP IDPROXY_PORT(可选) - 转发服务监听的端口,默认为8000
您可以在项目目录下的 .env 文件中配置这些变量:
DASHSCOPE_API_KEY="sk-xxxxxxxx"
DASHSCOPE_APP_ID="app-xxxxxxxx"
PROXY_PORT=8000
在Windows系统中设置环境变量的示例:
set DASHSCOPE_API_KEY=your_api_key_here
set DASHSCOPE_APP_ID=your_app_id_here
set PROXY_PORT=8000
在Linux/macOS系统中设置环境变量的示例:
export DASHSCOPE_API_KEY=your_api_key_here
export DASHSCOPE_APP_ID=your_app_id_here
export PROXY_PORT=8000
启动服务
运行转发服务:
python openai_to_dashscope_proxy.py
服务启动后,将显示以下信息:
OpenAI到阿里云百炼平台转发服务启动,监听端口 8000
Base URL: http://localhost:8000/v1
模型名称: dashscope-app
在Kilo Code中配置
在Kilo Code中按以下步骤配置:
- 打开Kilo Code设置面板
- 选择"API Provider"为"OpenAI Compatible"
- 设置Base URL为:
http://localhost:8000/v1(如果使用默认端口) - API Key可以任意填写(服务不会验证)
- 模型名称填写:
dashscope-app
支持的功能
1. 基本文本对话
发送聊天完成请求:
{
"model": "dashscope-app",
"messages": [
{
"role": "user",
"content": "你好,你是谁?"
}
]
}
2. 流式输出
启用流式输出:
{
"model": "dashscope-app",
"messages": [
{
"role": "user",
"content": "讲一个有趣的故事"
}
],
"stream": true
}
技术细节
请求转换
OpenAI兼容请求格式:
{
"model": "dashscope-app",
"messages": [
{"role": "user", "content": "提示词"}
]
}
转换为阿里云百炼平台请求格式:
{
"input": {
"prompt": "提示词"
},
"parameters": {},
"debug": {}
}
响应转换
阿里云百炼平台响应格式:
{
"output": {
"text": "响应内容",
"finish_reason": "stop"
}
}
转换为OpenAI兼容响应格式:
{
"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 环境变量或修改代码中的默认端口。
最佳实践
- 安全性:在生产环境中,建议将转发服务部署在安全的网络环境中
- 监控:启用日志记录以便监控服务运行状态
- 错误处理:确保正确处理各种错误情况
- 性能:对于高并发场景,考虑使用异步框架如FastAPI替代内置的HTTP服务器