የተዘጋጀ በ ሴፕቴ 25 ፣ 2025
6 ደቂቀ ምርት
# Pythonpip install litellm# Node.jsnpm install litellm# ምሳሌ፡ OpenAI + Anthropic + Mistralን መጠቀምexport OPENAI_API_KEY=sk-...export ANTHROPIC_API_KEY=sk-ant-...export MISTRAL_API_KEY=sk-mis-...from litellm import completionresp = completion(model="gpt-4o-mini", # ወይም "anthropic/claude-3-5-sonnet", "mistral/mistral-large"messages=.---## ዥረት፣ መሳሪያዎች እና JSON ሁነታ### ምላሾችን በዥረት መልቀቅ```pythonfrom litellm import completionfor chunk in completion(model="gpt-4o-mini",messages=.### ወጪ እና ማስመሰያ አጠቃቀምLiteLLM የቶከን አጠቃቀምን መከታተል እና ለእያንዳንዱ ጥያቄ፣ ሞዴል ወይም ፕሮጀክት ወጪን መገመት ይችላል። በፕሮክሲ አማካኝነት አጠቃቀምን ወደ ምዝግብ ማስታወሻዎች፣ ዳሽቦርዶች ወይም የክፍያ ማስመጫ መላክ ይችላሉ። ይህ የተለያዩ የዋጋ አወጣጥ ያላቸውን አቅራቢዎች ስትቀላቅሉ በጣም ጠቃሚ ነው።---## የLiteLLM ፕሮክሲ (LLM መግቢያ በር)ቡድን ወይም መድረክ ከሆንክ ፕሮክሲው እውነተኛው ልዕለ ኃይል ነው፡ ራውቲንግ፣ ማረጋገጫ፣ የፍጥነት ገደቦች፣ ምዝግብ ማስታወሻ እና ምልከታ ያለው ማዕከላዊ አገልግሎት ነው። የመተግበሪያህ ኮድ ብዙም እንዳይቀየር የOpenAI API ገጽን በመጠቀም ከእሱ ጋር ትገናኛለህ።### ፕሮክሲውን ያስጀምሩ```bash# ቀላሉ የአካባቢ ማስኬጃlitellm --port 4000/v1/chat/completions ያሉ OpenAI-ተኳሃኝ የመጨረሻ ነጥቦችን ያጋልጣል። ያለህን የOpenAI ደንበኛ ወደ ` በመጠቆም ተዘጋጅተሃል።config.yaml ይፍጠሩ:model_list:- model_name: gpt-4o-minilitellm_params:model: openai/gpt-4o-miniapi_key: ${OPENAI_API_KEY}- model_name: claude-3-5-sonnetlitellm_params:model: anthropic/claude-3-5-sonnetapi_key: ${ANTHROPIC_API_KEY}router:strategy: simple_weightedroutes:- model: gpt-4o-miniweight: 0.6- model: claude-3-5-sonnetweight: 0.4rate_limits:requests_per_minute: 120logging:level: infosink: stdoutauth:api_keys:- key: svc-app-123litellm --config config.yaml --port 4000from openai import OpenAIclient = OpenAI(base_url=" api_key="svc-app-123")resp = client.chat.completions.create(model="gpt-4o-mini",messages=.---## የላቀ ራውቲንግ፡ ድብቅነት፣ ወጪ ወይም አስተማማኝነትእንደነዚህ ያሉ የራውቲንግ ስልቶችን መተግበር ትችላለህ:- ሞዴሎችን A/B ለማድረግ ክብደት ያለው ዙር-ሮቢን- በክልል ዝቅተኛ-ድብቅነት-መጀመሪያ- ወሳኝ ላልሆኑ የመጨረሻ ነጥቦች የወጪ-ተኮር ራውቲንግ- በአቅራቢዎች ላይ ስህተት ሲፈጠር መውደቅ/እንደገና መሞከርበራውተር ፖሊሲ፣ “ርካሹን ምረጥ፣ አስቸጋሪ ለሆኑ ጥያቄዎች ወደ ፕሪሚየም ተመለስ” ማለት ትችላለህ። ይህ ከፍተኛ ተገኝነት እና ሊገመቱ የሚችሉ በጀቶችን ያቀርባል።---## የጥበቃ መስመሮች፣ ልከኝነት እና ደህንነትPII ን ለማስወገድ፣ የደህንነት ማጣሪያዎችን ለማስፈጸም ወይም ውጤቶችን ለደንበኞች ከመመለስህ በፊት ለማስተካከል ቅድመ- እና ድህረ-ሂደት ሚድልዌር ጨምር። በአቅራቢው-ቤተኛ ልከኝነት (ለምሳሌ፣ OpenAI፣ Google) የራስህን የፖሊሲ ፍተሻዎች በፕሮክሲ ውስጥ አጣምር። ምሳሌ፡ የJSON schema ማረጋገጫን ጠይቅ እና ልክ ባልሆነ ጊዜ እንደገና ጠይቅ።---## ምልከታ እና ምዝግብ ማስታወሻ- ጥያቄ/ምላሽ ምዝግብን ከማረም ጋር አንቃ።- መለኪያዎችን ወደ Prometheus/Grafana ወይም APMህ ላክ።- ድብቅነትን፣ ማስመሰያዎችን እና ወጪዎችን በመጨረሻ ነጥብ እና በተጠቃሚ ይከታተሉ።ይህ “ሞዴል ሩሌት”ን በ SLOዎች እና በጀቶች ወደሚተዳደር አገልግሎት ይለውጠዋል።---## የእውነተኛ ዓለም አጠቃቀም ሁኔታዎች1) ባለብዙ-አቅራቢ የመቋቋም ችሎታ- የመጀመሪያ፡ ፈጣን/ርካሽ ሞዴል; ተለዋጭ፡ በ429/5xx ላይ ከፍተኛ-ትክክለኛነት ሞዴል።- ጥቅሞች፡ የተሻለ የስራ ጊዜ፣ የወጪ ቁጥጥር እና የተረጋጋ ጥራት።2) የባህሪ ባንዲራ ሞዴል ማሻሻያዎች- አዲስ ሞዴልን ወደ 5% ትራፊክ ለማድረስ የራውተር ክብደቶችን ተጠቀም፤ መለኪያዎችን ይቆጣጠሩ; በተረጋጋ ጊዜ ይጨምሩ።3) የምርት እርከኖች- ነፃ እርከን ወደ ትናንሽ ሞዴሎች ይላካል; ፕሮ እርከን ወደ ፕሪሚየም ሞዴሎች።4) ፈጣን መዝገቦች እና አብነቶች- አገልግሎቶች ማሻሻያዎችን ያለ ድጋሚ ማሰማራት እንዲወርሱ ጥያቄዎችን በፕሮክሲ ውስጥ ማእከላዊ ያድርጉ።5) የቡድን ክፍያ እና በጀቶች- ወጪን በኤፒአይ ቁልፍ ይከታተሉ; ለእያንዳንዱ ቡድን ወይም ምርት ለስላሳ እና ከባድ ገደቦችን ያስገድዱ።---## የደህንነት እና ተገዢነት ማረጋገጫ ዝርዝር- የአቅራቢ ቁልፎችን በሚስጥር አስተዳዳሪህ ውስጥ አስቀምጥ; በማዋቀር ውስጥ በenv vars በኩል ጠቅስ።- በምዝግብ ማስታወሻዎች ውስጥ የጥያቄ ማረምን እና PII መጥረግን ያብሩ።- ለፕሮክሲ ለእያንዳንዱ አገልግሎት የኤፒአይ ቁልፎችን ተጠቀም; በየጊዜው ያሽከርክሩ።- በድርጅት አቀፍ የፍጥነት ገደቦችን እና ኮታዎችን ያዘጋጁ።- ለሞዴሎች እና ለመጨረሻ ነጥቦች ፍቃድ ዝርዝሮችን/የማይፈቀዱ ዝርዝሮችን ጨምር።---## መላ መፈለግ፡ ፈጣን ጥገናዎች- በፕሮክሲ በኩል “ያልተፈቀደ”፡ `auth.api_keys` እና ደንበኛህ `base_url` + ትክክለኛ ቁልፍ እየተጠቀመ መሆኑን አረጋግጥ።- ሞዴል አልተገኘም፡ `model_list` እየጠራህ ያለውን ተስማሚ ስም መያዙን አረጋግጥ።- የጊዜ ማብቂያዎች፡ `timeout` ጨምር ወይም ወደ ዝቅተኛ-ድብቅነት አቅራቢ ክልል ይሂዱ።- እንግዳ ውጤቶች፡ JSON schema + ማረጋገጫ አንቃ; እንደገና ሙከራዎችን እና ተለዋጮችን ጨምር።- የወጪ ጫፎች፡ መሸጎጫን ያብሩ; የጅምላ ትራፊክን ወደ ርካሽ ሞዴሎች ይላኩ; ለእያንዳንዱ ቁልፍ ኮታዎችን ያዘጋጁ።ለጥልቅ ዳይቮች እና የቅርብ ጊዜ ባህሪያት፣ ኦፊሴላዊው ሰነዶች በተደጋጋሚ ይዘመናሉ እና ዕልባት ማድረግ ተገቢ ነው። እንደ DataCamp መመሪያ ያሉ ትምህርቶች ለተግባራዊ ሁኔታዎች በጣም ጥሩ ናቸው፣ እና የጀማሪዎቹ አጭር ኮርስ ቪዲዮ ፅንሰ-ሀሳቦችን በስራ ላይ እንድታይ ሊረዳህ ይችላል።---## ሁሉንም በአንድ ላይ አስቀምጠው፡ የማጣቀሻ መተግበሪያ አጽም (Python FastAPI)```python# app.pyfrom fastapi import FastAPIfrom pydantic import BaseModelfrom litellm import completionimport osclass ChatReq(BaseModel):question: strapp = FastAPI@app.post("/ask")async def ask(req: ChatReq):resp = completion(model=os.getenv("DEFAULT_MODEL", "gpt-4o-mini"),messages=.### ተደጋጋሚ ጥያቄዎችQ1:LiteLLM ምንድን ነው እና በቀጥታ በአቅራቢ SDKs ላይ ለምን ይጠቀሙታል?LiteLLM ለ100+ LLMs የOpenAI-ተኳሃኝ መግቢያ በር ነው፣ ይህም አንድ ኤፒአይ እና አንድ የአዕምሮ ሞዴል ይሰጥዎታል። የአቅራቢ መቆለፍን ይቀንሳል፣ ራውቲንግን ያቃልላል፣ እና እንደ መሸጎጫ፣ እንደገና መሞከር እና የወጪ ክትትል ያሉ የኦፕሬሽን ባህሪያትን ይጨምራል።Q2:LiteLLMን ከOpenAI SDK ጋር እንዴት ነው የምጠቀመው?የ SDKውን የመሠረት URL ወደ LiteLLM ፕሮክሲ ይጠቁሙ እና የፕሮክሲ ኤፒአይ ቁልፍዎን ይጠቀሙ። ፕሮክሲው ከጀርባው አቅራቢዎችን ወይም ሞዴሎችን በሚቀያይርበት ጊዜ ኮድዎ ተመሳሳይ ሆኖ ሊቆይ ይችላል።Q3:LiteLLM ምላሾችን ማስተላለፍ እና JSON መመለስ ይችላል?አዎ። የቶከን ዥረቶችን ለማግኘት `stream=True` ይጠቀሙ እና በተለያዩ አቅራቢዎች ላይ የተዋቀሩ ውጤቶችን ለማስፈጸም `response_format`ን ከJSON schema ጋር ይጠቀሙ።Q4:በተለያዩ የLLM አቅራቢዎች ላይ ወጪዎችን እንዴት መቆጣጠር እችላለሁ?የአጠቃቀም ምዝግብ ማስታወሻን እና የወጪ ግምትን አንቃ፣ መሸጎጫ ጨምር፣ የፍጥነት ገደቦችን አዘጋጅ እና የጅምላ ትራፊክን በፕሮክሲ በኩል ወደ ርካሽ ሞዴሎች ምራ። ለበጀቶች እና SLOዎች ዳሽቦርዶችን ተቆጣጠር።Q5:LiteLLM ለአምራች ቡድኖች ተስማሚ ነው?አዎ። ፕሮክሲው ማረጋገጫ፣ የፍጥነት ገደቦችን፣ ራውቲንግን፣ ምልከታ እና የደህንነት ሚድልዌርን ያቀርባል። መተግበሪያህን OpenAI-ተኳሃኝ በማድረግ አስተዳደርን የሚያማክል የLLM መግቢያ በር ተደርጎ የተነደፈ ነው።