Added INTENT.md file and reviewed scope
Some checks failed
CI / test (3.10) (push) Has been cancelled
CI / test (3.11) (push) Has been cancelled
CI / test (3.12) (push) Has been cancelled

This commit is contained in:
2026-05-03 17:46:24 +02:00
parent 665e925be6
commit 66dfc7cf06
2 changed files with 97 additions and 4 deletions

95
INTENT.md Normal file
View File

@@ -0,0 +1,95 @@
# INTENT
## Purpose
This repository exists to provide a **provider-neutral interface for interacting with large language models (LLMs)** in Python.
It ensures that applications can use LLM capabilities without being tightly coupled to any specific provider, API, or execution environment.
---
## Primary Utility
The repository provides a **unified adapter layer** that:
* Abstracts over multiple LLM providers and execution modes
* Standardizes request, response, and configuration handling
* Enables interchangeable use of hosted APIs and local tooling (e.g. CLI-based models)
* Supports embeddings, token estimation, and related primitives
* Enables dynamic utility by cost optimizations
It transforms heterogeneous LLM ecosystems into a **consistent, composable programming interface**.
---
## Intended Users
* Application developers integrating LLM capabilities into their systems
* Library and framework authors requiring provider-agnostic LLM primitives
* Automation systems (`atm`) orchestrating LLM-assisted workflows
* LLM agents (`agt`) operating across different model providers
---
## Strategic Role in the System
This repository acts as the **LLM abstraction layer** within the broader system:
* It decouples **application logic from provider-specific implementations**
* It enables **runtime flexibility and provider switching without code changes**
* It supports architectures where LLM usage is **optional, replaceable, and testable**
It allows higher-level systems to treat LLMs as **pluggable capabilities rather than fixed dependencies**.
---
## Strategic Boundaries
This repository is **not** intended to:
* Provide application-level agent frameworks or workflows
* Define prompting strategies, routing policies, or domain-specific logic
* Manage secrets, credentials, or organizational access policies
* Own or implement LLM providers themselves
Its responsibility is limited to **clean abstraction and integration of LLM capabilities**.
---
## Design Principles
* **Abstraction over providers**
Consumers depend on a stable adapter interface, not on vendor APIs
* **Composability**
LLM functionality should be usable as a building block in larger systems
* **Replaceability**
Providers and execution modes must be interchangeable without affecting consumers
* **Deterministic integration boundaries**
Non-LLM logic must remain testable and independent of LLM variability
* **Minimal opinionation**
The library provides primitives, not policies
---
## Maturity Target
A mature version of this repository should:
* Provide a **stable, versioned core adapter contract** for LLM interaction
* Support a broad range of providers and execution environments
* Enable **seamless switching and fallback between providers**
* Offer consistent handling of **responses, errors, and usage metrics**
* Serve as the **default integration layer for LLM capabilities** across dependent systems
---
## Stability Note
Changes to this file represent a **deliberate shift in the abstraction boundaries or role** of this repository.
Such changes should be rare, as they affect all downstream systems relying on provider-neutral LLM integration.

View File

@@ -1,7 +1,7 @@
# llm-connect
Pluggable LLM adapters for Python. Supports OpenRouter, Gemini, OpenAI, and
the Claude Code CLI out of the box, with a clean abstract interface for adding
Pluggable LLM adapters for Python and the commandline. Supports OpenRouter, Gemini,
OpenAI, and the Claude Code CLI out of the box, with a clean abstract interface for adding
your own.
## Quick start
@@ -31,8 +31,6 @@ pip install llm-connect
|---|---|---|
| `"openrouter"` | `OpenRouterAdapter` | OpenAI-compatible endpoint; supports all OpenRouter models |
| `"gemini"` | `GeminiAdapter` | Google Generative Language REST API; supports free tier |
| `"openai"` | `OpenAIAdapter` | OpenAI chat completions endpoint |
| `"claude-code"` | `ClaudeCodeAdapter` | Shells out to the `claude --print` CLI; no API key needed |
```python
from llm_connect import create_adapter