chatgpt api调用方法指南

news2024/12/23 12:21:18

文章目录

  • python调用chatgpt api的方法
  • 获取api可以调用的模型
  • 各种任务代码示例
  • 文本分类任务
    • 文本生成(补全)任务
    • 多轮对话任务
  • 机器翻译任务
  • 文本摘要任务
  • 信息抽取任务

本文主要介绍使用python调用chatgpt api的方法,并提供一些任务的代码样例,只需更换自己的openai.api_key即可使用。(当然,使用的前提是先学会科学上网)

python调用chatgpt api的方法

1、首先登录到OpenAI API界面,点击右上角的账号弹出的列表中,点击view API keys。
在这里插入图片描述
2、跳转界面后,点击Create new secret key,会生成新的key并且复制这个key(这个就是调用api时需要填写的openai key)。如果你已经生成过key并且记录下来就不用添加。
在这里插入图片描述
3、查看OpenAI官方文档(Documention)。
在这里插入图片描述
4、点击Chat Completion。
在这里插入图片描述
6、参考文档提供的代码进行使用,注意使用前需要先安装openai包。

pip Install openai

运行下面代码(官方提供的代码示例),注意填上前面复制好的api_key。

# Note: you need to be using OpenAI Python v0.27.0 for the code below to work
import openai
openai.api_key = "{前面复制好的key}"
completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"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?"}
    ]
)
print(completion.choices[0].message)

可以得到下面输出
{
“content”: “The 2020 World Series was played at Globe Life Field in Arlington, Texas.”,
“role”: “assistant”
}

如果遇到问题:
openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host=‘api.openai.com’, port=443)

可参考:https://zhuanlan.zhihu.com/p/611080662?utm_id=0

调整下urllib3为1.25.11版本即可解决。

获取api可以调用的模型

通过以下代码可以获取目前通过api可以调用的模型,并将模型名称写入到 model_list.txt 文件中。

import openai
openai.api_key = "自己的api"
modelList = openai.Model.list()
OUTPUT_FILE = "model_list.txt"
with open(OUTPUT_FILE, "a") as f:
    for d in modelList.data:
        f.write(d.id)
        f.write("\n")

一共有256个模型。
在这里插入图片描述
目前,补全任务最常用的是text-davinci-003(如文本生成,翻译等等);对话任务最常用的就是 gpt-3.5-turbo(如多轮对话),最强的GPT-3.5模型(当然现在也已经申请GPT4的接口了),性能优异且成本较低,调用成本只有 text-davinci-003 的 1/10。

各种任务代码示例

文本分类任务

import openai

openai.api_key = "自己的api"

response = openai.Completion.create(
  model="text-davinci-003",
  prompt="判断一条句话是积极、消极还是中性。\n\n这部电影拍的非常好,是我最喜欢的一部科幻片。\n情感:",
  temperature=0,
  max_tokens=60,
  top_p=1,
  frequency_penalty=0.5,
  presence_penalty=0
)
print(response['choices'][0]['text'])

在这里插入图片描述
参数解读:
max_tokens:生成文本的最大 token 数。所有模型都只能处理一定长度的文本(例如 4096 个 token),因此输入的模板长度加上 max_tokens 不能超过这个限制。

temperature:采样温度,值介于 0 到 2 之间。较高的值(例如 0.8)会使得输出更随机,较小的值(例如 0.2)则会使得输出更确定。该参数与 top_p 通常只建议修改其中一个。

top_p:一种替代温度采样的方法,称为核采样 (nucleus sampling),只考虑具有 top_p 概率质量的 token 的结果。例如设为 0.1 就只考虑构成前 10% 概率质量的 token。该参数与 temperature 通常只建议修改其中一个。

presence_penalty:值介于 -2.0 到 2.0 之间。正值会根据是否已经出现在文本中来惩罚新生成的 token,从而鼓励模型生成新的内容,避免出现大段重复。

frequency_penalty:值介于 -2.0 到 2.0 之间。正值会根据新生成 token 在文本中的频率对其进行惩罚,从而降低模型逐字重复同一行的可能性。

文本生成(补全)任务

import openai

openai.api_key = "自己的api"

response = openai.Completion.create(
  model="text-davinci-003",
  prompt="新开张的服装店专注于夏季裙子,请为这家服装店写一条广告:",
  temperature=0.4,
  max_tokens=512,
  top_p=1,
  frequency_penalty=0,
  presence_penalty=0
)
print(response['choices'][0]['text'])

在这里插入图片描述

多轮对话任务

import openai
openai.api_key = "自己的api"
def chat():
    my_messages=[]
    while True:
        my_input=input('我:')
        my_messages.append({"role": "user", "content": my_input})
        if not my_input:
            return
        completion = openai.ChatCompletion.create(
            model="gpt-3.5-turbo-0301",
            messages=my_messages,
            temperature=0.2
        )
        response = completion.choices[0].message["content"]
        print("AI:",response)
        my_messages.append({"role":"assistant","content":response})
chat()

在这里插入图片描述

机器翻译任务

import openai

openai.api_key = "自己的api"
response = openai.Completion.create(
  model="text-davinci-003",
  prompt="将下面这句话翻译为英语、法语和日语:\n\n今天天气真不错,你想和我一起出去玩吗?\n\n",
  temperature=0.3,
  max_tokens=256,
  top_p=1,
  frequency_penalty=0,
  presence_penalty=0
)
print(response['choices'][0]['text'])

在这里插入图片描述

文本摘要任务

import openai

openai.api_key = "自己的api"

response = openai.Completion.create(
  model="text-davinci-003",
  prompt="为下面的文本生成摘要:\n\n在现代社会,人们越来越注重健康生活方式的建立和维护。健康的饮食和运动可以提高人体免疫力,减少各类疾病的发生。此外,心理健康也是一个重要的方面,良好的心理状态可以促进身体健康,降低患病和残疾的风险,改善生活质量。在工作和学习压力较大的现代社会,人们需要学会有效的自我管理和调节,保持愉悦的心态。此外,社会互动和支持网络也是心理健康的重要组成部分,人们应该积极参加社会活动,融入社会大家庭。综上所述,始终保持健康的生活方式和心理状态,才能真正地拥有幸福和成功。",
  temperature=0.7,
  max_tokens=120,
  top_p=1,
  frequency_penalty=0,
  presence_penalty=0
)
print(response['choices'][0]['text'])

在这里插入图片描述

信息抽取任务

import openai

openai.api_key = "自己的api"

response = openai.Completion.create(
  model="text-davinci-003",
  prompt="从下面的文本中抽取关键词:\n\n在现代社会,人们越来越注重健康生活方式的建立和维护。健康的饮食和运动可以提高人体免疫力,减少各类疾病的发生。此外,心理健康也是一个重要的方面,良好的心理状态可以促进身体健康,降低患病和残疾的风险,改善生活质量。在工作和学习压力较大的现代社会,人们需要学会有效的自我管理和调节,保持愉悦的心态。此外,社会互动和支持网络也是心理健康的重要组成部分,人们应该积极参加社会活动,融入社会大家庭。综上所述,始终保持健康的生活方式和心理状态,才能真正地拥有幸福和成功。",
  temperature=0,
  max_tokens=60,
  top_p=1,
  frequency_penalty=0.5,
  presence_penalty=0
)
print(response['choices'][0]['text'])

在这里插入图片描述
当然,通过调用api可以做除上面所举例子之外的更多其他任务,只需要注意两点,一点是设定比较明确的prompt,让模型明白你要做的具体任务是什么,另一点是适当地调整参数,使得模型生成的答案尽可能满足你的要求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/543881.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年认证杯C题超详细思路配有实现代码

2023年认证杯初步解题思路 后续会更新思路对应的实现代码 问题一思路 数据预处理:首先,根据描述,你已经有了心电波形的功率谱密度数据。你可以将频率范围从0 Hz到180 Hz分成361个频率间隔为0.5 Hz的数据点。确保数据格式正确,并…

chatgpt赋能Python-python2虚拟环境

Python2虚拟环境——加强你的编程能力 Python是一种广泛应用于Web开发,数据科学和机器学习等领域的编程语言。但是,由于不同的应用程序需要使用不同的Python库和版本,因此在不同的项目之间切换时可能会出现问题。 Python虚拟环境可以帮助您解…

八股总结(五)java基础、集合、并发、JVM

文章目录 接口、类与继承java中创建对象有哪几种方式? 和equal区别是什么?hashCode()为什么重写equals方法必须重写hashcode方法?String为什么设计成不可变的?String,StringBuffer,StringBuilder的区别是什么&#xf…

2023年改版第七版PMBOK后的PMP到底考什么?出题依据是什么?

2023年改版第七版PMBOK后的PMP到底考什么?出题依据是什么? 自从PMBOK(Project Management Body of Knowledge)第一版于1987年发布以来,它已成为项目管理领域的标准参考。PMBOK指南是Project Management Institute&…

Python画图设置坐标轴数字的千位分隔符

目录 导入必要的库创建图形并设置坐标轴设置坐标轴的千位分隔符完整代码效果图 当使用Python进行绘图时,可以使用 Matplotlib库来设置坐标轴上的数字的千位分隔符。下面是一个完整的教程,其中包含代码示例。 导入必要的库 在开始编写代码之前&#xff…

Java学习平台系统的设计与实现

背景 本次设计任务是要设计一个学习平台,通过这个系统能够满足学习信息的管理及学生和教师的学习管理功能。系统的主要功能包括首页,个人中心,学生管理,教师管理,课程信息管理,类型管理,作业信…

使用sqoop从Hive导出数据到MySQL

1、启动hadoop:start-all.sh。 2、启动mysql:support-files/mysql.server start。 3、启动hive:hive。 4、在hive中创建表。 (学生信息:学号xh,姓名xm)xsxx: create table bigda…

streamlit魔法使用

正常在学习一个新框架之前, 肯定要先调研下这个框架究竟能做些什么事吧? 但对于 streamlit 来说,请你相信我,这是一个你可以无脑去学习的框架,我之所以这么说,是因为我相信终有一天,你一定能用…

11. Mysql执行原理之索引合并详解

MySQL性能调优 1. Intersection合并1.1 情况一:等值匹配1.2 情况二:主键列可以是范围匹配 2. Union合并2.1 情况一:等值匹配2.2 情况二:主键列可以是范围匹配2.3 情况三:使用Intersection索引合并的搜索条件 3. Sort-U…

云厂商纷纷降价开启新一轮价格大战,行业竞争加剧未来何从?

5月16日晚间,腾讯云和移动云两大云服务商相继宣布对旗下多款核心产品进行降价。其中,腾讯云降价幅度最高达40%,移动云部分产品直降60%。 而就在20天前4月26日阿里云2023合作伙伴大会上,阿里巴巴CEO张勇率先宣布启动“史上最大规模…

服务(第二十五篇)redis的优化和持久化

持久化的功能:Redis是内存数据库,数据都是存储在内存中,为了避免服务器断电等原因导致Redis进程异常退出后数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;当下…

win7虚拟机无法安装VMwaretools的处理办法(亲测有效!)

最近在学习中用到要安装win7系统,于是我在虚拟机里装了win7系统,但是却发现无法安装VMware tools,最后经多方查证,以下方法可解决! 这里提示需要将原始win7升级到win7 SP1版本,可在控制面版——系统和安全…

ChatGPT应用场景巡航之会议纪要

今天我们拿昨天(2023年5月17日)腾讯发布2023年一季报会议来举例。 首先刚开篇Pony(马化腾)说的一段话来看下知否AI问答多场景中的会议纪要表现如何: 马化腾:谢谢你,温迪。晚上好。感谢您加入我…

macOS Monterey 12.6.6 (21G646) 正式版发布,ISO、IPSW、PKG 下载

macOS Monterey 12.6.6 (21G646) 正式版发布,ISO、IPSW、PKG 下载 本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持…

【QT 自研上位机 与 STM32F4xx下位机联调>>>can通信测试-基础样例-联合文章】

【QT 自研上位机 与 STM32F103下位机联调>>>通信测试-基础样例-联合文章】 1、概述2、实验环境3、联合文章(1)对于上位机,可以参照如下例子(2)对于下位机,可以参照如下例子 4、QT上位机部分第一步…

PCD235A101 3BHE032025R0101功能框图如何在 PLC 中工作?

​ PCD235A101 3BHE032025R0101功能框图如何在 PLC 中工作? ​ 表示功能块和逻辑门的图形编程语言称为功能块图 创建 PLC 时,逻辑门及其在集成逻辑电路中的应用已广为人知。使用专门的绘图应用程序,连接线用于连接功能块编程中的各种符号。…

国内版的ChatGPT模型分享

1、百度的【文心一言】注册地址:点我 这里我很早之前就申请了,所以当前时可以正常使用的,还没有体验的小伙伴,可以现在申请 虽然与ChatGPT还是有一些差距的,但是作为办公助手还是很OK的!! 而且有…

谷歌升级Find My Device服务,苹果Find My产品市场火爆

谷歌效仿苹果和 Tile 的定位追踪解决方案,在 I / O 2023 开发者大会上宣布升级 Find My Device 平台。 谷歌的 Sameer Samat 宣布,Find My Device 平台在“未来几个月内”支持追踪耳机、平板电脑和其他产品类别。更为重要的是,Find My Devi…

深度学习在图像识别方面的应用

前言 深度学习是一种非常强大的机器学习技术,它在许多领域都有广泛的应用。其中,图像识别是深度学习最成功的应用之一。本文将详细介绍深度学习在图像识别方面的应用。 图像识别的基本步骤 图像识别的基本步骤包括图像预处理、特征提取和分类器。图像预…

airasia Superapp × HMS Core:便捷出行,悦享全程

2023年5月9日-5月11日,HUAWEI P60系列及旗舰产品发布会在欧洲德国、中东非阿联酋、亚太马来西亚、拉美墨西哥陆续举办,为消费者带来高端影像旗舰HUAWEI P60 Pro及系列全场景智能新品。其中在亚太站,还传递了一个重要消息:2023年6月…