Python 利用 streamlit 连接 ollama 实现简单的聊天功能

Title Python 利用 streamlit 连接 ollama 实现简单的聊天功能
Framework Python
User wy8817399@vip.qq.com
Id 32
Created 1/22/26, 10:34 AM
Modified 1/22/26, 10:34 AM
Published Yes
Content

1、创建Python文件,如:chat_demo.py

import streamlit as st
import ollama

# 连接ollama
try:
    client = ollama.Client(host='http://localhost:11434')
except Exception as e:
    st.error(f"连接 Ollama 服务失败,请确保 Ollama 已运行在 11434 端口。错误: {e}")
    st.stop()

# 2. 初始化会话状态,用于存储完整的对话历史
if 'message' not in st.session_state:
    st.session_state['message'] = []

# 添加标题
st.title("Timeless聊天机器人")

# 分割线
st.divider()

# 提示
prompt = st.chat_input("请输入")

if prompt:
    # 将用户提问添加到历史记录中
    st.session_state['message'].append({"role": "user", "content": prompt})

    # 历史提问保留
    for message in st.session_state['message']:
        st.chat_message(message['role']).markdown(message['content'])

    with st.spinner("思考中"):
        response = client.chat(
            model="deepseek-r1:14b",
            messages=[{"role": "user", "content": prompt}]
        )

        # 历史回答保留
        st.session_state['message'].append({"role": "assistant", "content": response['message']['content']})

        # 在页面中渲染AI回答
        st.chat_message("assistant").markdown(response['message']['content'])

 

2、运行

streamlitchat_demo.py