大模型OpenAi 聊天接口说明
代长亚以下以OpenAI中最常用的聊天完成接口(Chat Completions API)为例,为你提供详细的接口说明,包括请求(Request)和响应(Response)示例,以及字段说明:
1. 接口基本信息
- 接口地址:
https://api.openai.com/v1/chat/completions
- 请求方法:
POST
- 认证方式:在请求头中设置
Authorization
字段,值为Bearer YOUR_API_KEY
,YOUR_API_KEY
是你在OpenAI平台获取的API密钥。
2. 请求(Request)示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| import requests
url = "https://api.openai.com/v1/chat/completions" headers = { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" } data = { "model": "gpt-3.5-turbo", "messages": [ { "role": "system", "content": "你是一个知识渊博的助手" }, { "role": "user", "content": "请介绍一下人工智能的发展历史" } ], "temperature": 0.7, "max_tokens": 200 }
response = requests.post(url, headers=headers, json=data) print(response.json())
|
上述Python代码中,使用requests
库发送POST请求,headers
中包含认证信息和内容类型,data
字典中包含了请求的具体参数:
- model:指定使用的模型,这里是
gpt-3.5-turbo
。
- messages:是一个数组,记录对话历史。第一个元素是系统消息,设定助手的角色;第二个元素是用户消息,表明用户的提问。
- temperature:设置为0.7,生成的文本会有一定的随机性。
- max_tokens:限制生成文本的最大令牌数为200。
3. 请求字段说明
字段名 |
类型 |
是否必填 |
描述 |
model |
字符串 |
是 |
要使用的模型名称,如gpt-3.5-turbo 、gpt-4 等 |
messages |
数组 |
是 |
对话消息数组,每个元素是一个包含role (system 、user 、assistant )和content 的对象 |
temperature |
浮点数 |
否 |
控制生成文本的随机性,取值范围0 - 2,默认1 |
max_tokens |
整数 |
否 |
生成文本的最大令牌数,默认值由模型决定 |
top_p |
浮点数 |
否 |
另一种控制生成文本多样性的方式,与temperature 类似,取值范围0 - 1,默认1 |
n |
整数 |
否 |
生成的回复数量,默认1 |
stop |
字符串或数组 |
否 |
遇到指定的字符串或数组中的元素时,停止生成文本 |
presence_penalty |
浮点数 |
否 |
控制新生成内容中引入新话题的惩罚系数,取值范围 -2.0 - 2.0,默认0 |
frequency_penalty |
浮点数 |
否 |
控制新生成内容中重复内容的惩罚系数,取值范围 -2.0 - 2.0,默认0 |
4. 响应(Response)示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| { "choices": [ { "finish_reason": "stop", "index": 0, "message": { "role": "assistant", "content": "人工智能的发展历史可以追溯到20世纪中叶。1956年,达特茅斯会议被广泛认为是人工智能诞生的标志,在这次会议上,“人工智能”这一术语正式被提出。此后,人工智能经历了多个发展阶段。在早期,研究主要集中在符号推理和专家系统方面。到了20世纪80年代,专家系统得到了广泛应用,但也暴露出一些局限性。随着计算机技术的不断发展,尤其是计算能力的大幅提升和数据的大量积累,机器学习逐渐成为人工智能的核心领域。特别是在21世纪初,深度学习的兴起,使得人工智能在图像识别、语音识别、自然语言处理等领域取得了突破性进展。如今,人工智能已经广泛应用于各个行业,如医疗、金融、交通等,对社会产生了深远的影响。" } } ], "created": 1695371246, "id": "chatcmpl-7O6x24y1G7V5c1234567890abcdef", "model": "gpt-3.5-turbo-0613", "object": "chat.completion", "usage": { "completion_tokens": 186, "prompt_tokens": 30, "total_tokens": 216 } }
|
5. 响应字段说明
字段名 |
类型 |
描述 |
choices |
数组 |
包含生成的回复选项,通常只有一个元素,除非n 参数设置大于1 |
choices[].finish_reason |
字符串 |
表示生成结束的原因,常见值有stop (达到停止条件)、length (达到max_tokens 限制)等 |
choices[].index |
整数 |
回复在choices 数组中的索引,通常为0 |
choices[].message |
对象 |
包含生成的回复消息,role 为assistant ,content 是具体的回复内容 |
created |
整数 |
响应创建的时间戳(以秒为单位) |
id |
字符串 |
此次请求的唯一标识符 |
model |
字符串 |
实际使用的模型名称 |
object |
字符串 |
固定值chat.completion ,表示响应的对象类型 |
usage |
对象 |
包含使用的令牌数量信息,completion_tokens 是生成回复使用的令牌数,prompt_tokens 是输入提示使用的令牌数,total_tokens 是两者之和 |