Python結合ollama和stramlit開發聊天機器人
- 一、環境準備
- 1、streamlit安裝
- 2、langchain安裝
- 3、ollama的安裝
- 二、Ollama平臺聊天機器人實現
- 1、需求
- 2、模型調用
- 3、前端實現
- 頁面呈現
- 代碼實現
- 三、詳細代碼地址
- 四、參考資源
一、環境準備
1、streamlit安裝
# 通過 pip 安裝
pip install streamlit# 驗證安裝
streamlit hello
運行應用:
streamlit run main.py
如果運行不成功,可以帶上Python版本運行
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、模型調用
import ollama# 接收用戶輸入的提示詞
def get_response(prompt):# 指定模型,傳遞角色 和提示詞response = ollama.chat(model="qwen2:0.5b",messages=[{"role": "user","content": prompt,},],)return response.message.content
3、前端實現
頁面呈現
訪問地址
頁面:
代碼實現
"""
該模塊用于充當聊天機器人的前端模塊,
接收用戶輸入的問題,調用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
四、參考資源
官方文檔: https://docs.streamlit.io/
示例庫: https://streamlit.io/gallery