OpenAI 是一个人工智能研究实验室和公司,而 ChatGPT 是 OpenAI 开发的一种基于语言模型的对话系统。ChatGPT 是 OpenAI 在自然语言处理领域的重要成果之一,它使用了大规模的预训练数据和强化学习方法来生成流畅、有逻辑的对话回复。
本文内容主要分为四个部分:
一、chatgpt接口参数说明
二、普通request调用chatgpt的方法
三、利用openai工具包正常调用
四、利用openai工具包流式调用
前提条件:
1、需要开启魔法上网
2、需要有openai的key
一、chatgpt接口参数说明
OpenAI API 接口地址
-
URL:https://api.openai/v1/chat/completions
-
URL:https://api.openai/v1
-
Method:
post
Headers parameter
参数 | 类型 |
|
|
|
|
请求参数
参数 | 是否必须 | 类型 | 备注 |
| 是 | List | 迄今为止对话的信息列表 |
| 是 | String | 要使用的模型的 ID: gpt-4, gpt-4-0613, gpt-4-32k, gpt-4-32k-0613, gpt-3.5-turbo, gpt-3.5-turbo-0613, gpt-3.5-turbo-16k, gpt-3.5-turbo-16k-0613 |
| 否 | float | 介于 -2.0 和 2.0 之间的数值。正值会根据新标记在文本中的现有频率对其进行惩罚,从而降低模型逐字重复同一行的可能性 |
| 否 | Int | 要生成的最大令牌数 |
| 否 | Boolean | 是否使用流式响应,使用流式响应把这个字段加上,默认为False |
| 否 | Float | 默认值为1。 采样温度,介于 0 和 2 之间。0.8 等较高值会使输出更加随机,而 0.2 等较低值则会使输出更加集中和确定。 通常建议改变该值或 |
| 否 | Float | 默认值为1。 模型从概率递减排序且概率和为 阈值设置的越大,如0.9,可选择的单词就越多 |
Message的属性说明
参数名称 | 是否必须 | 类型 | 备注 |
| 是 | String | 信息内容。所有信息都必须包含内容,对于带有函数调用的助理信息,内容可能为空。 |
| 是 | String | 该信息作者的角色,从以下三个中选择:
|
二、普通request调用chatgpt的方法
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :chatgpt
@File :openai_function.py
@Author :aixiaoxin
@Date :2023/10/11 18:28
"""
import requests
def request_chatgpt_function():
url="https://api.openai/v1/chat/completions" #可以替换为任何代理的接口
OPENAI_API_KEY="sk-LECc8U0BcVAQWx1VE23aB8B5595f4963929d799b712382E3" # openai官网获取key
header={"Content-Type": "application/json","Authorization": "Bearer " +OPENAI_API_KEY}
data={
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"temperature":0,
"stream":False
}
response=requests.post(url=url,headers=header,json=data).json()
print(response)
return response
if __name__ == "__main__":
openai_chatgpt_function() # 利用openai正常调用
结果:
三、利用openai工具包正常调用
等待所有答案生成结束后,再返回,比较耗时!
1、安装openai工具包
python版本>=3.7 即可。
安装命令:
pip install openai
2、代码如下
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :chatgpt
@File :openai_function.py
@Author :aixiaoxin
@Date
import time
import openai
import requests
def openai_chatgpt_function():
question="西游记是谁写的?"
print("问题:{}".format(question))
url="https://api.openai/v1" #可以替换为任何代理的接口
OPENAI_API_KEY="sk-LECc8U0BcVAQWx1VE23aB8B5595f4963929d799b712382E3" # openai官网获取key
openai.api_key = OPENAI_API_KEY
openai.api_base = openai_url
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",messages=[{"role": "user", "content": question}],stream=False)
print("完整的响应结果:{}".format(response))
answer=response.choices[0].message.content
print("答案:{}".format(answer))
if __name__ == "__main__":
request_chatgpt_function() # 通用方法:利用requests 正常请求调用
运行结果:
四、利用openai工具包流式调用
流式地一个字一个字的吐出来,适合问答场景的实时展示答案!
代码如下:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :chatgpt
@File :openai_function.py
@Author :aixiaoxin
@Date :2023/10/11 18:28
"""
import openai
import requests
def openai_chatgpt_function_stream():
question="西游记是谁写的?"
print("问题:{}".format(question))
url="https://api.openai/v1" #可以替换为任何代理的接口
OPENAI_API_KEY="sk-LECc8U0BcVAQWx1VE23aB8B5595f4963929d799b712382E3" # openai官网获取key
openai.api_key = OPENAI_API_KEY
openai.api_base = openai_url
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",messages=[{"role": "user", "content": question}],stream=True)
for single_result in response:
# print("single_result:{}".format(single_result))
finish_reason=single_result.choices[0].finish_reason
if finish_reason is None:
single_char = single_result.choices[0].delta.content
print("single_char:{}".format(single_char))
if __name__ == "__main__":
openai_chatgpt_function_stream() # 利用openai工具包 流式请求调用
流式请求结果:
以上就是今天的所有内容了!
本文转自:AI小新
OpenAI 是一个人工智能研究实验室和公司,而 ChatGPT 是 OpenAI 开发的一种基于语言模型的对话系统。ChatGPT 是 OpenAI 在自然语言处理领域的重要成果之一,它使用了大规模的预训练数据和强化学习方法来生成流畅、有逻辑的对话回复。
本文内容主要分为四个部分:
一、chatgpt接口参数说明
二、普通request调用chatgpt的方法
三、利用openai工具包正常调用
四、利用openai工具包流式调用
前提条件:
1、需要开启魔法上网
2、需要有openai的key
一、chatgpt接口参数说明
OpenAI API 接口地址
-
URL:https://api.openai/v1/chat/completions
-
URL:https://api.openai/v1
-
Method:
post
Headers parameter
参数 | 类型 |
|
|
|
|
请求参数
参数 | 是否必须 | 类型 | 备注 |
| 是 | List | 迄今为止对话的信息列表 |
| 是 | String | 要使用的模型的 ID: gpt-4, gpt-4-0613, gpt-4-32k, gpt-4-32k-0613, gpt-3.5-turbo, gpt-3.5-turbo-0613, gpt-3.5-turbo-16k, gpt-3.5-turbo-16k-0613 |
| 否 | float | 介于 -2.0 和 2.0 之间的数值。正值会根据新标记在文本中的现有频率对其进行惩罚,从而降低模型逐字重复同一行的可能性 |
| 否 | Int | 要生成的最大令牌数 |
| 否 | Boolean | 是否使用流式响应,使用流式响应把这个字段加上,默认为False |
| 否 | Float | 默认值为1。 采样温度,介于 0 和 2 之间。0.8 等较高值会使输出更加随机,而 0.2 等较低值则会使输出更加集中和确定。 通常建议改变该值或 |
| 否 | Float | 默认值为1。 模型从概率递减排序且概率和为 阈值设置的越大,如0.9,可选择的单词就越多 |
Message的属性说明
参数名称 | 是否必须 | 类型 | 备注 |
| 是 | String | 信息内容。所有信息都必须包含内容,对于带有函数调用的助理信息,内容可能为空。 |
| 是 | String | 该信息作者的角色,从以下三个中选择:
|
二、普通request调用chatgpt的方法
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :chatgpt
@File :openai_function.py
@Author :aixiaoxin
@Date :2023/10/11 18:28
"""
import requests
def request_chatgpt_function():
url="https://api.openai/v1/chat/completions" #可以替换为任何代理的接口
OPENAI_API_KEY="sk-LECc8U0BcVAQWx1VE23aB8B5595f4963929d799b712382E3" # openai官网获取key
header={"Content-Type": "application/json","Authorization": "Bearer " +OPENAI_API_KEY}
data={
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
],
"temperature":0,
"stream":False
}
response=requests.post(url=url,headers=header,json=data).json()
print(response)
return response
if __name__ == "__main__":
openai_chatgpt_function() # 利用openai正常调用
结果:
三、利用openai工具包正常调用
等待所有答案生成结束后,再返回,比较耗时!
1、安装openai工具包
python版本>=3.7 即可。
安装命令:
pip install openai
2、代码如下
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :chatgpt
@File :openai_function.py
@Author :aixiaoxin
@Date
import time
import openai
import requests
def openai_chatgpt_function():
question="西游记是谁写的?"
print("问题:{}".format(question))
url="https://api.openai/v1" #可以替换为任何代理的接口
OPENAI_API_KEY="sk-LECc8U0BcVAQWx1VE23aB8B5595f4963929d799b712382E3" # openai官网获取key
openai.api_key = OPENAI_API_KEY
openai.api_base = openai_url
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",messages=[{"role": "user", "content": question}],stream=False)
print("完整的响应结果:{}".format(response))
answer=response.choices[0].message.content
print("答案:{}".format(answer))
if __name__ == "__main__":
request_chatgpt_function() # 通用方法:利用requests 正常请求调用
运行结果:
四、利用openai工具包流式调用
流式地一个字一个字的吐出来,适合问答场景的实时展示答案!
代码如下:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :chatgpt
@File :openai_function.py
@Author :aixiaoxin
@Date :2023/10/11 18:28
"""
import openai
import requests
def openai_chatgpt_function_stream():
question="西游记是谁写的?"
print("问题:{}".format(question))
url="https://api.openai/v1" #可以替换为任何代理的接口
OPENAI_API_KEY="sk-LECc8U0BcVAQWx1VE23aB8B5595f4963929d799b712382E3" # openai官网获取key
openai.api_key = OPENAI_API_KEY
openai.api_base = openai_url
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",messages=[{"role": "user", "content": question}],stream=True)
for single_result in response:
# print("single_result:{}".format(single_result))
finish_reason=single_result.choices[0].finish_reason
if finish_reason is None:
single_char = single_result.choices[0].delta.content
print("single_char:{}".format(single_char))
if __name__ == "__main__":
openai_chatgpt_function_stream() # 利用openai工具包 流式请求调用
流式请求结果:
以上就是今天的所有内容了!
本文转自:AI小新