見出し画像

無料で始めるAIチャットボット:StreamlitとOllama Pythonライブラリで簡単構築

今回は、StreamlitとOllama Pythonライブラリを使用して、ローカルLLMを動かしてみます。

ChatGPT風の画面みたく、ユーザがPromptを入力して、クリックしたら、Ollama PythonライブラリでローカルLLMを操作して出力を得るコードとなります。

今回は、手順に従って行けば、誰で出来るようにしてあります。


最初に、OllamaとStreamlitライブラリをインストールします。

pip install ollama streamlit


次に、app.pyとして次のファイルを作成を作成します。

import streamlit as st
import ollama

# Streamlitアプリケーションのタイトル
st.title('Ollama Chatbot')

# ユーザの入力を受け取るテキストボックス
user_input = st.text_input('Enter your message:')

# ボタンがクリックされたときの処理
if st.button('Submit'):
    if user_input:
        # Ollamaのチャットを実行
        stream = ollama.chat(
            model='llama3',
            messages=[{'role': 'user', 'content': user_input}],
            stream=True,
        )

        # チャットのレスポンスを表示
        response_buffer = ""
        for chunk in stream:
            response_buffer += chunk['message']['content']
            # 適度に改行を入れて表示する
            if len(response_buffer) > 100:  # 100文字ごとに表示
                st.write(response_buffer)
                response_buffer = ""
        
        # 残りのバッファを表示
        if response_buffer:
            st.write(response_buffer)
    else:
        st.write('Please enter a message.')


実行します。

streamlit run app.py


http://localhost:8501を開くと、初期画面が表れます。

初期画面


今回は、プロンプトに「今日は休日ですが、外は暑いので、外出しようか迷っています。どうしたら良いか?日本語で回答してください。」と聞いてみます。

実行結果


今回は、ローカルLLMにはllama3を使用しています。

他にもOllamaは様々なローカルLLMが使えますので、コード内のmodelのところの記載のllama3を変更すれば可能です。

Ollamaで使用可能なモデルは、Ollamaのページに記載されていますので参考にしてみてください。


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?