generated from coulomb/repo-seed
FR-2 RoutingPolicy: - RoutingPolicy + RoutingRule dataclasses in llm_connect/routing.py - resolve(task_type, estimated_cost_per_1k=None) with cost-cap fallback - Exported from llm_connect.__init__; contract doc at contracts/functional/routing-policy.md - 11 tests covering rule match, cost-cap, fallback, unknown type, no-match FR-1 HTTP serve mode: - LLMServer in llm_connect/server.py (stdlib http.server, zero extra deps) - POST /execute + GET /health; CLI via python -m llm_connect.server - [server] optional-dep group added to pyproject.toml - Contract doc at contracts/functional/server.md - 9 tests: health, round-trip, 400/404/500 errors, config forwarding - Added "mock" provider to factory for CLI default All 101 tests pass. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
76 lines
2.2 KiB
Python
76 lines
2.2 KiB
Python
"""
|
|
llm-connect — Pluggable LLM adapters.
|
|
|
|
Provides concrete :class:`LLMAdapter` implementations backed by
|
|
OpenRouter (HTTP), Gemini, OpenAI, and Claude Code CLI (subprocess).
|
|
|
|
Quick start::
|
|
|
|
from llm_connect import create_adapter
|
|
|
|
adapter = create_adapter("openrouter", model="anthropic/claude-sonnet-4")
|
|
response = adapter.execute_prompt(prompt, run_config)
|
|
"""
|
|
|
|
from llm_connect.models import RunConfig, LLMResponse, BudgetTracker
|
|
from llm_connect.adapter import LLMAdapter, MockLLMAdapter, ErrorLLMAdapter
|
|
from llm_connect.factory import create_adapter
|
|
from llm_connect.openrouter import OpenRouterAdapter
|
|
from llm_connect.claude_code import ClaudeCodeAdapter
|
|
from llm_connect.gemini import GeminiAdapter
|
|
from llm_connect.openai import OpenAIAdapter
|
|
from llm_connect.config import LLMConfig, load_config
|
|
from llm_connect.exceptions import (
|
|
LLMError,
|
|
LLMConfigurationError,
|
|
LLMAPIError,
|
|
LLMRateLimitError,
|
|
LLMTimeoutError,
|
|
LLMSubprocessError,
|
|
LLMBudgetExceededError,
|
|
)
|
|
from llm_connect.embedding_adapter import EmbeddingAdapter
|
|
from llm_connect.embedding_openai import OpenAICompatibleEmbeddingAdapter
|
|
from llm_connect.embedding_cache import EmbeddingCache
|
|
from llm_connect.embedding_factory import create_embedding_adapter
|
|
from llm_connect.routing import RoutingPolicy, RoutingRule
|
|
from llm_connect.server import LLMServer
|
|
from llm_connect.similarity import (
|
|
cosine_similarity,
|
|
similarity_matrix,
|
|
find_similar_pairs,
|
|
)
|
|
|
|
__all__ = [
|
|
"RunConfig",
|
|
"LLMResponse",
|
|
"BudgetTracker",
|
|
"LLMAdapter",
|
|
"MockLLMAdapter",
|
|
"ErrorLLMAdapter",
|
|
"create_adapter",
|
|
"OpenRouterAdapter",
|
|
"ClaudeCodeAdapter",
|
|
"GeminiAdapter",
|
|
"OpenAIAdapter",
|
|
"LLMConfig",
|
|
"load_config",
|
|
"LLMError",
|
|
"LLMConfigurationError",
|
|
"LLMAPIError",
|
|
"LLMRateLimitError",
|
|
"LLMTimeoutError",
|
|
"LLMSubprocessError",
|
|
"LLMBudgetExceededError",
|
|
"EmbeddingAdapter",
|
|
"OpenAICompatibleEmbeddingAdapter",
|
|
"EmbeddingCache",
|
|
"create_embedding_adapter",
|
|
"cosine_similarity",
|
|
"similarity_matrix",
|
|
"find_similar_pairs",
|
|
"RoutingPolicy",
|
|
"RoutingRule",
|
|
"LLMServer",
|
|
]
|