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.2002.tar.gz (171.8 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.2002-py3-none-any.whl (257.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for lexigram_ai_llm-0.1.2002.tar.gz
Algorithm Hash digest
SHA256 1a39f6a7b5e65264d5ead588652c8d2520f5f525809d8f049a53da8561812dbf
MD5 5fcb2586a1acb63f43b0917c1ff7560f
BLAKE2b-256 2d26f8c9398f9ba63a88238ba9b31c01f2b83ef79f7b85f20f6228c3ef1276a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lexigram_ai_llm-0.1.2002-py3-none-any.whl
Algorithm Hash digest
SHA256 70e51b0169827738e13a85e296ced06a918b8b75a684ff67b7cbcc73b3a94dc1
MD5 88ceb0fb69ba553f6a4fed74675207ce
BLAKE2b-256 db191dd1948257ba05a0b75f6de39125e8faf174d646fb11ba1fd8ef457b6cda

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