|
|
||
|---|---|---|
| .. | ||
| README.md | ||
| requirements.txt | ||
| server.py | ||
README.md
Ponshu Room AI Proxy Server
概要
Ponshu Room Liteアプリのバックエンドプロキシサーバー。Gemini APIへのリクエストを中継し、以下の機能を提供します:
主な機能
-
APIキー保護
- アプリにAPIキーを埋め込まない
- サーバー側で環境変数として管理
-
デバイスID認証
- SHA256ハッシュ化されたデバイスIDで認証
- 未登録デバイスのアクセスを制限可能(将来実装)
-
レート制限
- 1デバイスあたり1日10回まで(Lite版)
- Pro版では無制限に拡張可能
-
使用状況ログ
- JSON形式で使用履歴を記録
- 30日以上前のデータは自動削除
技術スタック
- 言語: Python 3.11
- フレームワーク: FastAPI
- HTTPクライアント: httpx
- デプロイ: Docker
エンドポイント
GET /
ヘルスチェック
GET /health
詳細なヘルスチェック(APIキー設定状況など)
POST /analyze
日本酒ラベル画像を解析
リクエスト:
{
"device_id": "sha256ハッシュ(64文字)",
"images": ["base64エンコードされた画像1", "画像2", ...],
"prompt": "カスタムプロンプト(オプション)"
}
レスポンス:
{
"success": true,
"data": {
"name": "獺祭 純米大吟醸",
"brand": "旭酒造",
"prefecture": "山口県",
...
},
"usage": {
"today": 3,
"limit": 10
}
}
GET /usage/{device_id}
デバイスの使用状況を取得
環境変数
| 変数名 | 説明 | デフォルト |
|---|---|---|
GEMINI_API_KEY |
Gemini API Key | (必須) |
GEMINI_MODEL |
使用するモデル | gemini-1.5-flash |
RATE_LIMIT_PER_DAY |
1日あたりの制限 | 10 |
データ保存
- 使用状況:
/app/data/usage.json - 30日以上前のデータは自動削除
セキュリティ
- デバイスIDはSHA256ハッシュ化されたもののみ受け入れ
- CORS設定でオリジン制限可能
- APIキーは環境変数で管理(コードに埋め込まない)
ローカルでのテスト
# 依存関係インストール
pip install -r requirements.txt
# 環境変数設定
export GEMINI_API_KEY="YOUR_API_KEY"
# サーバー起動
python server.py
http://localhost:8080 でアクセス可能