ChatGPT实战100例 - (13) 写一个属于自己的 ChatGPT 新版 WebUI

news/2025/2/19 17:04:16/

文章目录

  • ChatGPT实战100例 - (13) 写一个属于自己的 ChatGPT 新版 WebUI
    • 一、ChatGPT(OpenAI)的新版API调用
      • 1.1 环境变量配置与调用
      • 1.2 新版api调用
      • 1.3 命令行流式输出
    • 二、Gradio制作自己的聊天WebUI

ChatGPT实战100例 - (13) 写一个属于自己的 ChatGPT 新版 WebUI

今时不同往日,openai的api已经到了1.xx版本,web ui王者gradio也早就推出了chat集成,写一个基于ai的chat变得如此简单。
不过,gradio的官方demo的openai版本过于老旧Creating A Chatbot Fast,没有跟进openai的api变动,让人无言以对。
因此,我们今天来写一个自己的chat webui。

一、ChatGPT(OpenAI)的新版API调用

1.1 环境变量配置与调用

1.xx版的openai的api调用,需要在环境变量中配置api的key。
主要是OPENAI_API_KEYOPENAI_BASE_URL这两个

.env

OPENAI_API_KEY = sk-xxxxx
OPENAI_BASE_URL = https://api.xxx/v1 

两行代码搞定导入环境变量:

from dotenv import load_dotenv
load_dotenv()

1.2 新版api调用

from dotenv import load_dotenv
load_dotenv()from openai import OpenAI
client = OpenAI()def predict(message):history_openai_format = []history_openai_format.append({

http://www.ppmy.cn/news/1341249.html

相关文章

ubuntu20.04安装sumo

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 有问题,请大家指出,争取使方法更完善。这只是ubuntu安装sumo的一种方法。一、注意事项1、首先明确你的ubuntu的用户名是什么 二、sumo安装1.…

其他发现:开源数据可视化分析工具DataEase介绍文档

一、 简介 DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。DataEase 支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便地与他人分享。 二、 优势 1、 开…

机器学习5-线性回归之损失函数

在线性回归中,我们通常使用最小二乘法(Ordinary Least Squares, OLS)来求解损失函数。线性回归的目标是找到一条直线,使得预测值与实际值的平方差最小化。 假设有数据集 其中 是输入特征, 是对应的输出。 线性回归的…

Android PMS——ADB命令安装流程(七)

前面的文章我们介绍了系统应用解析流程和通过 PackageInstaller.apk安装应用程序的相关流程,这一篇我们来分析使用 ADB 命令来实现 APK 安装流程。 一、ADB安装命令 ADB命令使用 adb install [选项] [APK绝对路径] 常见选项如下: -r:覆盖安装,保存原有数据; -t:…

Java正则表达式之Pattern和Matcher

目录 前言一、Pattern和Matcher的简单使用二、Pattern详解2.1 Pattern 常用方法2.1.1 compile(String regex)2.1.2 matches(String regex, CharSequence input)2.1.3 split(CharSequence input)2.1.4 pattern()2.1.5 matcher(CharSequence input) 三、Matcher详解3.1 Matcher 常…

删除有序数组中的重复项 II[中等]

优质博文:IT-BLOG-CN 一、题目 给你一个有序数组nums,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额…

【React】react组件传参

【React】react组件传参 一、props:父组件向子组件传参1、将普通的参数作为props传递2、将jsx作为props传递(组件插槽) 二、自定义事件:子父组件向父组件传参三、context进行多级组件传参四、redux全局状态管理 一、props&#xf…

三路快排解决TopK问题

前言: 我们首先要明白什么是三路快排,什么是topk问题。 三路快排: 思想: 三路快排就是数组分3块,三个指针,先随机取一个基准值key,然后将数组划分为3个部分: 【小于key】【等于…