streamlit对话头像
时间: 2025-01-03 07:39:00 浏览: 7
### 实现对话头像功能
在 Streamlit 应用中添加或自定义对话头像可以通过 `st.chat_message` 组件来完成。此组件允许指定消息的作者,从而自动应用不同的样式和默认头像[^3]。
对于更个性化的体验,开发者能够通过扩展该函数来自定义头像图片。具体来说,在创建聊天消息容器时传递额外参数以覆盖默认设置:
```python
import streamlit as st
if 'messages' not in st.session_state:
st.session_state.messages = []
def render_chat():
for message in st.session_state.messages:
with st.chat_message(message["role"], avatar=message.get('avatar', None)):
st.markdown(message["content"])
prompt = st.chat_input("Say something:")
if prompt:
user_msg = {"role": "user", "content": prompt}
assistant_reply = generate_assistant_response() # 假设这是获取助手回复的方法
# 添加用户的消息到会话历史记录并附带自定义头像URL
st.session_state.messages.append({**user_msg, "avatar": "https://example.com/user_avatar.png"})
# 同样处理助理的消息
st.session_state.messages.append({
"role": "assistant",
"content": assistant_reply,
"avatar": "https://example.com/assistant_avatar.png"
})
render_chat()
```
上述代码展示了如何向每条消息附加一个可选的 `avatar` 字段,用于指明要使用的图像资源链接。当遍历这些消息进行展示时,将这个 URL 提供给 `st.chat_message()` 函数作为其第三个参数即可让特定用户的发言旁边显示出对应的图标[^4]。
阅读全文