Commit Graph
21732 Commits
Author SHA1 Message Date
Ishaan JaffandGitHub 28cb7cc0ed [Feat] KnowledgeBase/Vector Store - Log StandardLoggingVectorStoreRequest for requests made when a vector store is used (#10509)
* ensure vector store results are logged in SLP

* fix tests

* fix tests with vector_store_request_metadata

* fix linting
2025-05-02 13:43:20 -07:00
Krrish Dholakia 2791b1be1a test: bump limit on flaky load test 2025-05-02 12:10:22 -07:00
Krrish Dholakia c884c9f296 build: update litellm version v1.67.6-nightly 2025-05-02 10:07:53 -07:00
Krrish Dholakia 1e14517e29 bump: version 1.67.5 → 1.67.6 2025-05-02 10:07:53 -07:00
Prathamesh SarafandGitHub ac7b1efe5c Refactor budget assertions in tests to improve clarity and accuracy. Updated remaining hours check to ensure positive values and adjusted budget reset time validation for better range checks. (#10500) 2025-05-02 09:02:02 -07:00
Krrish Dholakia 084cdb17f6 fix: fix linting errors 2025-05-02 08:08:39 -07:00
Krrish Dholakia 33814917fe fix(token_counter.py): handle empty lists 2025-05-02 08:07:08 -07:00
Ishaan Jaff 04e6ad7cee test_get_cost_for_built_in_tools_file_search 2025-05-02 07:17:26 -07:00
Ishaan JaffandGitHub 2828720c43 [Bug Fix] Ensure Web Search / File Search cost are only added when the response includes the too call (#10476)
* only apply cost if response includes annotations for url/file

* only apply cost if response includes annotations for url/file

* testing fix tool cost tracking

* fix response_includes_annotation_type
2025-05-02 07:06:46 -07:00
Ishaan JaffandGitHub 96e75628d6 [Fix + Refactor] Trigger Soft Budget Webhooks When Key Crosses Threshold (#10491)
* fix slack alerting with webhooks

* emit correct event group/entity on webhooks

* refactor to use a common class of alerts with abc methods

* fixes for tests

* refactor to use a common class of alerts with abc methods

* Send a budget alert on slack or webhook

* unit test slack alerting

* fix code qa
2025-05-02 07:06:07 -07:00
Carlos FreundandGitHub cb177dbd7a Fix and rewrite of token_counter (#10409)
* added tests

messages_with_counts: Made tolerance explicit for each test. But they match the new implementation(which beats the old)

* new token counter impl

* compare old and new implementation in test

* delete old token counter

* moved tests to /tests/litellm/litellm_core_utils

* use existing types

* docstrings

* warn about using default params on unknown model.

* created type for the token_counter_function

* check key == "content"

* throw error on invalid detail-type, ignore type-warning.

* fix imports
2025-05-01 23:34:37 -07:00
Krish DholakiaandGitHub 9cc39af131 Add vertex ai meta llama 4 support + handle tool call result in content for vertex ai (#10492)
* refactor(vertex_ai/llama): handle response transformation within config

Allows us to handle https://github.com/BerriAI/litellm/issues/10441#issuecomment-2844975599

* fix(vertex_ai/llama): handle tool call in content

Fixes https://github.com/BerriAI/litellm/issues/10441

* fix(vertex_ai/llama): return 'tool_calls' as finish reason if tool call returned

vertex ai returns stop

* feat(vertex_ai/): cost tracking for vertex_ai/meta/llama-4

* ci(test-linting.yml): pin openai version

* build: reorder pinning

* ci(pyproject.toml): limit openai version

temporary patch as new version has linting errors

* ci(pyproject.toml): limit openai version

temporary patch around linting errors

* ci(limit-openai-version): temporary patch

* fix: fix linting errors

* fix: fix linting error

* fix(parallel_request_limiter_v2.py): add team based multi-instance rate limiting

* fix: fix linting errors

* build(pyproject.toml): modify pin

* ci: bump pin
2025-05-01 22:47:06 -07:00
Marc AbramowitzandGitHub c3d4c9706d mypy tweaks (#10490)
* Move mypy.ini to litellm folder

because that's where GH Actions runs mypy

* Add annotation-unchecked to disable_error_code

so we don't get a zillion of these warnings when running mypy:

```
note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
```
2025-05-01 22:13:14 -07:00
Krish DholakiaandGitHub 132bdb1380 Add user + team based multi-instance rate limiting (#10497)
* fix(parallel_request_limiter_v2.py): add user multi-instance rate limiting

* fix(parallel_request_limiter_v2.py): add user multi-instance rpm limiting

* fix(parallel_request_limiter_v2.py): add team based multi-instance rate limiting
2025-05-01 22:09:26 -07:00
Krish DholakiaandGitHub a4c96d5224 Fix return finish_reason = "tool_calls" for gemini tool calling (#10485)
* fix(vertex_and_google_ai_studio.py): fix finish reason to be 'tool_calls' when tool call returned

Vertex returns 'Stop', openai format is 'tool calls'

* test(base_llm_unit_tests.py): bump test to assert tool calls in finish reason
2025-05-01 22:02:56 -07:00
Kevin MontoyaandGitHub 38d1691e20 docs(realtime): yaml config example for realtime model (#10489)
documentation includes outdated example of configuration of realtime
model that does not comply with current healthcheck:
https://github.com/BerriAI/litellm/pull/7453. Provide proper model info
mode in example
2025-05-01 21:43:48 -07:00
Parham AlvaniandGitHub d7632ca56e Update mcp.md (#10493) 2025-05-01 20:54:27 -07:00
Krrish Dholakia 4e44d7f40c ci(test-linting.yml): pin openai version 2025-05-01 18:55:39 -07:00
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 66cf75cd5d test: handle internal server errors 2025-05-01 16:47:30 -07:00
Krrish Dholakia cec138c47e test: remove redundant tests 2025-05-01 16:46:21 -07:00
Krrish Dholakia 4ab0ee0b65 test: more testing fixes 2025-05-01 15:36:13 -07:00
Krrish Dholakia 7502a21279 ci(config.yml): bump config 2025-05-01 15:27:16 -07:00
Krrish Dholakia dd5edbc9b6 docs(config_settings.md): document new param 2025-05-01 15:20:33 -07:00
298a3574f4 Add supports_pdf_input: true to Claude 3.7 bedrock models (#9917)
* Add supports_pdf_input: true to Claude 3.7 bedrock models

* update unit test

---------

Co-authored-by: RupertoXTI <rmartinez@xtillion.com>
2025-05-01 14:56:54 -07:00
Ishaan JaffandGitHub eebb725416 [Fixes] Azure OpenAI OIDC - allow using litellm defined params for OIDC Auth (#10394)
* fixes for azure OIDC ad token auth

* fixes for test_azure_common_utils.py

* get_azure_ad_token_from_oidc
2025-05-01 14:46:56 -07:00
Krrish Dholakia 03718b8b76 docs(prod.md): clarify usage on read-only file system 2025-05-01 14:46:02 -07:00
Ishaan JaffandGitHub ba67ca1f84 fix ensure mcp tools are llm api routes (#10473) 2025-05-01 14:37:30 -07:00
Krrish Dholakia c5b2d4a529 docs(document_understanding.md): clarify 'format' param usage 2025-05-01 14:34:16 -07:00
Krish DholakiaandGitHub c0a464e4eb fix(all_keys_table.tsx): fix filtering on key alias across multiple p… (#10455)
* fix(all_keys_table.tsx): fix filtering on key alias across multiple pages

* fix(key_management_endpoints.py): enable global sorting on `/key/list`

* feat(all_keys_table.tsx): support sorting on keys table

* feat(all_keys_table.tsx): enable global sorting

* ci(config.yml): add requests mock
2025-04-30 22:21:41 -07:00
Krish DholakiaandGitHub 6ad483dde7 Litellm dev 04 30 2025 p1 (#10462)
* fix(exception_mapping_utils.py): correctly pass through 504 status code

openai also raises a 504 status code

* build(model_prices_and_context_window.json): add gpt-4o-mini-tts to model cost map

Fixes https://github.com/BerriAI/litellm/issues/9591

* fix(cost_calculator.py): fix input cost calculation for gpt-4o-mini-tts

Fixes https://github.com/BerriAI/litellm/issues/9591

* test: testing updates
2025-04-30 22:11:12 -07:00
Marc AbramowitzandGitHub 596c71c360 Add low-level HTTP client (#10452)
The client provides access to a low-level HTTP client for making direct
requests to the LiteLLM proxy server. This is useful when you need more
control or when working with endpoints that don't yet have a high-level
interface.

```python
In [2]: client.http.request(
   ...:     method="POST",
   ...:     uri="/health/test_connection",
   ...:     json={
   ...:         "litellm_params": {
   ...:             "model": "gpt-4",
   ...:             "custom_llm_provider": "azure_ai",
   ...:             "litellm_credential_name": None,
   ...:             "api_key": "6xxxxxxx",
   ...:             "api_base": "https://litellm8397336933...",
   ...:         },
   ...:         "mode": "chat",
   ...:     },
   ...: )
Out[2]:
{'status': 'error',
 'result': {'model': 'gpt-4',
  'custom_llm_provider': 'azure_ai',
  'litellm_credential_name': None,
  'api_base': 'https://litellm8397336933...',
  ...
```
2025-04-30 21:57:06 -07:00
Ishaan JaffandGitHub be885e4a17 [Feat] Vector Stores/KnowledgeBases - Allow defining Vector Store Configs (#10448)
* init vector store configs

* working kb init

* add vector store endpoints

* use litellm_credential_name

* working CRUD vector stores litellm

* working creds with vector DB

* ui cleanup

* clean up vector store id

* fix delete button

* refactored vector store component

* working selector for KBs

* ui vector stores

* add vector store tool calls usage on chat ui

* fixes for vector stores litellm

* test fix

* docs Knowledge Bases

* fixes for vector stores litellm

* fix linting

* add managed vectorstores

* fix orjson ci/cd test

* fix linting

* add types.tsx file
2025-04-30 21:49:59 -07:00
Ishaan JaffandGitHub 7c679abe85 ui - add nvidia triton models (#10456) 2025-04-30 21:42:15 -07:00
Krish DholakiaandGitHub 711601e22a Add key-level multi-instance tpm/rpm/max parallel request limiting (#10458)
* fix: initial commit of v2 parallel request limiter hook

enables multi-instance rate limiting to work

* fix: subsequent commit with additional refactors

* fix(parallel_request_limiter_v2.py): cleanup initial call hook

simplify it

* fix(parallel_request_limiter_v2.py): working v2 parallel request limiter

* fix: more updates - still not passing testing

* fix(test_parallel_request_limiter_v2.py): update test + add conftest

* fix: fix ruff checks

* fix(parallel_request_limiter_v2.py): use pull via pattern method to load in keys instance wouldn't have seen yet

Fixes issue where redis syncing was not pulling key until instance had seen it

* test: update testing to cover tpm and rpm

* fix(parallel_request_limiter_v2.py): fix ruff errors

* fix(proxy/hooks/__init__.py): feature flag export

* fix(proxy/hooks/__init_.py): fix linting error

* ci(config.yml): add tests/enterprise to ci/cd

* fix: fix ruff check

* test: update testing
2025-04-30 21:32:31 -07:00
Ishaan Jaff 616c1ad666 fix orjson ci/cd test 2025-04-30 19:37:12 -07:00
Marc AbramowitzandGitHub 1e8674b611 New feature: Add Python client library for LiteLLM Proxy (#10445)
* First cut at a Python client module for proxy

* Add UnauthorizedError + add_model method

* Add delete_model method

* Add example model_id to delete_model docstring

* Make delete_model raise NotFoundError

* Add get_model

* Add get_all_model_info

* Rename models.list_models to models.list

* Rename models.get_all_model_info to models.info

* Move ModelsManagementClient.get_all_model_group_info to ModelGroupsManagementClient.info

* Rename get_model to get

* Rename add_model to new

* Rename delete_model to delete

* In client classes, rename base_url attribute to _base_url and api_key attribute to _api_key

* Add ModelsManagementClient.updae method

* Add client.chat.completions (ChatClient)

* ruff format litellm/proxy/client

* ruff format tests/litellm/proxy/client/*.py

* Add latest changes

* Rename KeysManagementClient.create to KeysManagementClient.generate

* Add new parameters to KeysManagementClient.generate

* Add CredentialsManagementClient

* Remove api_key parameter from KeysManagementClient.generate

* Fix lint errors

* Add litellm/proxy/client/README.md

* README.md: Remove api_key param to client.keys.generate

* Fix mypy errors

* Add requests-mock to tool.poetry.group.dev.dependencies

* Update poetry.lock
2025-04-30 16:27:17 -07:00
Krrish Dholakia eb3d54624e docs: cleanup 2025-04-30 13:13:02 -07:00
669566a05f Contributor PR - Support OPENAI_BASE_URL in addition to OPENAI_API_BASE (#9995) (#10423)
* Support OPENAI_BASE_URL in addition to OPENAI_API_BASE (#9995)

* Support OPENAI_BASE_URL in addition to OPENAI_API_BASE

Signed-off-by: Adrian Cole <adrian.cole@elastic.co>

* exact

Signed-off-by: Adrian Cole <adrian.cole@elastic.co>

* feedback

* less change

Signed-off-by: Adrian Cole <adrian.cole@elastic.co>

---------

Signed-off-by: Adrian Cole <adrian.cole@elastic.co>

* doc fix OPENAI_API_BASE

---------

Signed-off-by: Adrian Cole <adrian.cole@elastic.co>
Co-authored-by: Adrian Cole <64215+codefromthecrypt@users.noreply.github.com>
2025-04-29 21:27:37 -07:00
Krish DholakiaandGitHub 9e35ca2010 Embedding caching fixes - handle str -> list cache, set usage tokens for cache hits, combine usage tokens on partial cache hits (#10424)
* build(model_prices_and_context_window.json): add fireworks ai new 0-4b pricing tier

* build(model_prices_and_context_window.json): add more fireworks ai models

* test: update testing

* fix(caching_handler.py): handle str + list cache

Fixes issue on cache hits for embedding when initial cached input was str

* test(test_caching.py): add e2e test on caching with individual item and then list

* fix(caching_handler.py): set usage tokens for cache hits

enables token counting to work

* fix(caching_handler.py): combine usage between cached result and embedding response

Handles case of new input to embedding response

* fix: cleanup

* test: move to gpt-4o-new-test

* test: update test
2025-04-29 21:21:28 -07:00
290e2528cd Schedule budget resets at expectable times (#10331) (#10333)
* Schedule budget resets at expectable times (#10331)

* Enhance budget reset functionality with timezone support and standardized reset times

- Added `get_next_standardized_reset_time` function to calculate budget reset times based on specified durations and timezones.
- Introduced `timezone_utils.py` to manage timezone retrieval and budget reset time calculations.
- Updated budget reset logic in `reset_budget_job.py`, `internal_user_endpoints.py`, `key_management_endpoints.py`, and `team_endpoints.py` to utilize the new timezone-aware reset time calculations.
- Added unit tests for the new reset time functionality in `test_duration_parser.py`.
- Updated `.gitignore` to include `test.py` and made minor formatting adjustments in `docker-compose.yml` for consistency.

* Fixed linting

* Fix for mypy

* Fixed testcase for reset

* fix(duration_parser.py): move off zoneinfo - doesn't work with python 3.8

* test: update test

* refactor: improve budget reset time calculation and update related tests for accuracy

* clean up imports in team_endpoints.py

* test: update budget remaining hours assertions to reflect new reset time logic

* build(model_prices_and_context_window.json): update model

---------

Co-authored-by: Prathamesh Saraf <pratamesh1867@gmail.com>
2025-04-29 20:59:44 -07:00
Krish DholakiaandGitHub d783190e04 Update fireworks ai pricing (#10425)
* build(model_prices_and_context_window.json): add fireworks ai new 0-4b pricing tier

* build(model_prices_and_context_window.json): add more fireworks ai models

* test: update testing

* test: testing updates

* test: update test

* test: update test
2025-04-29 20:58:05 -07:00
Krish DholakiaandGitHub 839878f4f5 Support x-litellm-api-key header param + allow key at max budget to call non-llm api endpoints (#10392)
* fix(user_api_key_auth.py): fix passing `x-litellm-api-key` to user api key auth

Support using this when given, or bearer token when given

 Fixes issue with auth on vertex passthrough

* test(test_user_api_key_auth.py): use new fastapi.security check

* fix(user_api_key_auth.py): allow key at budget, to still call non-llm api endpoints

Fixes issue where key at budget, couldn't call `/key/info`
v1.67.5-nightly
2025-04-29 18:57:57 -07:00
Krish DholakiaandGitHub 70accb754e fix(langsmith.py): respect langsmith batch size param (#10411)
* fix(langsmith.py): respect langsmith batch size param

* build(model_prices_and_context_window.json): add missing tgai  models

Fixes https://github.com/BerriAI/litellm/issues/8921

Fixes https://github.com/BerriAI/litellm/issues/8278
2025-04-29 18:55:22 -07:00
Krrish Dholakia cd27185e2c test: override flaky test 2025-04-29 18:54:49 -07:00
Ishaan JaffandGitHub e06e7078da [New model] Add openai/computer-use-preview cost tracking / pricing (#10422)
* add computer-use-preview

* fix computer-use-preview
2025-04-29 17:49:11 -07:00
Udi OronandGitHub f1d6ac4af6 fix google studio url (#10095) 2025-04-29 17:34:58 -07:00
Ishaan JaffandGitHub 25c726ed61 Revert "build(deps): bump axios, @docusaurus/core, @docusaurus/plugin-google-…" (#10421)
This reverts commit a01cd87f4d.
2025-04-29 17:33:47 -07:00
Ishaan JaffandGitHub f30871ef13 [Feat] Add support for using Bedrock Knowledge Bases with LiteLLM /chat/completions requests (#10413)
* add make_bedrock_kb_retrieve_request

* working bedrock KB hook

* working bedrock KB hook

* test_openai_with_knowledge_base_mock_openai

* fix linting

* fix BedrockKnowledgeBaseHook

* docs using bedrock kb with litellm

* docs kb with litellm

* fix bedrock kb test

* DynamicPromptManagementParamLiteral

* fix _should_run_prompt_management_hooks_without_prompt_id

* test_init_custom_logger_compatible_class_as_callback
2025-04-29 17:29:02 -07:00
Ishaan JaffandGitHub 36264d4764 [Feat Security] - Allow blocking web crawlers (#10420)
* security add robots.txt settings to security

* block web crawlers

* test_enterprise_routes.py

* docs proxy enterprise
2025-04-29 17:28:08 -07:00