منصوبے کے بارے میں

OpenDoubao ایک اوپن سورس AI Agent ایپلیکیشن جنریشن پلیٹ فارم ہے، جسے Doubao Work کے اوپن سورس متبادل کے طور پر تیار کیا گیا ہے۔ اس کا بنیادی تصور یہ ہے کہ قدرتی زبان کی چیٹ کے ذریعے فوری طور پر ویب فرنٹ اینڈ اور بیک اینڈ ایپلیکیشنز تیار کی جائیں، اور بعد میں تعامل کے دوران بڑی زبان کے ماڈل (LLM) پر انحصار نہ کیا جائے، تاکہ محفوظ، تیز اور مستحکم 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 ماحولیاتی متغیر سے تبدیل کیا جا سکتا ہے) کے لیے ایڈمن پینل میں منظوری ضروری ہے۔ ایڈمن پینل میں تین ٹیبز ہیں: 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 معاون بوٹسٹریپ فعال کیا جا سکتا ہے؛ جب یہ ترتیب نہ ہو، تو اندرونی اصول اب بھی 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 کے ذریعے رابطہ کریں۔