mirror of
https://github.com/BerriAI/litellm.git
synced 2026-11-13 08:52:02 +00:00
14 lines
1.7 KiB
Markdown
14 lines
1.7 KiB
Markdown
- Shared base and layering rules: [`../inference/AGENTS.md`](../inference/AGENTS.md)
|
|
- This crate owns provider-independent Messages call orchestration: the entrypoint, call envelopes, provider selection, credential resolution, transport coordination, hooks, and stream lifecycle
|
|
- shared API data contracts belong in `litellm-llms-types::formats::messages`
|
|
- adapter contracts and execution inputs in `llms/src/base_llm/messages`
|
|
- provider implementations in `llms/src/<provider>/messages`
|
|
- Select concrete provider adapters and invoke their contracts
|
|
- delegate authentication policy, beta selection, payload rewriting, and response interpretation to those adapters
|
|
- keep provider policy out of request preparation and transport handlers
|
|
- calling a concrete provider helper for every provider is still a policy dependency
|
|
- Route types such as `MessagesCall`, provider calls, and response wrappers containing live streams describe execution. Reuse the shared Messages payload types inside them instead of defining another request or response schema here
|
|
- The route returns `litellm_host::call::CallOutput`: a completed response, or a stream head and chunks
|
|
- Per-call dependencies are grouped in `litellm_inference::context::CallContext`. `handler::execute` explicitly sequences the provider call build in Python's handler order, cache lookup, provider execution, result acceptance (`CallContext::result_ready`), and cache storage
|
|
- Preserve the order of validation, normalization, caller-requested parameter removal, and provider transformation when that order affects observable behavior
|
|
- Test provider dispatch, auth precedence, header handling, transformations, and responses through behavior, not source structure
|