Chesars
c75f0c0566
test: drop duplicate openrouter prefix-strip test
...
The multi-segment case (openrouter/<provider>/<model> → <provider>/<model>)
is already covered by tests/test_litellm/llms/openrouter/test_openrouter_provider_routing.py
in internal_staging, with broader coverage including double-prefix native
models, wildcard deployments, and the bridge double-call scenario.
Keeping a duplicate in tests/local_testing/ adds maintenance load with no
extra coverage.
2026-04-25 18:06:25 -03:00
Chesars
232464e151
test: drop incorrect openrouter native-prefix test
...
The removed test asserted that get_llm_provider(model="openrouter/auto")
should return model="openrouter/auto" with the prefix preserved. That
contract is wrong: the LiteLLM convention strips one "openrouter/" prefix,
so a native OpenRouter model is reached via "openrouter/openrouter/auto"
(double-prefix) which the wire send as "openrouter/auto" — the ID the
OpenRouter API expects for natives. E2E checks against api.openrouter.ai
confirm this is the correct routing convention for all native models
(auto, bodybuilder, free, pareto-code).
2026-04-25 17:25:49 -03:00
Chesars
91e78eca3d
Merge remote-tracking branch 'upstream/litellm_internal_staging' into upstream-litellm_staging_03_21_2026
...
# Conflicts:
# .circleci/config.yml
# .circleci/requirements.txt
# .github/workflows/_test-unit-base.yml
# .github/workflows/_test-unit-services-base.yml
# .github/workflows/auto_update_price_and_context_window.yml
# .github/workflows/create-release.yml
# .github/workflows/llm-translation-testing.yml
# .github/workflows/publish_to_pypi.yml
# .github/workflows/scan_duplicate_issues.yml
# .github/workflows/test-linting.yml
# .github/workflows/test-litellm-matrix.yml
# .github/workflows/test-litellm.yml
# .github/workflows/test-mcp.yml
# .github/workflows/test-model-map.yaml
# .github/workflows/test-proxy-e2e-azure-batches.yml
# .github/workflows/test-unit-core-utils.yml
# .github/workflows/test-unit-documentation.yml
# .github/workflows/test-unit-enterprise-routing.yml
# .github/workflows/test-unit-integrations.yml
# .github/workflows/test-unit-llm-providers.yml
# .github/workflows/test-unit-misc.yml
# .github/workflows/test-unit-proxy-auth.yml
# .github/workflows/test-unit-proxy-db.yml
# .github/workflows/test-unit-proxy-endpoints.yml
# .github/workflows/test-unit-proxy-infra.yml
# .github/workflows/test-unit-proxy-legacy.yml
# .github/workflows/test-unit-responses-caching-types.yml
# .github/workflows/test-unit-security.yml
# .github/workflows/test_server_root_path.yml
# docs/my-website/docs/embedding/supported_embedding.md
# litellm/litellm_core_utils/get_llm_provider_logic.py
# litellm/llms/vertex_ai/gemini_embeddings/batch_embed_content_transformation.py
# litellm/proxy/_experimental/out/404/index.html
# litellm/proxy/_experimental/out/__next.__PAGE__.txt
# litellm/proxy/_experimental/out/__next._full.txt
# litellm/proxy/_experimental/out/__next._head.txt
# litellm/proxy/_experimental/out/__next._index.txt
# litellm/proxy/_experimental/out/__next._tree.txt
# litellm/proxy/_experimental/out/_next/static/3qyC5Vtvhd5fSC6sPp1iW/_buildManifest.js
# litellm/proxy/_experimental/out/_next/static/3qyC5Vtvhd5fSC6sPp1iW/_clientMiddlewareManifest.json
# litellm/proxy/_experimental/out/_next/static/3qyC5Vtvhd5fSC6sPp1iW/_ssgManifest.js
# litellm/proxy/_experimental/out/_next/static/aKKihXXKRJWLQThZgi8Rq/_buildManifest.js
# litellm/proxy/_experimental/out/_next/static/aKKihXXKRJWLQThZgi8Rq/_clientMiddlewareManifest.json
# litellm/proxy/_experimental/out/_next/static/aKKihXXKRJWLQThZgi8Rq/_ssgManifest.js
# litellm/proxy/_experimental/out/_next/static/bmMTxs1O5fQKYcsMNTRMT/_buildManifest.js
# litellm/proxy/_experimental/out/_next/static/bmMTxs1O5fQKYcsMNTRMT/_clientMiddlewareManifest.json
# litellm/proxy/_experimental/out/_next/static/bmMTxs1O5fQKYcsMNTRMT/_ssgManifest.js
# litellm/proxy/_experimental/out/_next/static/chunks/11362340846735c3.js
# litellm/proxy/_experimental/out/_next/static/chunks/1a04d31843c96649.js
# litellm/proxy/_experimental/out/_next/static/chunks/342c7d7210247a5e.js
# litellm/proxy/_experimental/out/_next/static/chunks/39768ec0eebd2554.js
# litellm/proxy/_experimental/out/_next/static/chunks/3b3c0b070b14da06.js
# litellm/proxy/_experimental/out/_next/static/chunks/3bddc72a3ecc2253.js
# litellm/proxy/_experimental/out/_next/static/chunks/4472ece1be7379b3.js
# litellm/proxy/_experimental/out/_next/static/chunks/54e29148cb2f2582.js
# litellm/proxy/_experimental/out/_next/static/chunks/67ddb5107368a659.js
# litellm/proxy/_experimental/out/_next/static/chunks/6a167cef4b09b496.js
# litellm/proxy/_experimental/out/_next/static/chunks/7174130ddef406dd.js
# litellm/proxy/_experimental/out/_next/static/chunks/7c36bfe1ba5e3ba8.js
# litellm/proxy/_experimental/out/_next/static/chunks/7e5fe5584502da06.js
# litellm/proxy/_experimental/out/_next/static/chunks/8dda507c226082ca.js
# litellm/proxy/_experimental/out/_next/static/chunks/8dfde809dc4ad794.js
# litellm/proxy/_experimental/out/_next/static/chunks/99109c78121231a0.js
# litellm/proxy/_experimental/out/_next/static/chunks/9dd55e1f36a7225c.js
# litellm/proxy/_experimental/out/_next/static/chunks/a230559fcabaea23.js
# litellm/proxy/_experimental/out/_next/static/chunks/a6c7f80b3968f639.js
# litellm/proxy/_experimental/out/_next/static/chunks/ac9e96d21c200b48.js
# litellm/proxy/_experimental/out/_next/static/chunks/ae9cf43b8c0c76aa.js
# litellm/proxy/_experimental/out/_next/static/chunks/cf06797ce4e438f9.js
# litellm/proxy/_experimental/out/_next/static/chunks/d069df5baead6d90.js
# litellm/proxy/_experimental/out/_next/static/chunks/d2e3b7dd6499c245.js
# litellm/proxy/_experimental/out/_next/static/chunks/d44e73d8ebac5747.js
# litellm/proxy/_experimental/out/_next/static/chunks/dc8a270fee94ced6.js
# litellm/proxy/_experimental/out/_next/static/chunks/df6546cd8a44d3b3.js
# litellm/proxy/_experimental/out/_next/static/chunks/ea0f22bd4b3393bd.js
# litellm/proxy/_experimental/out/_next/static/chunks/eaa9f9b9bb3e054b.js
# litellm/proxy/_experimental/out/_next/static/chunks/turbopack-901b35f89c1f6751.js
# litellm/proxy/_experimental/out/_next/static/chunks/turbopack-d1b22f5e0bd58c57.js
# litellm/proxy/_experimental/out/_next/static/chunks/turbopack-ddedb29a5eb0118f.js
# litellm/proxy/_experimental/out/_not-found.txt
# litellm/proxy/_experimental/out/_not-found/__next._full.txt
# litellm/proxy/_experimental/out/_not-found/__next._head.txt
# litellm/proxy/_experimental/out/_not-found/__next._index.txt
# litellm/proxy/_experimental/out/_not-found/__next._not-found.__PAGE__.txt
# litellm/proxy/_experimental/out/_not-found/__next._not-found.txt
# litellm/proxy/_experimental/out/_not-found/__next._tree.txt
# litellm/proxy/_experimental/out/_not-found/index.html
# litellm/proxy/_experimental/out/api-reference.html
# litellm/proxy/_experimental/out/api-reference.txt
# litellm/proxy/_experimental/out/api-reference/__next.!KGRhc2hib2FyZCk.api-reference.__PAGE__.txt
# litellm/proxy/_experimental/out/api-reference/__next.!KGRhc2hib2FyZCk.api-reference.txt
# litellm/proxy/_experimental/out/api-reference/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/api-reference/__next._full.txt
# litellm/proxy/_experimental/out/api-reference/__next._head.txt
# litellm/proxy/_experimental/out/api-reference/__next._index.txt
# litellm/proxy/_experimental/out/api-reference/__next._tree.txt
# litellm/proxy/_experimental/out/chat.html
# litellm/proxy/_experimental/out/chat.txt
# litellm/proxy/_experimental/out/chat/__next._full.txt
# litellm/proxy/_experimental/out/chat/__next._head.txt
# litellm/proxy/_experimental/out/chat/__next._index.txt
# litellm/proxy/_experimental/out/chat/__next._tree.txt
# litellm/proxy/_experimental/out/chat/__next.chat.__PAGE__.txt
# litellm/proxy/_experimental/out/chat/__next.chat.txt
# litellm/proxy/_experimental/out/experimental/api-playground.html
# litellm/proxy/_experimental/out/experimental/api-playground.txt
# litellm/proxy/_experimental/out/experimental/api-playground/__next.!KGRhc2hib2FyZCk.experimental.api-playground.__PAGE__.txt
# litellm/proxy/_experimental/out/experimental/api-playground/__next.!KGRhc2hib2FyZCk.experimental.api-playground.txt
# litellm/proxy/_experimental/out/experimental/api-playground/__next.!KGRhc2hib2FyZCk.experimental.txt
# litellm/proxy/_experimental/out/experimental/api-playground/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/experimental/api-playground/__next._full.txt
# litellm/proxy/_experimental/out/experimental/api-playground/__next._head.txt
# litellm/proxy/_experimental/out/experimental/api-playground/__next._index.txt
# litellm/proxy/_experimental/out/experimental/api-playground/__next._tree.txt
# litellm/proxy/_experimental/out/experimental/budgets.html
# litellm/proxy/_experimental/out/experimental/budgets.txt
# litellm/proxy/_experimental/out/experimental/budgets/__next.!KGRhc2hib2FyZCk.experimental.budgets.__PAGE__.txt
# litellm/proxy/_experimental/out/experimental/budgets/__next.!KGRhc2hib2FyZCk.experimental.budgets.txt
# litellm/proxy/_experimental/out/experimental/budgets/__next.!KGRhc2hib2FyZCk.experimental.txt
# litellm/proxy/_experimental/out/experimental/budgets/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/experimental/budgets/__next._full.txt
# litellm/proxy/_experimental/out/experimental/budgets/__next._head.txt
# litellm/proxy/_experimental/out/experimental/budgets/__next._index.txt
# litellm/proxy/_experimental/out/experimental/budgets/__next._tree.txt
# litellm/proxy/_experimental/out/experimental/caching.html
# litellm/proxy/_experimental/out/experimental/caching.txt
# litellm/proxy/_experimental/out/experimental/caching/__next.!KGRhc2hib2FyZCk.experimental.caching.__PAGE__.txt
# litellm/proxy/_experimental/out/experimental/caching/__next.!KGRhc2hib2FyZCk.experimental.caching.txt
# litellm/proxy/_experimental/out/experimental/caching/__next.!KGRhc2hib2FyZCk.experimental.txt
# litellm/proxy/_experimental/out/experimental/caching/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/experimental/caching/__next._full.txt
# litellm/proxy/_experimental/out/experimental/caching/__next._head.txt
# litellm/proxy/_experimental/out/experimental/caching/__next._index.txt
# litellm/proxy/_experimental/out/experimental/caching/__next._tree.txt
# litellm/proxy/_experimental/out/experimental/claude-code-plugins.html
# litellm/proxy/_experimental/out/experimental/claude-code-plugins.txt
# litellm/proxy/_experimental/out/experimental/claude-code-plugins/__next.!KGRhc2hib2FyZCk.experimental.claude-code-plugins.__PAGE__.txt
# litellm/proxy/_experimental/out/experimental/claude-code-plugins/__next.!KGRhc2hib2FyZCk.experimental.claude-code-plugins.txt
# litellm/proxy/_experimental/out/experimental/claude-code-plugins/__next.!KGRhc2hib2FyZCk.experimental.txt
# litellm/proxy/_experimental/out/experimental/claude-code-plugins/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/experimental/claude-code-plugins/__next._full.txt
# litellm/proxy/_experimental/out/experimental/claude-code-plugins/__next._head.txt
# litellm/proxy/_experimental/out/experimental/claude-code-plugins/__next._index.txt
# litellm/proxy/_experimental/out/experimental/claude-code-plugins/__next._tree.txt
# litellm/proxy/_experimental/out/experimental/old-usage.html
# litellm/proxy/_experimental/out/experimental/old-usage.txt
# litellm/proxy/_experimental/out/experimental/old-usage/__next.!KGRhc2hib2FyZCk.experimental.old-usage.__PAGE__.txt
# litellm/proxy/_experimental/out/experimental/old-usage/__next.!KGRhc2hib2FyZCk.experimental.old-usage.txt
# litellm/proxy/_experimental/out/experimental/old-usage/__next.!KGRhc2hib2FyZCk.experimental.txt
# litellm/proxy/_experimental/out/experimental/old-usage/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/experimental/old-usage/__next._full.txt
# litellm/proxy/_experimental/out/experimental/old-usage/__next._head.txt
# litellm/proxy/_experimental/out/experimental/old-usage/__next._index.txt
# litellm/proxy/_experimental/out/experimental/old-usage/__next._tree.txt
# litellm/proxy/_experimental/out/experimental/prompts.html
# litellm/proxy/_experimental/out/experimental/prompts.txt
# litellm/proxy/_experimental/out/experimental/prompts/__next.!KGRhc2hib2FyZCk.experimental.prompts.__PAGE__.txt
# litellm/proxy/_experimental/out/experimental/prompts/__next.!KGRhc2hib2FyZCk.experimental.prompts.txt
# litellm/proxy/_experimental/out/experimental/prompts/__next.!KGRhc2hib2FyZCk.experimental.txt
# litellm/proxy/_experimental/out/experimental/prompts/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/experimental/prompts/__next._full.txt
# litellm/proxy/_experimental/out/experimental/prompts/__next._head.txt
# litellm/proxy/_experimental/out/experimental/prompts/__next._index.txt
# litellm/proxy/_experimental/out/experimental/prompts/__next._tree.txt
# litellm/proxy/_experimental/out/experimental/tag-management.html
# litellm/proxy/_experimental/out/experimental/tag-management.txt
# litellm/proxy/_experimental/out/experimental/tag-management/__next.!KGRhc2hib2FyZCk.experimental.tag-management.__PAGE__.txt
# litellm/proxy/_experimental/out/experimental/tag-management/__next.!KGRhc2hib2FyZCk.experimental.tag-management.txt
# litellm/proxy/_experimental/out/experimental/tag-management/__next.!KGRhc2hib2FyZCk.experimental.txt
# litellm/proxy/_experimental/out/experimental/tag-management/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/experimental/tag-management/__next._full.txt
# litellm/proxy/_experimental/out/experimental/tag-management/__next._head.txt
# litellm/proxy/_experimental/out/experimental/tag-management/__next._index.txt
# litellm/proxy/_experimental/out/experimental/tag-management/__next._tree.txt
# litellm/proxy/_experimental/out/guardrails.html
# litellm/proxy/_experimental/out/guardrails.txt
# litellm/proxy/_experimental/out/guardrails/__next.!KGRhc2hib2FyZCk.guardrails.__PAGE__.txt
# litellm/proxy/_experimental/out/guardrails/__next.!KGRhc2hib2FyZCk.guardrails.txt
# litellm/proxy/_experimental/out/guardrails/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/guardrails/__next._full.txt
# litellm/proxy/_experimental/out/guardrails/__next._head.txt
# litellm/proxy/_experimental/out/guardrails/__next._index.txt
# litellm/proxy/_experimental/out/guardrails/__next._tree.txt
# litellm/proxy/_experimental/out/index.html
# litellm/proxy/_experimental/out/index.txt
# litellm/proxy/_experimental/out/login.html
# litellm/proxy/_experimental/out/login.txt
# litellm/proxy/_experimental/out/login/__next._full.txt
# litellm/proxy/_experimental/out/login/__next._head.txt
# litellm/proxy/_experimental/out/login/__next._index.txt
# litellm/proxy/_experimental/out/login/__next._tree.txt
# litellm/proxy/_experimental/out/login/__next.login.__PAGE__.txt
# litellm/proxy/_experimental/out/login/__next.login.txt
# litellm/proxy/_experimental/out/logs.html
# litellm/proxy/_experimental/out/logs.txt
# litellm/proxy/_experimental/out/logs/__next.!KGRhc2hib2FyZCk.logs.__PAGE__.txt
# litellm/proxy/_experimental/out/logs/__next.!KGRhc2hib2FyZCk.logs.txt
# litellm/proxy/_experimental/out/logs/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/logs/__next._full.txt
# litellm/proxy/_experimental/out/logs/__next._head.txt
# litellm/proxy/_experimental/out/logs/__next._index.txt
# litellm/proxy/_experimental/out/logs/__next._tree.txt
# litellm/proxy/_experimental/out/mcp/oauth/callback.txt
# litellm/proxy/_experimental/out/mcp/oauth/callback/__next._full.txt
# litellm/proxy/_experimental/out/mcp/oauth/callback/__next._head.txt
# litellm/proxy/_experimental/out/mcp/oauth/callback/__next._index.txt
# litellm/proxy/_experimental/out/mcp/oauth/callback/__next._tree.txt
# litellm/proxy/_experimental/out/mcp/oauth/callback/__next.mcp.oauth.callback.__PAGE__.txt
# litellm/proxy/_experimental/out/mcp/oauth/callback/__next.mcp.oauth.callback.txt
# litellm/proxy/_experimental/out/mcp/oauth/callback/__next.mcp.oauth.txt
# litellm/proxy/_experimental/out/mcp/oauth/callback/__next.mcp.txt
# litellm/proxy/_experimental/out/mcp/oauth/callback/index.html
# litellm/proxy/_experimental/out/model-hub.html
# litellm/proxy/_experimental/out/model-hub.txt
# litellm/proxy/_experimental/out/model-hub/__next.!KGRhc2hib2FyZCk.model-hub.__PAGE__.txt
# litellm/proxy/_experimental/out/model-hub/__next.!KGRhc2hib2FyZCk.model-hub.txt
# litellm/proxy/_experimental/out/model-hub/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/model-hub/__next._full.txt
# litellm/proxy/_experimental/out/model-hub/__next._head.txt
# litellm/proxy/_experimental/out/model-hub/__next._index.txt
# litellm/proxy/_experimental/out/model-hub/__next._tree.txt
# litellm/proxy/_experimental/out/model_hub.html
# litellm/proxy/_experimental/out/model_hub.txt
# litellm/proxy/_experimental/out/model_hub/__next._full.txt
# litellm/proxy/_experimental/out/model_hub/__next._head.txt
# litellm/proxy/_experimental/out/model_hub/__next._index.txt
# litellm/proxy/_experimental/out/model_hub/__next._tree.txt
# litellm/proxy/_experimental/out/model_hub/__next.model_hub.__PAGE__.txt
# litellm/proxy/_experimental/out/model_hub/__next.model_hub.txt
# litellm/proxy/_experimental/out/model_hub_table.html
# litellm/proxy/_experimental/out/model_hub_table.txt
# litellm/proxy/_experimental/out/model_hub_table/__next._full.txt
# litellm/proxy/_experimental/out/model_hub_table/__next._head.txt
# litellm/proxy/_experimental/out/model_hub_table/__next._index.txt
# litellm/proxy/_experimental/out/model_hub_table/__next._tree.txt
# litellm/proxy/_experimental/out/model_hub_table/__next.model_hub_table.__PAGE__.txt
# litellm/proxy/_experimental/out/model_hub_table/__next.model_hub_table.txt
# litellm/proxy/_experimental/out/models-and-endpoints.html
# litellm/proxy/_experimental/out/models-and-endpoints.txt
# litellm/proxy/_experimental/out/models-and-endpoints/__next.!KGRhc2hib2FyZCk.models-and-endpoints.__PAGE__.txt
# litellm/proxy/_experimental/out/models-and-endpoints/__next.!KGRhc2hib2FyZCk.models-and-endpoints.txt
# litellm/proxy/_experimental/out/models-and-endpoints/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/models-and-endpoints/__next._full.txt
# litellm/proxy/_experimental/out/models-and-endpoints/__next._head.txt
# litellm/proxy/_experimental/out/models-and-endpoints/__next._index.txt
# litellm/proxy/_experimental/out/models-and-endpoints/__next._tree.txt
# litellm/proxy/_experimental/out/onboarding.html
# litellm/proxy/_experimental/out/onboarding.txt
# litellm/proxy/_experimental/out/onboarding/__next._full.txt
# litellm/proxy/_experimental/out/onboarding/__next._head.txt
# litellm/proxy/_experimental/out/onboarding/__next._index.txt
# litellm/proxy/_experimental/out/onboarding/__next._tree.txt
# litellm/proxy/_experimental/out/onboarding/__next.onboarding.__PAGE__.txt
# litellm/proxy/_experimental/out/onboarding/__next.onboarding.txt
# litellm/proxy/_experimental/out/organizations.html
# litellm/proxy/_experimental/out/organizations.txt
# litellm/proxy/_experimental/out/organizations/__next.!KGRhc2hib2FyZCk.organizations.__PAGE__.txt
# litellm/proxy/_experimental/out/organizations/__next.!KGRhc2hib2FyZCk.organizations.txt
# litellm/proxy/_experimental/out/organizations/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/organizations/__next._full.txt
# litellm/proxy/_experimental/out/organizations/__next._head.txt
# litellm/proxy/_experimental/out/organizations/__next._index.txt
# litellm/proxy/_experimental/out/organizations/__next._tree.txt
# litellm/proxy/_experimental/out/playground.html
# litellm/proxy/_experimental/out/playground.txt
# litellm/proxy/_experimental/out/playground/__next.!KGRhc2hib2FyZCk.playground.__PAGE__.txt
# litellm/proxy/_experimental/out/playground/__next.!KGRhc2hib2FyZCk.playground.txt
# litellm/proxy/_experimental/out/playground/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/playground/__next._full.txt
# litellm/proxy/_experimental/out/playground/__next._head.txt
# litellm/proxy/_experimental/out/playground/__next._index.txt
# litellm/proxy/_experimental/out/playground/__next._tree.txt
# litellm/proxy/_experimental/out/policies.html
# litellm/proxy/_experimental/out/policies.txt
# litellm/proxy/_experimental/out/policies/__next.!KGRhc2hib2FyZCk.policies.__PAGE__.txt
# litellm/proxy/_experimental/out/policies/__next.!KGRhc2hib2FyZCk.policies.txt
# litellm/proxy/_experimental/out/policies/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/policies/__next._full.txt
# litellm/proxy/_experimental/out/policies/__next._head.txt
# litellm/proxy/_experimental/out/policies/__next._index.txt
# litellm/proxy/_experimental/out/policies/__next._tree.txt
# litellm/proxy/_experimental/out/settings/admin-settings.html
# litellm/proxy/_experimental/out/settings/admin-settings.txt
# litellm/proxy/_experimental/out/settings/admin-settings/__next.!KGRhc2hib2FyZCk.settings.admin-settings.__PAGE__.txt
# litellm/proxy/_experimental/out/settings/admin-settings/__next.!KGRhc2hib2FyZCk.settings.admin-settings.txt
# litellm/proxy/_experimental/out/settings/admin-settings/__next.!KGRhc2hib2FyZCk.settings.txt
# litellm/proxy/_experimental/out/settings/admin-settings/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/settings/admin-settings/__next._full.txt
# litellm/proxy/_experimental/out/settings/admin-settings/__next._head.txt
# litellm/proxy/_experimental/out/settings/admin-settings/__next._index.txt
# litellm/proxy/_experimental/out/settings/admin-settings/__next._tree.txt
# litellm/proxy/_experimental/out/settings/logging-and-alerts.html
# litellm/proxy/_experimental/out/settings/logging-and-alerts.txt
# litellm/proxy/_experimental/out/settings/logging-and-alerts/__next.!KGRhc2hib2FyZCk.settings.logging-and-alerts.__PAGE__.txt
# litellm/proxy/_experimental/out/settings/logging-and-alerts/__next.!KGRhc2hib2FyZCk.settings.logging-and-alerts.txt
# litellm/proxy/_experimental/out/settings/logging-and-alerts/__next.!KGRhc2hib2FyZCk.settings.txt
# litellm/proxy/_experimental/out/settings/logging-and-alerts/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/settings/logging-and-alerts/__next._full.txt
# litellm/proxy/_experimental/out/settings/logging-and-alerts/__next._head.txt
# litellm/proxy/_experimental/out/settings/logging-and-alerts/__next._index.txt
# litellm/proxy/_experimental/out/settings/logging-and-alerts/__next._tree.txt
# litellm/proxy/_experimental/out/settings/router-settings.html
# litellm/proxy/_experimental/out/settings/router-settings.txt
# litellm/proxy/_experimental/out/settings/router-settings/__next.!KGRhc2hib2FyZCk.settings.router-settings.__PAGE__.txt
# litellm/proxy/_experimental/out/settings/router-settings/__next.!KGRhc2hib2FyZCk.settings.router-settings.txt
# litellm/proxy/_experimental/out/settings/router-settings/__next.!KGRhc2hib2FyZCk.settings.txt
# litellm/proxy/_experimental/out/settings/router-settings/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/settings/router-settings/__next._full.txt
# litellm/proxy/_experimental/out/settings/router-settings/__next._head.txt
# litellm/proxy/_experimental/out/settings/router-settings/__next._index.txt
# litellm/proxy/_experimental/out/settings/router-settings/__next._tree.txt
# litellm/proxy/_experimental/out/settings/ui-theme.html
# litellm/proxy/_experimental/out/settings/ui-theme.txt
# litellm/proxy/_experimental/out/settings/ui-theme/__next.!KGRhc2hib2FyZCk.settings.txt
# litellm/proxy/_experimental/out/settings/ui-theme/__next.!KGRhc2hib2FyZCk.settings.ui-theme.__PAGE__.txt
# litellm/proxy/_experimental/out/settings/ui-theme/__next.!KGRhc2hib2FyZCk.settings.ui-theme.txt
# litellm/proxy/_experimental/out/settings/ui-theme/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/settings/ui-theme/__next._full.txt
# litellm/proxy/_experimental/out/settings/ui-theme/__next._head.txt
# litellm/proxy/_experimental/out/settings/ui-theme/__next._index.txt
# litellm/proxy/_experimental/out/settings/ui-theme/__next._tree.txt
# litellm/proxy/_experimental/out/teams.html
# litellm/proxy/_experimental/out/teams.txt
# litellm/proxy/_experimental/out/teams/__next.!KGRhc2hib2FyZCk.teams.__PAGE__.txt
# litellm/proxy/_experimental/out/teams/__next.!KGRhc2hib2FyZCk.teams.txt
# litellm/proxy/_experimental/out/teams/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/teams/__next._full.txt
# litellm/proxy/_experimental/out/teams/__next._head.txt
# litellm/proxy/_experimental/out/teams/__next._index.txt
# litellm/proxy/_experimental/out/teams/__next._tree.txt
# litellm/proxy/_experimental/out/test-key.html
# litellm/proxy/_experimental/out/test-key.txt
# litellm/proxy/_experimental/out/test-key/__next.!KGRhc2hib2FyZCk.test-key.__PAGE__.txt
# litellm/proxy/_experimental/out/test-key/__next.!KGRhc2hib2FyZCk.test-key.txt
# litellm/proxy/_experimental/out/test-key/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/test-key/__next._full.txt
# litellm/proxy/_experimental/out/test-key/__next._head.txt
# litellm/proxy/_experimental/out/test-key/__next._index.txt
# litellm/proxy/_experimental/out/test-key/__next._tree.txt
# litellm/proxy/_experimental/out/tools/mcp-servers.html
# litellm/proxy/_experimental/out/tools/mcp-servers.txt
# litellm/proxy/_experimental/out/tools/mcp-servers/__next.!KGRhc2hib2FyZCk.tools.mcp-servers.__PAGE__.txt
# litellm/proxy/_experimental/out/tools/mcp-servers/__next.!KGRhc2hib2FyZCk.tools.mcp-servers.txt
# litellm/proxy/_experimental/out/tools/mcp-servers/__next.!KGRhc2hib2FyZCk.tools.txt
# litellm/proxy/_experimental/out/tools/mcp-servers/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/tools/mcp-servers/__next._full.txt
# litellm/proxy/_experimental/out/tools/mcp-servers/__next._head.txt
# litellm/proxy/_experimental/out/tools/mcp-servers/__next._index.txt
# litellm/proxy/_experimental/out/tools/mcp-servers/__next._tree.txt
# litellm/proxy/_experimental/out/tools/vector-stores.html
# litellm/proxy/_experimental/out/tools/vector-stores.txt
# litellm/proxy/_experimental/out/tools/vector-stores/__next.!KGRhc2hib2FyZCk.tools.txt
# litellm/proxy/_experimental/out/tools/vector-stores/__next.!KGRhc2hib2FyZCk.tools.vector-stores.__PAGE__.txt
# litellm/proxy/_experimental/out/tools/vector-stores/__next.!KGRhc2hib2FyZCk.tools.vector-stores.txt
# litellm/proxy/_experimental/out/tools/vector-stores/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/tools/vector-stores/__next._full.txt
# litellm/proxy/_experimental/out/tools/vector-stores/__next._head.txt
# litellm/proxy/_experimental/out/tools/vector-stores/__next._index.txt
# litellm/proxy/_experimental/out/tools/vector-stores/__next._tree.txt
# litellm/proxy/_experimental/out/usage.html
# litellm/proxy/_experimental/out/usage.txt
# litellm/proxy/_experimental/out/usage/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/usage/__next.!KGRhc2hib2FyZCk.usage.__PAGE__.txt
# litellm/proxy/_experimental/out/usage/__next.!KGRhc2hib2FyZCk.usage.txt
# litellm/proxy/_experimental/out/usage/__next._full.txt
# litellm/proxy/_experimental/out/usage/__next._head.txt
# litellm/proxy/_experimental/out/usage/__next._index.txt
# litellm/proxy/_experimental/out/usage/__next._tree.txt
# litellm/proxy/_experimental/out/users.html
# litellm/proxy/_experimental/out/users.txt
# litellm/proxy/_experimental/out/users/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/users/__next.!KGRhc2hib2FyZCk.users.__PAGE__.txt
# litellm/proxy/_experimental/out/users/__next.!KGRhc2hib2FyZCk.users.txt
# litellm/proxy/_experimental/out/users/__next._full.txt
# litellm/proxy/_experimental/out/users/__next._head.txt
# litellm/proxy/_experimental/out/users/__next._index.txt
# litellm/proxy/_experimental/out/users/__next._tree.txt
# litellm/proxy/_experimental/out/virtual-keys.html
# litellm/proxy/_experimental/out/virtual-keys.txt
# litellm/proxy/_experimental/out/virtual-keys/__next.!KGRhc2hib2FyZCk.txt
# litellm/proxy/_experimental/out/virtual-keys/__next.!KGRhc2hib2FyZCk.virtual-keys.__PAGE__.txt
# litellm/proxy/_experimental/out/virtual-keys/__next.!KGRhc2hib2FyZCk.virtual-keys.txt
# litellm/proxy/_experimental/out/virtual-keys/__next._full.txt
# litellm/proxy/_experimental/out/virtual-keys/__next._head.txt
# litellm/proxy/_experimental/out/virtual-keys/__next._index.txt
# litellm/proxy/_experimental/out/virtual-keys/__next._tree.txt
# scripts/install.sh
# tests/local_testing/test_get_llm_provider.py
2026-04-25 17:15:24 -03:00
Ishaan Jaffer
e8461b5b97
style: run black formatter on files from main merge
2026-04-17 13:02:59 -07:00
David Chen
d1df4e838b
Litellm fix update bedrock models ( #24947 )
...
* update bedrock models in tests
* updated more tests and model_prices_and_context_window
* fix model id and pricing
* replace more sonnet models
* update tests
* git push
* update pricing
* flaky total cost
* monkey patch
* relax the cost change
* fix and revert some changes
* revert the pricing
* chore: move cost/pricing changes to bedrock-cost-fixes branch
* chore: split Bedrock file-api beta stripping to separate branch
Removes strip_unsupported_file_api_betas_for_bedrock_invoke from this branch;
see litellm_bedrock_invoke_strip_file_api_betas for that fix.
Made-with: Cursor
2026-04-01 19:22:54 -07:00
Imgyu Kim
ad07d7faad
fix: strip 'openrouter/' prefix from model names ( #24234 )
...
Remove early return in get_llm_provider_logic.py that prevented
the 'openrouter/' prefix from being stripped. The early return was
intended for 'native OpenRouter models' like 'openrouter/free',
but no such models exist in the model registry — all OpenRouter
models are multi-segment (e.g. 'openrouter/anthropic/claude-3.5-sonnet')
and need the prefix stripped before being sent to the OpenRouter API.
This regression was introduced in v1.82.3 and caused 400 Bad Request
errors for all OpenRouter models.
2026-03-21 18:06:44 +09:00
Sameer Kankute
a5ea08a0bf
Fix test_default_api_base failing because of chatgpt as provider
2026-01-21 09:32:38 +05:30
Sameer Kankute
6751badf3a
fix: test_default_api_base for ragfow
2025-12-04 21:49:33 +05:30
Ishaan Jaff
19e26a5c60
test_default_api_base
2025-07-04 18:26:54 -07:00
Ishaan Jaff
643d2a8ccb
[Feat] Option to force/always use the litellm proxy ( #10559 ) ( #10633 ) ( #10773 )
...
* [Feat] Option to force/always use the litellm proxy (#10559 ) (#10633 )
* fix: add use_litellm_proxy
* fix: update LiteLLMProxyChatConfig
* fix get llm provider logic
* tests get llm provider logic
* add dynamic use_litellm_proxy
* docs forcsing litellm proxy usage
* fix: _should_use_litellm_proxy_by_default
* fixes: get_custom_llm_provider
---------
Co-authored-by: Antoine Legrand <2t.antoine@gmail.com>
2025-05-12 20:22:54 -07:00
Ishaan Jaff
de7870cb54
Add llamafile as a provider ( #10203 ) ( #10482 )
...
* Update docs for OpenAI compatible providers, add Llamafile docs, include Llamafile in the sidebar
* Add Llamafile as an LlmProviders enum
* Add llamafile as a OpenAI compatible provider (in the list of compatible providers)
* Add Llamafile chat config and tests
* Wire up Llamafile
Co-authored-by: Peter Wilson <peter@mozilla.ai>
2025-05-01 18:36:55 -07:00
Krrish Dholakia
267084a1af
test(test_get_llm_provider.py): cover scenario where xai not in model name
2025-03-18 11:04:59 -07:00
Krrish Dholakia
aeec703c4e
test(test_get_llm_provider.py): Minimal repro for https://github.com/BerriAI/litellm/issues/9291
2025-03-18 10:35:50 -07:00
Ishaan Jaff
b242c66a3b
(Feat) - Add /bedrock/invoke support for all Anthropic models ( #8383 )
...
* use anthropic transformation for bedrock/invoke
* use anthropic transforms for bedrock invoke claude
* TestBedrockInvokeClaudeJson
* add AmazonAnthropicClaudeStreamDecoder
* pass bedrock_invoke_provider to make_call
* fix _get_base_bedrock_model
* fix get_bedrock_route
* fix bedrock routing
* fixes for bedrock invoke
* test_all_model_configs
* fix AWSEventStreamDecoder linting
* fix code qa
* test_bedrock_get_base_model
* test_get_model_info_bedrock_models
* test_bedrock_base_model_helper
* test_bedrock_route_detection
2025-02-07 22:41:11 -08:00
Krish Dholakia
becd4bc748
Litellm dev 01 11 2025 p3 ( #7702 )
...
* fix(__init__.py): fix init to exclude pricing-only model cost values from real model names
prevents bad health checks on wildcard routes
* fix(get_llm_provider.py): fix to handle calling bedrock_converse models
2025-01-11 20:06:54 -08:00
Krish Dholakia
0120176541
Litellm dev 12 30 2024 p2 ( #7495 )
...
* test(azure_openai_o1.py): initial commit with testing for azure openai o1 preview model
* fix(base_llm_unit_tests.py): handle azure o1 preview response format tests
skip as o1 on azure doesn't support tool calling yet
* fix: initial commit of azure o1 handler using openai caller
simplifies calling + allows fake streaming logic alr. implemented for openai to just work
* feat(azure/o1_handler.py): fake o1 streaming for azure o1 models
azure does not currently support streaming for o1
* feat(o1_transformation.py): support overriding 'should_fake_stream' on azure/o1 via 'supports_native_streaming' param on model info
enables user to toggle on when azure allows o1 streaming without needing to bump versions
* style(router.py): remove 'give feedback/get help' messaging when router is used
Prevents noisy messaging
Closes https://github.com/BerriAI/litellm/issues/5942
* fix(types/utils.py): handle none logprobs
Fixes https://github.com/BerriAI/litellm/issues/328
* fix(exception_mapping_utils.py): fix error str unbound error
* refactor(azure_ai/): move to openai_like chat completion handler
allows for easy swapping of api base url's (e.g. ai.services.com)
Fixes https://github.com/BerriAI/litellm/issues/7275
* refactor(azure_ai/): move to base llm http handler
* fix(azure_ai/): handle differing api endpoints
* fix(azure_ai/): make sure all unit tests are passing
* fix: fix linting errors
* fix: fix linting errors
* fix: fix linting error
* fix: fix linting errors
* fix(azure_ai/transformation.py): handle extra body param
* fix(azure_ai/transformation.py): fix max retries param handling
* fix: fix test
* test(test_azure_o1.py): fix test
* fix(llm_http_handler.py): support handling azure ai unprocessable entity error
* fix(llm_http_handler.py): handle sync invalid param error for azure ai
* fix(azure_ai/): streaming support with base_llm_http_handler
* fix(llm_http_handler.py): working sync stream calls with unprocessable entity handling for azure ai
* fix: fix linting errors
* fix(llm_http_handler.py): fix linting error
* fix(azure_ai/): handle cohere tool call invalid index param error
2025-01-01 18:57:29 -08:00
Krish Dholakia
0924df4971
Litellm dev 12 27 2024 p2 1 ( #7449 )
...
* fix(azure_ai/transformation.py): route ai.services.azure calls to the azure provider route
requires token to be passed in as 'api-key'
Closes https://github.com/BerriAI/litellm/issues/7275
* fix(key_management_endpoints.py): enforce user is member of team, if team_id set and team_id exists in team table
* fix(key_management_endpoints.py): handle assigned_user_id = none
* feat(create_key_button.tsx): allow assigning keys to other users
allows proxy admin to easily assign other people keys
* build(create_key_button.tsx): fix error message display
don't swallow the error message for key creation failure
* build(create_key_button.tsx): allow proxy admin to edit team id
* build(create_key_button.tsx): allow proxy admin to assign keys to other users
* build(edit_user.tsx): clarify how 'user budgets' are applied
* test: remove dup test
* fix(key_management_endpoints.py): don't raise error if team not in db
'
* test: fix test
2024-12-27 20:02:32 -08:00
Krish Dholakia
6a45ee1ef7
fix(hosted_vllm/transformation.py): return fake api key, if none give… ( #7301 )
...
* fix(hosted_vllm/transformation.py): return fake api key, if none give. Prevents httpx error
Fixes https://github.com/BerriAI/litellm/issues/7291
* test: fix test
* fix(main.py): add hosted_vllm/ support for embeddings endpoint
Closes https://github.com/BerriAI/litellm/issues/7290
* docs(vllm.md): add docs on vllm embeddings usage
* fix(__init__.py): fix sambanova model test
* fix(base_llm_unit_tests.py): skip pydantic obj test if model takes >5s to respond
2024-12-18 18:41:53 -08:00
Krish Dholakia
e9aa492af3
LiteLLM Minor Fixes & Improvement (11/14/2024) ( #6730 )
...
* fix(ollama.py): fix get model info request
Fixes https://github.com/BerriAI/litellm/issues/6703
* feat(anthropic/chat/transformation.py): support passing user id to anthropic via openai 'user' param
* docs(anthropic.md): document all supported openai params for anthropic
* test: fix tests
* fix: fix tests
* feat(jina_ai/): add rerank support
Closes https://github.com/BerriAI/litellm/issues/6691
* test: handle service unavailable error
* fix(handler.py): refactor together ai rerank call
* test: update test to handle overloaded error
* test: fix test
* Litellm router trace (#6742 )
* feat(router.py): add trace_id to parent functions - allows tracking retry/fallbacks
* feat(router.py): log trace id across retry/fallback logic
allows grouping llm logs for the same request
* test: fix tests
* fix: fix test
* fix(transformation.py): only set non-none stop_sequences
* Litellm router disable fallbacks (#6743 )
* bump: version 1.52.6 → 1.52.7
* feat(router.py): enable dynamically disabling fallbacks
Allows for enabling/disabling fallbacks per key
* feat(litellm_pre_call_utils.py): support setting 'disable_fallbacks' on litellm key
* test: fix test
* fix(exception_mapping_utils.py): map 'model is overloaded' to internal server error
* test: handle gemini error
* test: fix test
* fix: new run
2024-11-15 01:02:54 +05:30
Krish Dholakia
f59cb46e71
Litellm dev 11 11 2024 ( #6693 )
...
* fix(__init__.py): add 'watsonx_text' as mapped llm api route
Fixes https://github.com/BerriAI/litellm/issues/6663
* fix(opentelemetry.py): fix passing parallel tool calls to otel
Fixes https://github.com/BerriAI/litellm/issues/6677
* refactor(test_opentelemetry_unit_tests.py): create a base set of unit tests for all logging integrations - test for parallel tool call handling
reduces bugs in repo
* fix(__init__.py): update provider-model mapping to include all known provider-model mappings
Fixes https://github.com/BerriAI/litellm/issues/6669
* feat(anthropic): support passing document in llm api call
* docs(anthropic.md): add pdf anthropic call to docs + expose new 'supports_pdf_input' function
* fix(factory.py): fix linting error
2024-11-12 00:16:35 +05:30
Krish Dholakia
c03e5da41f
LiteLLM Minor Fixes & Improvements (10/24/2024) ( #6421 )
...
* fix(utils.py): support passing dynamic api base to validate_environment
Returns True if just api base is required and api base is passed
* fix(litellm_pre_call_utils.py): feature flag sending client headers to llm api
Fixes https://github.com/BerriAI/litellm/issues/6410
* fix(anthropic/chat/transformation.py): return correct error message
* fix(http_handler.py): add error response text in places where we expect it
* fix(factory.py): handle base case of no non-system messages to bedrock
Fixes https://github.com/BerriAI/litellm/issues/6411
* feat(cohere/embed): Support cohere image embeddings
Closes https://github.com/BerriAI/litellm/issues/6413
* fix(__init__.py): fix linting error
* docs(supported_embedding.md): add image embedding example to docs
* feat(cohere/embed): use cohere embedding returned usage for cost calc
* build(model_prices_and_context_window.json): add embed-english-v3.0 details (image cost + 'supports_image_input' flag)
* fix(cohere_transformation.py): fix linting error
* test(test_proxy_server.py): cleanup test
* test: cleanup test
* fix: fix linting errors
2024-10-25 15:55:56 -07:00
Krish Dholakia
2b9db05e08
feat(proxy_cli.py): add new 'log_config' cli param ( #6352 )
...
* feat(proxy_cli.py): add new 'log_config' cli param
Allows passing logging.conf to uvicorn on startup
* docs(cli.md): add logging conf to uvicorn cli docs
* fix(get_llm_provider_logic.py): fix default api base for litellm_proxy
Fixes https://github.com/BerriAI/litellm/issues/6332
* feat(openai_like/embedding): Add support for jina ai embeddings
Closes https://github.com/BerriAI/litellm/issues/6337
* docs(deploy.md): update entrypoint.sh filepath post-refactor
Fixes outdated docs
* feat(prometheus.py): emit time_to_first_token metric on prometheus
Closes https://github.com/BerriAI/litellm/issues/6334
* fix(prometheus.py): only emit time to first token metric if stream is True
enables more accurate ttft usage
* test: handle vertex api instability
* fix(get_llm_provider_logic.py): fix import
* fix(openai.py): fix deepinfra default api base
* fix(anthropic/transformation.py): remove anthropic beta header (#6361 )
2024-10-21 21:25:58 -07:00
Ishaan Jaff
ab0b536143
(feat) add azure openai cost tracking for prompt caching ( #6077 )
...
* add azure o1 models to model cost map
* add azure o1 cost tracking
* fix azure cost calc
* add get llm provider test
2024-10-05 15:04:18 +05:30
Krrish Dholakia
3560f0ef2c
refactor: move all testing to top-level of repo
...
Closes https://github.com/BerriAI/litellm/issues/486
2024-09-28 21:08:14 -07:00