Skip to main content
Use Auriko as your LLM provider in LangChain with a drop-in ChatOpenAI replacement. This integration is Python-only. For TypeScript, use the Vercel AI SDK integration or configure the OpenAI SDK directly with Auriko’s base URL.

Prerequisites

Installation

Use SDK adapter

Use the AurikoChatOpenAI adapter:
AurikoChatOpenAI extends LangChain’s ChatOpenAI with:
  • use_responses_api=False set by default (ensures routing metadata and typed error mapping)
  • Routing injection via extra_body
  • OpenAI error mapping to typed Auriko error classes

Configure options

AurikoChatOpenAI accepts these parameters:
ParameterTypeDefaultDescription
modelstr(required, via parent)Model ID
api_keystr | NoneAURIKO_API_KEY envAPI key
routingRoutingOptions | NoneNoneRouting configuration
base_urlstr"https://api.auriko.ai/v1"API base URL
**kwargsPassed through to ChatOpenAI (e.g., temperature, max_tokens)

Configure routing

You can pass a RoutingOptions instance to control cost, latency, and quality trade-offs:
Access routing metadata through generation_info when using generate():

Configure manually

If you prefer to use ChatOpenAI directly:
use_responses_api=False is the default. Both Chat Completions and Response API streaming include routing_metadata.

Alternative: use AurikoAsyncOpenAI (experimental)

If you can’t use auriko[langchain] (for example, your project pins a different langchain-openai version), pass AurikoAsyncOpenAI into LangChain’s async_client parameter:
Pass client.chat.completions (not the whole client) and provide any string as api_key (LangChain requires it for construction). Read client.last_routing_metadata after each call. See AurikoAsyncOpenAI for the full class reference.

Notes

  • OpenAI API errors map to typed Auriko error classes (RateLimitError, PermissionDeniedError, BadRequestError, etc.).
  • AurikoChatOpenAI sets use_responses_api=False by default.