Streamlit 和 Streamlit_chat
Streamlit 是一個開源框架,使開發(fā)人員能夠快速構建和共享用于機器學習和數據科學項目的交互式 Web 應用程序。它還提供了一系列小部件,只需要一行 Python 代碼即可創(chuàng)建,例如st.table(…)
。對于我們創(chuàng)建一個簡單的用于私人使用的聊天機器人網站來說,Streamlit 是一個非常合適的庫,它還提供了第三方 Streamlit_chat 庫,進一步方便我們生成“聊天式” Web 應用程序,因為我們不需要寫大量的 HTML 元素和 CSS 內容。
Streamlit是時下比較熱門的一個基于Python的Web應用程序框架,它可以在幾分鐘內將數據轉化為可共享的Web應用程序,無需前端開發(fā)經驗,使用純Python代碼實現,簡單且高效。
ChatGPT(LLM)是目前非?;鸬腛penAI公司開發(fā)的聊天機器人模型,它無所不知就像一本大百科全書,它可以幫你做很多繁雜的日常工作,比如可以代你寫文章,代你做excel表格,甚至代你寫代碼。今天我們要將兩者結合起來開發(fā)一個基于web的應用聊天小程序。
我們需要在python環(huán)境中安裝openai和streamlit的第三方python包,可以通過在命令行窗口中安裝這些包:
pip install openai
pip install streamlit
pip install streamlit_chat
聊天機器人接口參數說明
model: 模型名詞
prompt:對機器人提出的問題
temperature:溫度參數,該參數控制生成文本的隨機性級別。較高的溫度參數會導致更多變化且可能不太連貫的響應,而較低的t溫度參數會產生更可預測且可能更連貫的響應。
max_tokens:應答語句的長度?
?
創(chuàng)建聊天Python代碼文件
我們需要創(chuàng)建一個用于聊天的streamlit的代碼文件 chat_bot.py
# chat_bot.py
import openai
import streamlit as st
from streamlit_chat import message
# 申請的api_key
# openai.api_key = "xxxxxxxxxxxxxxxxx"
# 使用本地llama_cpp_python啟動了下local LLM API
openai.api_base = "http://localhost:8000/v1" # point to the local server
openai.api_key = "" # no need for an API key
if 'prompts' not in st.session_state:
st.session_state['prompts'] = [{"role": "system", "content": "您是一個樂于助人的助手。盡量簡潔明了地回答問題,并帶有一點幽默表達。"}]
if 'generated' not in st.session_state:
st.session_state['generated'] = []
if 'past' not in st.session_state:
st.session_state['past'] = []
def generate_response(prompt):
st.session_state['prompts'].append({"role": "user", "content": prompt})
completion = openai.ChatCompletion.create(
model="local-model",
messages=st.session_state['prompts'],
max_tokens=1024,
temperature=0.6
)
message = completion.choices[0].message.content
return message
def end_click():
st.session_state['prompts'] = [{"role": "system", "content": "您是一個樂于助人的助手。盡量簡潔明了地回答問題,并帶有一點幽默表達。"}]
st.session_state['past'] = []
st.session_state['generated'] = []
st.session_state['user'] = ""
def chat_click():
if st.session_state['user'] != '':
chat_input = st.session_state['user']
output = generate_response(chat_input)
st.session_state['past'].append(chat_input)
st.session_state['generated'].append(output)
st.session_state['prompts'].append({"role": "assistant", "content": output})
st.session_state['user'] = ""
st.title("我的聊天機器人")
user_input = st.text_input("輸入:", key="user")
chat_button = st.button("發(fā)送", on_click=chat_click)
end_button = st.button("新聊天", on_click=end_click)
if st.session_state['generated']:
for i in range(0, len(st.session_state['generated']), 1):
message(st.session_state['past'][i], is_user=True)
message(st.session_state['generated'][i], key=str(i))
啟動Streamlit
?我們需要在命令行窗口執(zhí)行啟動streamlit的命令:
streamlit run chat_bot.py
輸入啟動streamlit命令后,會彈出瀏覽器, 如果沒有彈出瀏覽器可以自行打開瀏覽器并輸入上圖中的url地址,接下來就可以開始和ChatGPT聊天了:
?
參考資料
Streamlit documentation文章來源:http://www.zghlxwxcb.cn/news/detail-793154.html
如何使用 Streamlit 和 OpenAI GPT-3.5 創(chuàng)建實用且強大的聊天機器人 (apifox.com)
文章來源地址http://www.zghlxwxcb.cn/news/detail-793154.html
到了這里,關于[LLM]Streamlit+LLM(大型語言模型)創(chuàng)建實用且強大的Web聊天機器人的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!