From 6b1e1dcbaf0da8295b5ce3ea7df1b9af0cbfc765 Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Wed, 24 Jun 2026 17:05:05 -0700 Subject: [PATCH] fix: address OCR greptile feedback --- litellm-rust/ADDING_A_PROVIDER.md | 2 +- litellm-rust/crates/core/build.rs | 2 +- litellm-rust/crates/core/src/providers/README.md | 3 ++- litellm/ocr/main.py | 4 ---- litellm/provider_endpoints_support_backup.json | 3 +-- provider_endpoints_support.json | 3 +-- 6 files changed, 6 insertions(+), 11 deletions(-) diff --git a/litellm-rust/ADDING_A_PROVIDER.md b/litellm-rust/ADDING_A_PROVIDER.md index 9555a0c53a3..113d27e84e5 100644 --- a/litellm-rust/ADDING_A_PROVIDER.md +++ b/litellm-rust/ADDING_A_PROVIDER.md @@ -1,7 +1,7 @@ # Adding a provider / route to litellm-rust - Keep the route contract pure in `crates/core/src//`: define the typed request/response structs and a provider config trait with no network, env, auth, or logging. -- Add provider identity to the repo-root `provider_endpoints_support.json`: use the LiteLLM provider slug, display name, docs URL, and endpoint support flags. Put optional stable base URL / API key env var defaults under the top-level `default_creds` map. +- Add provider identity to the repo-root `provider_endpoints_support.json`: use the LiteLLM provider slug, display name, docs URL, and endpoint support flags. Put optional stable provider-level base URL defaults under the top-level `default_creds` map; keep route-specific API key env vars in provider config/transform code so key resolution has one owner. - Put provider-specific transforms in `crates/providers/src///transformation.rs`, mirroring the Python provider tree and exposing a `const __CONFIG`. - The provider config owns three pure steps: map LiteLLM params, transform the LiteLLM request into the provider request, and transform the provider response back into the LiteLLM response. - If the provider has a reverse or normalization step, keep it pure and explicit next to the transforms; do not hide reverse mapping inside the HTTP transport. diff --git a/litellm-rust/crates/core/build.rs b/litellm-rust/crates/core/build.rs index 07be1279a0a..efc1da37f97 100644 --- a/litellm-rust/crates/core/build.rs +++ b/litellm-rust/crates/core/build.rs @@ -316,7 +316,7 @@ mod tests {{ LlmProvider::Mistral.default_api_base(), Some("https://api.mistral.ai/v1") ); - assert_eq!(LlmProvider::Mistral.api_key_env_var(), Some("MISTRAL_API_KEY")); + assert_eq!(LlmProvider::Mistral.api_key_env_var(), None); }} }} "#, diff --git a/litellm-rust/crates/core/src/providers/README.md b/litellm-rust/crates/core/src/providers/README.md index 84ef3731f3f..5c00534fd6e 100644 --- a/litellm-rust/crates/core/src/providers/README.md +++ b/litellm-rust/crates/core/src/providers/README.md @@ -10,7 +10,8 @@ To add a provider: - Add a `provider_endpoints_support.json` provider entry using the LiteLLM provider slug, display name, docs URL, and endpoint support flags. - Add optional defaults under the top-level `default_creds` map only when there - is a stable provider-level base URL or canonical API key environment variable. + is a stable provider-level base URL. Keep route-specific key env var names in + the provider transform/config so auth resolution has one owner. - Put request/response logic under `crates/providers/src///transformation.rs`; do not put transforms, signing logic, or secrets in provider metadata. diff --git a/litellm/ocr/main.py b/litellm/ocr/main.py index f7cf9c4d96f..479f184dcca 100644 --- a/litellm/ocr/main.py +++ b/litellm/ocr/main.py @@ -365,10 +365,6 @@ async def aocr( prepared_request=prepared, resolve_api_key=get_secret_str, ) - if response is None: - raise ValueError( - f"Got an unexpected None response from the OCR API: {response}" - ) return response response = base_llm_http_handler.ocr( diff --git a/litellm/provider_endpoints_support_backup.json b/litellm/provider_endpoints_support_backup.json index bd539102000..bf4ca71043d 100644 --- a/litellm/provider_endpoints_support_backup.json +++ b/litellm/provider_endpoints_support_backup.json @@ -33,8 +33,7 @@ }, "default_creds": { "mistral": { - "default_api_base": "https://api.mistral.ai/v1", - "api_key_env_var": "MISTRAL_API_KEY" + "default_api_base": "https://api.mistral.ai/v1" } }, "providers": { diff --git a/provider_endpoints_support.json b/provider_endpoints_support.json index 27124b5634d..eb34389bcf9 100644 --- a/provider_endpoints_support.json +++ b/provider_endpoints_support.json @@ -33,8 +33,7 @@ }, "default_creds": { "mistral": { - "default_api_base": "https://api.mistral.ai/v1", - "api_key_env_var": "MISTRAL_API_KEY" + "default_api_base": "https://api.mistral.ai/v1" } }, "providers": {