LiteLLM یک لایهٔ واحد روی سرویسهای مدل زبانی است، به دو شکل: کتابخانهٔ پایتون که هر مدلی را با یک تابع صدا میزند، و LiteLLM Proxy که روی سرور خودتان یک API سازگار با OpenAI میسازد
با کلید مجازی برای هر تیم، بودجه، ثبت مصرف و مسیر پشتیبان. گیسو در LiteLLM یک سرویس «سازگار با OpenAI» است و با پیشوند openai/ تعریف میشود.
| model | openai/ و پشتش شناسهٔ مدل گیسو، مثلاً openai/openrouter/anthropic/claude-sonnet-5.5 |
| api_base | https://gisoo.pro/api/v1 |
| api_key | کلید گیسو؛ در Proxy به شکل os.environ/GISOO_API_KEY |
LiteLLM از اولین بخش نام مدل، سرویس را تشخیص میدهد. بعضی شناسههای گیسو با openrouter/ شروع میشوند؛ اگر openrouter/anthropic/claude-sonnet-5.5 را بدون پیشوند بنویسید،
LiteLLM آن را درخواستی برای OpenRouter حساب میکند و نام مدل را پیش از فرستادن کوتاه میکند؛ نتیجه خطای مدل یا رفتن درخواست به جای دیگری است. همیشه openai/ را جلوی شناسه بگذارید: LiteLLM فقط همان یک پیشوند را برمیدارد و بقیه را دستنخورده به گیسو میفرستد.
کتابخانهٔ پایتون
برای سرورها و کاربران داخل ایران، در این نمونه نشانی gisoo.pro را با ir.gisoo.pro جایگزین کنید؛ مسیر و کلید هماناند.
# pip install litellm
import os
import litellm
response = litellm.completion(
model="openai/openrouter/anthropic/claude-sonnet-5.5", # "openai/" = speak the OpenAI format; the rest is Gisoo's model id
api_base="https://gisoo.pro/api/v1",
api_key=os.environ["GISOO_API_KEY"],
messages=[{"role": "user", "content": "Give me three names for a coffee shop."}],
max_tokens=300,
)
print(response.choices[0].message.content)
vectors = litellm.embedding(
model="openai/text-embedding-3-small",
api_base="https://gisoo.pro/api/v1",
api_key=os.environ["GISOO_API_KEY"],
input=["first text", "second text"],
)
پاسخ جریانی (stream=True)، ابزارها (tools) و ورودی تصویر همانطور که در LiteLLM مینویسید کار میکنند، به شرط آنکه مدل انتخابی آن قابلیت را داشته باشد.
چند مدل و مسیر پشتیبان
با Router برای هر کار یک نام بگذارید و اگر مدلی جواب نداد، مدل دیگری جایش جواب بدهد:
برای سرورها و کاربران داخل ایران، در این نمونه نشانی gisoo.pro را با ir.gisoo.pro جایگزین کنید؛ مسیر و کلید هماناند.
import os
from litellm import Router
gisoo = {"api_base": "https://gisoo.pro/api/v1", "api_key": os.environ["GISOO_API_KEY"]}
router = Router(
model_list=[
{"model_name": "smart", "litellm_params": {"model": "openai/openrouter/anthropic/claude-sonnet-5.5", **gisoo}},
{"model_name": "cheap", "litellm_params": {"model": "openai/deepseek-v4-flash", **gisoo}},
],
fallbacks=[{"smart": ["cheap"]}], # if "smart" keeps failing, answer with "cheap"
num_retries=2,
)
reply = router.completion(model="smart", messages=[{"role": "user", "content": "Hello"}])
LiteLLM Proxy
وقتی چند برنامه یا چند تیم یک کلید گیسو را به اشتراک میگذارند، Proxy را روی سرور خودتان اجرا کنید: کلید گیسو فقط روی همان سرور میماند و هر تیم کلید مجازی خودش را میگیرد.
برای سرورها و کاربران داخل ایران، در این نمونه نشانی gisoo.pro را با ir.gisoo.pro جایگزین کنید؛ مسیر و کلید هماناند.
# config.yaml for LiteLLM Proxy
model_list:
- model_name: claude
litellm_params:
model: openai/openrouter/anthropic/claude-sonnet-5.5
api_base: https://gisoo.pro/api/v1
api_key: os.environ/GISOO_API_KEY
input_cost_per_token: 0.0000030595 # today's Gisoo price, so LiteLLM's spend logs match
output_cost_per_token: 0.0000152975
- model_name: fast
litellm_params:
model: openai/gpt-4o-mini
api_base: https://gisoo.pro/api/v1
api_key: os.environ/GISOO_API_KEY
- model_name: embeddings
litellm_params:
model: openai/text-embedding-3-small
api_base: https://gisoo.pro/api/v1
api_key: os.environ/GISOO_API_KEY
litellm_settings:
num_retries: 2
request_timeout: 120
pip install 'litellm[proxy]'
export GISOO_API_KEY="sk-gisoo-v1-..."
litellm --config config.yaml --port 4000
# Your apps now talk to the proxy with the proxy's own key:
curl http://localhost:4000/v1/chat/completions \
-H "Authorization: Bearer $LITELLM_MASTER_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "claude", "messages": [{"role": "user", "content": "Hello"}]}'
input_cost_per_tokenوoutput_cost_per_tokenرا با قیمت گیسو پر کنید تا گزارش هزینهٔ LiteLLM با صورتحساب گیسو یکی باشد. عددهای نمونهٔ بالا قیمت امروزopenrouter/anthropic/claude-sonnet-5.5است؛ قیمت هر مدل در صفحهٔ مدلها آمده است.- LiteLLM فهرست قیمت خودش را دارد که برای شناسههای گیسو درست نیست. هزینهٔ دقیق همیشه همان است که در «گزارش مصرف» اپ گیسو یا با
GET /usageمیبینید. - برای Proxy یک کلید گیسوی جدا با سقف هزینه بسازید؛ بودجهٔ هر تیم را هم در خود LiteLLM بگذارید.
کدام مدل را بگذارید
| برای | شناسهٔ مدل | پنجرهٔ ورودی (توکن) | ورودی / خروجی (دلار برای هر یک میلیون توکن) |
|---|---|---|---|
| کار دقیق و ایجنت | openrouter/anthropic/claude-sonnet-5.5 |
۱٬۰۰۰٬۰۰۰ | $3.0595 / $15.2975 |
| کارهای سبک و پرتکرار | gpt-4o-mini |
۱۲۸٬۰۰۰ | $0.21 / $0.84 |
| پشتیبان ارزان | deepseek-v4-flash |
۱٬۰۰۰٬۰۰۰ | $0.42 / $1.68 |
شناسهها و قیمتها هنگام باز شدن این صفحه از کاتالوگ خوانده میشوند و با تغییر قیمت سرویسدهنده عوض میشوند. فهرست کامل، با قیمت هر مدل به سکه، در صفحهٔ مدلها است.
خطاهای رایج
| نشانه | علت | راه رفع |
|---|---|---|
| خطای کلید یا مدل از سرویس دیگری، یا درخواستی که در گزارش مصرف گیسو نیست | پیشوند openai/ جا افتاده است. | openai/ را جلوی شناسه بگذارید. |
404 model_not_found | شناسهٔ پس از openai/ در کاتالوگ گیسو نیست. | شناسه را از صفحهٔ مدلها کپی کنید. |
| 404 برای هر مدلی | api_base بدون /v1 است. | دقیقاً https://gisoo.pro/api/v1. |
401 در Proxy | متغیر GISOO_API_KEY روی سرور Proxy تنظیم نشده است. | متغیر را در همان محیطی بگذارید که Proxy اجرا میشود (مثلاً در فایل .env داکر). |
429 concurrency_limit | چند برنامه از یک حساب گیسو همزمان درخواست میفرستند. | در LiteLLM برای هر مدل سقف همزمانی (max_parallel_requests) بگذارید یا با تیکت سقف بیشتری بخواهید. |
پرسشهای پرتکرار
LiteLLM لازم است یا SDK رسمی OpenAI کافی است؟
برای یک برنامه، SDK رسمی کافی است (SDKها). LiteLLM وقتی به کار میآید که چند سرویس، چند تیم یا بودجهٔ جدا برای هر تیم دارید.
Claude Code را میتوانم به LiteLLM Proxy وصل کنم؟
میتوانید، ولی لازم نیست: Claude Code مستقیم به Messages API گیسو وصل میشود و یک لایه کمتر یعنی یک نقطهٔ خرابی کمتر.
متن درخواستها کجا ذخیره میشود؟
گیسو متن را ذخیره نمیکند. خود LiteLLM Proxy بسته به تنظیمش ممکن است درخواستها را در پایگاه دادهٔ خودتان ثبت کند؛ آن تنظیم دست شماست.
راهنماهای مرتبط
پاسخ پرسشتان را پیدا نکردید؟
شناسهٔ درخواست (هدر X-Request-Id) را با پرسشتان در تیکت بفرستید تا دقیق بررسی کنیم.