Magentic: Integra LLMs fácilmente en tus funciones de Python
Magentic: Integración Sencilla de LLMs para Desarrolladores Python
Magentic es una potente y versátil librería de código abierto para Python, diseñada para unir la programación tradicional en Python con las capacidades avanzadas de los Grandes Modelos de Lenguaje (LLMs). Para los desarrolladores que buscan incorporar la IA en sus aplicaciones sin tener que lidiar con mucho código repetitivo o llamadas complejas a APIs, Magentic ofrece una solución elegante y eficiente.
La principal fortaleza de Magentic reside en su enfoque intuitivo basado en decoradores. Utilizando los decoradores @prompt
y @chatprompt
, los desarrolladores pueden transformar funciones Python normales en componentes inteligentes impulsados por LLMs. Esto permite crear funciones donde los argumentos se insertan dinámicamente en las instrucciones (prompts), y el LLM genera la salida de la función, adhiriéndose a los tipos de retorno especificados.
Características y Beneficios Clave:
- Salidas Estructuradas: Aprovecha la indicación de tipos (type hinting) de Python y los modelos de Pydantic para asegurar que los LLMs devuelvan los datos en un formato predecible y estructurado. Esto es crucial para integrar directamente las salidas de los LLMs en la lógica de la aplicación.
- Llamada a Funciones (Function Calling): Permite que los LLMs decidan inteligentemente cuándo y cómo llamar a funciones Python externas. Magentic gestiona la invocación, pasando los argumentos generados por el LLM, lo que lo hace ideal para construir sistemas "agénticos" que pueden interactuar con herramientas y APIs externas.
- Streaming: Procesa las salidas del LLM a medida que se generan, ya sea texto plano u objetos estructurados. Esto mejora significativamente la experiencia del usuario al reducir la latencia percibida y permitir la interacción en tiempo real.
- Soporte Asíncrono: Desarrollado pensando en
asyncio
, Magentic permite consultas concurrentes a los LLMs, acelerando drásticamente las aplicaciones que requieren múltiples interacciones con LLMs. - Múltiples Backends de LLM: Magentic es independiente del proveedor, soportando LLMs populares de OpenAI, Anthropic e incluso soluciones auto-alojadas como Ollama u otras APIs compatibles con OpenAI a través de LiteLLM. Esta flexibilidad asegura que los desarrolladores puedan elegir el mejor modelo para sus necesidades.
- Observabilidad: Las integraciones con OpenTelemetry y Pydantic Logfire proporcionan información sobre las interacciones con los LLMs, lo que ayuda en la depuración y el monitoreo del rendimiento.
Cómo Magentic Simplifica el Desarrollo:
Imagina que necesitas una función que, dada una ciudad, describa el clima actual. Con Magentic, puedes definir una función get_current_weather
y usar @prompt_chain
para instruir a un LLM que llame a esta función y luego sintetice una respuesta fácil de leer para humanos. Esta capacidad de encadenamiento es fundamental para construir agentes de IA sofisticados que puedan realizar razonamientos de varios pasos.
```python from magentic import prompt, prompt_chain, FunctionCall from pydantic import BaseModel
class Superhero(BaseModel): name: str age: int power: str enemies: list[str]
@prompt("Create a Superhero named {name}.") def create_superhero(name: str) -> Superhero: ...
superhero_data = create_superhero("Garden Man")
Superhero(name='Garden Man', age=30, power='Control over plants', enemies=['Pollution Man', 'Concrete Woman'])
def get_current_weather(location, unit="fahrenheit"): """Get the current weather in a given location""" # Simulate an API query return {"temperature": "72"