": { "message": "Invalid URL (POST /v1/v1/chat/completions)", "type": "invalid_r...
🚨 错误信息
{
"error": {
"message": "Invalid URL (POST /v1/v1/chat/completions)",
"type": "invalid_request_error",
"code": ""
}
}
🤖 AI解决方案
代码糕手 - 专业报错分析报告
1. 错误翻译
原文:Invalid URL (POST /v1/v1/chat/completions)
译文:无效的URL (POST /v1/v1/chat/completions)
2. 原因分析
这是一个典型的API端点路径重复错误。错误发生在调用OpenAI API时,请求的URL路径中包含了重复的版本前缀/v1/v1/。
根本原因:
- URL路径结构错误,
/v1版本号被重复添加了两次 - 正确的路径应该是
/v1/chat/completions,但实际请求的是/v1/v1/chat/completions
3. 解决方案
Python示例修复:
# ❌ 错误的代码
import openai
# 错误:base_url 或 endpoint 配置重复了 /v1
openai.api_base = "https://api.openai.com/v1" # 已经包含了 /v1
# 然后调用时又添加了 /v1
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Hello"}]
)
# ✅ 修复后的代码
import openai
# 方法1:使用正确的base_url
openai.api_base = "https://api.openai.com" # 不包含 /v1
openai.api_key = "your-api-key"
# 正常调用,SDK会自动添加 /v1
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Hello"}]
)
# 方法2:如果使用自定义端点
import requests
# 正确的URL
url = "https://api.openai.com/v1/chat/completions" # 只有一个 /v1
headers = {
"Authorization": f"Bearer your-api-key",
"Content-Type": "application/json"
}
data = {
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello"}]
}
response = requests.post(url, headers=headers, json=data)
4.️ 预防措施
最佳实践建议:
BASE_URL = "https://api.openai.com"
API_VERSION = "v1"
ENDPOINTS = {
"chat": f"/{API_VERSION}/chat/completions",
"completions": f"/{API_VERSION}/completions"
}
# config.py
import os
OPENAI_API_BASE = os.getenv("OPENAI_API_BASE", "https://api.openai.com")
OPENAI_API_VERSION = "v1"
# 使用时
full_url = f"{OPENAI_API_BASE}/{OPENAI_API_VERSION}/chat/completions"
###️ 推荐工具:
curl -X POST https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "Hello"}]}'
---
总结:检查您的API客户端配置,确保URL路径中只包含一次版本前缀 /v1,避免重复拼接。