使用Gradio搭建聊天UI实现质谱AI智能问答

使用Gradio搭建聊天UI实现质谱AI智能问答

  • 一、调用智谱 AI API
  • 二、使用Gradio搭建聊天UI
  • 三、将流式处理添加到交互式聊天机器人

一、调用智谱 AI API

1、获取api_key

智谱AI开放平台网址:
https://open.bigmodel.cn/overview
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2、安装库pip install zhipuai
3、执行一下代码,调用质谱api进行问答

from zhipuai import ZhipuAIclient = ZhipuAI(api_key="xxxxx")  # 填写您自己的APIKey
while True:prompt = input("user:")response = client.chat.completions.create(model="glm-4",  # 填写需要调用的模型名称messages=[{"role": "user", "content": prompt}],)answer = response.choices[0].message.contentprint("ZhipuAI:", answer)

二、使用Gradio搭建聊天UI

import gradio as gr
import random
import timefrom langchain_community.chat_models import ChatZhipuAI
from zhipuai import ZhipuAIimport configurellm = configure.chat
client = ZhipuAI(api_key="xxx")  # 填写您自己的APIKeywith gr.Blocks() as demo:chatbot = gr.Chatbot()msg = gr.Textbox()clear = gr.Button("清除")def respond(message, chat_history):response = client.chat.completions.create(model="glm-4",  # 填写需要调用的模型名称messages=[{"role": "user", "content": message}],)chat_history.append((message, response.choices[0].message.content))return "", chat_historymsg.submit(respond, [msg, chatbot], [msg, chatbot])clear.click(lambda: None, None, chatbot, queue=False)demo.launch()
  • Gradio的Textbox模块允许用户输入字符串并显示字符串输出。它创建一个文本区域,用户可以在其中输入文本或显示输出结果。
  • Button组件是Gradio中的一个模块,用于创建一个按钮,并可以为其分配任意的click()事件。按钮的标签(value)可以作为输入使用,或者通过函数的输出来设置。
  • chatbot模块是Gradio中的一个组件,用于展示聊天机器人的输出,包括用户提交的消息和机器人的回复。它支持一些Markdown语法,包括粗体、斜体、代码和图片等。Chatbot模块的输入不接受用户输入,而是通过函数返回的列表来设置聊天内容。返回的列表应包含多个内部列表,每个内部列表包含两个元素:用户消息和机器人回复。消息可以是字符串、元组或None。如果消息是字符串,可以包含Markdown格式的文本。如果消息是元组,应包含文件路径和可选的替代文本。值为None的消息将不会显示在聊天界面上。

三、将流式处理添加到交互式聊天机器人

import gradio as gr
import timefrom zhipuai import ZhipuAI
from typing import *client = ZhipuAI(api_key="your api key")  # 填写您自己的APIKey
# https://blog.csdn.net/sinat_26917383/article/details/133950480
# https://open.bigmodel.cn/dev/api#glm-4
# https://www.cnblogs.com/ddsuifeng/p/17989484
with gr.Blocks(title="智小优") as demo:gr.HTML("""<h1 align="center">智小优</h1>""")gr.Markdown("<h1><center>Welcome to my personal AI-OR assistant (powered by zhipu)</center></h1>")chatbot = gr.Chatbot(render=True)msg = gr.Textbox(placeholder="请输入你的问题")with gr.Row():submit = gr.Button('Submit')clear = gr.Button("Clear")def user(user_message: str, history: List[List]) -> Tuple:"""Args:user_message: 用户输入history: 历史问答Returns:"""return "", history + [[user_message, None]]def bot(history: List[List]) -> None:response = client.chat.completions.create(model="glm-4",  # 填写需要调用的模型名称messages=[{"role": "user", "content": history[-1][0]}],stream=True)history[-1][1] = ""for chunk in response:for choice in chunk.choices:# content = choice.delta.contentif content := choice.delta.content: history[-1][1] += contenttime.sleep(0.05)yield historymsg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then(bot, chatbot, chatbot)# 触发事件监听submit.click(user, [msg, chatbot], [msg, chatbot], queue=False).then(bot, chatbot, chatbot)clear.click(lambda: None, None, chatbot, queue=False)if __name__ == '__main__':demo.queue().launch()

参考:

  • https://blog.csdn.net/sinat_26917383/article/details/133950480
  • https://zhuanlan.zhihu.com/p/681207328
  • https://blog.csdn.net/Alexa_/article/details/134485161
  • https://blog.csdn.net/u013558123/article/details/136118024
  • https://zhuanlan.zhihu.com/p/678228971
  • https://open.bigmodel.cn/dev/api#glm-4
  • https://www.cnblogs.com/ddsuifeng/p/17989484

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

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

相关文章

[笔试训练](十六)

目录 046:字符串替换 047:神奇数 048:DNA序列 046:字符串替换 字符串替换_牛客题霸_牛客网 (nowcoder.com) 题目&#xff1a; 题解&#xff1a; 简单模拟题~ class StringFormat { public:string formatString(string str, int n, vector<char> arg, int m) {strin…

API开发的必备神器:华为云CodeArts API实用体验入门篇

今天我想给大家推荐一款API全生命周期研发与管理工具&#xff1a;华为云CodeArts API。 作为互联网软件的开发者&#xff0c;在软件研发的过程中&#xff0c;API的开发、调试、测试是必不可少的。之前我使用的是Postman这类工具来辅助开发&#xff0c; Postman在接口调试方面确…

WPF TextBox文本框 输入提示

思路 Grid标签里面创建Label和TextBox&#xff0c;这是一个整体。 TextBox 为空显示 Label OR TextBox 不为空隐藏 Label 。 注意 两个标签的前后顺序。 TextBox文本的背景颜色设置为透明&#xff0c;不然会无法看到 Label 内容。 ElementNametxtStoreName&#xff1a;指定…

Microsoft Universal Print 与 SAP 集成教程

引言 从 SAP 环境打印是许多客户的要求。例如数据列表打印、批量打印或标签打印。此类生产和批量打印方案通常使用专用硬件、驱动程序和打印解决方案来解决。 Microsoft Universal Print 是一种基于云的打印解决方案&#xff0c;它允许组织以集中化的方式管理打印机和打印机驱…

Shell变成规范与变量

目录 1. Shell脚本 1.1 Shell脚本概述 1.2 Shell的作用 1.3 Shell脚本的构成 2. 重定向与管道操作 2.1 交互式硬件设备 ​ 2.2 重定向操作 3. shell变量 3.1 自定义变量 3.2 变量的作用范围​编辑 3.3 整数变量的运算 4. 环境变量 4.1 特殊的Shell变量 4.2 只读变…

【Flask 系统教程 5】视图进阶

类视图 在 Flask 中&#xff0c;除了使用函数视图外&#xff0c;你还可以使用类视图来处理请求。类视图提供了一种更为结构化和面向对象的方式来编写视图函数&#xff0c;使得代码组织更清晰&#xff0c;并且提供了更多的灵活性和可扩展性。 创建类视图 要创建一个类视图&am…

家用洗地机应该怎么选?哪个牌子好?市场上主流洗地机品牌推荐

洗地机的出现&#xff0c;让越来越多的家庭享受清洁的过程&#xff0c;给人们腾出来更多的时间陪伴家人和休息。但是在选购一台洗地机前&#xff0c;大家多多少少肯定有些疑问&#xff0c;洗地机到底实不实用&#xff1f;好不好用&#xff1f;能扫干净吗&#xff1f;还有哪些好…

什么样的行业适合做私域?

私域营销适用于各种行业&#xff0c;但以下几个行业尤其适合进行私域营销&#xff1a; 1、零售行业&#xff1a;私域营销可以帮助零售企业建立与顾客的直接联系&#xff0c;提高顾客忠诚度和复购率。通过私域营销&#xff0c;零售企业可以进行个性化推荐、定制化服务&#xff…

Konga域名配置多个路由

云原生API网关-Kong部署与konga基本使用 Nginx server{listen 443 ssl;location / {proxy_pass http://127.0.0.1:8100;}location /openApi {proxy_pass http://172.31.233.35:7100/openApi;} } Kong {"id": "f880b21c-f7e0-43d7-a2a9-221fe86d9231&q…

vue视图不刷新强制更新数据this.$forceUpdate()

在vue中&#xff0c;更新视图数据&#xff0c;不刷新页面&#xff0c;需要强制更新数据才可以 前言 在对数据就行添加和删除时&#xff0c;发现页面视图不更新&#xff0c;排除发现需要强制更新才可以 点击添加或删除&#xff0c;新增数据和删除就行&#xff0c;但在不使用fo…

指定地区|CSC高级研究学者赴澳大利亚访学交流

CSC高级研究学者均是正高或博导级的&#xff0c;学术背景较强&#xff0c;多数能DIY联系到国外合作机构。但也有些申请者因指定地域或学校&#xff0c;或须在短期内获取邀请函故而求助于我们。本案例D教授就指定澳大利亚的墨尔本地区&#xff0c;我们最终用维多利亚大学的邀请函…

智能化采购管理系统助力光伏行业提高效率

光伏行业是指太阳能电池板的制造、安装和维护等相关产业&#xff0c;是新能源领域的重要组成部分。近年来&#xff0c;随着全球对于环保和可持续发展的重视&#xff0c;光伏行业进入全球化和智能化的新阶段。光伏企业开始加强国际合作&#xff0c;推广智能化技术&#xff0c;提…

vue3+ts+vant选择器选中文字效果

所需要的样式: 选中某个选项后文字有放大和改变颜色的效果 主要就是在van-picker上加class, 给对应的style样式即可 <van-pickerclass"custom-picker":title"pickerData.titleText"v-if"pickerData.ispicker"show-toolbar:columns"col…

数据结构——排序算法分析与总结

一、插入排序 1、直接插入排序 核心思想&#xff1a;把后一个数插入到前面的有序区间&#xff0c;使得整体有序 思路&#xff1a;先取出数组中第一个值&#xff0c;然后再用tmp逐渐取出数组后面的值&#xff0c;与前面的值进行比较&#xff0c;假如我们进行的是升序排序&…

代谢组数据分析七:从质谱样本制备到MaxQuant搜库

前言 LC-MS/MS Liquid Chromatography-Mass Spectrometry&#xff08;LC-MS/MS &#xff0c;液相色谱-质谱串联&#xff09;可用于残留化合物检测、有机小分子检测、鉴定和定量污染物以及在医药和食品领域添加剂检测和生物小分子等检测。 LC-MS/MS一般包含五个步骤&#xff…

熟悉Redis吗,那Redis的过期键删除策略是什么

对于Redis&#xff0c;我们业务开发一般都只关心Redis键值对的查询、修改操作&#xff0c;可能因为懒或者只想能用就行&#xff0c;呵呵。很少关心键值对存储在什么地方、键值对过期了会怎么样、Redis有没什么策略处理过期的键、Redis处理过期键又有什么作用&#xff1f;但这些…

LabVIEW智能变电站监控系统设计与实现

LabVIEW智能变电站监控系统设计与实现 随着电力系统和智能化技术的快速发展&#xff0c;建立一个高效、可靠的变电站监控系统显得尤为重要。通过分析变电站监控系统的需求&#xff0c;设计了一个基于LabVIEW软件的监控平台。该平台利用虚拟仪器技术、传感器技术和无线传输技术…

5W 1.5KVDC 隔离 宽电压输入 DC/DC 电源模块——TP05DB 系列

TP05DB系列电源模块额定输出功率为5W&#xff0c;应用于2:1及4:1电压输入范围 4.5V-9V、9V-18V、18V-36V、36V-72V、9V-36V和18V-72V&#xff0c;40-160VDC的输入电压环境&#xff0c;输出电压精度可达1%&#xff0c;具有输出过流保护等功能。可广泛应用于通信、铁路、自动化以…

机器学习 | 时间序列预测中的AR模型及应用

自回归模型&#xff0c;通常缩写为AR模型&#xff0c;是时间序列分析和预测中的一个基本概念。它们在金融、经济、气候科学等各个领域都有广泛的应用。在本文中&#xff0c;我们将探索自回归模型&#xff0c;它们如何工作&#xff0c;它们的类型和实际例子。 自回归模型 自回…

【小迪安全2023】第61天:服务攻防-中间件安全CVE复现K8sDockeruettyWebsphere

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…