OpenAI 接口
1.聊天(Chat)
接口功能:为指定的聊天对话创建一个模型响应。 接口协议:HTTP 传输格式:JSON 请求方式:POST 请求地址:http://{IP地址}:{端口}/v1/chat/completions
请求数据格式:
Headers参数:
参数 | 参数类型 | 参数值 |
---|---|---|
Content-Type | string | application/json |
Authorization | string | Bearer {Your API Key} 例如:Bearer sk-hw_H5Tr3lZukGZmwcteQIYVIEzAGojzWXjJ0Fl3RBcuvJ7tYQw-1IH4LqvBeTgcZ |
Body参数:
参数 | 参数类型 | 可选 | 描述 |
---|---|---|---|
model | string | 必选 | 用于聊天完成的模型 |
prompt | string/array | 可选 | 生成完成的提示,编码为字符串、字符串数组、标记数组或标记数组数组。 |
messages | array | 必选 | 对话所包含的消息列表 |
role | string | 必选 | 指定角色 |
content | string | 必选 | 问答内容 |
temperature | integer | 可选 | 采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使输出更加集中和确定。 我们通常建议改变这个或top_p 但不是两者。 |
top_logprobs | integer | 可选 | 一个介于0到20之间的整数,指定在每个令牌位置最可能返回的令牌数量,每个令牌都有一个相关的日志概率。使用此参数时,Logprobs必须设置为true。 |
top_p | integer | 可选 | 温度抽样的另一种选择,核采样,其中模型考虑具有top_p概率质量的令牌的结果。所以0.1意味着只考虑包含前10%概率质量的标记。 |
n | integer | 可选 | 为每个输入消息生成多少个聊天完成选项。注:将根据在所有选项中生成的令牌数量收费。保持n为1以最小化成本。 |
stream | boolean | 可选 | 默认为 false 如果设置,则像在 ChatGPT 中一样会发送部分消息增量。标记将以仅数据的服务器发送事件的形式发送,这些事件在可用时,并在 data: [DONE] 消息终止流。 |
stream_options | object | 可选 | 流响应选项。只有当你设置stream: true时才需要设置这个。 |
stop | string | 可选 | 默认为 null 最多 4 个序列,API 将停止进一步生成标记。 |
stop_token_ids | array | 可选 | 用于控制文本生成的长度和结束点 |
max_tokens | integer | 可选 | 在聊天补全中生成的最大标记数。输入标记和生成标记的总长度受模型的上下文长度限制 |
presence_penalty | number | 可选 | -2.0 和 2.0 之间的数字。正值会根据到目前为止是否出现在文本中来惩罚新标记,从而增加模型谈论新主题的可能性。 |
frequency_penalty | number | 可选 | 默认为 0 -2.0 到 2.0 之间的数字。正值根据文本目前的存在频率惩罚新标记,降低模型重复相同行的可能性。 |
logprobs | boolean | 可选 | 是否返回输出令牌的日志概率。如果为true,则返回消息内容中返回的每个输出令牌的日志概率。 |
user | string | 可选 | 代表您的最终用户的唯一标识符,可以帮助 OpenAI 监控和检测滥用行为。 |
response_format | object | 可选 | 指定模型必须输出的格式的对象。 将 { "type": "json_object" } 启用 JSON 模式,这可以确保模型生成的消息是有效的 JSON。 重要提示:使用 JSON 模式时,还必须通过系统或用户消息指示模型生成 JSON。如果不这样做,模型可能会生成无休止的空白流,直到生成达到令牌限制,从而导致延迟增加和请求“卡住”的外观。另请注意,如果 finish_reason="length",则消息内容可能会被部分切断,这表示生成超过了 max_tokens 或对话超过了最大上下文长度。 显示属性 |
seed | integer | 可选 | 此功能处于测试阶段。如果指定,系统将尽最大努力确定性地进行采样,以便使用相同的种子和参数进行重复请求应返回相同的结果。不能保证确定性。 |
service_tier | string | 可选 | 指定用于处理请求的延迟层。 如果设置为“auto”,系统将使用等级积分,直到耗尽为止。 如果设置为“default”,请求将使用具有较低正常运行时间SLA的默认服务层进行处理,并且没有延迟保证。 当未设置时,默认行为为“auto”。 设置此参数后,响应体将包含所使用的service_tier。 |
tools | array | 可选 | 模型可以调用的一组工具列表。目前,只支持作为工具的函数。使用此功能来提供模型可以为之生成 JSON 输入的函数列表。 |
tool_choice | object | 可选 | 控制模型调用哪个函数(如果有的话)。none 表示模型不会调用函数,而是生成消息。auto 表示模型可以在生成消息和调用函数之间进行选择。通过 {"type": "function", "function": {"name": "my_function"}} 强制模型调用该函数。 如果没有函数存在,默认为 none。如果有函数存在,默认为 auto。 显示可能的类型 |
示例:
json
{
"service_tier": "default",
"response_format": {
"type": "json_object"
},
"tools": [],
"tool_choice": {
"type": "function",
"function": {
"name": "my_function"
}
},
"seed": 0.1,
"user": "aaa",
"temperature": 0.50,
"top_p": 0.50,
"n": 1,
"presence_penalty": 0.40,
"frequency_penalty": 0.70,
"stop": "\n",
"stop_token_ids": [
151329,
151336,
151338
],
"max_tokens": 1000,
"stream": true,
"stream_options": null,
"model": "jiesir101-baichuan2-7b-chat",
"messages": [
{
"role": "user",
"content": "hello"
}
],
"logprobs": true,
"top_logprobs": 2,
"prompt": "java"
}
结果数据格式:
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
id | string | 必需 | 聊天完成的唯一标识符 |
object | string | 必需 | 对象类型,总是 chat.completion |
created | integer | 必需 | 创建聊天完成的Unix时间戳(秒) |
model | string | 必需 | 用于聊天完成的模型 |
system_fingerprint | string | 可选 | 该指纹表示模型运行的后端配置 |
choices | array | 必需 | 聊天完成选项列表。如果n大于1,可以有多个选项 |
index | integer | 可选 | 索引下标 |
message | array | 必需 | 对话所包含的消息列表 |
role | string | 必需 | 用户角色 |
content | string | 必需 | 回答内容 |
finish_reason | string | 可选 | 模型生成的文本序列结束的标识, stop: 模型遇到了由用户指定的停止序列,比如一个特殊的标记或者句子结束的标点符号。 length: 生成的文本达到了用户指定的最大长度限制。 content_filter: 生成的文本包含了一些被 OpenAI 内容过滤器禁止的内容,因此生成被提前终止。 null: 这通常意味着生成文本没有正常结束,可能是由于某种错误或者异常情况。 |
usage | object | 必需 | 完成请求的使用统计信息 |
completion_tokens | integer | 必需 | 生成的完成中的标记数 |
prompt_tokens | integer | 必需 | 提示中的标记数 |
total_tokens | integer | 必需 | 请求中使用的标记总数(提示 + 完成) |
示例:
json
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-3.5-turbo-0613",
"system_fingerprint": "fp_44709d6fcb",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "\n\nHello there, how may I assist you today?",
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
2.自动补全(completions)
接口功能:给定一个提示,该模型将返回一个或多个预测的完成,返回每个位置的替代标记的概率。 接口协议:HTTP 传输格式:JSON 请求方式:POST 请求地址:http://{IP地址}:{端口}/v1/completions
请求数据格式:
Headers参数:
参数 | 参数类型 | 参数值 |
---|---|---|
Content-Type | string | application/json |
Authorization | string | Bearer {Your API Key} 例如:Bearer sk-hw_H5Tr3lZukGZmwcteQIYVIEzAGojzWXjJ0Fl3RBcuvJ7tYQw-1IH4LqvBeTgcZ |
Body参数:
参数 | 参数类型 | 可选 | 描述 |
---|---|---|---|
model | string | 必选 | 用于聊天完成的模型 |
prompt | string/array | 可选 | 生成完成的提示,编码为字符串、字符串数组、标记数组或标记数组数组。 |
messages | array | 必选 | 对话所包含的消息列表 |
role | string | 必选 | 指定角色 |
content | string | 必选 | 问答内容 |
temperature | integer | 可选 | 采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使输出更加集中和确定。 我们通常建议改变这个或top_p 但不是两者。 |
top_logprobs | integer | 可选 | 一个介于0到20之间的整数,指定在每个令牌位置最可能返回的令牌数量,每个令牌都有一个相关的日志概率。使用此参数时,Logprobs必须设置为true。 |
top_p | integer | 可选 | 温度抽样的另一种选择,核采样,其中模型考虑具有top_p概率质量的令牌的结果。所以0.1意味着只考虑包含前10%概率质量的标记。 |
n | integer | 可选 | 为每个输入消息生成多少个聊天完成选项。注:将根据在所有选项中生成的令牌数量收费。保持n为1以最小化成本。 |
stream | boolean | 可选 | 默认为 false 如果设置,则像在 ChatGPT 中一样会发送部分消息增量。标记将以仅数据的服务器发送事件的形式发送,这些事件在可用时,并在 data: [DONE] 消息终止流。 |
stream_options | object | 可选 | 流响应选项。只有当你设置stream: true时才需要设置这个。 |
stop | string | 可选 | 默认为 null 最多 4 个序列,API 将停止进一步生成标记。 |
stop_token_ids | array | 可选 | 用于控制文本生成的长度和结束点 |
max_tokens | integer | 可选 | 在聊天补全中生成的最大标记数。输入标记和生成标记的总长度受模型的上下文长度限制 |
presence_penalty | number | 可选 | -2.0 和 2.0 之间的数字。正值会根据到目前为止是否出现在文本中来惩罚新标记,从而增加模型谈论新主题的可能性。 |
frequency_penalty | number | 可选 | 默认为 0 -2.0 到 2.0 之间的数字。正值根据文本目前的存在频率惩罚新标记,降低模型重复相同行的可能性。 |
logprobs | boolean | 可选 | 是否返回输出令牌的日志概率。如果为true,则返回消息内容中返回的每个输出令牌的日志概率。 |
user | string | 可选 | 代表您的最终用户的唯一标识符,可以帮助 OpenAI 监控和检测滥用行为。 |
response_format | object | 可选 | 指定模型必须输出的格式的对象。 将 { "type": "json_object" } 启用 JSON 模式,这可以确保模型生成的消息是有效的 JSON。 重要提示:使用 JSON 模式时,还必须通过系统或用户消息指示模型生成 JSON。如果不这样做,模型可能会生成无休止的空白流,直到生成达到令牌限制,从而导致延迟增加和请求“卡住”的外观。另请注意,如果 finish_reason="length",则消息内容可能会被部分切断,这表示生成超过了 max_tokens 或对话超过了最大上下文长度。 显示属性 |
seed | integer | 可选 | 此功能处于测试阶段。如果指定,系统将尽最大努力确定性地进行采样,以便使用相同的种子和参数进行重复请求应返回相同的结果。不能保证确定性。 |
service_tier | string | 可选 | 指定用于处理请求的延迟层。 如果设置为“auto”,系统将使用等级积分,直到耗尽为止。 如果设置为“default”,请求将使用具有较低正常运行时间SLA的默认服务层进行处理,并且没有延迟保证。 当未设置时,默认行为为“auto”。 设置此参数后,响应体将包含所使用的service_tier。 |
tools | array | 可选 | 模型可以调用的一组工具列表。目前,只支持作为工具的函数。使用此功能来提供模型可以为之生成 JSON 输入的函数列表。 |
tool_choice | object | 可选 | 控制模型调用哪个函数(如果有的话)。none 表示模型不会调用函数,而是生成消息。auto 表示模型可以在生成消息和调用函数之间进行选择。通过 {"type": "function", "function": {"name": "my_function"}} 强制模型调用该函数。 如果没有函数存在,默认为 none。如果有函数存在,默认为 auto。 显示可能的类型 |
示例:
json
{
"service_tier": "default",
"response_format": {
"type": "json_object"
},
"tools": [],
"tool_choice": {
"type": "function",
"function": {
"name": "my_function"
}
},
"seed": 0.1,
"user": "aaa",
"temperature": 0.50,
"top_p": 0.50,
"n": 1,
"presence_penalty": 0.40,
"frequency_penalty": 0.70,
"stop": "\n",
"stop_token_ids": [
151329,
151336,
151338
],
"max_tokens": 1000,
"stream": true,
"stream_options": null,
"model": "jiesir101-baichuan2-7b-chat",
"prompt": "java",
"messages": [
{
"role": "user",
"content": "hello"
}
],
"logprobs": true,
"top_logprobs": 2
}
结果数据格式:
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
id | string | 必需 | 聊天完成的唯一标识符 |
object | string | 必需 | 对象类型,总是 chat.completion |
created | integer | 必需 | 创建聊天完成的Unix时间戳(秒) |
model | string | 必需 | 用于聊天完成的模型 |
choices | array | 必需 | 聊天完成选项列表。如果n大于1,可以有多个选项 |
index | integer | 可选 | 索引下标 |
message | array | 必需 | 对话所包含的消息列表 |
role | string | 必需 | 用户角色 |
content | string | 必需 | 回答内容 |
finish_reason | string | 可选 | 模型生成的文本序列结束的标识, stop: 模型遇到了由用户指定的停止序列,比如一个特殊的标记或者句子结束的标点符号。 length: 生成的文本达到了用户指定的最大长度限制。 content_filter: 生成的文本包含了一些被 OpenAI 内容过滤器禁止的内容,因此生成被提前终止。 null: 这通常意味着生成文本没有正常结束,可能是由于某种错误或者异常情况。 |
usage | object | 必需 | 完成请求的使用统计信息 |
completion_tokens | integer | 必需 | 生成的完成中的标记数 |
prompt_tokens | integer | 必需 | 提示中的标记数 |
total_tokens | integer | 必需 | 请求中使用的标记总数(提示 + 完成) |
示例:
json
{
"id": "cmpl-f23ce5464f974e7ab4aace63a35541c3",
"object": "text_completion",
"created": 1502861,
"model": "MaasTN-ChatGLM4-9B",
"choices": [
{
"index": 0,
"text": "\nCertainly! Could you provide some context or a specific problem statement for the Java",
"logprobs": null,
"finish_reason": "length"
}
],
"usage": {
"prompt_tokens": 3,
"total_tokens": 19,
"completion_tokens": 16
}
}