Skip to main content

A global reusable LLM Registry wrapper for LangChain models with unified error mapping for Lighthouse Agents Factory

Project description

LLM Registry

A global, reusable LLM Registry wrapper for LangChain chat models. It enables unified model configuration management, lazy loading, and dynamic resolution of model providers (OpenAI, Groq, Anthropic, and Google Gemini).


Installation & Setup

[!NOTE] The distribution package name is lighthouse-llm-registry (hyphen), and the Python import package name is llm_registry (underscore).

1. Installation

Install the core package:

pip install lighthouse-llm-registry

To install specific provider SDK dependencies:

# OpenAI support
pip install "lighthouse-llm-registry[openai]"

# Groq support
pip install "lighthouse-llm-registry[groq]"

# Anthropic support
pip install "lighthouse-llm-registry[anthropic]"

# Google Gemini support
pip install "lighthouse-llm-registry[google]"

# Install all supported providers
pip install "lighthouse-llm-registry[all]"

If installing from local source distribution:

pip install ".[all]"

2. API Keys Configuration

Create a .env file in the root of your target project:

OPENAI_API_KEY=your-openai-key
GROQ_API_KEY=your-groq-key
ANTHROPIC_API_KEY=your-anthropic-key
GOOGLE_API_KEY=your-gemini-key
LOCAL_MODEL_LINK=http://192.168.101.88:11434/api/chat
LOCAL_MODEL=llama3.1:8b

Usage Guide

1. Registration (Application Startup)

Register your model configurations once at application startup (e.g., in your app's main entry point):

# main.py
from dotenv import load_dotenv
from llm_registry import global_registry, ModelConfig

# Load environment keys from .env
load_dotenv()

# Register OpenAI config (defaults to standard temperature/max_tokens rules)
global_registry.register_model_config(
    "primary-chat",
    ModelConfig(
        provider="openai",
        model_name="gpt-4o-mini",
        temperature=0.7
    )
)

# Register Groq config
global_registry.register_model_config(
    "fast-chat",
    ModelConfig(
        provider="groq",
        model_name="llama-3.1-8b-instant",
        temperature=0.2
    )
)

# Register Anthropic config (supports models like claude-opus-4-8)
global_registry.register_model_config(
    "legacy-chat",
    ModelConfig(
        provider="anthropic",
        model_name="claude-opus-4-8"
    )
)

# Register Local Ollama config (falls back to LOCAL_MODEL_LINK and LOCAL_MODEL if parameters are omitted)
global_registry.register_model_config(
    "local-chat",
    ModelConfig(
        provider="local",
        model_name=""
    )
)

2. Resolution (Anywhere in your code)

Resolve and query the model anywhere inside your application without importing specific provider SDKs:

# agents/agent.py
from llm_registry import global_registry

class SimpleAgent:
    def __init__(self):
        # Dynamically resolve model from the global registry
        self.model = global_registry.get_model("fast-chat")
      
    def respond(self, query: str) -> str:
        # Standard LangChain invoke call
        response = self.model.invoke(query)
        return response.content

# Example for Local Ollama Model:
local_model = global_registry.get_model("local-chat")
local_response = local_model.invoke([
    {"role": "user", "content": "How are you today?"}
])
print(local_response)  # Returns direct text output

Running Playground tests

An interactive chat test script is included under tests/chat_test.py to check your connections. Run it directly:

python tests/chat_test.py

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

lighthouse_llm_registry-0.1.1.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

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

lighthouse_llm_registry-0.1.1-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file lighthouse_llm_registry-0.1.1.tar.gz.

File metadata

  • Download URL: lighthouse_llm_registry-0.1.1.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for lighthouse_llm_registry-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b41aa8176a96ab4aa579c45a030d4b702ebebf6c06f2d5dae4e889e5dbf301ab
MD5 0f23ba9d061d4c31a466c25e1bdac2a3
BLAKE2b-256 79dddacc80b65c2d46648e27f5a4e2b802b97fbb834086cc86185f2261e45d5a

See more details on using hashes here.

File details

Details for the file lighthouse_llm_registry-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for lighthouse_llm_registry-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5958cc711fa60a288d349aecddb04d4715e3437fcbbec6cb70621dbb6577abed
MD5 a185cc67afe6c2caf16c845293048d25
BLAKE2b-256 3f7da62d8a3f519ed214990d39a0bea9f67c70e6e8913dbd3a17e8f3b5ab21d1

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