
میرا مفت کوڈ کیا کرتا ہے
My Free Code v0.8 ایک آزاد، متعدد فراہم کنندگان کے لیے گیٹ وے ہے جو Claude Code اور دیگر کوڈنگ ایجنٹس کے لیے بنایا گیا ہے۔ یہ ایک مقامی FastAPI گیٹ وے چلاتا ہے جو ایجنٹ کی درخواستیں وصول کرتا ہے، تشکیل شدہ ماڈل منتخب کرتا ہے، درخواست کو متعلقہ فراہم کنندہ کے لیے تبدیل کرتا ہے، اور جواب کو کلائنٹ تک اسٹریم کرتا ہے۔ یہ منصوبہ Anthropic سے وابستہ نہیں ہے۔
یہ گیٹ وے /v1/messages پر Anthropic Messages پروٹوکول، /v1/messages/count_tokens پر Anthropic ٹوکن کاؤنٹنگ، اور /v1/responses پر OpenAI Responses-compatible اینڈ پوائنٹ کو سپورٹ کرتا ہے۔ یہ /v1/models کے ذریعے ماڈل دریافت کرنے کی سہولت، /health پر ہیلتھ اینڈ پوائنٹ، /admin پر مقامی Admin UI، اور تصدیق شدہ انتظامی APIs کو /api/admin/* کے تحت بھی فراہم کرتا ہے۔
اہم خصوصیات
- متعدد ایجنٹ پروٹوکولز: ایک ہی گیٹ وے کے ذریعے Anthropic Messages اور OpenAI Responses-compatible درخواستیں وصول کریں۔
- ایجنٹ کی صلاحیتیں: اسٹریمنگ Server-Sent Events، ٹول کی تعریفیں، ٹول کالز، ٹول نتائج، تصاویر، اور reasoning metadata کی براہِ راست منتقلی کو سنبھالیں۔
- Claude ٹئیر روٹنگ: Fable، Opus، Sonnet، اور Haiku درخواستوں کے لیے مختلف upstream ماڈلز مقرر کریں۔
- لچک دار روٹنگ: ترتیب وار ماڈل fallback، فراہم کنندہ کی صحت کے مطابق backoff، فی فراہم کنندہ concurrency controls، اور rate-window control استعمال کریں۔
- مستحکم ماڈل شناخت: روٹر کی جانب سے درخواست کسی دوسرے فراہم کنندہ کو بھیجے جانے کے باوجود عوامی گیٹ وے ماڈل کی شناخت برقرار رکھیں۔
- Reasoning normalization: Claude طرز کی thinking intent کو فراہم کنندہ کے مخصوص request fields سے الگ رکھیں۔
- مقامی ماڈل سپورٹ: Ollama، LM Studio، یا llama.cpp کو ان کے OpenAI-compatible اینڈ پوائنٹس کے ذریعے مربوط کریں۔
- ایجنٹ لانچرز: Claude Code، Codex، Pi، OpenCode، Cline، Hermes، DeepSeek Harness، Grok Build، اور Muse Code کے لیے proxy ماحول تیار کریں۔
فراہم کنندگان کے کیٹلاگ میں کلاؤڈ سروسز اور مقامی رن ٹائمز کا وسیع مجموعہ شامل ہے۔ عام OpenAI-compatible فراہم کنندگان مشترکہ ٹرانسپورٹ استعمال کرتے ہیں، جبکہ غیر معمولی توثیق یا پروٹوکول رکھنے والے فراہم کنندگان کے لیے مخصوص adapters درکار ہوتے ہیں۔ اس لیے کیٹلاگ کے کسی اندراج کو فراہم کنندہ کے مخصوص configuration کے بغیر عالم گیر سپورٹ کے دعوے کے طور پر نہیں سمجھنا چاہیے۔
آرکیٹیکچر کیسے کام کرتا ہے
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یہ ڈیزائن آنے والے wire protocols کو روٹنگ اور فراہم کنندہ کے انضمامات سے الگ رکھتا ہے۔ HTTP adapters درخواستیں وصول کرتے ہیں، application layer route منتخب کرکے اسے چلاتی ہے، اور provider runtime مشترکہ OpenAI-compatible transport، specialized adapter، یا local runtime کے ذریعے رابطہ کرتا ہے۔ CLI launchers ایک الگ layer کے طور پر رہتے ہیں جو کلائنٹ کا ماحول تشکیل دیتی ہے اور عمل درآمد نصب شدہ coding agent کے حوالے کرتی ہے۔
گیٹ وے انسٹال کریں
ضروریات
- Python 3.10 یا اس کے بعد کا ورژن۔
- repository کی مقامی کاپی۔
- ان remote providers کے credentials جنہیں آپ استعمال کرنے کا ارادہ رکھتے ہیں۔
- وہ coding-agent client جسے آپ launch کرنا چاہتے ہیں، انسٹال شدہ ہو اور
PATHپر دستیاب ہو۔
1. ورچوئل ماحول بنائیں
python -m venv .venv2. اسے فعال کریں اور 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 .env3. My Free Code شروع کریں
python -m my_free_codeپہلے سے طے شدہ طور پر گیٹ وے http://127.0.0.1:8082 پر دستیاب ہوتا ہے۔ آپ http://127.0.0.1:8082/health کے ذریعے سروس چیک کر سکتے ہیں اور http://127.0.0.1:8082/admin پر مقامی Admin UI کھول سکتے ہیں۔
ماڈلز اور فراہم کنندگان تشکیل دیں
پیدا کی گئی .env فائل میں ترمیم کرکے default model منتخب کریں، Claude tiers کے لیے ماڈلز مقرر کریں، اور ترتیب وار fallbacks متعین کریں۔ درج ذیل مثال میں متعدد فراہم کنندگان کے ماڈلز استعمال کیے گئے ہیں:
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متعلقہ فراہم کنندہ کی API keys کو .env میں شامل کریں۔ معاون configuration fields کے حوالے کے طور پر .env.example استعمال کریں۔ ماحول تبدیل کرنے کے بعد گیٹ وے دوبارہ شروع کریں۔
MODEL عمومی گیٹ وے ماڈل منتخب کرتا ہے۔ MODEL_SONNET، MODEL_HAIKU، اور MODEL_OPUS جیسی tier-specific variables روٹر کو Claude model tiers کو مختلف upstream services کی طرف بھیجنے کی اجازت دیتی ہیں۔ FALLBACK_MODELS متبادل ماڈلز کی comma-separated، ترتیب وار فہرست ہے۔
Claude Code مربوط کریں
آپشن 1: ماحول دستی طور پر مقرر کریں
Windows PowerShell میں Claude Code کو مقامی Anthropic-compatible گیٹ وے کی طرف بھیجیں:
$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 کی طرف بھیجتا ہے، جبکہ ماڈل ڈسکوری کلائنٹ کو گیٹ وے کے ماڈل کیٹلاگ سے استفسار کرنے کی سہولت دیتی ہے۔
آپشن 2: لانچر اڈاپٹر استعمال کریں
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.1Sonnet کی درخواست پہلے 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-compatible بیس 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 طرز کی thinking intent قبول کرتا ہے اور پرووائیڈر اڈاپٹر کے ذریعے درخواست کا ترجمہ کرنے سے پہلے اسے معمول کے مطابق بناتا ہے۔ معاون موڈز یہ ہیں:
auto
on
offاختیاری effort level یہ ہو سکتا ہے:
low
medium
highیہ علیحدگی ایجنٹ کی جانب سے مقرر کردہ استدلال پالیسی کو پرووائیڈر کے مخصوص فیلڈز سے آزاد رکھتی ہے۔ ہر پرووائیڈر اڈاپٹر معمول کے مطابق بنائے گئے موڈ اور effort کو اس اپ اسٹریم پرووائیڈر کے دستاویزی فیلڈز میں تبدیل کر سکتا ہے۔
گیٹ وے کی نگرانی کریں
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-compatible ٹرانسپورٹ استعمال کرتے ہیں، لیکن غیر معمولی توثیقی طریقوں یا پروٹوکولز کے لیے خصوصی اڈاپٹرز درکار ہوتے ہیں۔ یہ فرض کرنے کے بجائے کہ کیٹلاگ کا ہر اندراج یکساں طور پر کام کرتا ہے، تصدیق کریں کہ متعلقہ پرووائیڈر اڈاپٹر اور اسناد دستیاب ہیں۔
ضرورت پڑنے پر پروٹوکول اینڈ پوائنٹس براہِ راست استعمال کریں
- Anthropic Messages کی درخواستیں
/v1/messagesکو بھیجیں۔ /v1/messages/count_tokensکے ذریعے Anthropic فارمیٹ کے ٹوکنز گنیں۔/v1/responsesپر OpenAI Responses-compatible انٹرفیس استعمال کریں۔/v1/modelsکے ذریعے ماڈلز دریافت کریں۔/healthکے ذریعے سروس کی صحت چیک کریں۔
ٹیسٹ سوٹ چلائیں
pytest -qریپوزٹری میں روٹنگ، پروٹوکول کنورژن، توثیق، استدلال، ماڈل کیٹلاگ اور اسٹریمنگ پرائمیٹوز کے لیے مقررہ ٹیسٹس شامل ہیں۔ گیٹ وے، روٹنگ یا پرووائیڈر کوڈ میں تبدیلی کے بعد انہیں چلائیں۔
سیکیورٹی رہنما اصول
My Free Code مقامی استعمال کے لیے بنایا گیا ہے۔ درج ذیل احتیاطی تدابیر اختیار کریں:
HOST=127.0.0.1برقرار رکھیں تاکہ سروس مقامی مشین سے منسلک رہے۔- غیر معمولی اور مضبوط
PROXY_AUTH_TOKENمقرر کریں۔ .envفائل کو کبھی بھی سورس کنٹرول میں commit نہ کریں۔- Admin اینڈ پوائنٹس کو براہِ راست انٹرنیٹ پر ظاہر نہ کریں۔
- پرووائیڈر کی اسناد ماحول یا کنفیگریشن میں رکھیں۔ گیٹ وے ایک پرووائیڈر کی اسناد دوسرے پرووائیڈر کو نہیں بھیجتا۔
نتیجہ
My Free Code کوڈنگ ایجنٹس اور متعدد کلاؤڈ یا مقامی ماڈل فراہم کنندگان کے درمیان مقامی مطابقت اور روٹنگ کی تہہ فراہم کرتا ہے۔ Python کی انحصاری پیکیجز انسٹال کرنے، ماڈلز اور اسناد کی ترتیب دینے، اور گیٹ وے شروع کرنے کے بعد، آپ Claude Code یا کسی دوسرے معاون کلائنٹ سے منسلک ہو سکتے ہیں، Claude کے درجات کے مطابق ماڈلز تفویض کر سکتے ہیں، اور ایک کنٹرول شدہ فال بیک سلسلہ بنا سکتے ہیں۔ اس کے الگ الگ پروٹوکول، روٹنگ، فراہم کنندہ، اور لانچر کی تہیں بھی منصوبے کا جائزہ لینے اور اس کی جانچ کو آسان بناتی ہیں۔
