Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

llm-factory

A flexible Python factory for working with multiple Large Language Model (LLM) providers (OpenAI, Anthropic, Gemini, Llama) using a unified interface, with robust configuration and extensibility.


Features

  • ✅ Unified interface for multiple LLM providers (OpenAI, Anthropic, Gemini, Llama)
  • ✅ Easy provider switching via configuration
  • ✅ Pydantic-based response validation
  • ✅ Environment variable-based secure configuration
  • ✅ Extensible for new providers
  • ✅ Supports model, temperature, max tokens, and retries per provider

Installation

pip install python-llm-factory

Configuration

The package uses environment variables for authentication and configuration. You can set these in a .env file or your environment:

# Required environment variables for each provider
OPENAI_API_KEY=your_openai_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key
GEMINI_API_KEY=your_gemini_api_key

Examples

Basic Usage: Creating a Completion

from pydantic import BaseModel, Field
from python_llm_factory import LLMFactory
from python_llm_factory import Settings


class CompletionModel(BaseModel):
    response: str = Field(description="Your response to the user.")
    reasoning: str = Field(description="Explain your reasoning for the response.")


messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "If it takes 2 hours to dry 1 shirt out in the sun, how long will it take to dry 5 shirts?"},
]

llm = LLMFactory(
    settings=Settings().gemini.gemini_2_5_flash,
)
completion = llm.completions_create(
    response_model=CompletionModel,
    messages=messages,
)
print(f"Response: {completion.response}\n")
print(f"Reasoning: {completion.reasoning}")

🤝 Contributing

If you have a helpful tool, pattern, or improvement to suggest:

  • Fork the repo
  • Create a new branch
  • Submit a pull request
    I welcome additions that promote clean, productive, and maintainable development.

🙏 Thanks

Thanks for exploring this repository!
Happy coding!

Release files for python-llm-factory 0.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-llm-factory 0.0.5
File Size Uploaded
python_llm_factory-0.0.5.tar.gz 8.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-llm-factory 0.0.5
File Interpreter ABI Platform
python_llm_factory-0.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 18.3 kB

Release files / python_llm_factory-0.0.5.tar.gz

Download URL python_llm_factory-0.0.5.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
491f569aac818a1e81c0ded7111c193196ddf1ba5ad7f1aedde34359f170d8ef
BLAKE2b-256 checksum
How to use checksums
aeffaa1d4f147e64ef4e702e622481a28defc52efe12c86a62d0d485d35c1c49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / python_llm_factory-0.0.5-py3-none-any.whl

Download URL python_llm_factory-0.0.5-py3-none-any.whl
Size 10.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f950e2096fe037dc7d364b7303152dfcf182542232a57b958a9e41da081f77f8
BLAKE2b-256 checksum
How to use checksums
a9fd7b0b8b116e096ed0aaa73c753ebad4428d1caad917fa92d5a08e0a17627c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page