Skip to main content

AI Library to authenticate and manage LLM models

Project description

LLM

LLM es una librería Python modular orientada a la integración con múltiples modelos de lenguaje (LLMs), proveedores cloud y utilidades auxiliares para desarrollo e infraestructura.

Esta librería está diseñada para facilitar la interacción con LLMs de OpenAI, Azure, Google y Ollama, integrando además autenticación, configuración externa, plantillas Jinja2, y componentes reutilizables.

Características

  • Soporte para múltiples modelos LLM:
    • OpenAI (chat y embeddings)
    • Azure OpenAI
    • Google Generative AI
    • Ollama
    • LangChain y variantes
  • Módulos para configuración (decouple, YAML)
  • Autenticación vía Azure Identity
  • Generación de contenido vía plantillas Jinja2
  • Separación clara de responsabilidades con módulos como:
    • logger
    • security
    • auth_clients
    • model_* (interfaces para distintos LLMs)

Instalación

Desde PyPI:

pip install ai-factory-model

Puesta a punto

Para poder hacer uso de la factoría de modelos es necesario definir una serie de variables de entorno, que permiten la conexión a los distintos servicios de alojamiento de modelos:

AZURE_TENANT_ID = <id_tenant_azure>
AZURE_CLIENT_ID = <id_client_azure>
AZURE_CLIENT_SECRET = <secret_passphrase_azure_client>
AZURE_TOKEN_URL = <azure_url_token_generator>

Para un mayor nivel de seguridad, se cuenta con conexión a KeyVault. Para definir la conexión al almacén de claves correspondiente, se debe usar:

KV_NAME = <kv_name>
KV_TENANT_ID = <id_kv_tenant>
KV_CLIENT_ID = <id_kv_client>
KV_SECRET = <secret_passphrase_kv>

Con la conexión a KeyVault establecida, los valores que se deben recuperar desde el almacén de claves deben especificarse siguiendo la siguiente nomenclatura:

VARIABLE_SECRET = kv{name-of-secret-at-kv}

De esta forma, por ejemplo:

# Pasamos de tener el secreto en raw
AZURE_CLIENT_SECRET = <secret_passphrase_azure_client>

# A recuperarlo desde el KV
AZURE_CLIENT_SECRET = kv{<name_secret_azure_client>}

Además, si contamos con un fichero en el que tenemos las distintas configuraciones de modelos que deseamos utilizar, debemos indicarlo con su correspondiente variable.

MODELS_CONFIG_FILE = <path_to_models_declarations_file>

Uso básico

Usando el prompt:

from factory_model import ModelFactory

model = ModelFactory.get_model("azai_gtp4o")
params = ["Eres un guía turístico", "¿Dónde está Plasencia?"]

response = model.prompt(params=params)

print(response)
# Output:
# Plasencia es una ciudad situada en la comunidad autónoma de Extremadura, en el oeste de España. Se encuentra en la provincia de Cáceres, a orillas del río Jerte. Plasencia está aproximadamente a unos 80 kilómetros al norte de la ciudad de Cáceres y a unos 250 kilómetros al oeste de Madrid. Es conocida por su casco histórico, que incluye la Catedral de Plasencia, y por su cercanía al Valle del Jerte, famoso por sus cerezos en flor.

Utilizando la instancia de langchain:

from factory_model import ModelFactory
params = ["Eres un guía turístico", "¿Cuál es la capital de España?"]

response = model.get_client.invoke([
    {"role": "system", "content": params[0]},
    {"role": "user", "content": params[1]}
])

print(type(response))
# Output:
# <class 'langchain_core.messages.ai.AIMessage'>

print(f"{response.content}")
# Output:
# La capital de España es Madrid. Es una ciudad vibrante y llena de historia, conocida por su rica cultura, su arquitectura impresionante y su animada vida nocturna. Además, Madrid alberga importantes museos como el Museo del Prado y el Museo Reina Sofía, así como el Palacio Real y el Parque del Retiro.

Estructura del proyecto

factory_model/
├── factory_model/
│   ├── __init__.py
│   ├── config/
│   ├── llm/
│   ├── logger/
│   ├── security/
│   ├── vectordb/
├── pyproject.toml
├── requirements.txt
└── README.md

Requisitos y dependencias

Este paquete requiere las siguientes librerías externas:

  • python-decouple
  • PyYAML
  • openai
  • jinja2
  • azure-core
  • azure-identity
  • azure-keyvault-secrets
  • langchain
  • langchain-openai
  • langchain-google-genai
  • langchain-community
  • langchain-azure-ai
  • langchain-ollama
  • langchain-cohere
  • azure-search-documents
  • psycopg[binary]

Requisitos del sistema

  • Python 3.12 o superior
  • Acceso a credenciales/API keys para los proveedores usados (OpenAI, Azure, etc.)

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

ai_factory_model-0.0.5.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

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

ai_factory_model-0.0.5-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

Details for the file ai_factory_model-0.0.5.tar.gz.

File metadata

  • Download URL: ai_factory_model-0.0.5.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.22

File hashes

Hashes for ai_factory_model-0.0.5.tar.gz
Algorithm Hash digest
SHA256 145f8aeaef296029e4ca1106d99068d1a51a28850362c0be65cade4ce835d499
MD5 9b9477f57f0c239bd75dbb49c31a1ab4
BLAKE2b-256 35726059bc684e17dc186509643bb6756c7640e74163391d15132dad9cd41c3b

See more details on using hashes here.

File details

Details for the file ai_factory_model-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for ai_factory_model-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 436391d4e97ec1e0f29d12d691b695f89bd7ba73587baa1485cd150397da49fe
MD5 e367dd713027c577ce24f409b98149cc
BLAKE2b-256 f7b289be52abcdb17553de21d468a816e8421eb5f1ed4b8e238ada78c96231d4

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