当前位置: 首页 > news >正文

网站建设基础书籍提升学历的意义

网站建设基础书籍,提升学历的意义,深圳seo教程,网站建设分几种类型Gradio全解8——ChatInterface&Chatbot:聊天界面类与聊天机器人(4)——返回复杂响应与直接修改Chatbot值8.4 返回复杂响应与直接修改chatbot值8.4.1 返回复杂响应1. 返回Gradio各类组件2. 提供预设回复options3. 返回多条附加消息8.4.2 返…

Gradio全解8——ChatInterface&Chatbot:聊天界面类与聊天机器人(4)——返回复杂响应与直接修改Chatbot值

    • 8.4 返回复杂响应与直接修改chatbot值
      • 8.4.1 返回复杂响应
        • 1. 返回Gradio各类组件
        • 2. 提供预设回复options
        • 3. 返回多条附加消息
      • 8.4.2 返回直接修改chatbot_value

本章目录如下:

  1. 《ChatInterface&Chatbot:聊天界面类与聊天机器人(1)——ChatInterface类示例与构造参数》
  2. 《ChatInterface&Chatbot:聊天界面类与聊天机器人(2)——ChatInterface的自定义函数和界面》
  3. 《ChatInterface&Chatbot:聊天界面类与聊天机器人(3)——ChatInterface的多模态功能与附加输入输出》
  4. 《ChatInterface&Chatbot:聊天界面类与聊天机器人(4)——返回复杂响应与直接修改Chatbot值》
  5. 《ChatInterface&Chatbot:聊天界面类与聊天机器人(5)——通过API加载、聊天历史和用户反馈》
  6. 《ChatInterface&Chatbot:聊天界面类与聊天机器人(6)——gr.ChatInterface与流行LLM库和API结合》
  7. 《ChatInterface&Chatbot:聊天界面类与聊天机器人(7)——组件gr.Chatbot及gr.ChatMessage》
  8. 《ChatInterface&Chatbot:聊天界面类与聊天机器人(8)——组件Chatbot的特殊Events》
  9. 《ChatInterface&Chatbot:聊天界面类与聊天机器人(9)——使用Blocks创建自定义聊天机器人》
  10. 《ChatInterface&Chatbot:聊天界面类与聊天机器人(10)——使用显示思考和引用构建UI》

8.4 返回复杂响应与直接修改chatbot值

本节讲解如何在ChatInterface显示处理函数返回的复杂响应,返回值也可直接修改ChatInterface类的参数chatbot_value,从而影响显示效果。

8.4.1 返回复杂响应

我们之前提到过,在最简单的情况下,聊天函数应返回一个呈现为文本的字符串响应。然而聊天函数也可以返回更复杂的响应,比如返回Gradio组件、提供预设回复或返回多条消息等。

1. 返回Gradio各类组件

目前以下Gradio组件可以显示在聊天界面中:gr.Image、gr.Plot、gr.Audio、gr.HTML、gr.Video、gr.Gallery和gr.File。只需从fn函数中返回这些组件之一,即可显示在gr.ChatInterface的输出框中。以下是一个返回音频文件的示例:

import gradio as gr
def music(message, history):if message.strip():return gr.Audio("https://github.com/gradio-app/gradio/raw/main/test/test_files/audio_sample.wav")else:return "Please provide the name of an artist"gr.ChatInterface(music,type="messages",textbox=gr.Textbox(placeholder="Which artist's music do you want to listen to?", scale=7),
).launch()

运行界面如图8-9:
在这里插入图片描述

图8-9

类似地,可以使用gr.Image返回图片文件,使用gr.Video返回视频文件,或者使用gr.File组件返回任意文件。

2. 提供预设回复options

我们可能希望提供预设回复,供用户聊天时选择。为此,可以从聊天函数中返回一个完整的OpenAI风格的消息字典,并在返回的字典中添加options键来预设回复。字典应包含以下键:

  • role:设置为"assistant",代表机器人。
  • content:可设置为一个字符串或字典。设置为字典时,键为path,值为要返回的文件路径或URL。
  • options:应该对应一个字典列表,每个字典包含一个value(一个字符串,当单击时被发送给聊天函数)和一个可选的label(如果提供,则作为预设回复显示的文本,否则显示value)。

以下示例展示了如何使用预设回复:

import gradio as gr
import random
example_code = """
Here's an example Python lambda function:lambda x: x + {}Is this correct?
"""
def chat(message, history):if message == "Yes, that's correct.":return "Great!"else:return {"role": "assistant","content": example_code.format(random.randint(1, 100)),"options": [{"value": "Yes, that's correct.", "label": "Yes"},{"value": "No"}]}
demo = gr.ChatInterface(chat,type="messages",examples=["Write an example Python lambda function."]
)
demo.launch()

运行界面如图8-10:
在这里插入图片描述

图8-10

单击按钮Yes后,会向函数chat传递对应的预设消息值“Yes, that’s correct.”,然后函数chat回复“Great!”结束会话。

3. 返回多条附加消息

我们还可以通过返回上述任意类型的消息列表(甚至可以混合使用),从而使聊天函数中返回多条附加消息。例如你可以发送一条带有文件的消息,如下例所示:

import gradio as gr
def echo_multimodal(message, history):response = []response.append("You wrote: '" + message["text"] + "' and uploaded:")if message.get("files"):for file in message["files"]:response.append(gr.File(value=file))return responsedemo = gr.ChatInterface(echo_multimodal,type="messages",multimodal=True,textbox=gr.MultimodalTextbox(file_count="multiple"),
)
demo.launch()

运行界面如图8-11:
在这里插入图片描述

图8-11

注意组件MultimodalTextbox的设置,此时函数echo_multimodal返回输入信息和上传的文件,MultimodalTextbox可以正确显示函数返回的消息和文件。

8.4.2 返回直接修改chatbot_value

我们有时希望通过自定义事件(而非gr.ChatInterface内置事件)来修改参数chatbot的值。例如创建下拉菜单以预填充特定对话历史,或添加独立按钮以清除对话记录。gr.ChatInterface支持这些事件,但需要将gr.ChatInterface.chatbot_value作为事件的输入或输出组件。
本示例使用gr.Radio组件预填充特定对话的chatbot:

import gradio as gr
import random
def prefill_chatbot(choice):if choice == "Greeting":return [{"role": "user", "content": "Hi there!"},{"role": "assistant", "content": "Hello! How can I assist you today?"}]elif choice == "Complaint":return [{"role": "user", "content": "I'm not happy with the service."},{"role": "assistant", "content": "I'm sorry to hear that. Can you please tell me more about the issue?"}]else:return []
def random_response(message, history):return random.choice(["Yes", "No"])
with gr.Blocks() as demo:radio = gr.Radio(["Greeting", "Complaint", "Blank"])chat = gr.ChatInterface(random_response, type="messages")radio.change(prefill_chatbot, radio, chat.chatbot_value)
demo.launch()

运行界面如图8-12:
在这里插入图片描述

图8-12

当单击单选框的值时,chat.chatbot_value会修改对应ChatInterface中的参数chatbot,对应的聊天内容也会随之改变。

http://www.dtcms.com/a/563129.html

相关文章:

  • 网站的结构是什么样的做网站能改吗
  • a站为什么不火了企业网络营销策略有哪些
  • 广州在线图文网络科技中心网站建设创新的盐城网站开发
  • 做贷款网站犯法吗企业运营数据分析报告
  • 企业如何建自己的网站wordpress 邮箱免验证
  • 定制网站建设公司费用网站建设工具品牌
  • 整合营销活动策划方案咸阳seo
  • 不备案的网站有那些大学《网站开发与应用》试题
  • 衣服网站建设策划书网站域名备案转接入手续
  • 南宁信息建设网站佛山网约车驾驶员资格证网上报名
  • 怎么用别的网站做代理打开谷歌南京网站优化公司排名
  • 智能城市 电子商务网站建设网站建设规划文案
  • 宁波企业做网站哪家好中山建设网站首页
  • html网站免费下载个人养老保险可以补交吗
  • 网站logo设计标准没有网站如何做adsense
  • 广安做网站东莞樟木头网站制作
  • 28网站怎么做代理旅游公司网站难做吗
  • 网站建设开发案例教程视频怎么做营销推广
  • 建立属于自己的网站上海十大科技公司
  • 昆明网站优化公司包头网站建设公司
  • 重庆手机网站制作wordpress回调插件
  • 天津品牌网站设计好游快游app官方网站下载
  • 网站建设简单吗wordpress排行榜模板
  • 长葛住房和城乡建设局网站play商店
  • 网站建设入什么会计科目三网合一的模板网站
  • 贵州企业网站建设价格临沂建设网
  • 网络推广方案p网站的优化和推广方案
  • 网页基础海南短视频搜索seo哪家实惠
  • 赤峰市住房和城乡建设局官方网站广东网站制作报价
  • 小企业网站建设哪家便宜泰安网站建设总结