
Bepul kodim nima qiladi
My Free Code v0.8 — Claude Code va boshqa kodlash agentlari uchun mustaqil, bir nechta provayderni qo‘llab-quvvatlaydigan shlyuz. U agent so‘rovlarini qabul qiladigan, sozlangan modelni tanlaydigan, so‘rovni tegishli provayder uchun moslashtiradigan va javobni mijozga oqim ko‘rinishida qaytaradigan mahalliy FastAPI shlyuzini ishga tushiradi. Loyiha Anthropic bilan bog‘liq emas.
Shlyuz /v1/messages manzilida Anthropic Messages protokolini, /v1/messages/count_tokens manzilida Anthropic tokenlarini hisoblashni va /v1/responses manzilida OpenAI Responses bilan mos endpointni qo‘llab-quvvatlaydi. Shuningdek, /v1/models orqali modellarni aniqlash, /health manzilida holat endpointi, /admin manzilida mahalliy Admin interfeysi va /api/admin/* ostida autentifikatsiyalangan ma’muriy APIlar taqdim etiladi.
Asosiy xususiyatlar
- Bir nechta agent protokollari: Anthropic Messages va OpenAI Responses bilan mos so‘rovlarni bitta shlyuz orqali qabul qilish.
- Agent imkoniyatlari: Server-Sent Events oqimini, vosita ta’riflarini, vosita chaqiruvlarini, vosita natijalarini, rasmlarni va reasoning metama’lumotlarini o‘zgartirmasdan uzatishni qayta ishlash.
- Claude darajalarini yo‘naltirish: Fable, Opus, Sonnet va Haiku so‘rovlari uchun turli yuqori darajadagi modellarni belgilash.
- Barqaror yo‘naltirish: tartiblangan model zaxiralaridan, provayder holatiga asoslangan kechikishdan, har bir provayder uchun parallel so‘rovlar cheklovlaridan va tezlik oynasi nazoratidan foydalanish.
- Barqaror model identifikatori: router so‘rovni boshqa provayderga yuborganida ham shlyuzning ommaviy model identifikatorini saqlab qolish.
- Reasoningni me’yorlashtirish: Claude uslubidagi fikrlash maqsadini provayderga xos so‘rov maydonlaridan alohida saqlash.
- Mahalliy modellarni qo‘llab-quvvatlash: Ollama, LM Studio yoki llama.cpp bilan ularning OpenAI bilan mos endpointlari orqali ulanish.
- Agent ishga tushirgichlari: Claude Code, Codex, Pi, OpenCode, Cline, Hermes, DeepSeek Harness, Grok Build va Muse Code uchun proksi muhitini tayyorlash.
Provayderlar katalogi bulut xizmatlari va mahalliy ishga tushirish muhitlarining keng to‘plamini o‘z ichiga oladi. Umumiy OpenAI bilan mos provayderlar birgalikdagi transportdan foydalanadi, noodatiy autentifikatsiya yoki protokollarga ega provayderlar esa maxsus adapterlarni talab qiladi. Shu sababli katalogdagi yozuvni provayderga xos sozlamalarsiz universal qo‘llab-quvvatlash kafolati sifatida talqin qilmaslik kerak.
Arxitektura qanday ishlaydi
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 StudioDizayn kiruvchi simli protokollarni yo‘naltirish va provayder integratsiyalaridan ajratadi. HTTP adapterlari so‘rovlarni qabul qiladi, dastur qatlami yo‘nalishni tanlaydi va bajaradi, provayder muhiti esa umumiy OpenAI bilan mos transport, maxsus adapter yoki mahalliy ishga tushirish muhiti orqali aloqa qiladi. CLI ishga tushirgichlari mijoz muhitini sozlaydigan va bajarishni o‘rnatilgan kodlash agentiga topshiradigan alohida qatlam bo‘lib qoladi.
Shlyuzni o‘rnatish
Talablar
- Python 3.10 yoki undan yangiroq versiyasi.
- Reponing mahalliy nusxasi.
- Foydalanmoqchi bo‘lgan masofaviy provayderlar uchun hisob ma’lumotlari.
- Ishga tushirmoqchi bo‘lgan kodlash agenti mijozi o‘rnatilgan va
PATHorqali mavjud bo‘lishi.
1. Virtual muhit yarating
python -m venv .venv2. Uni faollashtiring va bog‘liqliklarni o‘rnating
Windows PowerShell’da quyidagilarni bajaring:
.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
copy .env.example .envmacOS yoki Linux’da quyidagilarni bajaring:
source .venv/bin/activate
python -m pip install -r requirements.txt
cp .env.example .env3. My Free Code’ni ishga tushiring
python -m my_free_codeOdatiy holatda shlyuz http://127.0.0.1:8082 manzilida mavjud bo‘ladi. Xizmatni http://127.0.0.1:8082/health orqali tekshirishingiz va mahalliy Admin interfeysini http://127.0.0.1:8082/admin manzilida ochishingiz mumkin.
Modellar va provayderlarni sozlash
Standart modelni tanlash, Claude darajalariga modellarni biriktirish va tartiblangan zaxira modellarni belgilash uchun yaratilgan .env faylini tahrirlang. Quyidagi misolda bir nechta provayder modellari ishlatilgan:
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.1Tegishli provayder API kalitlarini .env fayliga qo‘shing. Qo‘llab-quvvatlanadigan konfiguratsiya maydonlari uchun .env.example faylidan ma’lumotnoma sifatida foydalaning. Muhit o‘zgartirilgach, shlyuzni qayta ishga tushiring.
MODEL umumiy shlyuz modelini tanlaydi. MODEL_SONNET, MODEL_HAIKU va MODEL_OPUS kabi darajaga xos o‘zgaruvchilar routerga Claude model darajalarini turli yuqori darajadagi xizmatlarga yo‘naltirish imkonini beradi. FALLBACK_MODELS vergul bilan ajratilgan, tartiblangan muqobillar ro‘yxatidir.
Claude Code’ni ulash
1-variant: Muhitni qo‘lda sozlash
Windows PowerShell’da Claude Code’ni mahalliy Anthropic bilan mos shlyuzga yo‘naltiring:
$env:ANTHROPIC_BASE_URL="http://127.0.0.1:8082"
$env:ANTHROPIC_AUTH_TOKEN="local"
$env:CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY="1"
claudeBase URL Claude Code so‘rovlarini My Free Code’ga yo‘naltiradi, modelni aniqlash esa mijozga gateway model katalogini so‘rash imkonini beradi.
2-variant: Launcher adapteridan foydalanish
python -m my_free_code.cli.mfc claudeLauncher mahalliy proksi muhitini tayyorlaydi va argumentlarni o‘rnatilgan Claude Code mijoziga uzatadi. Uning o‘zi mijozni o‘rnatmaydi.
Boshqa kodlash agentlarini ishga tushirish
Xuddi shu launcher abstraksiyasi yana bir nechta mijozni qo‘llab-quvvatlaydi:
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 museUshbu buyruqlardan birini ishga tushirishdan oldin tegishli mijoz o‘rnatilganini va PATH orqali foydalanish mumkinligini tekshiring. Launcher faqat gateway muhitini sozlaydi va mavjud dasturni ishga tushiradi.
Tartibli zaxira yo‘naltirishni tushunish
Aytaylik, muhitda quyidagi yo‘naltirish konfiguratsiyasi mavjud:
MODEL_SONNET=deepseek/deepseek-chat
FALLBACK_MODELS=groq/llama-3.3-70b-versatile,ollama/llama3.1Sonnet so‘rovi avval deepseek/deepseek-chat ga yuboriladi. Agar bu urinish chiqish hosil qilishdan oldin muvaffaqiyatsiz tugasa, router groq/llama-3.3-70b-versatile ni sinab ko‘radi. Agar ikkinchi urinish ham chiqishdan oldin muvaffaqiyatsiz tugasa, ollama/llama3.1 sinab ko‘riladi.
Claude Code
|
v
deepseek/deepseek-chat
|
| failure before output
v
groq/llama-3.3-70b-versatile
|
| failure before output
v
ollama/llama3.1Oqimli javob chiqishni boshlagach, gateway provayderlarni jimgina almashtirmaydi. Bu bitta turni takrorlash yoki turli modellarning qisman javoblarini birlashtirishning oldini oladi.
Mahalliy modellardan foydalanish
Ollama
Ollama xizmatini alohida ishga tushiring, so‘ngra uning OpenAI bilan mos keluvchi asosiy URL manzili va modelini sozlang:
OLLAMA_BASE_URL=http://127.0.0.1:11434/v1
MODEL=ollama/llama3.1LM Studio
LM Studio mahalliy serverini ishga tushiring va quyidagilardan foydalaning:
LM_STUDIO_BASE_URL=http://127.0.0.1:1234/v1
MODEL=lmstudio/qwen3.5-coderllama.cpp
llama.cpp serverini ishga tushiring va quyidagicha sozlang:
LLAMACPP_BASE_URL=http://127.0.0.1:8080/v1
MODEL=llamacpp/my-modelMahalliy runtime’lar FALLBACK_MODELS ichida ham ko‘rsatilishi mumkin. Bu masofaviy so‘rov chiqish berishdan oldin muvaffaqiyatsiz tugaganda mahalliy modeldan muqobil sifatida foydalanish imkonini beradi.
Mulohaza yuritish xatti-harakatini sozlash
Gateway Claude uslubidagi fikrlash maqsadini qabul qiladi va provayder adapteri so‘rovni o‘girishidan oldin uni standartlashtiradi. Qo‘llab-quvvatlanadigan rejimlar:
auto
on
offIxtiyoriy sa’y-harakat darajasi quyidagilardan biri bo‘lishi mumkin:
low
medium
highBu ajratish agentga yo‘naltirilgan fikrlash siyosatini provayderga xos maydonlardan mustaqil saqlaydi. Har bir provayder adapteri standartlashtirilgan rejim va sa’y-harakat darajasini tegishli upstream provayder hujjatlarida ko‘rsatilgan maydonlarga moslashtirishi mumkin.
Gateway’ni kuzatish
Admin UI’ni mahalliy ravishda quyidagi manzilda oching:
http://127.0.0.1:8082/adminAutentifikatsiyadan o‘tgan JSON Admin API quyidagilarni o‘z ichiga oladi:
GET /api/admin/status
GET /api/admin/models
GET /api/admin/providersGateway holati, model katalogi va sozlangan provayderlarni tekshirish uchun ushbu endpointlardan foydalaning. Ma’muriy endpointlar autentifikatsiyani talab qiladi va maxfiy saqlanishi kerak.
Ilg‘or maslahatlar
Ommaviy model identifikatorini barqaror saqlang
So‘rov ma’lum darajaga xos model yoki zaxira provayderga yo‘naltirilishi mumkin, ammo gateway o‘zining ommaviy model identifikatorini barqaror saqlaydi. Shu sababli mijoz ilovalari upstream yo‘naltirishdagi har bir qarorni kuzatmasdan gateway modeli bilan ishlashi mumkin.
Zaxira tartibini ataylab loyihalang
Modellarni FALLBACK_MODELS ichiga aynan sinab ko‘rilishi kerak bo‘lgan tartibda joylashtiring. Provayderlarning mavjudligi va mahalliy runtime yakuniy variant bo‘lishi kerakmi-yo‘qmi, shuni hisobga oling. Zaxiraga o‘tish faqat oqimli chiqish yuborilishi boshlanganidan oldin sodir bo‘lishini unutmang.
Provayderlar o‘rtasidagi farqlarni hisobga oling
Ko‘plab provayderlar OpenAI bilan mos keluvchi umumiy transportdan foydalanadi, ammo noodatiy autentifikatsiya sxemalari yoki protokollar uchun maxsus adapterlar kerak bo‘ladi. Har bir katalog yozuvi bir xil ishlaydi deb taxmin qilish o‘rniga, tegishli provayder adapteri va hisob ma’lumotlari mavjudligini tekshiring.
Zarur bo‘lganda protokol endpointlaridan bevosita foydalaning
- Anthropic Messages so‘rovlarini
/v1/messagesga yuboring. - Anthropic formatidagi tokenlarni
/v1/messages/count_tokensorqali hisoblang. - OpenAI Responses bilan mos interfeysdan
/v1/responsesda foydalaning. - Modellarni
/v1/modelsorqali aniqlang. - Xizmat holatini
/healthorqali tekshiring.
Testlar to‘plamini ishga tushiring
pytest -qRepository’da yo‘naltirish, protokolni o‘zgartirish, autentifikatsiya, fikrlash, model katalogi va oqim primitivlari uchun deterministik testlar mavjud. Gateway, yo‘naltirish yoki provayder kodini o‘zgartirgandan keyin ularni ishga tushiring.
Xavfsizlik bo‘yicha ko‘rsatmalar
My Free Code mahalliy foydalanish uchun mo‘ljallangan. Quyidagi ehtiyot choralarini ko‘ring:
- Xizmat mahalliy kompyuterga bog‘lanishi uchun
HOST=127.0.0.1ni saqlang. - Oddiy bo‘lmagan
PROXY_AUTH_TOKENqiymatini o‘rnating. .envfaylini hech qachon versiyalar nazoratiga yubormang.- Admin endpointlarini bevosita Internetga ochmang.
- Provayder hisob ma’lumotlarini muhit yoki konfiguratsiyada saqlang. Gateway bir provayder hisob ma’lumotlarini boshqa provayderga yubormaydi.
Xulosa
My Free Code kodlash agentlari va bir nechta bulut yoki mahalliy model provayderlari o‘rtasida mahalliy moslik va yo‘naltirish qatlamini taqdim etadi. Python bog‘liqliklarini o‘rnatib, modellar va hisob ma’lumotlarini sozlab, shlyuzni ishga tushirgandan so‘ng, Claude Code yoki boshqa qo‘llab-quvvatlanadigan mijozni ulashingiz, modellarni Claude darajalari bo‘yicha belgilashingiz va boshqariladigan zaxira zanjirini yaratishingiz mumkin. Uning alohida protokol, yo‘naltirish, provayder va ishga tushiruvchi qatlamlari loyihani tekshirish va sinashni ham osonlashtiradi.
