サイトアイコン アマチュア無線局JS2IIU

【Streamlit】OpenAI o3-miniを使ったチャットアプリ

こんにちは、JS2IIUです。
25年1月に公開されたOpenAIのo3-miniを試してみました。このモデルでは推論の機能も使える様になっています。今回もよろしくお願いします。

Just a moment...

o3-miniモデルの特徴

OpenAIのo3-miniは、軽量でありながら高い性能を持つチャットモデルです。以下の特徴があります。

本記事では、このo3-miniを活用し、Streamlit上で動作するシンプルなチャットアプリを実装します。

サンプルプログラム

https://js2iiu.com/wp-content/uploads/2025/03/o3-mini.mov

以下は、o3-miniを使用したチャットアプリのコードです。

Python
import os
import streamlit as st
from openai import OpenAI

client = OpenAI()

# OpenAI APIキーの設定
openai_api_key = os.environ["OPENAI_API_KEY"]

# Streamlit UIの構築
st.title("o3-mini チャットアプリ")
st.write("OpenAIのo3-miniモデルを使用したチャットアプリです。")

# ユーザー入力欄
user_input = st.text_area("あなた: ", "")

if user_input:
    # モデルからの応答を取得
    response = client.chat.completions.create(
        model="o3-mini",
        messages=[
            {"role": "assistant", "content": f"You are very helpful assistant."},
            {"role": "user", "content": user_input}
        ]
    )
    st.write(f"o3-mini: {response.choices[0].message.content}")

プログラムの解説

このプログラムはStreamlitを使用してOpenAIのo3-miniモデルと連携するシンプルなチャットアプリケーションです。以下にステップバイステップで詳細に解説します。

1. ライブラリのインポート

Python
import os
import streamlit as st
from openai import OpenAI

2. OpenAIクライアントの初期化

Python
client = OpenAI()

3. APIキーの設定

Python
openai_api_key = os.environ["OPENAI_API_KEY"]

4. Streamlit UIの構築

Python
st.title("o3-mini チャットアプリ")
st.write("OpenAIのo3-miniモデルを使用したチャットアプリです。")

5. ユーザー入力フォームの作成

Python
user_input = st.text_area("あなた: ", "")

6. 入力処理とAPIリクエスト

Python
if user_input:
    # モデルからの応答を取得
    response = client.chat.completions.create(
        model="o3-mini",
        messages=[
            {"role": "assistant", "content": f"You are very helpful assistant."},
            {"role": "user", "content": user_input}
        ]
    )
    st.write(f"o3-mini: {response.choices[0].message.content}")

参考

関連記事

生成AIに関する記事を集めてみました。似た様な記事ばかりになってしまいましたが、ぜひご覧ください!

【Streamlit】gemma-3-1b-ptモデルを使ったチャットアプリ | アマチュア無線局JS2IIU
https://js2iiu.com/2025/03/13/streamlit-gemma-3-1b-pt/

【Streamlit】「Sarashina2.2」でローカルLLMチャットアプリを作成する | アマチュア無線局JS2IIU
https://js2iiu.com/2025/03/08/streamlit-sarashina2-2/

【Streamlit】LangChainとGPT-4.5-preview を使ったチャットアプリ構築 | アマチュア無線局JS2IIU
https://js2iiu.com/2025/03/03/streamlit-langchain-gpt-4-5-preview/

【Streamlit】LangChainとClaude 3.7を活用したチャットアプリの構築 | アマチュア無線局JS2IIU
https://js2iiu.com/2025/03/03/streamlit-langchain-claude-3-7/

【Streamlit】LangSmithに対応したRAGチャットアプリ | アマチュア無線局JS2IIU
https://js2iiu.com/2025/02/25/streamlit-langsmith-rag/

【Streamlit】 LangChainを使ったPDFドキュメント対応RAGチャット | アマチュア無線局JS2IIU
https://js2iiu.com/2025/02/24/streamlit-langchain-pdf-rag/

【Streamlit】RakutenAI 2.0でチャットする | アマチュア無線局JS2IIU
https://js2iiu.com/2025/02/13/streamlit-rakutenai-20/

【Streamlit】LangChainでClaude 3.5 Haikuを使ったチャットアプリ | アマチュア無線局JS2IIU
https://js2iiu.com/2025/01/15/streamlit-langchain-claude-3-5-haiku/

【Streamlit】LangChainでGemini-1.5-Flashを使ったチャットアプリ | アマチュア無線局JS2IIU
https://js2iiu.com/2025/01/11/streamlit-langchain-gemini-1-5-flash/

【Streamlit】LangChainでGPT-4oを使ったチャットアプリ | アマチュア無線局JS2IIU
https://js2iiu.com/2025/01/11/streamlit-langchain/

【Streamlit】GPT-4oとストリーミングを使って自然なチャットを実現 | アマチュア無線局JS2IIU
https://js2iiu.com/2025/01/05/streamlit-gpt-4o-streaming/

【Streamlit】生成AIチャットアプリを構築しよう | アマチュア無線局JS2IIU
https://js2iiu.com/2025/01/05/streamlit-ai-chat/

最後に、書籍のPRです。

最新のOpenAIのチャットAPIの使い方もしっかりと解説されている良書です。2024年11月初版発行、「LangChainとLangGraphによるRAG・AIエージェント[実践]入門」西見、吉田、大嶋著。

最後まで読んでいただきありがとうございます。

モバイルバージョンを終了