LangChain入门:2.OpenAPI调用ChatGPT模型

引言

在本文中,我们将带您深入探索如何通过OpenAPI与ChatGPT模型进行高效交互,实现智能文本问答功能。通过LangChain库的实践,您将学习构建一个能够与用户进行自然语言对话的系统的关键步骤。

准备步骤

在动手编码之前,请确保您已掌握Python编程的基础知识,并了解API调用的基本原理。这些知识将为您更好地理解本文提供的内容奠定基础。

获取OpenAPI访问令牌

要开始使用OpenAPI,您需要获取一个访问授权。以下是两种推荐的方法:

  1. 访问OpenAI网站,创建一个API帐户并获取相应的API密钥。
  2. 通过GPT-API-free项目获取免费的授权。
安装必要的Python库

为了与OpenAI的API进行交互,您需要安装openai Python库。执行以下命令即可完成安装:

pip install openai

在这里插入图片描述

编写代码

下面的代码示例展示了如何使用OpenAI和ChatAnywhere技术实现与用户的对话:

# 导入所需的库,并创建一个名为client的OpenAI对象。
# 请将api_key替换为您自己的API密钥。
from openai import OpenAIclient = OpenAI(api_key='您的API密钥',base_url='https://api.chatanywhere.tech/v1',
)# 使用client对象调用models.list()方法以获取可用的模型列表。
print("可用的模型列表:", client.models.list())# 打印client对象的版本号。
print("OpenAI客户端版本号:", client._version)# 使用client对象调用chat.completions.create方法,向GPT-3.5-turbo模型输入两个消息。
# 第一个消息是系统消息,第二个消息是用户提问。
response = client.chat.completions.create(model="gpt-3.5-turbo",temperature=0.6,max_tokens=50,messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Who won the world series in 2020?"}],
)# 打印由GPT-3.5-turbo模型生成的回复消息。
print("AI的回复:", response.choices[0].message.content)
运行程序

将上述代码保存到一个Python文件中,并在您的开发环境中运行它。确保您已经替换了API密钥,并根据需要调整了代码中的其他参数。
在这里插入图片描述

结论

通过本文的指导,您已经学会了如何使用OpenAPI调用ChatGPT模型,实现了一个能够与用户进行智能对话的系统。这不仅可以作为您学习LangChain的起点,也可以作为构建更复杂对话系统的基石。随着技术的不断进步,您可以尝试探索更多的模型和功能,以提供更加丰富和个性化的用户体验。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Collection与数据结构链表与LinkedList(三):链表精选OJ例题(下)

1. 分割链表 OJ链接 class Solution {public ListNode partition(ListNode head, int x) {if(head null){return null;//空链表的情况}ListNode cur head;ListNode formerhead null;ListNode formerend null;ListNode latterhead null;ListNode latterend null;//定义…

Beans模块之工厂模块DisposableBean

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

宝塔面板操作一个服务器域名部署多个网站

此处记录IP一样,端口不一样的操作方式: 宝塔面板操作: 1、创建第一个网站: 网站名用IP地址,默认80端口。 创建好后,直接IP访问就可以了。看到自带的默认首页 2、接下来部署第二个网站: 仍然是…

docker-compose mysql

使用docker-compose 部署 MySQL(所有版本通用) 一、拉取MySQL镜像 我这里使用的是MySQL8.0.18,可以自行选择需要的版本。 docker pull mysql:8.0.18二、创建挂载目录 mkdir -p /data/mysql8/log mkdir -p /data/mysql8/data mkdir -p /dat…

IC-随便记

1、移远通信---通信模组 物联网解决方案供应商,可提供完备的IoT产品和服务,涵盖蜂窝模组(5G/4G/3G/2G/LPWA)、车载前装模组、智能模组(5G/4G/边缘计算)、短距离通信模组(Wi-Fi&BT)、GNSS定位模组、卫星通信模组、天线等硬件产…

阿里云CentOS7安装MySQL8

创建目录 [rootnode1 ~]# mkdir /usr/local/mysql [rootnode1 ~]# cd /usr/local/mysql/ 下载安装包 到MySQL官网查看需要下载的版本,并获取到下载地址 https://downloads.mysql.com/archives/community/下载 [rootnode1 mysql]# wget https://downloads.mysql…

Linux - 第三节

改变用户类型 su 仅单纯的进行身份变化 依旧处于普通用户里面 su - 进行重新登录更改身份 退出用exit / ctrld su 用户名 改成成其他身份 对一条命令进行提权 sudo command r:可读 w:可写 x:可执行 -:对应的权限位置,没有权限 去掉所有权限 chmod u…

java日志技术——Logback日志框架安装及概述

前言: 整理下学习笔记,打好基础,daydayup!!! 日志 什么是日志 程序中的日志,通常就是一个文件,里面记录的是程序运行过程中的各种信息,通过日志可以进行操作分析,bug定位等 记录日志的方案 程…

嵌入式系统基础知识(一):嵌入式系统是什么?

一.定义 根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”。这主要是从应用上加以定义的,从中可看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装…

云渲染实用工具:3ds max怎么改低版本?

3ds Max是建模领域广泛采用的专业软件,它通过定期更新来不断增强功能和提升性能。但这些频繁的更新有时会导致一些插件暂时无法与新版本完全兼容。为了解决这个问题,设计师们可以采用一个简单有效的方法,那就是将较新版本的3ds Max文件进行版…

Java常见限流用法介绍和实现

目录 一、现象 二、工具 ​​​​​​1、AtomicInteger,AtomicLong 原子类操作 ​​​​​​2、RedisLua ​​​​​​3、Google Guava的RateLimiter 1) 使用 2) Demo 3) 优化demo 4、阿里开源的Sentinel 三、算法 1、计数限流 &…

python练习二

# Demo85def pai_xu(ls_test):#创建一个列表排序函数命名为pai_xu# 对创建的函数进行注释"""这是一个关于列表正序/倒序排列的函数:param ls_test: 需要排序的列表:return:"""ls1 [int(ls_test[i]) for i in range(len(ls_test))]#对input输入的…

基于Java+Springboot+vue高校资源共享交流平台设计和实现

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

C++刷题篇——05静态扫描

一、题目 二、解题思路 注意:注意理解题目,缓存的前提是先扫描一次 1、使用两个map,两个map的key相同,map1:key为文件标识,value为文件出现的次数;map2:key为文件标识,va…

手写简易操作系统(十九)--实现0x80中断

前情提要 上一节我们实现了用户程序,现在的用户程序还是一个函数来模拟的,后面我们会把编译好的用户程序放在硬盘里,通过硬盘加载。 众所周知,用户程序使用系统服务是通过 0x80 中断进行的,也只能通过中断进入高优先…

CTF wed安全(攻防世界)练习题

一、Training-WWW-Robots 进入网站如图: 翻译:在这个小小的挑战训练中,你将学习Robots exclusion standard。网络爬虫使用robots.txt文件来检查它们是否被允许抓取和索引您的网站或只是其中的一部分。 有时这些文件会暴露目录结构&#xff0c…

Qt6.6添加多媒体模块Multimedia报错问题

问题 QT包含多媒体模块Multimedia时提示未知的模块: error: Project ERROR: Unknown module(s) in QT: multimedia 在帮助文档中只可以找到QMediaPlayer类,但是点进去是空的,这是因为没有安装多媒体模块及对应的帮助文档。 解决 使用在线…

StringBuffer与StringBuilder

1.区别 (1). String : 不可变字符序列. (2). StringBuffer : 可变字符序列.线程安全,但效率低. (3). StringBuilder : 可变字符序列.线程不安全,但效率高. 既然StringBuffer与StringBuilder都是可变字符序列,但二者咋区分开呢&#xff1f…

黑马点评项目笔记 II

基于Stream的消息队列 stream是一种数据类型,可以实现一个功能非常完善的消息队列 key:队列名称 nomkstream:如果队列不存在是否自动创建,默认创建 maxlen/minid:设置消息队列的最大消息数量 *|ID 唯一id:…

200个有趣的HTML前端游戏项目合集(持续更新中)

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…