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

WindsurfAPI একটি স্ব-হোস্টেড রিভার্স প্রক্সি সেবা, যা Windsurf (পূর্বে Codeium, বর্তমানে Devin Desktop) ক্লাউডের ১০০+ AI মডেলকে একাধিক মানক API ইন্টারফেসে রূপান্তর করে। প্রকল্পটি বিশুদ্ধ Node.js-এ বাস্তবায়িত, দাবি করা হয় শূন্য npm রানটাইম নির্ভরতা, ডিফল্টভাবে ৩০০৩ পোর্টে শোনে। ## প্রদত্ত ইন্টারফেস - `POST /v1/chat/completions`: OpenAI Chat সামঞ্জস্যপূর্ণ, সরাসরি OpenAI SDK ব্যবহার করা যায় - `POST /v1/completions`: OpenAI পুরাতন Completions (নন-স্ট্রিমিং) - `POST /v1/responses`: OpenAI Responses সামঞ্জস্যপূর্ণ, এছাড়াও `GET`/`DELETE /v1/responses/{id}` সমর্থিত যা সংরক্ষিত রেসপন্স পড়তে ও মুছতে পারে, `previous_response_id` দিয়ে প্রসঙ্গ চালিয়ে যাওয়া যায় - `POST /v1/messages`: Anthropic সামঞ্জস্যপূর্ণ, Claude Code, Cline, Cursor ইত্যাদি ক্লায়েন্ট সংযোগের জন্য - `POST /v1beta/models/*`: Gemini সামঞ্জস্যপূর্ণ, `x-goog-api-key` হেডার ও `?key=` কোয়েরি প্যারামিটার সমর্থিত ## কার্যপ্রণালী সেবাটি বিভিন্ন প্রোটোকলের অনুরোধকে Windsurf-এর অভ্যন্তরীণ gRPC প্রোটোকলে অনুবাদ করে, স্থানীয় Language Server বাইনারির মাধ্যমে Windsurf ক্লাউডে পাঠায়; `DEVIN_CONNECT` পথের মাধ্যমে সরাসরি Devin ক্লাউডেও সংযোগ করা যায়। অন্তর্নির্মিত অ্যাকাউন্ট পুল, যা রাউন্ড-রবিন, রেট লিমিট আইসোলেশন, ফেইলওভার ও সার্কিট ব্রেকিং প্রদান করে; ফেরত দেওয়ার আগে আপস্ট্রিম Windsurf পরিচয় তথ্য সরিয়ে দেয়। ## স্থাপনা ও ব্যবহার `setup.sh` এক-ক্লিক স্থাপনা, Docker Compose স্থাপনা এবং `update.sh` আপডেট স্ক্রিপ্ট প্রদান করা হয়। প্রথমে Windsurf অ্যাকাউন্ট যোগ করতে হবে: Dashboard-এর Google/GitHub OAuth লগইন, ইমেইল-পাসওয়ার্ড লগইন, অথবা `windsurf.com/show-auth-token` থেকে প্রাপ্ত Token `/auth/login` ইন্টারফেসের মাধ্যমে ব্যাচ ইমপোর্ট করা যায়। Dashboard (`/dashboard`) সামগ্রিক দৃশ্য, লগইন করে অ্যাকাউন্ট সংগ্রহ, অ্যাকাউন্ট ব্যবস্থাপনা, মডেল ব্ল্যাক/হোয়াইটলিস্ট, প্রক্সি কনফিগারেশন, রিয়েল-টাইম লগ, পরিসংখ্যান বিশ্লেষণ ইত্যাদি প্যানেল প্রদান করে। ## কনফিগারেশনের মূল বিষয় পরিবেশ ভেরিয়েবল পোর্ট, API কী, ডিফল্ট মডেল, সর্বোচ্চ টোকেন, লগ লেভেল, LS বাইনারি পাথ ও ডেটা ডিরেক্টরি, LS ইনস্ট্যান্স পুল ও মেমরি গার্ডরেল, রেসপন্স স্টোরেজ (TTL, সংখ্যা, বাইট বাজেট), স্টিকি সেশন, প্রক্সি হোস্ট হোয়াইটলিস্ট ইত্যাদি ওভাররাইড করে। খালি `API_KEY` ও খালি `DASHBOARD_PASSWORD` ডিফল্টভাবে fail-closed (৪০১ ফেরত দেয়), স্থানীয়ভাবে খোলার জন্য সংশ্লিষ্ট সুইচ স্পষ্টভাবে সেট করতে হবে। ## মডেল ও ক্লায়েন্ট স্ট্যাটিক মডেল তালিকা Claude, GPT, Gemini, Grok, Qwen, Kimi, GLM, MiniMax, SWE, Arena ইত্যাদি সিরিজ কভার করে, এবং চালু হওয়ার সময় ক্লাউড থেকে গতিশীলভাবে পাঠানো মডেল ক্যাটালগ একত্রিত করে। ডকুমেন্টেশন ব্যাখ্যা করে যে মডেল নিজে ফাইল অপারেশন করে না, ফাইল পড়া-লেখা Claude Code, Cline ইত্যাদি ক্লায়েন্ট স্থানীয়ভাবে সম্পাদন করে, গেটওয়ে শুধু tool_use/tool_result পাস করার দায়িত্ব পালন করে। Cursor ক্লায়েন্টের `claude` সম্বলিত মডেল নামের হোয়াইটলিস্ট ব্লকিংয়ের জন্য, README একটি অ্যালিয়াস ম্যাপিং টেবিল প্রদান করে। প্রকল্পটি MIT License-এ ওপেন সোর্স, README-তে লেখকের বাণিজ্যিক ব্যবহার সম্পর্কে ব্যক্তিগত ঘোষণাও সংযুক্ত আছে।