
আমার ফ্রি কোড কী করে
My Free Code v0.8 হলো Claude Code এবং অন্যান্য কোডিং এজেন্টের জন্য একটি স্বতন্ত্র, মাল্টি-প্রোভাইডার গেটওয়ে। এটি একটি স্থানীয় FastAPI গেটওয়ে চালায়, যা এজেন্টের অনুরোধ গ্রহণ করে, কনফিগার করা মডেল নির্বাচন করে, সংশ্লিষ্ট প্রোভাইডারের জন্য অনুরোধটি রূপান্তর করে এবং প্রতিক্রিয়াটি স্ট্রিম আকারে ক্লায়েন্টে ফেরত পাঠায়। প্রকল্পটি Anthropic-এর সঙ্গে সম্পৃক্ত নয়।
গেটওয়েটি /v1/messages-এ Anthropic Messages প্রোটোকল, /v1/messages/count_tokens-এ Anthropic টোকেন গণনা এবং /v1/responses-এ OpenAI Responses-সামঞ্জস্যপূর্ণ এন্ডপয়েন্ট সমর্থন করে। এটি /v1/models-এর মাধ্যমে মডেল আবিষ্কার, /health-এ একটি হেলথ এন্ডপয়েন্ট, /admin-এ একটি স্থানীয় Admin UI এবং /api/admin/*-এর অধীনে প্রমাণীকৃত প্রশাসনিক API-ও প্রকাশ করে।
প্রধান বৈশিষ্ট্য
- একাধিক এজেন্ট প্রোটোকল: একটি গেটওয়ের মাধ্যমে Anthropic Messages এবং OpenAI Responses-সামঞ্জস্যপূর্ণ অনুরোধ গ্রহণ করুন।
- এজেন্ট সক্ষমতা: স্ট্রিমিং Server-Sent Events, টুল সংজ্ঞা, টুল কল, টুল ফলাফল, ছবি এবং reasoning metadata pass-through পরিচালনা করুন।
- Claude tier routing: Fable, Opus, Sonnet এবং Haiku অনুরোধের জন্য ভিন্ন upstream মডেল নির্ধারণ করুন।
- স্থিতিস্থাপক রাউটিং: ক্রমানুসারী মডেল fallback, provider health backoff, প্রতি-প্রোভাইডার concurrency নিয়ন্ত্রণ এবং rate-window নিয়ন্ত্রণ ব্যবহার করুন।
- স্থিতিশীল মডেল পরিচয়: রাউটার কোনো অনুরোধ অন্য প্রোভাইডারে পাঠালেও সর্বসাধারণের জন্য ব্যবহৃত গেটওয়ে মডেলের পরিচয় অপরিবর্তিত রাখুন।
- Reasoning normalization: Claude-ধাঁচের thinking intent-কে প্রোভাইডার-নির্দিষ্ট request field থেকে আলাদা রাখুন।
- স্থানীয় মডেল সমর্থন: OpenAI-সামঞ্জস্যপূর্ণ এন্ডপয়েন্টের মাধ্যমে Ollama, LM Studio অথবা llama.cpp সংযুক্ত করুন।
- এজেন্ট লঞ্চার: Claude Code, Codex, Pi, OpenCode, Cline, Hermes, DeepSeek Harness, Grok Build এবং Muse Code-এর জন্য proxy environment প্রস্তুত করুন।
প্রোভাইডার ক্যাটালগে ক্লাউড সেবা এবং স্থানীয় runtime-এর একটি বিস্তৃত সংগ্রহ রয়েছে। সাধারণ OpenAI-সামঞ্জস্যপূর্ণ প্রোভাইডারগুলো একটি shared transport ব্যবহার করে, আর অস্বাভাবিক authentication বা protocol-সম্পন্ন প্রোভাইডারগুলোর জন্য dedicated adapter প্রয়োজন। তাই provider-specific configuration ছাড়া কোনো catalog entry-কে সর্বজনীন সমর্থনের দাবি হিসেবে ব্যাখ্যা করা উচিত নয়।
আর্কিটেকচার কীভাবে কাজ করে
Coding Agents / IDEs
|
+-----------+-----------+
| |
Anthropic Messages OpenAI Responses
| |
+-----------+-----------+
|
FastAPI Gateway
|
Model Router
|
+-----------+-----------+
| |
Primary Fallbacks
| |
+-----------+-----------+
|
Provider Runtime
|
+--------------+--------------+
| | |
OpenAI-compatible Specialized Local
adapter adapter runtime
| | |
APIs provider API Ollama/LM Studioনকশাটি incoming wire protocol-কে routing এবং provider integration থেকে আলাদা রাখে। HTTP adapter অনুরোধ গ্রহণ করে, application layer একটি route নির্বাচন ও কার্যকর করে, এবং provider runtime shared OpenAI-compatible transport, specialized adapter অথবা local runtime-এর মাধ্যমে যোগাযোগ করে। CLI launcher একটি পৃথক layer হিসেবে থাকে, যা client environment কনফিগার করে এবং ইনস্টল করা coding agent-এর কাছে execution হস্তান্তর করে।
গেটওয়ে ইনস্টল করুন
পূর্বশর্ত
- Python 3.10 বা তার পরের সংস্করণ।
- রিপোজিটরির একটি স্থানীয় কপি।
- আপনি যে কোনো remote provider ব্যবহার করার পরিকল্পনা করছেন, তার credentials।
- আপনি যে coding-agent client চালু করতে চান, সেটি ইনস্টল করা এবং
PATH-এ উপলভ্য।
১. একটি virtual environment তৈরি করুন
python -m venv .venv২. এটি সক্রিয় করে dependencies ইনস্টল করুন
Windows PowerShell-এ চালান:
.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
copy .env.example .envmacOS অথবা Linux-এ চালান:
source .venv/bin/activate
python -m pip install -r requirements.txt
cp .env.example .env৩. My Free Code চালু করুন
python -m my_free_codeডিফল্টভাবে, গেটওয়েটি http://127.0.0.1:8082-এ উপলভ্য থাকে। http://127.0.0.1:8082/health দিয়ে service পরীক্ষা করতে এবং http://127.0.0.1:8082/admin-এ স্থানীয় Admin UI খুলতে পারেন।
মডেল ও প্রোভাইডার কনফিগার করুন
ডিফল্ট মডেল নির্বাচন করতে, Claude tier-এ মডেল বরাদ্দ করতে এবং ক্রমানুসারী fallback নির্ধারণ করতে তৈরি করা .env ফাইলটি সম্পাদনা করুন। নিচের উদাহরণে একাধিক প্রোভাইডারের মডেল ব্যবহার করা হয়েছে:
MODEL=open_router/openrouter/free
MODEL_SONNET=deepseek/deepseek-chat
MODEL_HAIKU=groq/llama-3.3-70b-versatile
MODEL_OPUS=nvidia_nim/meta/llama-3.3-70b-instruct
FALLBACK_MODELS=deepseek/deepseek-chat,ollama/llama3.1সংশ্লিষ্ট provider API key-গুলো .env-এ যোগ করুন। সমর্থিত configuration field-এর রেফারেন্স হিসেবে .env.example ব্যবহার করুন। environment পরিবর্তন করার পর গেটওয়ে পুনরায় চালু করুন।
MODEL সাধারণ gateway model নির্বাচন করে। MODEL_SONNET, MODEL_HAIKU এবং MODEL_OPUS-এর মতো tier-specific variable রাউটারকে Claude model tier-গুলো ভিন্ন upstream service-এ পাঠাতে দেয়। FALLBACK_MODELS হলো বিকল্পগুলোর একটি কমা-বিভাজিত, ক্রমানুসারী তালিকা।
Claude Code সংযুক্ত করুন
বিকল্প ১: পরিবেশ ম্যানুয়ালি সেট করুন
Windows PowerShell-এ Claude Code-কে স্থানীয় Anthropic-compatible gateway-এর দিকে নির্দেশ করুন:
$env:ANTHROPIC_BASE_URL="http://127.0.0.1:8082"
$env:ANTHROPIC_AUTH_TOKEN="local"
$env:CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY="1"
claudeবেস URL Claude Code-এর অনুরোধগুলোকে My Free Code-এ রিডাইরেক্ট করে, আর মডেল ডিসকভারি ক্লায়েন্টকে গেটওয়ের মডেল ক্যাটালগ অনুসন্ধান করতে দেয়।
বিকল্প ২: লঞ্চার অ্যাডাপ্টার ব্যবহার করুন
python -m my_free_code.cli.mfc claudeলঞ্চারটি স্থানীয় প্রক্সি পরিবেশ প্রস্তুত করে এবং এরপর আর্গুমেন্টগুলো ইনস্টল করা Claude Code ক্লায়েন্টে পাঠায়। এটি নিজে ক্লায়েন্ট ইনস্টল করে না।
অন্যান্য কোডিং এজেন্ট চালু করুন
একই লঞ্চার অ্যাবস্ট্র্যাকশন আরও কয়েকটি ক্লায়েন্ট সমর্থন করে:
python -m my_free_code.cli.mfc codex
python -m my_free_code.cli.mfc pi
python -m my_free_code.cli.mfc opencode
python -m my_free_code.cli.mfc cline
python -m my_free_code.cli.mfc hermes
python -m my_free_code.cli.mfc deepseek-harness
python -m my_free_code.cli.mfc grok
python -m my_free_code.cli.mfc museএই কমান্ডগুলোর কোনোটি চালানোর আগে সংশ্লিষ্ট ক্লায়েন্ট ইনস্টল করা আছে এবং PATH-এ অ্যাক্সেসযোগ্য কিনা নিশ্চিত করুন। লঞ্চারটি শুধু গেটওয়ে পরিবেশ প্রস্তুত করে এবং বিদ্যমান প্রোগ্রামটি চালু করে।
ক্রমভিত্তিক ফলব্যাক বুঝুন
ধরা যাক, পরিবেশে এই রাউটিং কনফিগারেশন রয়েছে:
MODEL_SONNET=deepseek/deepseek-chat
FALLBACK_MODELS=groq/llama-3.3-70b-versatile,ollama/llama3.1একটি Sonnet অনুরোধ প্রথমে deepseek/deepseek-chat-এ যায়। আউটপুট তৈরি হওয়ার আগে সেই প্রচেষ্টা ব্যর্থ হলে, রাউটার groq/llama-3.3-70b-versatile চেষ্টা করে। দ্বিতীয় প্রচেষ্টাটিও আউটপুট তৈরির আগে ব্যর্থ হলে, এটি ollama/llama3.1 চেষ্টা করে।
Claude Code
|
v
deepseek/deepseek-chat
|
| failure before output
v
groq/llama-3.3-70b-versatile
|
| failure before output
v
ollama/llama3.1স্ট্রিমিং প্রতিক্রিয়া একবার আউটপুট পাঠানো শুরু করলে, গেটওয়ে নীরবে প্রদানকারী পরিবর্তন করে না। এতে একই টার্নের পুনরাবৃত্তি বা বিভিন্ন মডেলের আংশিক প্রতিক্রিয়া একত্রিত হওয়া এড়ানো যায়।
স্থানীয় মডেল ব্যবহার করুন
Ollama
আলাদাভাবে একটি Ollama পরিষেবা চালু করুন, এরপর এর OpenAI-সামঞ্জস্যপূর্ণ বেস URL ও মডেল কনফিগার করুন:
OLLAMA_BASE_URL=http://127.0.0.1:11434/v1
MODEL=ollama/llama3.1LM Studio
LM Studio স্থানীয় সার্ভার চালু করে ব্যবহার করুন:
LM_STUDIO_BASE_URL=http://127.0.0.1:1234/v1
MODEL=lmstudio/qwen3.5-coderllama.cpp
একটি llama.cpp সার্ভার চালু করে কনফিগার করুন:
LLAMACPP_BASE_URL=http://127.0.0.1:8080/v1
MODEL=llamacpp/my-modelস্থানীয় রানটাইমগুলো FALLBACK_MODELS-এও রাখা যায়। ফলে কোনো রিমোট অনুরোধ আউটপুট পাঠানোর আগে ব্যর্থ হলে একটি স্থানীয় মডেল বিকল্প হিসেবে কাজ করতে পারে।
রিজনিং আচরণ কনফিগার করুন
গেটওয়ে Claude-ধাঁচের চিন্তাভাবনার অভিপ্রায় গ্রহণ করে এবং কোনো প্রদানকারী অ্যাডাপ্টার অনুরোধটি রূপান্তর করার আগে তা স্বাভাবিকীকরণ করে। সমর্থিত মোডগুলো হলো:
auto
on
offঐচ্ছিক প্রচেষ্টা-স্তর হতে পারে:
low
medium
highএই পৃথকীকরণ এজেন্টের জন্য নির্ধারিত রিজনিং নীতিকে প্রদানকারী-নির্দিষ্ট ফিল্ড থেকে স্বাধীন রাখে। প্রতিটি প্রদানকারী অ্যাডাপ্টার স্বাভাবিকীকৃত মোড ও প্রচেষ্টা-স্তরকে সংশ্লিষ্ট আপস্ট্রিম প্রদানকারীর নথিভুক্ত ফিল্ডে ম্যাপ করতে পারে।
গেটওয়ে পর্যবেক্ষণ করুন
স্থানীয়ভাবে Admin UI খুলুন:
http://127.0.0.1:8082/adminপ্রমাণীকরণ-সুরক্ষিত JSON Admin API-তে রয়েছে:
GET /api/admin/status
GET /api/admin/models
GET /api/admin/providersগেটওয়ের অবস্থা, মডেল ক্যাটালগ এবং কনফিগার করা প্রদানকারীগুলো পরিদর্শন করতে এই এন্ডপয়েন্টগুলো ব্যবহার করুন। প্রশাসনিক এন্ডপয়েন্টগুলোর জন্য প্রমাণীকরণ প্রয়োজন এবং এগুলো ব্যক্তিগত রাখা উচিত।
উন্নত টিপস
সর্বজনীন মডেল পরিচয় স্থিতিশীল রাখুন
একটি অনুরোধ টিয়ার-নির্দিষ্ট মডেল বা ফলব্যাক প্রদানকারীর কাছে পাঠানো হতে পারে, কিন্তু গেটওয়ে তার সর্বজনীন মডেল পরিচয় স্থিতিশীল রাখে। তাই ক্লায়েন্ট অ্যাপ্লিকেশনগুলোকে প্রতিটি আপস্ট্রিম রাউটিং সিদ্ধান্ত অনুসরণ করতে হয় না; তারা গেটওয়ে মডেলের সঙ্গে সরাসরি কাজ করতে পারে।
ফলব্যাকের ক্রম সচেতনভাবে নির্ধারণ করুন
FALLBACK_MODELS-এ মডেলগুলো ঠিক যে ক্রমে চেষ্টা করা উচিত, সেই ক্রমে রাখুন। প্রদানকারীর উপলভ্যতা এবং কোনো স্থানীয় রানটাইমকে শেষ বিকল্প করা উচিত কিনা তা বিবেচনা করুন। মনে রাখবেন, স্ট্রিমিং আউটপুট শুরু হওয়ার আগে পর্যন্তই ফলব্যাক কার্যকর হয়।
প্রদানকারীদের পার্থক্য বিবেচনা করুন
অনেক প্রদানকারী সাধারণ OpenAI-সামঞ্জস্যপূর্ণ ট্রান্সপোর্ট ব্যবহার করে, তবে অস্বাভাবিক প্রমাণীকরণ পদ্ধতি বা প্রোটোকলের জন্য বিশেষায়িত অ্যাডাপ্টার প্রয়োজন। প্রতিটি ক্যাটালগ এন্ট্রি একইভাবে কাজ করবে ধরে না নিয়ে সংশ্লিষ্ট প্রদানকারী অ্যাডাপ্টার ও শংসাপত্র উপলভ্য আছে কিনা নিশ্চিত করুন।
প্রয়োজন হলে সরাসরি প্রোটোকল এন্ডপয়েন্ট ব্যবহার করুন
- Anthropic Messages অনুরোধ
/v1/messages-এ পাঠান। /v1/messages/count_tokensব্যবহার করে Anthropic-ফরম্যাট টোকেন গণনা করুন।/v1/responses-এ OpenAI Responses-সামঞ্জস্যপূর্ণ ইন্টারফেস ব্যবহার করুন।/v1/modelsব্যবহার করে মডেল আবিষ্কার করুন।/healthব্যবহার করে পরিষেবার স্বাস্থ্য পরীক্ষা করুন।
টেস্ট স্যুট চালান
pytest -qরিপোজিটরিতে রাউটিং, প্রোটোকল রূপান্তর, প্রমাণীকরণ, রিজনিং, মডেল ক্যাটালগ এবং স্ট্রিমিং প্রিমিটিভের জন্য নির্ধারণবাদী টেস্ট রয়েছে। গেটওয়ে, রাউটিং বা প্রদানকারী কোড পরিবর্তন করার পর এগুলো চালান।
নিরাপত্তা নির্দেশিকা
My Free Code স্থানীয় ব্যবহারের জন্য তৈরি। নিম্নলিখিত সতর্কতাগুলো প্রয়োগ করুন:
HOST=127.0.0.1রাখুন, যাতে পরিষেবাটি স্থানীয় মেশিনে绑定 থাকে।- একটি জটিল নয় এমন, অনুমান করা কঠিন
PROXY_AUTH_TOKENসেট করুন। .envফাইল কখনো সোর্স কন্ট্রোলে কমিট করবেন না।- Admin এন্ডপয়েন্টগুলো সরাসরি ইন্টারনেটে প্রকাশ করবেন না।
- প্রদানকারীর শংসাপত্র পরিবেশ বা কনফিগারেশনে রাখুন। গেটওয়ে কোনো এক প্রদানকারীর শংসাপত্র অন্য প্রদানকারীর কাছে পাঠায় না।
উপসংহার
My Free Code কোডিং এজেন্ট এবং একাধিক ক্লাউড বা স্থানীয় মডেল প্রদানকারীর মধ্যে একটি স্থানীয় সামঞ্জস্য ও রাউটিং স্তর সরবরাহ করে। Python নির্ভরতা ইনস্টল, মডেল ও শংসাপত্র কনফিগার এবং গেটওয়ে চালু করার পর, আপনি Claude Code বা অন্য কোনো সমর্থিত ক্লায়েন্ট সংযুক্ত করতে, Claude-এর স্তর অনুযায়ী মডেল নির্ধারণ করতে এবং একটি নিয়ন্ত্রিত ফলব্যাক চেইন তৈরি করতে পারবেন। এর পৃথক প্রোটোকল, রাউটিং, প্রদানকারী এবং লঞ্চার স্তরগুলো প্রকল্পটি পরিদর্শন ও পরীক্ষা করাও সহজ করে তোলে।
