chatgpt新版gpt-3.5-turbo模型API教程
形式:输入一个问题,模型会生成一个结果,一问一答形式
功能:创建一个聊天接口地址:POST https://api.openai.com/v1/chat/completions (Beta)
请求参数(Request body):
model: string 必须
使用的模型,只有 gpt-3.5-turbo 和 gpt-3.5-turbo-0301 两个取值
messages:array 必须
需要传入的内容,里面包括role,centent两个字段,举例:
PowerShell
"messages": [{"role": "user", "content": "Hello!"}]
temperature:number 可选 默认 1
数字0~2之间
数字越大,答案越随机,开放,比如1.8
数字越小,答案越固定,聚焦,比如0.2
建议不要同时和top_p修改
top_p:可选 默认 1
和temperature差不多,数字越大,答案越随机,开放
数字越小,答案越固定
建议不要同时和top_p修改
n:number 可选 默认 1
产生的结果个数
stream:boolean 可选 默认 false
设置为true,则结果为数据流,和官网chatgpt一样,产生一个字符返回一个字符,服务端需要支持server-sent events
stop:string or array 可选 默认 null
最多4个序列,API将停止生成更多tokens
max_tokens:integer 可选 默认值 inf
结果最大能产生的tokens数,默认可以返回 4096-输入tokens
presence_penalty number 可选 默认 0
数字介于-2.0和2.0之间。正值根据到目前为止是否出现在文本中来惩罚新标记,从而增加模型谈论新主题的可能性。
frequency_penaley:number 可选 默认 0
数字介于-2.0和2.0之间。正值根据文本中的现有频率惩罚新标记,从而降低模型逐字重复同一行的可能性。
logit_bias:map 可选 默认 null
修改完成时出现指定标记的可能性。
接受一个json对象,该对象将token(由令牌ID指定)映射到-100到100之间的相关偏差值。在数学上,在采样之前,将偏差添加到模型生成的逻辑中。每个模型的确切效果会有所不同,但介于-1和1之间的值应该会降低或增加选择的可能性;像-100或100这样的值应该会导致相关token的禁止或独占选择。
user:string 可选
唯一终端用户身份,可以帮助openai监测滥用
调用官方API接口需要获取APIkey,获取地址:chat.xingtupai.com
请求示例:
curl:
curl https://api.openai.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{ "model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "Hello!"}]}'
python:
部署源码:https://github.com/openai/openai-python
调用示例:
Python
import osimport openaiopenai.api_key = os.getenv("OPENAI_API_KEY")completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "Hello!"}
])print(completion.choices[0].message)
node.js:
部署源码:https://github.com/openai/openai-node
调用示例:
JavaScript
import osimport openaiopenai.api_key = os.getenv("OPENAI_API_KEY")completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "Hello!"}
])print(completion.choices[0].message)
参数示例:
{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello!"}]}
返回结果:
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"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
}}
错误结果:
{
"error": {
"message": "'doctor' is not one of ['system', 'assistant', 'user'] - 'messages.0.role'",
"type": "invalid_request_error",
"param": null,
"code": null
}}