Skip to main content

Python Provider Contract

Implement:
async def complete(messages: list[Message]) -> str:
    ...
Message has:
  • role: str
  • content: str

TypeScript Provider Contract

Implement:
interface LLMProvider {
  complete(messages: Message[]): Promise<string>;
}

Built-in Providers

Python:
  • LiteLLMProvider
  • AnthropicVertexProvider
TypeScript:
  • OpenAIProvider
  • AnthropicProvider
  • AnthropicVertexProvider

Common Adapter Pattern

  1. Map internal message format to SDK format.
  2. Handle system prompt semantics for provider.
  3. Return plain text string.
  4. Keep token/timeouts/retries in provider layer.