先日、GPUを搭載したPCにubuntuをインストールしました。このPCにローカルLLMの実行ツールであるollamaをインストールし、streamlitでLLMを使ったチャットアプリが作れるかどうかを試してみました。今後ツールも試すかもしれないので、モデルとしてはllama3-groq-tool-use:8bを使うことにしました。
今回はPythonのバージョン3.12を使用します。まずは必要なパッケージをインストールします。
pip install streamlit
pip install langchain
pip install langchain-ollama
ソースコードは以下の通り。
import streamlit as st
from langchain_ollama import ChatOllama
from langchain.schema import HumanMessage
st.title("langchain-streamlit-app")
if "messages" not in st.session_state:
st.session_state.messages = []
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
prompt = st.chat_input("What is up?")
if prompt:
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.markdown(prompt)
with st.chat_message("assistant"):
chat = ChatOllama(
base_url="http://localhost:11434",
model="llama3-groq-tool-use:8b",
temperature = 0
)
messages = [HumanMessage(content=prompt)]
response = chat(messages)
st.markdown(response.content)
st.session_state.messages.append({"role": "assistant", "content": response.content})
以下のようにして起動します。
streamlit run app.py --server.port 8080
ブラウザからアクセスみたところ、あっさり動きました。結構レスポンスも速いです。ただ、回答が英語になってしまったり、それなりに知識が必要な試験問題やなぞなぞ的なものには答えられないようです。モデルの規模が8bと小さく、しかもツール向けモデルなので一般的な質問への対応力が低いのかもしれません。

ちなみにMicrosoftのCopilotだといずれも正解でした。やはりすごいですね。
コメント