Skip to content

OpenAI兼容接口

OpenAI大部分模型调用接口都支持,参数与使用方式全部同OpenAI,文档见《OpenAI官方API文档》 ,可以直接使用,无需任何修改。

TIP

注意:平台转发基于负载均衡技术,不支持fine-tune、assistants等有状态接口。

curl请求

注意一定要替换为我们的api base和api key,差一个都是不对的。

shell
curl https://api.openai-proxy.org/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxx" \
  -d '{
    "model": "gpt-3.5-turbo",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

Openai 官方Python库

注意一定要替换为我们的api base和api key,差一个都是不对的。另外openai新版库和旧版本库也是不一样的

python
from openai import OpenAI

client = OpenAI(
    base_url='https://api.openai-proxy.org/v1',
    api_key='sk-xxxxxxxx',
)

chat_completion = client.chat.completions.create(
    messages=[
        {
            "role": "user",
            "content": "Say hi",
        }
    ],
    model="gpt-3.5-turbo",
)

WARNING

注意配置api_base时,应该加上一个/v1的后缀,而不是只有域名,要不然会报404错误。

WARNING

部分过时的文档会给出带engine字段的示例,这个字段已经被废弃了,直接调openai可以调通,因为openai做了历史包袱兼容,平台是不支持这类被废弃的接口格式的

LangChain

在环境变量中配置好本站提供的接口API地址与token即可正常使用包括gpt-3.5-turbo,text-davinci-003,text-embedding-ada-002等多个模型。

shell
os.environ["OPENAI_API_BASE"] = "https://api.openai-proxy.org/v1"
os.environ["OPENAI_API_KEY"] = "sk-xxxxxxxx"

WARNING

注意配置环境变量时,langchain的OPENAI_API_BASE应该加上一个/v1的后缀,而不是只有域名,要不然会报404错误。

资金相关接口

TIP

接口有限流,请不要高频调用

为了兼容某些前端项目的余额查询需求,也为了部分用户可以通过接口查询余额,平台按照OpenAI的接口格式返回了余额等信息

接口作用
/dashboard/billing/usage查询指定时间段的消费金额
/dashboard/billing/credit_grants查询当前余额

请求样例

查询指定时间段的消费金额:/dashboard/billing/usage

shell
curl --location --request GET ' https://api.openai-proxy.org/dashboard/billing/usage?start_date=2023-04-01&end_date=2023-06-01' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer sk-xxxx'
shell
{
    "object": "list",
    "daily_costs": null,
    "total_usage": 88.96
}

查询当前余额:/dashboard/billing/credit_grants

shell
curl --location --request GET ' https://api.openai-proxy.org/dashboard/billing/credit_grants' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer sk-xxxx'
shell
{
  "object": "credit_summary",
  "total_granted": 194.98,  //无实际意义,可能某些前端会用到,不要依赖这个字段
  "total_used": 80,  //本月消费
  "total_available": 194.98  //剩余余额
}