Python结合ollama和stramlit开发聊天机器人
一、环境准备
1、streamlit安装
bash
# 通过 pip 安装
pip install streamlit
# 验证安装
streamlit hello
运行应用:
bash
streamlit run main.py
如果运行不成功,可以带上Python版本运行
bash
python3.13 -m streamlit run main.py
浏览器会自动打开 http://localhost:8501 显示应用。
2、langchain安装
参考下面的文章
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
3、ollama的安装
参考下面
文章
mac ollama install
二、Ollama平台聊天机器人实现
1、需求
构建一个基于大模型的本地智能聊天机器人。该聊天机器人将集成先进的大规模预训练语言模型(如GPT、Qwen等),具备自然语言理解、多轮对话、情感分析、知识问答等核心功能。
项目采用模块化设计,前端通过Streamlit框架实现简洁易用的交互界面,后端基于Ollama等平台进行模型部署和管理,确保系统的高效性和可扩展性。
2、模型调用
python
import ollama
# 接收用户输入的提示词
def get_response(prompt):
# 指定模型,传递角色 和提示词
response = ollama.chat(
model="qwen2:0.5b",
messages=[
{
"role": "user",
"content": prompt,
},
],
)
return response.message.content
3、前端实现
页面呈现
页面:
代码实现
python
"""
该模块用于充当聊天机器人的前端模块,
接收用户输入的问题,调用chat_utils模块,获取回复,
通过streamlit模块,将回复并显示给用户
"""
# streamlit库:python 代码实现前端页面开发并部署
import streamlit as st
# 聊天机器人核心模块
# ConversationBufferMemory存储聊天机器人的会话记录
from langchain.memory import ConversationBufferMemory
import chat_utils
# 标题
st.title("zeoy's chat robot")
# 判断是否有历史聊天记录数据,如果没有就创建,并存储所有记录消息
# st.session_state存储会话状态,用于存储会话数据
if "history" not in st.session_state:
# 创建一个conversationBufferMemory对象,用于存储会话记录
st.session_state.memory = ConversationBufferMemory()
# 添加聊天机器人的欢迎语句
st.session_state.message = [
{"role": "assistant", "content": "welcome to zeoy's chat robot."}
]
# 遍历session_state.message列表,
for message in st.session_state.message:
# 聊天消息 显示当前角色内容
with st.chat_message(message["role"]):
st.markdown(message["content"])
# 接收用户录入的内容
promt = st.chat_input("请输入你要咨询的问题")
# 判断用户输入的内容是否为空
if promt:
# 显示用户输入的内容
st.session_state.message.append({'role': 'user', 'content': promt})
st.chat_message('user').markdown(promt)
# 获取机器人的回复
response = chat_utils.get_response(promt)
# 显示机器人的回复
with st.chat_message("assistant"):
st.markdown(response)
# 将用户输入的内容和机器人的回复添加到session_state.message列表中
st.session_state.message.append(
{'role': 'assistant', 'content': response}
)
三、详细代码地址
github:https://github.com/zeoyzhaogithub/AI-ChatBot