مرکزی مواد پر جائیں
اے آئی ٹیوٹوریلز

My Free Code کے ساتھ متعدد فراہم کنندگان والا کوڈنگ ایجنٹ گیٹ وے بنائیں

جانیں کہ My Free Code v0.8 کیسے انسٹال کریں، فراہم کنندہ سے منسلک یا مقامی ماڈلز کو کیسے ترتیب دیں، کوڈنگ ایجنٹس کیسے جوڑیں، ٹائر روٹنگ اور ترتیب وار متبادل کیسے سنبھالیں، ایڈمن UI کا جائزہ کیسے لیں، اور مقامی استعمال کے لیے گیٹ وے کو کیسے محفوظ بنائیں۔

My Free Code کے ساتھ متعدد فراہم کنندگان والا کوڈنگ ایجنٹ گیٹ وے بنائیں

میرا مفت کوڈ کیا کرتا ہے

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 .venv

2. اسے فعال کریں اور dependencies انسٹال کریں

Windows PowerShell پر چلائیں:

.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
copy .env.example .env

macOS یا Linux پر چلائیں:

source .venv/bin/activate
python -m pip install -r requirements.txt
cp .env.example .env

3. 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.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-compatible بیس URL اور ماڈل ترتیب دیں:

OLLAMA_BASE_URL=http://127.0.0.1:11434/v1
MODEL=ollama/llama3.1

LM Studio

LM Studio کا مقامی سرور شروع کریں اور یہ استعمال کریں:

LM_STUDIO_BASE_URL=http://127.0.0.1:1234/v1
MODEL=lmstudio/qwen3.5-coder

llama.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 کے درجات کے مطابق ماڈلز تفویض کر سکتے ہیں، اور ایک کنٹرول شدہ فال بیک سلسلہ بنا سکتے ہیں۔ اس کے الگ الگ پروٹوکول، روٹنگ، فراہم کنندہ، اور لانچر کی تہیں بھی منصوبے کا جائزہ لینے اور اس کی جانچ کو آسان بناتی ہیں۔