Commit graph

2708 commits

Author SHA1 Message Date
Timothy Lowrimore
1b2dc23e7a
Merge branch 'main' into heroku-llms 2025-08-06 10:11:52 -06:00
zjx20
92c525ddfe
feat(JinaAI): support multimodal embedding models (#13181)
* feat(JinaAI): support multimodal embedding models

* add test case

* add test

* fix test
2025-08-05 19:21:56 -07:00
Ishaan Jaff
b455ada161
[Bug Fix] [Bug]: New Databricks Foundation Models databricks-gpt-oss-20b and databricks-gpt-oss-120b failed with error: litellm.APIConnectionError: 'signature' (#13318)
* test_transform_choices_without_signature

* fix ChatCompletionThinkingBlock

* extract_reasoning_content
2025-08-05 17:46:40 -07:00
breno-aumo
056b60a9fa
Support OCI provider (#13206)
* create OCI required files

* request and response conversion for non-streaming chat

* support tool calling with OCI generic API without streaming

* adaptation of api call for generic and cohere format

* include tool calls and responses in generic api and dropping support for cohere

* fix invalid content-length error

* support streaming for generic api

* fix auth error when using acompletion with streaming

* refactor: use base_llm_http_handler and include API type definitions

* update types and add type safety in different methods

* fix OCIFunction format

* create custom stream wrapper for decoding OCI stream

* remove unused files

* create unit tests for OCI

* lint the code

* remove manual test

* docs: update the docs to include OCI
2025-08-04 15:59:25 -07:00
Krish Dholakia
342fd2d8b6
Revert "fix: role chaining and session name with webauthentication for aws be…" (#13230)
This reverts commit 0ac093b59e.
2025-08-02 10:11:58 -07:00
Richard Tweed
0ac093b59e
fix: role chaining and session name with webauthentication for aws bedrock (#13205)
* fix(bedrock): prevent duplicate role assumption in EKS/IRSA environments

Fixes issue where AWS role assumption would fail in EKS/IRSA environments
when trying to assume the same role that's already being used.

The problem occurred when:
1. EKS/IRSA automatically assumes a role (e.g., LitellmRole)
2. LiteLLM tries to assume the same role again, causing AccessDenied errors
3. Different models with different roles would fail due to incorrect role context

Changes:
- Added check in _auth_with_aws_role() to detect if already using target role
- Skip role assumption if current identity matches target role
- Return current credentials instead of attempting duplicate assumption
- Added comprehensive test coverage for the fix

This ensures proper role chaining works in EKS/IRSA environments where:
- Service Account can assume Role A
- Role A can assume Role B for different models/accounts

Resolves the AccessDenied errors reported in bedrock usage scenarios.

* fix(bedrock): simplify role assumption for EKS/IRSA environments

Fixes AWS Bedrock role assumption in EKS/IRSA environments by properly
handling ambient credentials when no explicit credentials are provided.

The issue occurred because commit 197e7efa8f
introduced changes that broke role assumption in EKS/IRSA environments.

Changes:
- Simplified _auth_with_aws_role() to use ambient credentials when no
  explicit AWS credentials are provided (aws_access_key_id and
  aws_secret_access_key are both None)
- This allows web identity tokens in EKS/IRSA to work automatically
  through boto3's credential chain
- Maintains backward compatibility for explicit credential scenarios

Added comprehensive test coverage:
- test_eks_irsa_ambient_credentials_used: Verifies ambient credentials work
- test_explicit_credentials_used_when_provided: Ensures explicit creds still work
- test_partial_credentials_still_use_ambient: Edge case handling
- test_cross_account_role_assumption: Multi-account scenarios
- test_role_assumption_with_custom_session_name: Custom session names
- test_role_assumption_ttl_calculation: TTL calculation verification
- test_role_assumption_error_handling: Error propagation
- test_multiple_role_assumptions_in_sequence: Sequential role assumptions

This fix ensures that in EKS/IRSA environments:
1. Service accounts can assume their initial role via web identity
2. That role can then assume other roles across accounts as configured
3. Different models can use different roles without conflicts

* fix(bedrock): add automatic IRSA detection for EKS environments

- Detect AWS_WEB_IDENTITY_TOKEN_FILE and AWS_ROLE_ARN environment variables
- Automatically use web identity token flow when IRSA is detected
- Read web identity token from file and pass to existing auth method
- Add test coverage for IRSA environment detection
- Fixes authentication errors in EKS with IRSA when no explicit credentials provided

* fix(bedrock): skip role assumption when IRSA role matches requested role

- Detect when AWS_ROLE_ARN environment variable matches the requested role
- Skip unnecessary role assumption when already running as the target role
- Use existing env vars authentication method for IRSA credentials
- Add test coverage for same-role IRSA scenario
- Fixes 'not authorized to perform: sts:AssumeRole' errors when trying to assume the same role

* fix(bedrock): use boto3's native IRSA support for cross-account role assumption

- Replace custom web identity token handling with boto3's built-in IRSA support
- boto3 automatically reads AWS_WEB_IDENTITY_TOKEN_FILE and assumes initial role
- Then use standard assume_role for cross-account access
- Update test to mock boto3 STS client instead of internal methods
- Fixes 'OIDC token could not be retrieved from secret manager' error

* fix(bedrock): improve IRSA error handling and add debug logging

- Add debug logging to show current identity and role assumption attempts
- Provide clearer error messages for trust policy issues
- Fix region handling in IRSA flow
- Re-raise exceptions instead of silently falling through
- This helps diagnose cross-account role assumption permission issues

* fix(bedrock): manually assume IRSA role with correct session name for cross-account scenarios

- When doing cross-account role assumption, manually assume the IRSA role first with the desired session name
- This ensures the session name in the assumed role ARN matches what's expected in trust policies
- For same-account scenarios, continue using boto3's automatic IRSA support
- Updated tests to handle the new flow
- This fixes the issue where cross-account trust policies require specific session names

* fix: Fix linting issues in base_aws_llm.py

- Fix f-string without placeholders (F541)
- Refactor _auth_with_aws_role to reduce statements count (PLR0915)
  - Extract _handle_irsa_cross_account helper method
  - Extract _handle_irsa_same_account helper method
  - Extract _extract_credentials_and_ttl helper method

---------

Co-authored-by: openhands <openhands@all-hands.dev>
2025-08-02 08:55:35 -07:00
Sameer Kankute
1e33dc50a0
add Perplexity citation annotations support (#13225) 2025-08-02 08:47:35 -07:00
Jugal D. Bhatt
bfabf2709a
[LLM translation] Fix bedrock computer use #13143 (#13150)
* fix json test

* fix pr

* fix bedrock computer use tool

* added unit test

* fix failing prisma tesT

* fix prisma connect
2025-08-01 15:02:44 -07:00
joshualipman123
7a999e0f0f Convert integration tests to mocks 2025-07-31 23:57:53 -07:00
Josh
fde381a396 Merge branch 'main' into add-vercel-ai-gateway-provider 2025-07-31 18:49:03 -07:00
Timothy Lowrimore
a973202cb1
Merge branch 'main' into heroku-llms 2025-07-31 15:47:48 -06:00
Ishaan Jaff
65ca4f66f6 Revert "add framework name to UserAgent header in AWS Bedrock API call (#13159)"
This reverts commit 77f506e860.
2025-07-30 23:12:36 -07:00
0x-fang
77f506e860
add framework name to UserAgent header in AWS Bedrock API call (#13159) 2025-07-30 22:44:22 -07:00
Ishaan Jaff
090e2ffb5a Revert "[LLM translation] Fix bedrock computer use (#13143)"
This reverts commit 840dd2e7c7.
2025-07-30 16:03:35 -07:00
Jugal D. Bhatt
840dd2e7c7
[LLM translation] Fix bedrock computer use (#13143)
* Add support for bedrock computer use

* remove print

* split bedrock tools

* add hosted tools

* fix tool use

* fix tool use

* fix function calling

* fix converse transformation

* fix tests

* fix llm translation test

* fix computer use
2025-07-30 12:27:12 -07:00
joshualipman123
1ea28ccf67 Add Vercel AI Gateway provider support 2025-07-30 10:01:05 -07:00
Johnny.H
97d89584c1
fix tool aws bedrock call index when the function only have optional arg (#13115) 2025-07-29 22:07:24 -07:00
Krish Dholakia
1c182919b5
Revert "[LLM translation] Add support for bedrock computer use (#12948)" (#13118)
This reverts commit 760d747465.
2025-07-29 21:33:46 -07:00
Jugal D. Bhatt
760d747465
[LLM translation] Add support for bedrock computer use (#12948)
* Add support for bedrock computer use

* remove print

* split bedrock tools

* add hosted tools

* fix tool use

* fix tool use

* fix function calling

* fix converse transformation

* fix tests
2025-07-29 16:52:23 -07:00
Siddharth Sahu
39d59f1900
Fix/gemini api key environment variable support (#12507)
* Fix: Add support for GOOGLE_API_KEY environment variables for Gemini API authentication

* added test cases

* incoperated feedback to make it more maintainable

* fix failed linting CI
2025-07-29 15:56:01 -07:00
Maksim
f3b1b416d1
fix: always use choice index=0 for Anthropic streaming responses (#12666)
- Fixed 'missing finish_reason for choice 1' error with reasoning_effort
- Anthropic sends multiple content blocks with different indices
- OpenAI expects all content in a single choice at index=0
- Added comprehensive tests for text-only, text+tool, and multiple tools
2025-07-29 14:42:01 -07:00
Krish Dholakia
039c8a922c
Azure api_version="preview" support + Bedrock cost tracking via Anthropic /v1/messages (#13072)
* fix(azure/chat/gpt_transformation.py): support api_version="preview"

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

* Fix anthropic passthrough logging handler model fallback for streaming requests (#13022)

* fix: anthropic passthrough logging handler model fallback for streaming requests

- Add fallback logic to retrieve model from logging_obj.model_call_details when request_body.model is empty
- Fixes issue #12933 where streaming requests to anthropic passthrough endpoints would crash due to missing model field
- Ensures downstream logging and cost calculation work correctly for all streaming scenarios
- Maintains backwards compatibility with existing non-streaming requests

* test: add minimal tests for anthropic passthrough logging handler model fallback

- Add unit tests for the model fallback logic in _handle_logging_anthropic_collected_chunks
- Test existing behavior when request_body.model is present
- Test fallback logic when request_body.model is empty but logging_obj.model_call_details has model
- Test edge cases where both sources are empty or missing
- Ensure backwards compatibility and graceful degradation

* fix(anthropic_passthrough_logging_handler.py): add provider to model name (accurate cost tracking)

* fix(anthropic_passthrough_logging_handler.py): don't reset custom llm provider, if already set

* fix: fix check

---------

Co-authored-by: Haggai Shachar <haggai.shachar@backline.ai>
2025-07-29 08:13:55 -07:00
Krrish Dholakia
378db1b62d test: remove o1-preview 2025-07-28 17:47:57 -07:00
Adam Holmberg
7e10c56949
Merge branch 'main' into holmberg/default-reasoning 2025-07-28 15:12:26 -05:00
Christoph Koehler
8f7d896e26
fix: add X-Initiator header for GitHub Copilot to reduce premium requests (#13016)
- Implement X-Initiator header logic in GithubCopilotConfig.validate_environment()
- Set header to "agent" when messages contain agent or tool roles, "user" otherwise
- Reduces unnecessary premium Copilot API usage for non-user calls

Fixes #12859
2025-07-28 09:55:24 -07:00
Krish Dholakia
1737cf4257
VertexAI - camelcase optional params for image generation + Anthropic - streaming, always ensure assistant role set on only first chunk (#12889)
* fix(vertex_ai/image_generation): transform `_` param to camelcase

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

* test(test_vertex_image_generation.py): add unit tests

* fix(streaming_handler.py): assert only 1 assistant chunk in stream

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

* fix(streaming_handler.py): fix check
2025-07-27 10:09:43 -07:00
Timothy Lowrimore
94273dc8b7
Merge branch 'main' into heroku-llms 2025-07-25 16:46:01 -06:00
Andrei Darashenka
ddac3d5386 honor OLLAMA_API_KEY for ollama_chat 2025-07-26 00:16:14 +02:00
Jugal D. Bhatt
c66b288bcf
[LLM Translation] fix query params for realtime api intent (#12838)
* fix query params for realtime api intent

* fix my py

* Add typed dict

* remove typed dict

* fix comments

* add test

* add test

* added proxt log revert

* add real time q params
2025-07-25 10:09:53 -07:00
Timothy Lowrimore
da6eac4aac passing tests
added necessary provider models to model prices and context window files
2025-07-25 09:18:54 -06:00
Gaston
6cfaf674e4
Fix: Shorten Gemini tool_call_id for Azure compatibility (#12941) 2025-07-24 21:52:16 -07:00
Santosh Dhaladhuli
d9d53466e8
[Feat] Add inpainting support and corresponding tests for Amazon Nova Canvas (#12949) 2025-07-24 21:46:06 -07:00
Timothy Lowrimore
9a9f882693 adds test for chat tranformation 2025-07-23 17:06:11 -06:00
Ishaan Jaff
bf300f8ca7 Revert "Litellm dev 07 21 2025 p1 (#12848)"
This reverts commit e4e10aa4ed.
2025-07-22 18:28:36 -07:00
Ishaan Jaff
d5ee93aa0c
[Feat] Add Recraft API - Image Edits Support (#12874)
* test_recraft_image_edit_api

* add RecraftImageEditConfig

* complete RecraftImageEditConfig

* add RecraftImageEditRequestParams in types

* update RecraftImageEditRequestParams

* working

* transform_image_edit_request

* Image Edit docs recraft

* working transform_image_edit_request

* TestRecraftImageEditTransformation
2025-07-22 15:03:08 -07:00
Adam Holmberg
2ce03d9735 fix: make gemini and openai responses return reasoning by default
This aligns the proxy experience with other models that think
automatically (e.g. Deepseek R1 and grok3). It does so by setting
the necessary request input to return thinking, but not specifying
a budget or effort (thus defaulting to the internal automatic level).
2025-07-22 10:41:29 -05:00
Ishaan Jaff
03baf23ad1 [Feat] Add Recraft Image Generation API Support - New LLM Provider (#12832)
* add recraft

* init RecraftImageGenerationConfig

* add get_complete_url + validate_environment

* add image_generation_handler in llm http clas

* fixes for transform

* working recraft request

* fixed img gen transform

* fixes for llm http handler

* test: TestRecraftImageGeneration

* fixes for llm_http_handler

* fix RecraftImageGenerationConfig

* TestRecraftImageGenerationTransformation

* add recraft API

* docs recraft API

* fix code QA

* map_openai_params

* fix recraft

* cost tracking for recraft/recraftv3

* fix code qa check
2025-07-21 22:19:58 -07:00
Krish Dholakia
e5251e7188
Openrouter - filter out cache_control flag for non-anthropic models (allows usage with claude code) (#12850)
* fix(gpt_transformation.py): remove 'cache_control' flag for openai/openai-compatible calls

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

* fix(openrouter/chat/transformation.py): allow passing openrouter cache control flag for claude models

* fix(gpt_transformation.py): fix import

* fix: fix adding tools
2025-07-21 22:15:48 -07:00
Krish Dholakia
e4e10aa4ed
Litellm dev 07 21 2025 p1 (#12848)
* fix(main.py): fix async retryer

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

* fix(forward_clientside_headers_by_model_group.py): filter out 'content-type' from forwardable headers

clientside content-type != proxy content type, can cause requests to hang

* test(tests/): update tests
2025-07-21 22:09:39 -07:00
Ishaan Jaff
133c26c015
[Azure OpenAI Feature] - Support DefaultAzureCredential without hard-coded environment variables (#12841)
* DefaultAzureCredential

* update get_azure_ad_token_provider

* fixes for get_azure_ad_token_provider

* test_get_azure_ad_token_provider_with_default_azure_credential

* test_get_azure_ad_token_fallback_to_default_azure_credential

* docs DefaultAzureCredential

* fix linting
2025-07-21 18:04:16 -07:00
Ishaan Jaff
2941a555a8
[Feat] Add Recraft Image Generation API Support - New LLM Provider (#12832)
* add recraft

* init RecraftImageGenerationConfig

* add get_complete_url + validate_environment

* add image_generation_handler in llm http clas

* fixes for transform

* working recraft request

* fixed img gen transform

* fixes for llm http handler

* test: TestRecraftImageGeneration

* fixes for llm_http_handler

* fix RecraftImageGenerationConfig

* TestRecraftImageGenerationTransformation

* add recraft API

* docs recraft API

* fix code QA

* map_openai_params

* fix recraft

* cost tracking for recraft/recraftv3

* fix code qa check
2025-07-21 15:01:32 -07:00
Jugal D. Bhatt
b653aed603
added dynamic endpoint support (#12827) 2025-07-21 12:38:53 -07:00
Eric Chen
0a7c9a7231 Fix anyof corner cases for BerriAI/litellm#11164 2025-07-20 22:10:02 -05:00
Ishaan Jaff
81eb2fdd30
[Feat] UI Vector Stores - Allow adding Vertex RAG Engine, OpenAI, Azure (#12752)
* fix _pass_through_endpoint_without_required_model

* add get_litellm_managed_vector_store_from_registry

* undo router change

* fix for using router + vector search methods

* add simple helper for _update_request_data_with_litellm_managed_vector_store_registry

* add vector_stores routes

* test_router_avector_store_search_passes_correct_args

* [Feat] UI - Allow clicking into Vector Stores (#12741)

* Add View Vector Store

* add /info for vector store

* fix updated_at

* allow easily testing the KB on litellm

* fix

* rename test

* test_init_vector_store_api_endpoints

* add get_vertex_ai_project

* fixes to vertex transformation for RAG Engine

* fix vectorStoreProviderFields

* Add Vertex Rag engine

* add oai, azure

* fix validate_environment

* fix provider name

* fix tester

* working vertex vector store
2025-07-18 18:25:26 -07:00
Jugal D. Bhatt
8d35a00974
[LLM Translation] Added model name formats (#12745)
* Added model supports

* invert logic

* Added gpt 35 turbo check

* add test check

* fix ruff check
2025-07-18 17:08:35 -07:00
Jugal D. Bhatt
c3c6255689
[LLM Translation] Change System prompts to assistant prompts as a workaround for GH Copilot (#12742)
* add changes for copilot

* Add test

* reverse flag settings

* add settings

* utils changes

* fix tests
2025-07-18 15:48:27 -07:00
Ryan Richard
474ac2dd6a
add project_id from auth metadata to credentials cache if a user does not specify a project_id (#12661)
add unit tests for new cached credentials with project_id

Co-authored-by: Ryan Richard <ryanirichard07@gmail.com>
2025-07-18 13:33:09 -07:00
Krish Dholakia
f6f3f151f1
Anthropic - add tool cache control support (#12668)
* fix(prompt_templates/factory.py): handle anthropic cache control on individual tool results

Fixes issue where cache control on individual tool result was being ignored

* test(test_vertex_And_google_ai_studio_gemini.py): initial unit test covering translation for grounding metadata on streaming chunk
2025-07-18 11:14:03 -07:00
Jugal D. Bhatt
7c49197f29
Add Hosted VLLM rerank provider integration (#12738)
* Vllm rerank (#12737)

* Add Hosted VLLM rerank provider integration

This commit implements the Hosted VLLM rerank provider integration for LiteLLM. The integration includes:
Adding Hosted VLLM as a supported rerank provider in the main rerank function
Implementing the HostedVLLMRerank handler class for making API requests
Creating a transformation class to convert Hosted VLLM responses to LiteLLM's standardized format
The integration supports both synchronous and asynchronous rerank operations. API credentials can be provided directly or through environment variables (HOSTED_VLLM_API_KEY and HOSTED_VLLM_API_BASE).
Notable features:
Proper error handling for missing credentials
Standard response transformation
Support for common rerank parameters (top_n, return_documents, etc.)
Proper token usage tracking
This expands LiteLLM's rerank provider ecosystem to include Hosted VLLM alongside existing providers like Cohere, Together AI, Azure AI, and Bedrock.

* refactor(rerank): use base_llm_http_handler for hosted_vllm rerank

- Replace custom HostedVLLMRerank handler with base_llm_http_handler
- Implement proper HostedVLLMRerankConfig inheriting from BaseRerankConfig
- Follow Cohere-compatible implementation pattern
- Clean up unnecessary comments

* Fix lint errors in hosted_vllm rerank transformer: remove unused imports

* Fix linting errors in rerank transformation modules

* fix: resolve type errors in Hosted VLLM rerank module

---------

Co-authored-by: Philip D'Souza <philip.dsouza@macro4.com>
Co-authored-by: Philip D'Souza <philip.a.dsouza@gmail.com>

* added a few tests

---------

Co-authored-by: Philip D'Souza <philip.dsouza@macro4.com>
Co-authored-by: Philip D'Souza <philip.a.dsouza@gmail.com>
2025-07-18 10:55:50 -07:00
Ishaan Jaff
3051a9c68a
[Bug Fix] QA - Use PG Vector Vector Store with LiteLLM (#12716)
* store in generic litellm params

* handle storing litellm_params_json

* add litellm_params

* update file loc

* fix startup issue

* ui fix litellm_params

* fix typing

* fix adding PG Vector

* use litellm params

* fix transform_search_vector_store_request

* fix transform

* fix URL

* test fix

* test_pg_vector_search_request_construction
2025-07-18 08:41:18 -07:00