프로젝트 소개

Launchstack은 AI 네이티브 애플리케이션을 구축하기 위한 TypeScript 엔진으로, 구성 요소들이 어떻게 함께 작동하는지 보여주는 Next.js 참조 앱과 함께 제공됩니다. 이 엔진은 수집, OCR, RAG, 지식 그래프, LLM 추상화 및 백그라운드 작업을 포함하며, 타입이 지정된 포트 뒤에 계층화된 패키지로 구성됩니다. 저장소 구조 이 저장소는 pnpm 워크스페이스이며 애플리케이션 자체가 아닙니다. 루트 수준 명령은 lint, typecheck, format 및 Changesets 스크립트로 제한되며, 패키지 명령은 --filter로 대상 지정해야 합니다. apps/web은 Next.js 호스트(UI, 인증, 명령 수락, 동기식 읽기)입니다. apps/worker는 수집 아웃박스를 소비하고 백그라운드 작업을 호스팅하는 지속적인 워크플로우 코디네이터입니다. apps/landing은 별도의 공개 마케팅 사이트이며 자체 호스팅 배포의 일부가 아닙니다. 엔진은 packages/protocol, evidence, application 및 adapters에 있으며, packages/core는 이들에 대한 호환성 퍼사드이고 packages/features는 수직 기능을 보유합니다. services/에는 워크스페이스가 아닌 컴퓨팅 서비스(Node 문서 변환기, Python 전사 및 문서 편집 서비스)가 포함됩니다. 아키텍처 Core는 호스트가 연결하는 포트를 노출하며, 기능은 해당 포트에만 의존하고 앱이나 프레임워크에 직접 접근하지 않습니다. 호스트는 환경, 인증 및 라우팅을 소유하고 스토리지(S3), 작업 디스패치(Inngest), 크레딧 및 RAG와 같은 포트를 구현합니다. createEngine(config)는 데이터베이스 풀을 열고 슬롯을 등록합니다. 여러 하위 시스템은 별도의 등록 호출을 통해 구성됩니다. 슬롯은 지연 읽기 방식이므로 첫 사용 전에 설정해야 합니다. 엔진 상태는 globalThis에 저장되어 Next.js HMR 재평가를 방지하지만 프로세스당 하나의 엔진을 의미합니다. ESLint는 core/features/host 가져오기 경계를 선언하고 CI가 이를 강제합니다. 엔진 패키지는 process.env를 읽지 않습니다. 실행 방법 요구 사항은 Node 20+ 및 pnpm 10.15.1입니다. Docker Compose가 권장 경로이며, 라이트 스택과 Docling을 추가하는 OCR 프로필이 있습니다. make 대상은 up, logs, down 및 볼륨 정리 down-clean을 포함합니다. Docker 없이 pgvector 확장이 있는 Postgres가 필요하며, 마이그레이션, 선택적 시드, Next.js 개발 서버, 워커 및 선택적으로 Inngest 개발 UI를 실행해야 합니다. 웹 개발 서버는 업로드를 수락하지만 아무것도 처리하지 않으므로 워커가 함께 실행되어야 하며, 그렇지 않으면 문서가 대기열에 남습니다. DATABASE_URL 및 BETTER_AUTH_SECRET은 부팅에 필요합니다. 채팅 구성 채팅은 OpenAI 채팅 완료 프로토콜을 구현하는 단일 엔드포인트에 도달하며, 기본적으로 GOOGLE_AI_API_KEY를 통해 Google Gemini의 OpenAI 호환 엔드포인트를 사용합니다. 다른 공급자는 CHAT_BASE_URL 및 선택적으로 CHAT_API_KEY를 설정하여 도달합니다. OPENAI_API_KEY 또는 OLLAMA_BASE_URL과 같은 공급업체별 변수는 채팅을 구성하지 않습니다. 일반 채팅, 추출, 추론 및 이미지를 처리하는 모델은 사전 설정과 경로가 있는 YAML 구성에서 선언됩니다. 동작은 모델 ID에서 추론되지 않으며, 특수 경로는 실패 시 닫힙니다. 채팅 구성은 임베딩, OCR, 전사, 재순위 지정 및 텍스트 음성 변환과 독립적입니다. 참조 앱 기능 앱은 워크스페이스별 역할, 폴더 수준 액세스, 초대 및 감사 로그가 있는 자사 인증을 보여줍니다. 여러 공급자를 통한 선택적 OCR이 있는 문서 업로드, PostgreSQL 및 pgvector 의미 검색, PII 필터, 근거 및 신뢰도 게이트를 포함한 가드레일이 있는 AI 채팅, 예측 문서 분석(8가지 문서 유형 정의, 요청 검증기는 현재 계약, 금융, 기술, 규정 준수 및 일반을 수락), Reddit, X, LinkedIn 및 Bluesky용 마케팅 파이프라인, Inngest 기반 백그라운드 작업 및 선택적 LangSmith 추적을 제공합니다. 수집 소스 파이프라인은 OAuth 없이 Notion, Google Docs/Sheets, Google Drive Takeout, Slack 및 GitHub에서 내보내기를 읽으며, 일급 PDF, DOCX, PPTX, XLSX, Markdown, HTML, 텍스트 및 이미지 어댑터와 함께 제공됩니다. 문서화된 주의 사항: ZipAdapter는 아카이브 내 항목에 대해 JSON 및 이미지 어댑터를 건너뛰므로 JSON의 ZIP으로 제공되는 Slack 내보내기는 페이지를 생성하지 않습니다. 자체 호스팅 및 상태 배포는 DEPLOYMENT_MODE=cloud가 아닌 한 자체 호스팅됩니다. 사용량은 기록되지만 제한되지 않으며, 텔레메트리나 CDN 자산이 로드되지 않고, 첫 번째 가입이 워크스페이스 소유자가 됩니다. 엔진 패키지는 아직 npm에 게시되지 않았습니다. 첫 번째 Changesets 릴리스까지 엔진은 저장소를 실행하여 사용됩니다. 프로젝트는 Apache-2.0 라이선스이며 기여를 환영하며, PR당 하나의 이슈와 엔진 변경에 대한 Changesets가 필요합니다.