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 모델, 자동화를 위한 프레임워크)는 scikit-learn, TensorFlow, PyTorch 또는 대규모 언어 모델을 포함한 어떤 훈련된 모델도 단일 명령어로 즉시 HTTP API로 제공할 수 있는 Python 라이브러리입니다. 모델(가중치 + 메타데이터)을 포터블한 .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 웨일로 설치 가능(특정 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용 네이티브 웨일이 제공되며, Rust 컴파일러 필요 없음.
일반적인 사용 사례
- 모델 오퍼레이션 – 훈련된 모델을 한 번만 패키징하고
.flm을 어떤 환경에도 배포해 즉시 프로덕션 수준 API를 시작. - LLM as a Service – 기존 도구(LangChain, OpenAI SDK)가 변경 없이 작동하도록 OpenAI 호환 엔드포인트 뒤에 LLM 배포.
- 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 기반 서비스와 에이전트가 호출할 수 있는 도구를 구축할 수 있는 기반도 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트