🎉
Sakura AI × Streamlit で作る“国内LLMチャットアプリ”──GPT-OSS 120Bで安全・高速な対話UIを構築する
はじめに
ルミナイR&Dチームの 宮脇彰梧 です。
普段はマルチモーダルAIの研究に取り組んでいます。
本記事では、
Sakura AI(GPT-OSS 120B)を利用した「国内LLMチャットアプリ」を Streamlit で構築する
という 最小で最強のLLMアプリケーション を作ります。
🔍 本記事で学べること
- Sakura AI API(GPT-OSSモデル)の基礎
-
.envを使った安全なトークン管理 - StreamlitでのチャットUI実装
- 履歴管理(conversation memory)
- OpenAI互換APIを使うメリット
- 無料枠が豊富なので、とにかく大量に試せる
🎯 結論
Sakura AI × Streamlit の組み合わせは
国内データで安全に使える LLM チャットアプリを最速で構築できる。
しかも 無料枠がかなり豊富なので、
PoC(実証実験)やプロトタイプを何度も回せる。
1. まずは環境構築
さくらインターネットのAPI取得
- さくらのAI Engineこのサイトにアクセス
- プランから基盤モデル無償プランを選択
- APIキーを取得
Pipインストールと.envの準備
pip install streamlit requests python-dotenv
.env を準備:
SAKURA_TOKEN=あなたのAPIキー
プロジェクト構成:
project/
├── app.py
├── sakura_client.py
└── .env
2. Sakura AI クライアント(sakura_client.py)
OpenAI互換なのでコードは非常にシンプルです。
# sakura_client.py
import os
import requests
from dotenv import load_dotenv
load_dotenv()
API = "https://api.ai.sakura.ad.jp/v1/chat/completions"
TOKEN = os.getenv("SAKURA_TOKEN")
if not TOKEN:
raise RuntimeError("SAKURA_TOKENが設定されていません")
HEADERS = {
"Content-Type": "application/json",
"Authorization": f"Bearer {TOKEN}"
}
def sakura_chat(messages, model="gpt-oss-120b"):
payload = {
"model": model,
"messages": messages
}
res = requests.post(API, headers=HEADERS, json=payload)
res.raise_for_status()
data = res.json()
return data["choices"][0]["message"]["content"]
3. Streamlit のチャット UI(app.py)
最小で動くチャット画面を構築します。
# app.py
import streamlit as st
from sakura_client import sakura_chat
st.set_page_config(page_title="Sakura AI Chat", page_icon="💬")
st.title("💬 Sakura AI × Streamlit — 国内LLMチャットアプリ")
if "history" not in st.session_state:
st.session_state.history = [
{"role": "system", "content": "あなたは親切なAIアシスタントです。"}
]
# 入力欄
user_input = st.text_input("質問を入力してください")
if st.button("送信", type="primary"):
if user_input.strip():
st.session_state.history.append({"role": "user", "content": user_input})
response = sakura_chat(st.session_state.history)
st.session_state.history.append({"role": "assistant", "content": response})
else:
st.warning("テキストを入力してください!")
# チャットの描画
for message in reversed(st.session_state.history):
role = message["role"]
if role == "user":
st.chat_message("user").write(message["content"])
elif role == "assistant":
st.chat_message("assistant").write(message["content"])
# 履歴クリア
if st.button("履歴をクリア"):
st.session_state.history = [
{"role": "system", "content": "あなたは親切なAIアシスタントです。"}
]
4. 動作確認
streamlit run app.py
ブラウザが開き、
ChatGPTのように使える Sakura AI のチャット UI が完成します。
5. 触ってみて感じたこと(筆者の考察)
🔹 Sakura AI の良さ
- 国内クラウドなので安心
- API が完全 OpenAI 互換
- GPT-OSS120B の回答品質は実務でも十分
- 無料枠がめちゃくちゃ大きい(本当にありがたい)
🔹 Streamlit との相性
- UIを数行で作れるので PoC に最適
- 非エンジニアにもすぐ触ってもらえる
- “まず形にする” という点で最強コンビ
6. まとめ
- Sakura AI × Streamlit の組み合わせで 国内向けチャットアプリ が秒でできる
- コードはわずか 2ファイル
- OpenAI互換なので開発が簡単
- 無料枠が多く、検証を大量に回せる
- PoC → デモ → 社内導入 の第一歩として非常に優秀
執筆:宮脇 彰梧(ルミナイ株式会社 / Lluminai)
参考コード: GitHub
【現在採用強化中です!】
- AIエンジニア
- PM/PdM
- 戦略投資コンサルタント
▼代表とのカジュアル面談URL
Discussion