こんにちは、JS2IIUです。
25年1月に公開されたOpenAIのo3-miniを試してみました。このモデルでは推論の機能も使える様になっています。今回もよろしくお願いします。
o3-miniモデルの特徴
OpenAIのo3-miniは、軽量でありながら高い性能を持つチャットモデルです。以下の特徴があります。
- 高い推論能力: 数学、コーディング、科学などの分野での問題解決能力が向上。
- 軽量で高速: GPT-4oに比べて計算コストが低く、応答速度が速い。
- チャット専用モデル:
v1/chat/completionsエンドポイントを利用し、自然な会話を実現。 - API対応: OpenAIのAPIを利用して簡単に組み込むことが可能。
本記事では、このo3-miniを活用し、Streamlit上で動作するシンプルなチャットアプリを実装します。
サンプルプログラム
以下は、o3-miniを使用したチャットアプリのコードです。
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. ライブラリのインポート
import os
import streamlit as st
from openai import OpenAIos: 環境変数にアクセスするためのモジュールstreamlit: Webアプリケーションを簡単に作成するためのライブラリOpenAI: OpenAI APIと通信するためのクライアントライブラリ
2. OpenAIクライアントの初期化
client = OpenAI()- OpenAIクライアントのインスタンスを作成します。
3. APIキーの設定
openai_api_key = os.environ["OPENAI_API_KEY"]- 環境変数から「OPENAI_API_KEY」を取得しています。
4. Streamlit UIの構築
st.title("o3-mini チャットアプリ")
st.write("OpenAIのo3-miniモデルを使用したチャットアプリです。")- アプリケーションのタイトルと説明文を設定しています。
5. ユーザー入力フォームの作成
user_input = st.text_area("あなた: ", "")- ユーザーが入力できるテキストエリアを作成します。
- 「あなた: 」というラベルと、デフォルトでは空の入力欄を表示します。
6. 入力処理とAPIリクエスト
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}")- ユーザーが何か入力した場合のみ処理を実行します。
- OpenAIのAPIに対してリクエストを送信します。
model="o3-mini": 使用するモデルを指定します。messages: 会話の履歴を構造化したリストで、AIの役割設定と実際のユーザー入力を含みます。- 最初のメッセージはAIの役割を指定(「You are very helpful assistant.」)
- 2番目のメッセージはユーザーの入力内容
- 応答が得られたら、「o3-mini: 」というプレフィックスを付けて画面に表示します。
参考
関連記事
生成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エージェント[実践]入門」西見、吉田、大嶋著。
最後まで読んでいただきありがとうございます。


コメント