OPENAI API调用总结

安装OPENAI库

pip install openai

如果有环境配置需要,可以通过下面依赖安装

pip install -r requirements.txt

如果是Windows环境,建议使用Anaconda
如果是kali等Linux虚拟机,建议使用下面指令新建独立环境,使用独立环境里的python

python3 -m env path/to/env
path/to/env/bin/python ...
path/to/env/bin/pip ...

从环境变量引入key

考虑安全问题,代码中不应该包含key原文
Windows中,可以通过编辑环境变量来创建,键名为OPENAI_KEY,键值为sk-…
Linux命令行中,通过下面命令引入。如果希望永久存储在环境变量中,可以在.bashrc或.zshrc文件末尾添加下面这行语句

export OPENAI_KEY='sk-......'

之后,在python中,使用下面命令即可引入环境变量

import os
import openai

openai.api_key = os.getenv("OPENAI_KEY")

构造OPENAI请求

下面是构造一个请求可能使用到的参数及其含义

参数名 功能
model 指定要使用的模型。
messages 包含对话历史的列表,提供上下文信息。
max_tokens 控制生成回复的最大标记数量。
temperature 控制生成的多样性。
top_p 限制生成回复的选择范围。
frequency_penalty 控制回复中重复内容的惩罚。
presence_penalty 控制回复中提到指定角色的惩罚。
stop 一个包含标记的列表,用于指定生成回复的停止条件。
n 控制生成回复的数量。
log_level 设置日志级别,用于调试和记录 API 请求和响应。
logprobs 控制是否返回生成回复中每个标记的对数概率值。
user 设置用户 ID,用于多用户环境下区分不同的用户。
engine 指定底层模型引擎,如 text-davinci-003

下面给出一个请求示例

import os
import openai

openai.api_key = os.getenv("OPENAI_KEY")

# 定义对话历史
conversation_history = [
    {'role': 'system', 'content': 'You are a helpful assistant.'},
    {'role': 'user', 'content': 'Who won the world series in 2020?'},
    {'role': 'assistant', 'content': 'The Los Angeles Dodgers won the World Series in 2020.'},
    #{'role': 'user', 'content': 'Where was it played?'}
]

# 构造 OpenAI 请求
def get_completion_from_messages(messages, model="gpt-3.5-turbo", temperature=0):
    response = openai.ChatCompletion.create(
        model=model,
        messages=messages,
        temperature=temperature, # 控制模型输出的随机程度
    )
    #return response.choices[0].message["content"]
    return response

# 发送 OpenAI 请求并获取回复,类似于交互式界面,实现了上下文功能
while True:
    user_input=input()
    conversation_history.append({'role':'user','content':user_input})
    response = get_completion_from_messages(conversation_history)
    # print(response)
    print(response.choices[0].message["content"])
    conversation_history.append({'role':'assistant','content':response.choices[0].message["content"]})

你可能感兴趣的:(python)