You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 18:53:18