vortico/flama
The production framework for Predictive and Generative AI. Serve any model as an API in one line, with OpenAI/Anthropic/Ollama-compatible endpoints, a built-in chat UI, and native MCP.
Flama – 予測および生成AI向けの本格的なフレームワーク
何であるか – Flama(軽量アプリケーション、AIモデル、自動化用フレームワーク)は、Pythonライブラリであり、scikit-learn、TensorFlow、PyTorch、または大規模言語モデルを含む任意のトレーニング済みモデルを、単一のコマンドで即座にHTTP APIとして提供できるようにします。モデル(重み + メタデータ)をポータブルな .flm アーティファクトにパッケージ化し、高速なリクエスト処理を実現するRustバックエンドのサーバーを実行し、必要に応じてAIエージェントがツールを発見・呼び出せるように、モデルコンテキストプロトコル(MCP)を介して公開します。
コアアイデア
| アイデア | あなたに与えるもの |
|---|---|
| 1ファイルのモデルアーティファクト | .flm は重み、フレームワーク情報、ハイパーパラメータ、およびオプションのメトリクスをバンドルします。同じファイルは、Linux(vLLM)、Apple Silicon(MLX)、またはサポートされている任意のバックエンドで変換なしに利用可能です。 |
| コードゼロでの提供 | flama dump でアーティファクトを作成し、flama serve(または設定ファイル付きの flama start)で、OpenAPI互換サービスを即座に起動します。 |
| 統一されたAPI表面 | 予測(/model/predict)と生成(/query, /stream, /chat)のエンドポイントが自動生成されます。 |
| マルチダイアレクト互換性 | サーバーは同時にOpenAI、Anthropic、Ollama互換ルートを公開でき、既存のクライアントライブラリがモデルと変更なしに通信できます。 |
| Rust駆動のコア | ルーティング、JSONエンコード、圧縮、リクエスト解析はネイティブコードにコンパイルされ、低遅延を実現します。一方、純粋なPython wheelとしてインストール可能(Rustツールチェーン不要)。 |
| MCP統合 | 簡単な @app.mcp.tool デコレータで、任意のPython関数をAIエージェント(Claude、Copilot、カスタムボット)がJSONスキーマ(型ヒントから導出)を介して発見できるツールに変換できます。 |
| 完全なAPIフレームワーク | モデル提供に加え、CRUDリソース、依存性注入、スキーマ検証(Pydantic/Typesystem/Marshmallow)、JWT認証、バックグラウンドタスク、ページネーション、DDDスタイルのパターンを含みます。 |
クイックスタート(予測モデル)
import flama
from sklearn.neural_network import MLPClassifier
model = MLPClassifier(activation="tanh", hidden_layer_sizes=(10,))
# … モデルを訓練する …
flama.dump(model, family="ml", path="model.flm", metrics={"accuracy": 0.947})
# 提供する
flama serve --model file=model.flm,url=/model,name=my_model
作成されたエンドポイント
GET /schema/– OpenAPI記述POST /model/predict/– JSONエンコードされた推論/docs/– Swagger UI
クイックスタート(生成モデル)
pip install "flama[llm,pydantic]"
# 1️⃣ HuggingFaceからLLMをダウンロードしてパッケージ化
flama get --family llm --source huggingface mlx-community/gemma-4-E2B-it-qat-4bit
# 2️⃣ サーバーなしでローカルで試す
echo "What is Flama?" | flama model mlx-community_gemma-4-E2B-it-qat-4bit.flm stream --system "Be concise."
# 3️⃣ HTTP経由で提供(/chat/にストリーミングチャットUIを含む)
flama serve --model file=mlx-community_gemma-4-E2B-it-qat-4bit.flm,url=/,name=gemma
同じ .flm は vLLM(CUDA)または MLX(Apple Silicon)で実行可能。Flamaはロード時にバックエンドを自動選択します。
インストール
pip install flama # コア
pip install "flama[pydantic]" # スキーマ検証(オプション)
pip install "flama[database]" # SQLAlchemyリソース(オプション)
pip install "flama[llm]" # 生成AIサポート(vLLM/MLX)
pip install "flama[full]" # すべて
Linux、macOS、WindowsでPython 3.10〜3.14用のネイティブwheelが提供されており、Rustコンパイラは不要です。
一般的な利用例
- モデルオペレーション – トレーニング済みモデルを一度パッケージ化し、
.flmを任意の環境に配布して、即座に本格的なAPIを起動。 - LLM as a Service – OpenAI互換エンドポイントの背後でLLMをデプロイし、既存のツール(LangChain、OpenAI SDK)が変更なしに動作。
- AI強化ツール – カスタムPythonユーティリティをMCPツールとして公開。エージェントが会話中に呼び出せる。
- マルチモデル提供 –
flama.json設定ファイルに複数のモデルを定義し、単一コンテナ内で同時に実行。 - CI駆動のプロモーション – CIで
.flmファイルの埋め込みメトリクスを検査し、サーバーを起動せずにリリースを制御。
エコシステムと拡張性
- CLI – パッケージング(
flama dump)、HuggingFaceからの取得(flama get)、メタデータの検査、オフライン推論の実行、サービスの起動用コマンド。 - プラグインシステム – カスタムリソース、認証、バックグラウンドワーカー用のコンポーネントを登録可能。
- ドキュメントと例 – 完全なドキュメントは https://flama.dev、カスタマイズされた例リポジトリ(vortico/flama-examples)では予測AI、生成AI、ドメイン駆動設計をカバー。
- Dockerイメージ – 公式イメージ(例:
vortico/flama:latest-python3.12-pydantic)にはRustコアと必要な拡張機能が含まれており、DockerfileはFROM行とモデルファイルのコピーだけで十分。
ライセンス
Apache 2.0 – 商用およびオープンソース利用に無料。
結論 – Flamaは、データサイエンティストやエンジニアがトレーニング済みモデルから数分で本格的でマルチプロトコル対応のAPIに移行できるだけでなく、より洗練されたAI対応サービスやエージェントが呼び出せるツールの構築基盤も提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト