OpenAI 提供了其官方 API,允许用户通过编程的方式访问其强大的 AI 模型,如 GPT-3。然而,OpenAI 本身并不直接提供一个名为 openai.custom
的 API 接口用于生成自定义 API 文档。但你可以通过结合 OpenAI 的官方 API 和一些其他工具或框架来创建你自己的 API 接口,并自动生成相应的 API 文档。
以下是一个大致的步骤指南,帮助你创建自定义 API 接口并自动生成文档:
1. 创建自定义 API 接口
你可以使用任何你喜欢的后端框架来创建你的 API 接口。这个接口将作为中间件,接收来自客户端的请求,调用 OpenAI 的 API,然后返回处理后的结果给客户端。
2. 调用 OpenAI API
在你的自定义 API 接口中,你需要使用 OpenAI 的官方 SDK 或直接通过 HTTP 请求来调用 OpenAI 的 API。你可以参考 OpenAI 的官方文档来了解如何调用其 API。
3. 自动生成 API 文档
有多种工具和框架可以帮助你自动生成 API 文档,例如:
- Swagger / OpenAPI:这是一个用于描述和文档化 RESTful API 的规范。你可以使用 Swagger UI 或其他支持 OpenAPI 的工具来自动生成和展示你的 API 文档。
- Docstring:对于 Python 项目,你可以使用 docstrings(文档字符串)来描述你的函数和类,并使用工具如 Sphinx 来自动生成文档。
- 其他工具:还有许多其他工具可以帮助你自动生成 API 文档,如 FastAPI 的自动文档功能、Django REST framework 的文档生成等。
openai.custom
公共参数
名称 | 类型 | 必须 | 描述 |
---|---|---|---|
key | String | 是 | 调用key(必须以GET方式拼接在URL中) |
secret | String | 是 | 调用密钥 |
api_name | String | 是 | API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等] |
cache | String | 否 | [yes,no]默认yes,将调用缓存的数据,速度比较快 |
result_type | String | 否 | [json,jsonu,xml,serialize,var_export]返回数据格式,默认为json,jsonu输出的内容中文可以直接阅读 |
lang | String | 否 | [cn,en,ru]翻译语言,默认cn简体中文 |
version | String | 否 | API版本 |
请求参数
请求参数:method=&_o_args=
我司的openai专用API域名:https://api-ai.onebound.cn/
参数说明: 文本模式参数:&_o_args={"prompt": "中国队什么时候进世界杯","max_tokens":200} prompt 文本,max_token 词汇最大量
图片模式参数:&_o_args={"prompt":"地球","n":10} prompt 图片描述文本,n 返回图片数
api:openAI开放平台的接口名(如:v1/completions)
其它参数:参考官方平台接口文档,与官方的参数一致
MJ图片生成参数:method=images/submit&_o_args={"prompt":"向日葵"}(生成图片id), method=images/get&_o_args={"imgid":"1987378144113570"}(图片id生成图片)
名称 | 类型 | 必须 | 描述 |
---|---|---|---|
method | String | 接口名,如: v1/models(模型), v1/completions( AI问答 ), v1/chat/completions(对话), v1/edits(编辑文本,优化文本信息), v1/images/generations( 文本生图 ), v1/images/edits(图片编辑), v1/images/variations(图片修改), v1/embeddings(学习模型), v1/audio/transcriptions(声音转换、翻译), v1/files(文件微调、修改), images/submit(文本生成图片id), images/get(图片id生成图片), …………………… | |
_o_args | String | json数组格式,如{"prompt": "中国队什么时候进世界杯","max_tokens":200} | |
[其他参数] | String | 其它参数:参考OpenAI开放平台接口文档,与官方的参数一致 https://platform.openai.com/ |
响应参数
Version: Date:
名称 | 类型 | 必须 | 示例值 | 描述 |
---|---|---|---|---|
response | Mix | 0 | [] | 响应内容,不同的接口返回内容不一样,具体参考 https://platform.openai.com/ |
响应示例
{
"response": {
"id": "cmpl-6qY0bIoPXYs7nCMME3g9buaZcxbf6",
"object": "text_completion",
"created": 1677981805,
"model": "text-davinci-003",
"choices": [
{
"text": "\n\n按中国富豪榜排名,中国最有钱的人是马云。",
"index": 0,
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 16,
"completion_tokens": 43,
"total_tokens": 59
}
},
"error": "",
"reason": "",
"error_code": "0000",
"request_id": "1.6403f86cd67f6",
"last_id": "1593583206"
}
异常示例
{
"response": {
"error": {
"message": "Rate limit reached for default-text-davinci-003 in organization org-s1mHAqazDVEDzVLaYDlHtn4z on tokens per min. Limit: 150000 / min. Current: 2000000 / min. Contact support@openai.com if you continue to have issues. Please add a payment method to your account to increase your rate limit. Visit https://platform.openai.com/account/billing to add a payment method.",
"type": "tokens",
"param": null,
"code": null
}
},
"error_code": "2000",
"error": "",
"reason": "",
"request_id": "1.6403fb3e09647",
"last_id": "1593602602"
}
相关资料
ChatGPT、Bard、LLaMa、文心一言、MOSS等人工智能应用聚合平台
错误码解释
状态代码(error_code) | 状态信息 | 详细描述 | 是否收费 |
---|---|---|---|
0000 | success | 接口调用成功并返回相关数据 | 是 |
2000 | Search success but no result | 接口访问成功,但是搜索没有结果 | 是 |
4000 | Server internal error | 服务器内部错误 | 否 |
4001 | Network error | 网络错误 | 否 |
4002 | Target server error | 目标服务器错误 | 否 |
4003 | Param error | 用户输入参数错误 | 忽略 |
4004 | Account not found | 用户帐号不存在 | 忽略 |
4005 | Invalid authentication credentials | 授权失败 | 忽略 |
4006 | API stopped | 您的当前API已停用 | 忽略 |
4007 | Account stopped | 您的账户已停用 | 忽略 |
4008 | API rate limit exceeded | 并发已达上限 | 忽略 |
4009 | API maintenance | API维护中 | 忽略 |
4010 | API not found with these values | API不存在 | 忽略 |
4012 | Please add api first | 请先添加api | 忽略 |
4013 | Number of calls exceeded | 调用次数超限 | 忽略 |
4014 | Missing url param | 参数缺失 | 忽略 |
4015 | Wrong pageToken | 参数pageToken有误 | 忽略 |
4016 | Insufficient balance | 余额不足 | 忽略 |
4017 | timeout error | 请求超时 | 否 |
5000 | unknown error | 未知错误 | 否 |