如何为Gradio聊天界面添加用户头像?
给Gradio聊天界面添加用户及机器人头像
要给你的Gradio聊天界面添加头像,主要通过Chatbot组件的avatar_images参数实现,同时也支持为单条消息自定义头像,以下是具体修改方案:
方案一:全局设置默认头像
直接在初始化Chatbot时指定用户和机器人的默认头像,所有消息都会使用这组头像:
import gradio as gr import random import time with gr.Blocks(theme=gr.themes.Soft()) as demo: # 初始化Chatbot时设置全局头像,顺序为[用户头像路径, 机器人头像路径] chatbot = gr.Chatbot( avatar_images=("user_avatar.png", "bot_avatar.png") ) msg = gr.Textbox() clear = gr.ClearButton([msg, chatbot]) def respond(message, chat_history): bot_message = random.choice(["How are you?", "I love you", "I'm very hungry"]) chat_history.append((message, bot_message)) time.sleep(1) return "", chat_history msg.submit(respond, [msg, chatbot], [msg, chatbot]) demo.launch()
注意事项:
- 把
user_avatar.png和bot_avatar.png替换成你实际的头像文件路径,可以是本地相对路径或绝对路径 - 如果图片尺寸不合适,Gradio会自动缩放适配聊天界面
方案二:为单条消息自定义头像
如果需要给特定消息设置不同的头像,可以在添加聊天记录时,传入包含头像路径的四元组:
import gradio as gr import random import time with gr.Blocks(theme=gr.themes.Soft()) as demo: chatbot = gr.Chatbot() msg = gr.Textbox() clear = gr.ClearButton([msg, chatbot]) def respond(message, chat_history): bot_message = random.choice(["How are you?", "I love you", "I'm very hungry"]) # 四元组格式:(用户消息, 机器人消息, 用户头像路径, 机器人头像路径) chat_history.append((message, bot_message, "special_user_avatar.png", "special_bot_avatar.png")) time.sleep(1) return "", chat_history msg.submit(respond, [msg, chatbot], [msg, chatbot]) demo.launch()
这种方式会覆盖全局设置的头像,适合需要动态切换头像的场景。
内容的提问来源于stack exchange,提问作者Farooq Zaman
相关产品推荐
相关产品推荐

