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"]})

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值