ollamaでチャットアプリを作ってみる

先日、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だといずれも正解でした。やはりすごいですね。

コメント

Copied title and URL