Replace hardwired Anthropic API calls with a pluggable provider system. Each deployment configures its AI provider in instance.yaml — switching between Anthropic, LiteLLM, OpenRouter, or any OpenAI-compatible proxy is a config change, not a code change. New connectors/llm/ module: - StructuredExtractor Protocol with extract_json() interface - AnthropicExtractor: direct Anthropic SDK with retry + backoff - OpenAICompatExtractor: any OpenAI-compatible proxy with three-layer structured output fallback (json_schema -> json_object -> prompt) - Configurable structured_output policy (strict/json/auto) - Custom exception hierarchy (auth/rate_limit/timeout/format/refusal) - Zero secrets in logs: no API keys, prompts, or responses logged Reviewed by: Google Gemini, Claude Sonnet, OpenAI GPT-5.4. Security audit passed with all critical findings resolved.
11 lines
398 B
Python
11 lines
398 B
Python
"""LLM connector module for structured extraction.
|
|
|
|
Provides a provider-agnostic interface for extracting structured JSON
|
|
from language models. Supports Anthropic (native) and OpenAI-compatible
|
|
providers with automatic fallback strategies for structured output.
|
|
"""
|
|
|
|
from .base import StructuredExtractor
|
|
from .factory import create_extractor
|
|
|
|
__all__ = ["StructuredExtractor", "create_extractor"]
|