KitchenAI
<p align="center">
<img src="https://raw.githubusercontent.com/epuerta9/kitchenai/HEAD/docs/_static/images/logo.png" alt="KitchenAI" width="100" height="100">
</p>
KitchenAI는 AI 구현을 위한 제어 평면(control plane)입니다. 애플리케이션 개발자와 AI 팀 사이의 격차를 해소하도록 설계되었습니다. 당사의 플랫폼은 느슨하게 결합되고 모듈화된 아키텍처로 AI 통합을 단순화하며, 생산 수준의 신뢰성을 제공하는 동시에 팀이 가장 잘 하는 일에 집중할 수 있도록 합니다.
🚀 빠른 시작 (Quick Start)
🌟 KitchenAI만의 특징 (What Makes KitchenAI Unique)
모듈형 아키텍처 (Modular Architecture)
- 벤토 박스(Bento Boxes): AI 워크플로우를 복잡한 로직을 캡슐화하는 독립적인 "벤토 박스"로 패키징합니다.
- 유연성 (Flexibility): 전체 시스템을 중단시키지 않고 개별 모듈을 업데이트, 교체 또는 확장할 수 있습니다.
- 명확한 분리 (Clear Separation): AI 팀이 재현 가능하고 교체가 가능한 공간에서 고급 로직을 구축하도록 하고, 앱 개발자는 간단하고 안정적인 API를 누릴 수 있게 합니다.
- NATS 기반:
- AI 모듈 간의 초고속, 신뢰할 수 있는 통신
- 동적 서비스 검색 및 라우팅
- 분산 환경에서 이벤트 기반 워크플로우에 대한 강력한 지원
프레임워크 비종속성 (Framework Agnostic)
- 플러그 앤 플레이 (Plug & Play):
- 공급업체 종속성(vendor lock-in) 없음—모든 AI 프레임워크나 모델과 통합 가능
- LangChain, LlamaIndex 및 사용자 정의 구현에 대한 네이티브 지원
- 유연한 통합 옵션으로 AI 인프라를 미래 지향적으로 만듭니다.
🛠️ 작동 방식 (How It Works)
KitchenAI의 3계층 아키텍처는 AI 워크플로우 관리를 쉽게 만듭니다:
-
애플리케이션 계층 (Application Layer):
사용자의 비즈니스 애플리케이션은 간단하고 통합된 API를 호출합니다 (OpenAI의 Chat Completions 사용과 유사함).
-
NATS 메시징 계층 (NATS Messaging Layer):
이것은 메시지를 라우팅하고 서비스를 동적으로 발견하는 고성능 백본(backbone)입니다.
-
벤토 박스 계층 (Bento Boxes Layer):
AI 팀이 복잡한 로직(LLM 로직, RAG, 에이전트 또는 사용자 정의 워크플로우 등)을 구축하는 모듈식 AI 구현체입니다.
애플리케이션 개발자를 위한 가이드
코드는 깨끗하고 간단하게 유지됩니다:
response = await openai_client.chat.completions.create(
model="@llama-index-agents/query",
...
AI 팀을 위한 가이드
강력한 AI 코드를 구축하는 데 집중하세요:
@kitchen.query.handler("query")
async def query_handler(data: WhiskQuerySchema) -> WhiskQueryBaseResponseSchema:
...
제어 평면 자체 호스팅 (Self hosting the control plane)
KitchenAI는 자체 호스팅이 가능하도록 설계되었습니다. 제어 평면(control plane)과 벤토 박스들을 분리하여 배포할 수 있습니다.
- KitchenAI 리포지토리를 클론합니다:
git clone https://github.com/epuerta9/kitchenai.git
- 제어 평면 및 종속성을 실행합니다:
- 미디어용 버킷 생성. KitchenAI는 미디어를 위해 S3를 사용합니다. 로컬 개발의 경우, compose 파일에 minio 컨테이너가 포함되어 있습니다. 이 작업은 처음 한 번만 수행하면 됩니다.
minio 컨테이너에 로그인하여 kitchenai라는 이름의 버킷을 생성해야 합니다.
엔드포인트: http://localhost:9001
사용자명: minioadmin
비밀번호: minioadmin
버킷 이름: kitchenai
- 이 데모를 사용하여 벤토 박스를 실행합니다 demo notebooks
설정 (Settings)
사용 가능한 환경 변수:
OPENAI_API_KEY: ${OPENAI_API_KEY}
DEBUG: "False"
KITCHENAI_LOCAL: "False"
...
📚 문서 (Documentation)
🛠️ 주요 기능
- 버전 관리 및 롤백 (Version Control & Rollback): 필요한 경우 안전하게 반복하고 되돌릴 수 있습니다.
- 모니터링 및 관측 가능성 후크 (Monitoring & Observability Hooks): 좋아하는 도구와 통합할 수 있습니다.
- 플러그인 생태계 (Plugin Ecosystem): 추가 기능을 통해 KitchenAI를 확장할 수 있습니다.
- 보안 통합 (Security Integrations): 프로덕션 등급의 모범 사례로 설계되었습니다.
🙋♂️ 베타 참여하기!
KitchenAI는 아직 베타 버전입니다. 초기 사용자분들이 플랫폼을 형성하는 데 도움을 주셔서 기쁩니다.
🔗 빠른 링크
📄 라이선스
KitchenAI는 Apache 2.0 License 하에 공개되었습니다.
🙋♂️ 지원 및 커뮤니티
<p align="center">
KitchenAI 팀에서 ❤️를 담아 제작했습니다.
</p>