mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-05 02:41:56 +00:00
* refactor(ocr): extract call completion boundary * fix(ocr): release completion state after dispatch * test(ocr): prove wrapper completion handoff * test(ocr): narrow mapped failure assertion * fix(ocr): preserve wrapper invocation kwargs * fix(ocr): retain completion through finalization * fix(ocr): make completion ownership explicit * refactor(ocr): resolve logging executor explicitly * fix(callbacks): preserve completion lifecycle behavior * refactor(ocr): move public OCR into native lifecycle * refactor(ocr): remove unused rust bridge capability * wip * wip * refactor * wip * fix(ocr): preserve reducto native compatibility * wip * fix(ocr): document native callable casts * perf(ocr): bound responses and reduce native scheduling overhead * refactor(python-bridge): organize placeholder routes * refactor test * fix(ocr): normalize DeepSeek document content * perf(ocr): skip unused callback work and benchmark callback overhead * fix(ocr): align conversion contracts * test(ocr): cover official provider response shapes * fix(ocr): restore Python fallback and honor Rust opt-out * fixes and refactor * fix(ocr): preserve Azure Document Intelligence authentication * fix(rust): enforce OCR response limits and lint contracts * test(rust): align native OCR contract coverage * test(ocr): isolate Azure auth precedence coverage
69 lines
3.4 KiB
Rust
69 lines
3.4 KiB
Rust
pub const OPENAI_DEFAULT_API_BASE: &str = "https://api.openai.com";
|
|
pub const OPENAI_RESPONSES_DEFAULT_API_BASE: &str = "https://api.openai.com/v1";
|
|
pub const OPENAI_RESPONSES_PATH: &str = "/responses";
|
|
|
|
/// Full-request timeout ceiling for Anthropic Messages provider calls, in
|
|
/// seconds. Mirrors the Python Anthropic Messages default. The per-request
|
|
/// timeout from the caller still overrides this on the request builder.
|
|
pub(crate) const MESSAGES_TIMEOUT_SECS: u64 = 600;
|
|
|
|
/// Connect timeout for Anthropic Messages provider calls, in seconds.
|
|
pub(crate) const MESSAGES_CONNECT_TIMEOUT_SECS: u64 = 10;
|
|
|
|
/// Max characters of an upstream error body echoed across the call boundary
|
|
/// before truncation, so provider bodies are bounded and data-minimized.
|
|
pub(crate) const UPSTREAM_ERROR_BODY_MAX_CHARS: usize = 256;
|
|
|
|
/// Provider name used for Anthropic Messages when a deployment's provider model
|
|
/// does not carry an explicit provider prefix.
|
|
pub const ANTHROPIC_MESSAGES_PROVIDER: &str = "anthropic";
|
|
|
|
/// Prefix identifying an Anthropic OAuth token. Mirrors Python's
|
|
/// `ANTHROPIC_OAUTH_TOKEN_PREFIX`, which is what makes `validate_environment`
|
|
/// authenticate with `authorization` and drop `x-api-key` entirely.
|
|
pub(crate) const ANTHROPIC_OAUTH_TOKEN_PREFIX: &str = "sk-ant-oat";
|
|
|
|
/// Full-request timeout ceiling for chat completions provider calls, in
|
|
/// seconds. Mirrors the Python chat completions default.
|
|
pub(crate) const CHAT_COMPLETIONS_TIMEOUT_SECS: u64 = 600;
|
|
|
|
/// Connect timeout for chat completions provider calls, in seconds.
|
|
pub(crate) const CHAT_COMPLETIONS_CONNECT_TIMEOUT_SECS: u64 = 10;
|
|
|
|
pub(crate) const AUDIO_TRANSCRIPTION_TIMEOUT_SECS: u64 = 600;
|
|
|
|
/// `object` field every non-streaming chat completion response carries.
|
|
pub const CHAT_COMPLETION_OBJECT: &str = "chat.completion";
|
|
|
|
/// Placeholder Python substitutes for empty or whitespace-only message text,
|
|
/// which Anthropic and Bedrock both reject. Must match
|
|
/// `_EMPTY_TEXT_PLACEHOLDER` in
|
|
/// `litellm/litellm_core_utils/prompt_templates/factory.py`.
|
|
pub const EMPTY_TEXT_PLACEHOLDER: &str =
|
|
"[System: Empty message content sanitised to satisfy protocol]";
|
|
|
|
pub const FUNCTION_TRACE_TARGET: &str = "litellm::function_trace";
|
|
|
|
pub(crate) const MEDIA_CONNECT_TIMEOUT_SECS: u64 = 10;
|
|
|
|
pub(crate) const OCR_RESPONSE_MAX_BYTES: usize = 64 * 1024 * 1024;
|
|
pub(crate) const OCR_HTTP_TIMEOUT_SECS: u64 = 600;
|
|
pub(crate) const OCR_CONNECT_TIMEOUT_SECS: u64 = 10;
|
|
pub const OCR_INLINE_MAX_BYTES: usize = 50 * 1024 * 1024;
|
|
pub(crate) const OCR_DOWNLOAD_MAX_BYTES: u64 = 50 * 1024 * 1024;
|
|
pub(crate) const OCR_MAX_FETCH_REDIRECTS: usize = 10;
|
|
pub(crate) const OCR_POLL_TIMEOUT_SECS: u64 = 120;
|
|
pub(crate) const OCR_POLL_RETRY_SECS: u64 = 2;
|
|
pub(crate) const AZURE_DI_API_VERSION: &str = "2024-11-30";
|
|
pub(crate) const AZURE_DI_SUBSCRIPTION_HEADER: &str = "Ocp-Apim-Subscription-Key";
|
|
pub(crate) const AZURE_DI_DEFAULT_DPI: i64 = 96;
|
|
pub(crate) const AZURE_DI_DEFAULT_WIDTH: f64 = 8.5;
|
|
pub(crate) const AZURE_DI_DEFAULT_HEIGHT: f64 = 11.0;
|
|
pub(crate) const REDUCTO_API_BASE: &str = "https://platform.reducto.ai";
|
|
pub(crate) const REDUCTO_API_KEY_ENV: &str = "REDUCTO_API_KEY";
|
|
pub(crate) const REDUCTO_ID_PREFIX: &str = "reducto://";
|
|
pub(crate) const AZURE_AI_OCR_PATH: &str = "/providers/mistral/azure/ocr";
|
|
pub(crate) const MISTRAL_OCR_API_BASE: &str = "https://api.mistral.ai/v1";
|
|
|
|
pub(crate) const COHERE_PARSE_API_BASE: &str = "https://api.cohere.com";
|
|
pub(crate) const COHERE_API_KEY_ENV: &str = "COHERE_API_KEY";
|