daicy
发布于 2025-02-16 / 78 阅读
0
0

OpenAi 聊天接口说明

以下以OpenAI中最常用的聊天完成接口(Chat Completions API)为例,为你提供详细的接口说明,包括请求(Request)和响应(Response)示例,以及字段说明:

1. 接口基本信息

  • 接口地址https://api.openai.com/v1/chat/completions
  • 请求方法POST
  • 认证方式:在请求头中设置Authorization字段,值为Bearer YOUR_API_KEYYOUR_API_KEY是你在OpenAI平台获取的API密钥。

2. 请求(Request)示例

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-turbogpt-4
messages数组对话消息数组,每个元素是一个包含rolesystemuserassistant)和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)示例

{
    "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对象包含生成的回复消息,roleassistantcontent是具体的回复内容
created整数响应创建的时间戳(以秒为单位)
id字符串此次请求的唯一标识符
model字符串实际使用的模型名称
object字符串固定值chat.completion,表示响应的对象类型
usage对象包含使用的令牌数量信息,completion_tokens是生成回复使用的令牌数,prompt_tokens是输入提示使用的令牌数,total_tokens是两者之和

评论