LLMTrace: Observabilidad y Trazabilidad para Aplicaciones con LLM
LLMTrace es una librería open-source en Python diseñada como un toolkit de observabilidad y evaluación para aplicaciones con modelos de lenguaje. Permite a los desarrolladores instrumentar sus apps de IA generativa para registrar automáticamente prompts y respuestas, medir métricas clave y visualizar trazas de las sesiones.
Características Principales (v0)
- Instrumentación Automática: Captura prompts, respuestas, tokens, costos y errores de LLMs populares (OpenAI, HuggingFace, LangChain).
- Almacenamiento Local Persistente: Utiliza SQLite por defecto para guardar todos los datos de trazabilidad. Soporte experimental para PostgreSQL.
- Dashboard Web Ligero: Una interfaz web básica para visualizar sesiones y métricas.
- Interfaz de Línea de Comandos (CLI): Herramientas para listar, mostrar detalles, exportar y eliminar datos.
- Migraciones de Base de Datos: Gestión de esquema con Alembic.
Instalación
LLMTrace requiere Python 3.9 o superior.
-
Instalación básica: ```bash pip install llmtrace ```
-
Instalación con extras (dashboard, evaluación, backends DB, instrumentadores): ```bash pip install "llmtrace[all]" # Instala todas las dependencias opcionales
O selecciona solo las que necesites:
pip install "llmtrace[openai,postgresql]"
```
Uso Rápido
import llmtrace
from llmtrace.instrumentation.openai import OpenAIInstrumentor
import openai
import asyncio
async def main():
# Inicializa LLMTrace (crea llmtrace.db en ~/.llmtrace por defecto)
# Puedes usar LLMTRACE_DB_URL="memory://" para una base de datos en memoria para tests.
await llmtrace.init()
# Instrumenta OpenAI
OpenAIInstrumentor().instrument()
# Todas las llamadas a openai.ChatCompletion.create serán registradas
res = await openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Escribe un haiku sobre la observabilidad."}]
)
print(res.choices[0].message.content)
# Inicia una sesión para agrupar trazas
async with llmtrace.session(name="MiPrimerHaiku", user_id="anon_user"):
await openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Otro haiku, esta vez sobre el código."}]
)
# Consulta datos programáticamente
sessions = await llmtrace.get_sessions()
print(f"\nSesiones registradas: {len(sessions)}")
# Inicia el dashboard web
# llmtrace web
# Abre tu navegador en http://localhost:5000 (por defecto)
await llmtrace.close() # Cierra la conexión a la DB
if __name__ == "__main__":
asyncio.run(main())
Release files for llmtrace 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| llmtrace-0.1.4.tar.gz | 72.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| llmtrace-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 123.4 kB
Release files / llmtrace-0.1.4.tar.gz
| Download URL | llmtrace-0.1.4.tar.gz |
|---|---|
| Size | 72.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4d61522a180b70c7a376cf4ae18119d73c433f209f773a1fc41238d957238191
|
|
BLAKE2b-256 checksum How to use checksums |
ffaa67a6434a64f4a0e419f7b0cf73ba9f2f82c8096d549d2b511378e4c6faa1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|
Release files / llmtrace-0.1.4-py3-none-any.whl
| Download URL | llmtrace-0.1.4-py3-none-any.whl |
|---|---|
| Size | 50.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
19e22d0b104b256e128ff0b3a8d7f1b6ffb2b41910c065db4f21814e6f5af840
|
|
BLAKE2b-256 checksum How to use checksums |
6eaa742e3030c0eb0db0b38d0b4c716df5fae883adf9041b72e6303dce8af9fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|