Ruka hadi maudhui makuu
Mafunzo ya AI

Jenga Lango la Mawakala wa Usimbaji la Watoa Huduma Wengi kwa My Free Code

Jifunze jinsi ya kusakinisha My Free Code v0.8, kusanidi miundo inayotolewa na watoa huduma au ya ndani, kuunganisha mawakala wa usimbaji, kudhibiti uelekezaji wa viwango na njia mbadala zilizopangwa, kukagua Kiolesura cha Msimamizi, na kulinda lango kwa matumizi ya ndani.

Jenga Lango la Mawakala wa Usimbaji la Watoa Huduma Wengi kwa My Free Code

Kanuni Yangu ya Msimbo Bila Malipo Inachofanya

My Free Code v0.8 ni lango huru la watoa huduma wengi kwa Claude Code na mawakala wengine wa uandishi wa msimbo. Huendesha lango la karibu la FastAPI linalopokea maombi ya wakala, kuchagua modeli iliyosanidiwa, kutafsiri ombi kwa mtoa huduma husika, na kutiririsha jibu kurudi kwa mteja. Mradi huu hauhusiani na Anthropic.

Lango hili linaunga mkono itifaki ya Anthropic Messages kwenye /v1/messages, kuhesabu tokeni za Anthropic kwenye /v1/messages/count_tokens, na kituo kinachoendana na OpenAI Responses kwenye /v1/responses. Pia hutoa ugunduzi wa modeli kupitia /v1/models, kituo cha afya kwenye /health, kiolesura cha karibu cha usimamizi kwenye /admin, na API za usimamizi zilizothibitishwa chini ya /api/admin/*.

Vipengele Muhimu

  • Itifaki nyingi za mawakala: Pokea maombi yanayoendana na Anthropic Messages na OpenAI Responses kupitia lango moja.
  • Uwezo wa mawakala: Shughulikia Server-Sent Events za utiririshaji, ufafanuzi wa zana, miito ya zana, matokeo ya zana, picha, na upitishaji wa metadata ya hoja.
  • Uelekezaji wa viwango vya Claude: Weka modeli tofauti za juu kwa maombi ya Fable, Opus, Sonnet, na Haiku.
  • Uelekezaji thabiti: Tumia mbadala za modeli zilizopangwa kwa utaratibu, kusitisha maombi kwa muda kulingana na afya ya mtoa huduma, vidhibiti vya wakati mmoja kwa kila mtoa huduma, na udhibiti wa madirisha ya viwango.
  • Utambulisho thabiti wa modeli: Hifadhi utambulisho wa modeli ya umma ya lango hata pale router inapotuma ombi kwa mtoa huduma mwingine.
  • Kusawazisha hoja: Weka nia ya kufikiri kwa mtindo wa Claude tofauti na sehemu za ombi maalum za mtoa huduma.
  • Usaidizi wa modeli za karibu: Unganisha Ollama, LM Studio, au llama.cpp kupitia vituo vyao vinavyoendana na OpenAI.
  • Vianzisha mawakala: Andaa mazingira ya proksi kwa Claude Code, Codex, Pi, OpenCode, Cline, Hermes, DeepSeek Harness, Grok Build, na Muse Code.

Katalogi ya watoa huduma inajumuisha mkusanyiko mpana wa huduma za wingu na mazingira ya karibu ya uendeshaji. Watoa huduma wa kawaida wanaoendana na OpenAI hutumia usafirishaji wa pamoja, huku watoa huduma wenye uthibitishaji au itifaki zisizo za kawaida wakihitaji adapta maalum. Kwa hivyo, ingizo la katalogi halipaswi kutafsiriwa kama dai la usaidizi wa jumla bila usanidi maalum wa mtoa huduma.

Jinsi Usanifu Unavyofanya Kazi

             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

Muundo huu unatenganisha itifaki za waya zinazoingia na uelekezaji pamoja na miunganisho ya watoa huduma. Adapta za HTTP hupokea maombi, safu ya programu huchagua na kutekeleza njia, na mazingira ya mtoa huduma huwasiliana na usafirishaji wa pamoja unaoendana na OpenAI, adapta maalum, au mazingira ya karibu ya uendeshaji. Vianzisha CLI hubaki kuwa safu tofauti inayosanidi mazingira ya mteja na kukabidhi utekelezaji kwa wakala wa uandishi wa msimbo aliyesakinishwa.

Sakinisha Lango

Mahitaji ya Awali

  • Python 3.10 au mpya zaidi.
  • Nakala ya karibu ya hazina.
  • Vitambulisho vya watoa huduma wowote wa mbali unaopanga kutumia.
  • Mteja wa wakala wa uandishi wa msimbo unayetaka kuanzisha, akiwa amesakinishwa na kupatikana kwenye PATH.

1. Unda mazingira pepe

python -m venv .venv

2. Yaamilishe na usakinishe vitegemezi

Kwenye Windows PowerShell, endesha:

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

Kwenye macOS au Linux, endesha:

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

3. Anzisha My Free Code

python -m my_free_code

Kwa chaguo-msingi, lango linapatikana kwenye http://127.0.0.1:8082. Unaweza kuangalia huduma kupitia http://127.0.0.1:8082/health na kufungua kiolesura cha karibu cha usimamizi kwenye http://127.0.0.1:8082/admin.

Sanidi Modeli na Watoa Huduma

Hariri faili ya .env iliyozalishwa ili kuchagua modeli chaguo-msingi, kuhusisha modeli na viwango vya Claude, na kufafanua mbadala zilizopangwa kwa utaratibu. Mfano ufuatao unatumia modeli kutoka kwa watoa huduma kadhaa:

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

Ongeza funguo za API za watoa huduma wanaolingana kwenye .env. Tumia .env.example kama marejeo ya sehemu za usanidi zinazoungwa mkono. Anzisha upya lango baada ya kubadilisha mazingira yake.

MODEL huchagua modeli ya jumla ya lango. Vigezo maalum vya viwango kama MODEL_SONNET, MODEL_HAIKU, na MODEL_OPUS huruhusu router kuelekeza viwango vya modeli za Claude kwa huduma tofauti za juu. FALLBACK_MODELS ni orodha ya njia mbadala zilizotenganishwa kwa koma na kupangwa kwa utaratibu.

Unganisha Claude Code

Chaguo la 1: Weka mazingira mwenyewe

Kwenye Windows PowerShell, elekeza Claude Code kwenye lango la karibu linaloendana na Anthropic:

$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 ya msingi huelekeza upya maombi ya Claude Code kwenda My Free Code, huku ugunduzi wa modeli ukiwezesha mteja kuuliza katalogi ya modeli za gateway.

Chaguo la 2: Tumia adapta ya kizindua

python -m my_free_code.cli.mfc claude

Kizindua huandaa mazingira ya proksi ya ndani kisha hukabidhi hoja kwa mteja wa Claude Code aliyesakinishwa. Hakisakinishi mteja wenyewe.

Anzisha Mawakala Wengine wa Usimbaji

Uondoaji huo huo wa kizindua unaunga mkono wateja kadhaa wa ziada:

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

Kabla ya kutekeleza mojawapo ya amri hizi, thibitisha kuwa mteja husika amesakinishwa na anapatikana kwenye PATH. Kizindua huandaa tu mazingira ya gateway na kuita programu iliyopo.

Elewa Marejesho ya Akiba kwa Mpangilio

Tuseme mazingira yana usanidi huu wa uelekezaji:

MODEL_SONNET=deepseek/deepseek-chat
FALLBACK_MODELS=groq/llama-3.3-70b-versatile,ollama/llama3.1

Ombi la Sonnet hupelekwa kwanza kwa deepseek/deepseek-chat. Jaribio hilo likishindwa kabla ya kutoa matokeo, kipanga njia hujaribu groq/llama-3.3-70b-versatile. Jaribio la pili pia likishindwa kabla ya kutoa matokeo, hujaribu 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

Baada ya jibu la utiririshaji kuanza kutoa matokeo, gateway haibadilishi watoa huduma kimyakimya. Hii huepusha kurudia zamu au kuchanganya majibu ya sehemu kutoka kwa modeli tofauti.

Tumia Modeli za Ndani

Ollama

Anzisha huduma ya Ollama kando, kisha sanidi URL ya msingi inayooana na OpenAI pamoja na modeli:

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

LM Studio

Anzisha seva ya ndani ya LM Studio na utumie:

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

llama.cpp

Endesha seva ya llama.cpp na usanidi:

LLAMACPP_BASE_URL=http://127.0.0.1:8080/v1
MODEL=llamacpp/my-model

Mazingira ya uendeshaji ya ndani yanaweza pia kuonekana kwenye FALLBACK_MODELS, na kuruhusu modeli ya ndani kutumika kama mbadala wakati ombi la mbali linaposhindwa kabla ya kutoa matokeo.

Sanidi Tabia ya Ufikiri

Gateway hupokea dhamira ya kufikiri ya mtindo wa Claude na kuisanifisha kabla adapta ya mtoa huduma kutafsiri ombi. Modi zinazotumika ni:

auto
on
off

Kiwango cha hiari cha juhudi kinaweza kuwa:

low
medium
high

Utenganishaji huu huweka sera ya ufikiri inayokabili wakala ikiwa huru dhidi ya sehemu mahususi za mtoa huduma. Kila adapta ya mtoa huduma inaweza kupanga modi na juhudi zilizosawazishwa kwenye sehemu zilizoandikwa na mtoa huduma huyo wa juu.

Fuatilia Gateway

Fungua Kiolesura cha Usimamizi ndani ya mashine kwenye:

http://127.0.0.1:8082/admin

API ya JSON ya Usimamizi iliyothibitishwa inajumuisha:

GET /api/admin/status
GET /api/admin/models
GET /api/admin/providers

Tumia vituo hivi kukagua hali ya gateway, katalogi ya modeli na watoa huduma waliowekwa. Vituo vya usimamizi vinahitaji uthibitishaji na vinapaswa kubaki vya faragha.

Vidokezo vya Juu

Dumisha utambulisho thabiti wa modeli ya umma

Ombi linaweza kuelekezwa kwenye modeli ya kiwango maalum au mtoa huduma wa akiba, lakini gateway hudumisha utambulisho thabiti wa modeli yake ya umma. Kwa hivyo, programu za mteja zinaweza kuwasiliana na modeli ya gateway bila kufuatilia kila uamuzi wa uelekezaji wa mtoa huduma wa juu.

Panga mpangilio wa akiba kwa makusudi

Weka modeli kwenye FALLBACK_MODELS kwa mpangilio kamili ambao zinapaswa kujaribiwa. Zingatia upatikanaji wa watoa huduma na ikiwa mazingira ya ndani yanapaswa kuwa chaguo la mwisho. Kumbuka kuwa akiba hutokea tu kabla ya matokeo ya utiririshaji kuanza kutumwa.

Heshimu tofauti za watoa huduma

Watoa huduma wengi hutumia usafirishaji wa kawaida unaooana na OpenAI, lakini mifumo isiyo ya kawaida ya uthibitishaji au itifaki huhitaji adapta maalum. Thibitisha kuwa adapta ya mtoa huduma husika na kitambulisho vinapatikana badala ya kudhani kuwa kila ingizo la katalogi linafanya kazi kwa njia ile ile.

Tumia vituo vya itifaki moja kwa moja inapohitajika

  • Tuma maombi ya Anthropic Messages kwenye /v1/messages.
  • Hesabu tokeni za muundo wa Anthropic kupitia /v1/messages/count_tokens.
  • Tumia kiolesura kinachoendana na OpenAI Responses kwenye /v1/responses.
  • Tambua modeli kupitia /v1/models.
  • Kagua afya ya huduma kupitia /health.

Endesha seti ya majaribio

pytest -q

Hazina inajumuisha majaribio yanayoweza kurudiwa ya uelekezaji, ubadilishaji wa itifaki, uthibitishaji, ufikiri, katalogi ya modeli na misingi ya utiririshaji. Yaendeshe baada ya kubadilisha msimbo wa gateway, uelekezaji au mtoa huduma.

Miongozo ya Usalama

My Free Code imekusudiwa matumizi ya ndani. Tumia tahadhari zifuatazo:

  • Weka HOST=127.0.0.1 ili huduma ifungwe kwenye mashine ya ndani.
  • Weka PROXY_AUTH_TOKEN yenye thamani salama na isiyotabirika.
  • Usiwahi kuhifadhi faili ya .env kwenye mfumo wa kudhibiti msimbo.
  • Usifichue vituo vya Usimamizi moja kwa moja kwenye Intaneti.
  • Weka vitambulisho vya watoa huduma kwenye mazingira au usanidi. Gateway haitumi vitambulisho vya mtoa huduma mmoja kwa mtoa huduma mwingine.

Hitimisho

My Free Code hutoa safu ya ndani ya uoanifu na uelekezaji kati ya mawakala wa kuandika msimbo na watoa huduma wengi wa miundo ya wingu au ya ndani. Baada ya kusakinisha utegemezi wa Python, kusanidi miundo na vitambulisho, na kuanzisha lango, unaweza kuunganisha Claude Code au mteja mwingine anayetumika, kugawa miundo kulingana na viwango vya Claude, na kuunda mnyororo unaodhibitiwa wa njia mbadala. Safu zake zilizotenganishwa za itifaki, uelekezaji, mtoa huduma na kizindua pia hufanya mradi uwe rahisi kukagua na kuujaribu.