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:
loggersecurityauth_clientsmodel_*(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", "¿Cuál es la capital de Francia?"]
response = model.prompt(params=params)
print(response)
Utilizando la instancia de langchain:
from factory_model import ModelFactory
response = model.get_client.invoke([
{"role": "system", "content": params[0]},
{"role": "user", "content": params[1]}
])
print(response) # type: langchain_core.messages.ai.AIMessage
print(f"{response.content}")
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-decouplePyYAMLopenaijinja2azure-coreazure-identityazure-keyvault-secretslangchainlangchain-openailangchain-google-genailangchain-communitylangchain-azure-ailangchain-ollamalangchain-cohere
Las dependencias se instalarán automáticamente con pip.
Requisitos del sistema
- Python 3.12 o superior
- Acceso a credenciales/API keys para los proveedores usados (OpenAI, Azure, etc.)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_factory_model-0.0.4.tar.gz.
File metadata
- Download URL: ai_factory_model-0.0.4.tar.gz
- Upload date:
- Size: 16.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c22bef1d7d5b2ec38f909696e5104887b21910725b5efbc021eb731108e4748
|
|
| MD5 |
4d39b544c6258101e4aeadabf2a681ca
|
|
| BLAKE2b-256 |
4077950282f18f40b096b3ee7114f3cc36a22bdae55fb8697e7765bfc213e397
|
File details
Details for the file ai_factory_model-0.0.4-py3-none-any.whl.
File metadata
- Download URL: ai_factory_model-0.0.4-py3-none-any.whl
- Upload date:
- Size: 22.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4aed23dde49f9c457b946bc13538b65210044c3d2d4a7eaf942d0f13416c8e2
|
|
| MD5 |
cf477433849e23a7b6252cb4e1622065
|
|
| BLAKE2b-256 |
ffcf1b46ded0f017a18fc72efebf8522ddaf58b967aa275aaa644feced490fca
|