Maventic : Intégrez facilement des LLM dans vos fonctions Python

Magentic : Intégration transparente des LLM pour les développeurs Python

Magentic est une bibliothèque Python open-source puissante et polyvalente, conçue pour faire le pont entre la programmation Python traditionnelle et les capacités avancées des grands modèles linguistiques (LLM). Pour les développeurs souhaitant intégrer l'IA dans leurs applications sans le fardeau d'un code passe-partout excessif ou d'appels d'API complexes, Magentic offre une solution élégante et efficace.

La force principale de Magentic réside dans son approche intuitive basée sur les décorateurs. En utilisant les décorateurs @prompt et @chatprompt, les développeurs peuvent transformer des fonctions Python ordinaires en composants intelligents, alimentés par un LLM. Cela permet de créer des fonctions où les arguments sont insérés dynamiquement dans les invites (prompts), et le LLM génère la sortie de la fonction, en respectant les types de retour spécifiés.

Fonctionnalités et avantages clés :

  • Sorties structurées : Tirez parti de l'annotation de type de Python (type hinting) et des modèles Pydantic pour garantir que les LLM renvoient des données dans un format prévisible et structuré. C'est crucial pour intégrer directement les sorties des LLM dans la logique de l'application.
  • Appel de fonctions : Permettez aux LLM de décider intelligemment quand et comment appeler des fonctions Python externes. Magentic gère l'invocation, en passant les arguments générés par le LLM, ce qui le rend idéal pour construire des systèmes d'agents capables d'interagir avec des outils et des API externes.
  • Streaming : Traitez les sorties des LLM au fur et à mesure de leur génération, qu'il s'agisse de texte brut ou d'objets structurés. Cela améliore considérablement l'expérience utilisateur en réduisant la latence perçue et en permettant une interaction en temps réel.
  • Support asynchrone : Conçu avec asyncio à l'esprit, Magentic permet des requêtes LLM concurrentes, accélérant considérablement les applications qui nécessitent de multiples interactions avec des LLM.
  • Multiples backends LLM : Magentic n'est pas lié à un fournisseur spécifique, supportant les LLM populaires d'OpenAI, Anthropic, et même des solutions auto-hébergées comme Ollama ou d'autres API compatibles OpenAI via LiteLLM. Cette flexibilité garantit que les développeurs peuvent choisir le meilleur modèle pour leurs besoins.
  • Observabilité : Les intégrations avec OpenTelemetry et Pydantic Logfire offrent un aperçu des interactions avec les LLM, facilitant le débogage et la surveillance des performances.

Comment Magentic simplifie le développement :

Imaginez avoir besoin d'une fonction qui, étant donné une ville, décrit la météo actuelle. Avec Magentic, vous pouvez définir une fonction get_current_weather et utiliser @prompt_chain pour instruire un LLM d'appeler cette fonction, puis de synthétiser une réponse lisible par un humain. Cette capacité de chaînage est fondamentale pour construire des agents IA sophistiqués capables d'un raisonnement en plusieurs étapes.

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"""
    # Pretend to query an API
    return {"temperature": "72"}
Original Article: Voir l’original

Partager cet article