इस प्रोजेक्ट के बारे में
OpenDoubao एक ओपन-सोर्स AI Agent एप्लिकेशन जनरेशन प्लेटफ़ॉर्म है, जिसे Doubao Work के ओपन-सोर्स विकल्प के रूप में स्थापित किया गया है। मूल अवधारणा: प्राकृतिक भाषा चैट के माध्यम से उच्च-उपलब्धता वाले वेब फ्रंटएंड/बैकएंड ऐप तुरंत जनरेट करना और बाद की इंटरैक्शन में बड़े भाषा मॉडल पर निर्भर न होना, जिससे सुरक्षित, तेज़ और स्थिर API कॉल संभव हो।
## मुख्य आर्किटेक्चर: दो-चरणीय अनुभव
परियोजना में अद्वितीय दो-चरणीय डिज़ाइन है:
**पहला चरण — जनरेशन चरण (चैट / AI या नियम)**: उपयोगकर्ता संवाद में आवश्यकता बताता है, AI Agent संबंधित UI उत्पन्न करता है और APIJSON अनुरोध प्रस्तावित करता है। अनुरोध सत्यापन के बाद निष्पादित होता है; सफलता पर bindRequest जारी कर टेम्पलेट और पैरामीटर मैपिंग (paramMap) को UI नियंत्रणों से बाँध दिया जाता है।
**दूसरा चरण — स्थिर चरण (LLM-रहित)**: जब उपयोगकर्ता फ़िल्टर शर्तें, सॉर्ट क्रम, पेजिनेशन पैरामीटर बदलता है, BoundExecutor सीधे paramMap को bodyTemplate में मर्ज करता है और HTTP POST द्वारा APIJSON इंटरफ़ेस को कॉल करता है। इसमें कोई Token नहीं लगता, प्रतिक्रिया तेज़ और स्थिर होती है।
## Agent-to-API प्रोटोकॉल (A2API)
परियोजना A2API 0.1 प्रोटोकॉल परिभाषित करती है। एनवेलप प्रारूप `{ "version": "0.1", "type": { ... } }` है, जहाँ `type` एक प्लेसहोल्डर है। इसमें निम्न संदेश प्रकार शामिल हैं:
- **proposeRequest**: उम्मीदवार APIJSON कॉल
- **reviseRequest / decision**: अनुरोध संशोधन या स्वीकृति/अस्वीकृति
- **bindRequest**: code == 200 के बाद टेम्पलेट और paramMap तैयार कर UI-संचालित कॉल हेतु बाइंड करना
- **requestResult / status**: परिणाम और स्थिति प्रतिक्रिया
## सुरक्षा तंत्र
परियोजना में संवेदनशील कार्यों के लिए अनुमोदन तंत्र अंतर्निहित है। पठन कार्य स्वचालित रूप से निष्पादित होते हैं, जबकि लेखन कार्य (डिफ़ॉल्ट रूप से post, put, delete, gets, heads; SENSITIVE_METHODS पर्यावरण चर से बदले जा सकते हैं) को व्यवस्थापक द्वारा Admin बैकएंड में अनुमोदन के बाद ही कॉल किया जा सकता है। प्रबंधन पैनल में Apply (आवेदन सूची), Call logs (कॉल लॉग) और Stats (आँकड़े) टैब होते हैं, साथ ही Access, Request, Document, Chain के लिए जटिल अनुमोदन प्रक्रिया भी समर्थित है।
## तकनीकी स्टैक और रिपॉज़िटरी संरचना
- **रनटाइम**: Node.js 18+, Vite (फ्रंटएंड), Hono (API सेवा)
- **डेटा लेयर**: APIJSONBoot-MultiDataSource (या संगत सेवा), localhost:8080 पर चलती है
- **रिपॉज़िटरी मॉड्यूल**:
- `opendoubao`: ऑर्केस्ट्रेटर + चैट UI (जनरेशन) + बाइंडेड फ़िल्टर (स्थिर चरण)
- `opendoubao-admin`: कॉन्फ़िगरेशन आवेदन/अनुमोदन; अनुमोदन के बाद Access / Request / Document में लिखता है
- `a2qpi/protocol`: A2API 0.1 एनवेलप, JSON Pointer, वैलिडेटर, CRUD फिक्स्चर परीक्षण
- `a2qpi/runtime`: ApiJsonClient, HitlController, BoundExecutor
## त्वरित आरंभ
cd ~/a2api
cp .env.example .env
npm install
npm test
npm run build
npm run dev
शुरू करने पर क्लाइंट http://localhost:5173 पर, API सेवा http://localhost:3000 पर चलती है, और प्रबंधन पैनल `npm run dev:admin` से http://localhost:5174 पर खुलता है।
## कॉन्फ़िगरेशन और विस्तार
उपयोगकर्ता ऊपर दाईं ओर Login से लॉगिन/रजिस्टर कर सकते हैं, तथा AI Model, Base URL, API Key कॉन्फ़िगर कर सकते हैं। क्विक चिप्स (जैसे "List the latest 3 moments with authors") से तुरंत क्वेरी शुरू की जा सकती है। वैकल्पिक रूप से .env में OPENAI_API_KEY सेट करके LLM-सहायित Bootstrap चालू किया जा सकता है; इसके बिना भी अंतर्निहित इंटेंट नियम User / Moment / Comment जैसी संस्थाओं (चीनी और अंग्रेज़ी दोनों) को पहचानने में सक्षम हैं।
परियोजना में समृद्ध डेमो डेटा टेबल हैं (User, Moment, Comment तथा कर्मचारी, कार्यक्रम, चैट, समाचार, सूचना, ब्लॉग, लेख, वीडियो, संगीत, उत्पाद, ऑर्डर, डिलीवरी पता, श्रेणियाँ आदि)। आयात के बाद Access/Request को पुनः लोड करना आवश्यक है। लेखन कार्यों में आमतौर पर लॉगिन सत्र (@role OWNER/LOGIN) आवश्यक होता है; MVP चरण में अनुरोध उत्पन्न करके HITL स्वीकृति/अस्वीकृति इंटरफ़ेस दिखाया जाता है।
## Agent स्वचालन इंटरफ़ेस
परियोजना a2apiAgent स्वचालन इंटरफ़ेस उजागर करती है, जो JavaScript से switchTab, debug जैसे तरीकों को कॉल करने, URL/JSON अनुरोध बॉडी निर्दिष्ट करके स्वतः भेजने, तथा iframe लोड करके स्वतः अनुरोध भेजने की सुविधा देती है, ताकि स्वचालन परीक्षण या वर्कफ़्लो में एकीकृत किया जा सके।
## द्वितीय चरण की योजना
क्रॉस-डिवाइस सिंक (डेटाबेस टेबल या फ़ाइल आयात/निर्यात) डिज़ाइन में नियोजित है, अभी लागू नहीं हुआ है।
## परियोजना जानकारी
परियोजना के लेखक TommyLemon हैं; कोड GitHub (open-doubao-ai/OpenDoubao) पर होस्ट है। तकनीकी चर्चा Issue के माध्यम से और योगदान Pull Request से किया जा सकता है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.