Travailler avec LLMS est puissant, mais la fabrication et la gestion des invites qui les conduisent peuvent rapidement devenir complexes. Au fur et à mesure que vous dépassez les questions simples, vous commencez à jongler avec les messages du système, les entrées des utilisateurs, les dialogues d'exemples (invitation à quelques coups), les définitions d'outils, les structures de sortie souhaitées et même les conversations en plusieurs étapes. Comment gardez-vous tous ces organisations, maintenables et réutilisables, en particulier entre différents fournisseurs de LLM?
Entrez PromptL, un langage de modèles construit spécifiquement pour le monde de l'invitation LLM. Et pour apporter sa puissance dans vos applications Python, nous avons lepromptl-pybibliothèque.
Ce guide vous guidera à travers tout ce que vous devez savoir, des bases de la syntaxe de promptl vers un chaînage avancé et une gestion des erreurs à l'aide de la bibliothèque Python. Nous couvrirons tous les détails de la documentation originale, en vous assurant d'avoir une image complète.
Plongeons-nous! Voici ce que nous couvrirons:
promptl-py: Votre pont Python.rapidementDéposer--- ... ---): Configuration, outils, schémas,, etc.){{...}})si,pour)) & Attributs (comme,schéma)promptl-pyComme un proRapidementClasse et optionspromptl.prompt.scan)promptl.prompt.render)promptl.Chains)Openai,Anthropique,Défaut)Promptlerror,RPCERROR)Promptl n'est pas seulement un autre moteur de modèles; C'est un langage spécifique au domaine méticuleusement conçu pour définir et gérer les invites LLM. Pensez-y comme le jinja ou le guidon, mais suralimenté pour les interactions IA. Il fournit une syntaxe claire et lisible par l'homme à:
si) et les boucles (pour).Son objectif est de rendre l'ingénierie rapide plus systématique, maintenable et moins sujet aux erreurs.
promptl-py: Votre pont PythonLepromptl-pyLa bibliothèque est le moyen officiel d'utiliser PromptL dans vos applications Python. Il agit comme l'interface du moteur de l'invite de base, vous permettant de:
.rapidementfichiers ou chaînes et vérifiez-les pour l'exactitude.Fait intéressant,promptl-pyutilise un module WebAssembly (WASM) (invite.wasm) sous le capot. Cela contient l'analyseur de base et l'exécution. La bibliothèque Python communique avec ce module WASM via des appels de procédure distante (RPC). Cette architecture garantit que la logique de promptL de base reste cohérente, quelle que soit la langue hôte (Python, dans ce cas).
Avant de sauter dans le code, clarifions quelques concepts clés:
.rapidementFichier écrit à l'aide de la syntaxe PromptL.Tags. L'exécution procède étape par étape.promptl-pyComment formater les messages rendus. Cela garantit la compatibilité avec des API de fournisseur LLM spécifiques (comme OpenAI ou anthropique).Obtenirpromptl-pyest simple en utilisant PIP. Assurez-vous d'avoir Python 3.9 ou plus.
pip install promptl-pyTrès facile! Maintenant, écrivons du code.
Prenons un modèle d'invite simple et rendons-le avec certaines données.
# Exemples / render_prompt.py à partir de Pprint Import Pprint à partir de l'invite_ai import promptl, adaptateur # Adaptateur d'importation également # 1. Initialisez le moteur d'invite promptL = promptl () # Utilise les paramètres par défaut # 2. Définissez votre modèle d'invite en tant que modèle de chaîne Modèle LLM --- Ce texte avant la première balise devient souvent un message système ou une partie du premier message.# Démarrage d'un message utilisateur en tenant compte de ce contexte: {{context}} # Inject 'Context' Variable J'ai la question de la question suivante: {{question}} # Inject 'Question' "" "# 3. Préparez vos données (paramètres) en tant que paramètres de dictionnaire Python = {" Context ":" Promptl est un langage de modèles spécifiquement conçu pour la demande de LLM. "," Question ":" Qu'est-ce que l'internonneuse? ",} # 4. Render l'invite! # Par défaut, il utilise l'adapter Openai, le format. parameters=parameters, # adapter=Adapter.OpenAI # Explicitly stating the default ) # 5. Check the output print("--- Rendered Prompt Output ---") pprint(result.model_dump()) # Expected Output (structure): # { # 'messages': [ # List of messages ready for an LLM API # {'role': 'system', 'content': 'Answer succinctly yet complet. '}, # {' role ':' utilisateur ', #' contenu ':' prendre en compte ce contexte: promptl est un langage de modèles spécialement conçu pour la demande de LLM. \ n '#' J'ai la question suivante: qu'est-ce que l'invite? '} #], #' config ': {# Configuration extrait de Front Match?Voir comment les variables{{contexte}}et{{question}}ont été remplacés et la sortie est structurée en messages avec des rôles et du contenu, plus la configuration? C'est la magie du rendu!
Maintenant, voyons comment PromptL gère une conversation simple et nord en utilisantTags.
# Exemples / run_chain.py à partir de Pprint Import Pprint à partir de promptl_ai import promptl = promptl () # définir un modèle en plusieurs étapes chaîne_prompt = "" "# Définit le premier tour de la conversationVous êtes un assistant serviable. Dites bonjour. # Définit le deuxième virage, exécuté après la première réponseMaintenant, dites au revoir. "" "# 1. Créez une instance de chaîne à partir de l'imprimé chain de modèle = promptl.chains.create (chain_prompt) (f" chaîne créée. Est-ce encore complet? {Chain.compteted} ") # output: false print (" \ n --- exécutant l'étape 1 --- ") # 2. Exécuter la première étape. Aucune réponse d'entrée nécessaire ici.. Step1_Result = chain.step () pp...
[Courte citation de 8% de l'article original]