📑
gpt-oss-20bでローカルチャットボットを作って試してみた
LM Studio連携チャットアプリケーション開発記録
ローカル環境でLLMを動かせる LM Studio を、ChatGPT風のWebアプリとして利用できるようにしました。
元々はコマンドラインで動く script.py
をベースに、Flask + HTML/CSS/JavaScript でWeb化しています。
背景
- LM StudioはローカルPC上でLLMを実行する
- ChatGPTのようにブラウザで直感的に使える形にしたい
- gpt-oss-20bで何かアプリを作成したい
LM Studioのダウンロードとgpt-oss-20のダウンロード
LM Studioからpythonで受け取るために下の赤い枠線内のローカルサーバーを起動するボタンをONに(開発者モードが必要かも)
ファイル構成
project/
├── app.py # Flaskバックエンド
├── static/
│ ├── style.css
│ └── script.js
├── templates/
│ └── index.html
└── requirements.txt
実装のポイント
pip install lmstudio
1. リアルタイムチャット
- APIエンドポイント
/api/chat
を用意 - セッションIDで会話履歴を保持
- Enterで送信、Shift+Enterで改行
2. 応答処理
LM Studioの出力には特殊タグが含まれるため、正規表現で除去。
例:
<|channel|>final<|message|>こんにちは!
→ こんにちは!
のみ抽出。
API仕様
メソッド | エンドポイント | 説明 |
---|---|---|
POST | /api/chat |
メッセージ送信 & 応答取得 |
GET | /api/history/<session_id> |
会話履歴取得 |
POST | /api/clear/<session_id> |
履歴クリア |
アプリケーションフロー
-
python app.py
でFlaskサーバー起動 - ブラウザから
http://127.X.X.X:XXXX
にアクセス - メッセージ送信
- LM Studioが応答生成(またはダミーモード)
- 履歴に追加し表示
セットアップ手順
- 仮想環境作成(任意)
- 依存関係インストール
pip install flask flask-cors lmstudio
- LM Studioでモデル読み込み&起動
- アプリ起動
python app.py
- ブラウザでアクセス
http://127.X.X.X:XXXX
- 実行様子
まとめ
CLIだけで動かしていたLM Studioも、Web化することで直感的に利用できるようになりました。
最初に触ってみたとき、「ローカルでGPTが動く」という事実にまず驚きました。
実行中はPCがかなり頑張っているのを感じますが、それでも自分の手元でLLMが動いている体験は新鮮です。
そして、これを誰でも無料で利用できる形で提供しているGPT,GeminiなどのチャットボットやWebサービスの凄さも改めて実感しました。
Discussion