প্রকল্প সম্পর্কে

OpenDoubao হলো একটি ওপেন সোর্স AI Agent অ্যাপ্লিকেশন জেনারেশন প্ল্যাটফর্ম, যা Doubao Work-এর ওপেন সোর্স বিকল্প হিসেবে অবস্থান করছে। মূল ধারণা: প্রাকৃতিক ভাষার চ্যাটের মাধ্যমে তাৎক্ষণিকভাবে হাই-অ্যাভেইলেবল ওয়েব ফ্রন্টএন্ড/ব্যাকএন্ড অ্যাপ্লিকেশন তৈরি করা এবং পরবর্তী ইন্টারঅ্যাকশনে আর বড় ভাষার মডেলের ওপর নির্ভর না করা, যার ফলে API কল নিরাপদ, দ্রুত ও স্থিতিশীল হয়। মূল আর্কিটেকচার: দুই-পর্যায়ের অভিজ্ঞতা প্রথম পর্যায়—জেনারেশন পর্যায় (চ্যাট / AI বা নিয়ম): ব্যবহারকারী কথোপকথনের মাধ্যমে প্রয়োজন বর্ণনা করেন। AI Agent সংশ্লিষ্ট UI ইন্টারফেস তৈরি করে এবং APIJSON অনুরোধ প্রস্তাব করে। অনুরোধ যাচাইয়ের পর সঞ্চালিত হয়; সফল হলে bindRequest জারি হয়, যা টেমপ্লেট এবং paramMap (প্যারামিটার ম্যাপিং) UI কন্ট্রোলে বাঁধে। দ্বিতীয় পর্যায়—স্থির পর্যায় (LLM ছাড়া): ব্যবহারকারী যখন ফিল্টার শর্ত, সর্ট অর্ডার, পেজিনেশন প্যারামিটার ইত্যাদি পরিবর্তন করেন, BoundExecutor সরাসরি bodyTemplate-এর সাথে paramMap একীভূত করে HTTP POST-এর মাধ্যমে APIJSON ইন্টারফেস কল করে। এতে Token খরচ হয় না, প্রতিক্রিয়া দ্রুত ও স্থিতিশীল। Agent-to-API প্রোটোকল (A2API) প্রকল্পটি A2API 0.1 প্রোটোকল সংজ্ঞায়িত করে। এনভেলপ বিন্যাস: { "version": "0.1", "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-সহায়ক 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-এর মাধ্যমে কোড কনট্রিবিউশন স্বাগত।