A lightweight LLM observability and evaluation framework.
Project description
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())
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 llmtrace-0.1.4.tar.gz.
File metadata
- Download URL: llmtrace-0.1.4.tar.gz
- Upload date:
- Size: 72.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d61522a180b70c7a376cf4ae18119d73c433f209f773a1fc41238d957238191
|
|
| MD5 |
fb2f8a3980bd94fbfa003c1d6d89069b
|
|
| BLAKE2b-256 |
ffaa67a6434a64f4a0e419f7b0cf73ba9f2f82c8096d549d2b511378e4c6faa1
|
File details
Details for the file llmtrace-0.1.4-py3-none-any.whl.
File metadata
- Download URL: llmtrace-0.1.4-py3-none-any.whl
- Upload date:
- Size: 50.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19e22d0b104b256e128ff0b3a8d7f1b6ffb2b41910c065db4f21814e6f5af840
|
|
| MD5 |
241513297710c379f3b8558a36669968
|
|
| BLAKE2b-256 |
6eaa742e3030c0eb0db0b38d0b4c716df5fae883adf9041b72e6303dce8af9fe
|