इस प्रोजेक्ट के बारे में

Launchstack AI-नेटिव एप्लिकेशन बनाने के लिए एक TypeScript इंजन है, जिसके साथ एक Next.js संदर्भ ऐप भेजा जाता है जो दर्शाता है कि सभी हिस्से कैसे एक साथ फिट होते हैं। इंजन अंतर्ग्रहण, OCR, RAG, एक नॉलेज ग्राफ, LLM अमूर्तन और बैकग्राउंड जॉब्स को कवर करता है, जो टाइप्ड पोर्ट्स के पीछे स्तरित पैकेजों के रूप में व्यवस्थित हैं। रिपॉज़िटरी लेआउट रिपो एक pnpm वर्कस्पेस है, स्वयं कोई एप्लिकेशन नहीं; रूट-स्तरीय कमांड lint, typecheck, format और Changesets स्क्रिप्ट तक सीमित हैं, और पैकेज कमांड को --filter के साथ लक्षित करना होता है। apps/web Next.js होस्ट है (UI, auth, कमांड स्वीकृति, सिंक्रोनस रीड्स)। apps/worker वह टिकाऊ वर्कफ़्लो समन्वयक है जो अंतर्ग्रहण आउटबॉक्स को उपभोग करता है और बैकग्राउंड जॉब्स को होस्ट करता है। apps/landing अलग सार्वजनिक मार्केटिंग साइट है और सेल्फ-होस्टेड डिप्लॉयमेंट का हिस्सा नहीं है। इंजन packages/protocol, evidence, application और adapters में रहता है, जिसमें packages/core उनके ऊपर एक संगतता फ़साड है, और packages/features वर्टिकल फ़ीचर्स रखता है। services/ में गैर-वर्कस्पेस कंप्यूट सेवाएँ हैं (एक Node दस्तावेज़ कन्वर्टर, साथ ही Python ट्रांसक्रिप्शन और docs-editing सेवाएँ)। आर्किटेक्चर Core ऐसे पोर्ट्स उजागर करता है जिन्हें होस्ट वायर करता है; फ़ीचर्स केवल उन पोर्ट्स पर निर्भर करते हैं और कभी ऐप या फ्रेमवर्क में प्रवेश नहीं करते। होस्ट पर्यावरण, auth और रूटिंग का स्वामी है और storage (S3), job dispatch (Inngest), credits और RAG जैसे पोर्ट्स को लागू करता है। createEngine(config) डेटाबेस पूल खोलता है और स्लॉट्स रजिस्टर करता है; कई सबसिस्टम अलग रजिस्ट्रेशन कॉल्स के माध्यम से कॉन्फ़िगर किए जाते हैं। स्लॉट्स आलसी रूप से पढ़े जाते हैं, इसलिए उन्हें पहले उपयोग से पहले सेट करना होता है। इंजन स्टेट globalThis पर संग्रहीत होती है, जो Next.js HMR पुनर्मूल्यांकन से बचाती है लेकिन इसका मतलब है कि प्रति प्रोसेस एक इंजन। ESLint core/features/host आयात सीमाओं की घोषणा करता है और CI उन्हें लागू करता है; इंजन पैकेज कोई process.env नहीं पढ़ते। इसे चलाना आवश्यकताएँ Node 20+ और pnpm 10.15.1 हैं। Docker Compose अनुशंसित मार्ग है, जिसमें एक lite स्टैक और एक OCR प्रोफ़ाइल है जो Docling जोड़ता है; make टारगेट up, logs, down और वॉल्यूम-वाइपिंग down-clean को कवर करते हैं। Docker के बिना, आपको pgvector एक्सटेंशन के साथ Postgres चाहिए, फिर माइग्रेशन, एक वैकल्पिक seed, Next.js dev सर्वर, वर्कर, और वैकल्पिक रूप से Inngest dev UI चलाएँ। वेब dev सर्वर अपलोड स्वीकार करता है लेकिन कुछ भी प्रोसेस नहीं करता, इसलिए वर्कर को इसके साथ चलना चाहिए अन्यथा दस्तावेज़ कतार में रह जाते हैं। बूट करने के लिए DATABASE_URL और BETTER_AUTH_SECRET आवश्यक हैं। चैट कॉन्फ़िगरेशन चैट एक ही एंडपॉइंट तक पहुँचती है जो OpenAI chat-completions प्रोटोकॉल लागू करता है, डिफ़ॉल्ट रूप से GOOGLE_AI_API_KEY के माध्यम से Google Gemini के OpenAI-संगत एंडपॉइंट पर। अन्य प्रोवाइडर CHAT_BASE_URL और वैकल्पिक रूप से CHAT_API_KEY सेट करके पहुँचे जाते हैं; OPENAI_API_KEY या OLLAMA_BASE_URL जैसे प्रति-विक्रेता वेरिएबल चैट को कॉन्फ़िगर नहीं करते। सामान्य चैट, निष्कर्षण, तर्क और छवियों को कौन सा मॉडल संभालता है, यह presets और routes के साथ एक YAML कॉन्फ़िग में घोषित किया जाता है; व्यवहार मॉडल आईडी से अनुमानित नहीं होता, और विशेषीकृत routes fail closed होते हैं। चैट कॉन्फ़िगरेशन embeddings, OCR, transcription, reranking और text-to-speech से स्वतंत्र है। संदर्भ ऐप क्षमताएँ ऐप प्रति-वर्कस्पेस भूमिकाओं, फ़ोल्डर-स्तरीय पहुँच, आमंत्रण और एक ऑडिट लॉग के साथ फ़र्स्ट-पार्टी auth प्रदर्शित करता है; कई प्रोवाइडर के माध्यम से वैकल्पिक OCR के साथ दस्तावेज़ अपलोड; PostgreSQL प्लस pgvector सिमेंटिक रिट्रीवल; PII फ़िल्टर, grounding और एक confidence gate सहित guardrails के साथ AI चैट; प्रेडिक्टिव दस्तावेज़ विश्लेषण (आठ दस्तावेज़ प्रकार परिभाषित, जिसमें अनुरोध वैलिडेटर वर्तमान में contract, financial, technical, compliance और general स्वीकार करता है); 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 एक issue और इंजन परिवर्तनों के लिए Changesets के साथ।