Skip to main content

LLM client layer for the Lexigram Framework — OpenAI, Anthropic, Ollama, Cohere, Groq, Mistral

Project description

lexigram-ai-llm

LLM client layer for the Lexigram Framework — OpenAI, Anthropic, Ollama, Cohere, Groq, Mistral


Overview

LLM client layer for the Lexigram Framework. Provides typed, async-first clients for 18 providers, multi-provider routing, thinking/reasoning control, structured extraction, streaming, embeddings, and model management — all wired through the DI container via LLMModule. Zero-config usage starts with sensible defaults.

Full documentation: docs.lexigram.dev

Install

uv add lexigram-ai-llm
# Optional extras
uv add "lexigram-ai-llm[openai,anthropic,ollama]"

Quick Start

from lexigram import Application
from lexigram.di.module import Module, module

from lexigram.ai.llm import LLMModule
from lexigram.ai.llm.config import ClientConfig

@module(imports=[
    LLMModule.configure(
        ClientConfig(provider="anthropic", model="claude-sonnet-4-6")
    )
])
class AppModule(Module):
    pass

app = Application(modules=[AppModule])
if __name__ == "__main__":
    app.run()

Configuration

Zero-config usage: Call LLMModule.configure() with no arguments to use defaults.

Option 1 — YAML file

# application.yaml
ai_llm:
  provider: "anthropic"
  model: "claude-sonnet-4-6"
  api_key: "${LEX_AI_LLM__API_KEY}"
  temperature: 0.7
  max_tokens: null

Option 2 — Profiles + Environment Variables (recommended)

export LEX_AI_LLM__PROVIDER=anthropic
# Environment variables for each field

Option 3 — Python

from lexigram.ai.llm.config import ClientConfig
from lexigram.ai.llm import LLMModule

config = ClientConfig(
    provider="anthropic",
    model="claude-sonnet-4-6",
)
LLMModule.configure(config)

Config reference

Field Default Env var Description
enabled True LEX_AI_LLM__ENABLED Enable the LLM subsystem
provider openai LEX_AI_LLM__PROVIDER LLM provider
model gpt-4-turbo LEX_AI_LLM__MODEL Model name
api_key None LEX_AI_LLM__API_KEY Provider API key
api_base None LEX_AI_LLM__API_BASE Custom endpoint (Azure, local, proxy)
temperature 0.7 LEX_AI_LLM__TEMPERATURE Sampling temperature (0.0–2.0)
max_tokens None LEX_AI_LLM__MAX_TOKENS Response token limit
timeout 60.0 LEX_AI_LLM__TIMEOUT Request timeout in seconds
enable_cache False LEX_AI_LLM__ENABLE_CACHE Cache responses
cache_ttl 3600 LEX_AI_LLM__CACHE_TTL Cache TTL in seconds
thinking None Reasoning/thinking control configuration

Module Factory Methods

Method Description
LLMModule.configure(config) Single-provider client
LLMModule.configure(routing=LLMConfig()) Multi-provider routing cascade
LLMModule.stub() No-op client for tests

Key Features

  • 18 providers: OpenAI, Anthropic, Google Gemini, Azure, Ollama, Groq, Mistral, Cohere, and more
  • Multi-provider routing: Sequential, cost-optimized, and latency-optimized strategies
  • Thinking/reasoning control: Extended thinking with token budget and suppression
  • Structured extraction: JSON schema and Pydantic model extraction
  • Streaming: Async streaming response support
  • Embeddings: Text embedding client with same provider
  • Caching: Response-level caching with configurable TTL

Testing

async with Application.boot(modules=[LLMModule.stub()]) as app:
    # your test code
    ...

Key Source Files

File What it contains
src/lexigram/ai/llm/module.py LLMModule.configure() and LLMModule.stub()
src/lexigram/ai/llm/config.py ClientConfig
src/lexigram/ai/llm/routing/config.py LLMConfig, ProviderConfig for routing
src/lexigram/ai/llm/di/provider.py LLMProvider — registers and boots the client
src/lexigram/ai/llm/clients/ Provider implementations
src/lexigram/ai/llm/thinking/ ThinkingConfig handling and suppression
src/lexigram/ai/llm/exceptions.py Full exception hierarchy

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lexigram_ai_llm-0.1.2001.tar.gz (299.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lexigram_ai_llm-0.1.2001-py3-none-any.whl (257.7 kB view details)

Uploaded Python 3

File details

Details for the file lexigram_ai_llm-0.1.2001.tar.gz.

File metadata

  • Download URL: lexigram_ai_llm-0.1.2001.tar.gz
  • Upload date:
  • Size: 299.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.14

File hashes

Hashes for lexigram_ai_llm-0.1.2001.tar.gz
Algorithm Hash digest
SHA256 f4bacd8089fa7f5fa85fce094c3a24f7b72eecb264ff63dcd21d6c573ce78a50
MD5 4dfe0297f34cbb268671ae5fefd5c5df
BLAKE2b-256 a8eee3cf970ba314d360b389ae8ab1dbd827755284da137efcac368c7e4b94ed

See more details on using hashes here.

File details

Details for the file lexigram_ai_llm-0.1.2001-py3-none-any.whl.

File metadata

File hashes

Hashes for lexigram_ai_llm-0.1.2001-py3-none-any.whl
Algorithm Hash digest
SHA256 0e523b8e50c3465bd8cfee7828313db2a2a9723ed9a8f59139b0c4939707b0e8
MD5 d93cb69e5953d56d6336d1866131e23d
BLAKE2b-256 be2695fb54a493cc181d40d3a5c7a9a72758cef9617c484d926b786ac1a4542a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page