Guide complet de PromptL et de la bibliothèque ITS Python (PromptL-Py)

DEV - 31/03
Travailler avec LLMS est puissant, mais la fabrication et la gestion des invites qui les conduisent peuvent rapidement ...

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:

  1. Qu'est-ce que COMPTL? (Et pourquoi vous en avez besoin)
  2. Présentationpromptl-py: Votre pont Python
  3. Idées de base: modèles, paramètres, rendu, chaînes, adaptateurs
  4. Installation: être configuré
  5. Démarrage rapide: rendant votre première invite et exécuter une chaîne simple
  6. La langue de l'intermale: une plongée profonde
    • Anatomie d'un.rapidementDéposer
    • Magie de la matière avant (--- ... ---): Configuration, outils, schémas
    • Le corps rapide: création de vos messages
    • Rôles de message (,, etc.)
    • Au-delà du texte: types de contenu
    • Invites dynamiques: variables et modèles ({{...}})
    • Ajout de logique: flux de contrôle (si,pour)
    • Conversations multiples: étapes () & Attributs (comme,schéma)
    • Garder le propre: commentaires et incluse
  7. En utilisantpromptl-pyComme un pro
    • Commencer:RapidementClasse et options
    • Modèles de validation: invites à balayage (promptl.prompt.scan)
    • Apporter vie aux invites: rendu (promptl.prompt.render)
    • Gestion des conversations: travailler avec des chaînes (promptl.Chains)
    • Parler la langue du LLM: les adaptateurs (Openai,Anthropique,Défaut)
    • Sous le capot: types de données clés
    • Gestion du hoquet: gestion des erreurs (Promptlerror,RPCERROR)
  8. Scénarios du monde réel: exemples complexes
    • Chaînes en plusieurs étapes avec outils, schéma et logique
    • Invites conditionnelles basées sur les entrées
    • Tirer parti des structures de données complexes
    • Gestion des erreurs gracieuses
  9. Référence rapide: résumé de l'API
  10. Pour les contributeurs: configuration de développement
  11. The Fine Prict: Licence

1. Qu'est-ce que COMPTL?

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 à:

  • Définissez à la fois du texte statique et du contenu dynamique à l'aide de variables.
  • Invites de structure à l'aide de rôles standard (système, utilisateur, assistant, outil).
  • Incorporer la logique avec les conditions (si) et les boucles (pour).
  • Spécifiez les configurations LLM (comme le nom du modèle, la température) à côté de l'invite.
  • Définir les outils (fonctions) que le LLM peut utiliser et spécifier les formats de sortie requis à l'aide du schéma JSON.
  • Orchestrer des conversations complexes et en plusieurs étapes (chaînes).
  • Éventuellement abstraire les détails de mise en forme spécifiques requis par différents fournisseurs de LLM.

Son objectif est de rendre l'ingénierie rapide plus systématique, maintenable et moins sujet aux erreurs.

2. Présentationpromptl-py: Votre pont Python

Lepromptl-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:

  • Analyse et valider: lire.rapidementfichiers ou chaînes et vérifiez-les pour l'exactitude.
  • Render: Injectez vos données (paramètres) dans des modèles d'intervente pour générer les listes de messages structurées que les API LLM attendent.
  • Exécuter des chaînes: exécutez les invites en plusieurs étapes étape par étape, gérant le flux de conversation.
  • Intégrez parfaitement: installez-vous dans vos flux de travail Python existants pour interagir avec LLMS.

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).

3. Idées de base

Avant de sauter dans le code, clarifions quelques concepts clés:

  • Modèle: une chaîne ou.rapidementFichier écrit à l'aide de la syntaxe PromptL.
  • Paramètres: un dictionnaire Python contenant des données que vous souhaitez injecter dans votre modèle (par exemple, noms d'utilisateurs, contexte, listes d'éléments).
  • Rendu: le processus de combinaison d'un modèle et de paramètres pour produire une sortie finale, généralement une liste de messages et de paramètres de configuration LLM.
  • Chaîne: un modèle rapide conçu pour les interactions en plusieurs étapes, en utilisantTags. L'exécution procède étape par étape.
  • Adaptateur: un paramètre qui indiquepromptl-pyComment formater les messages rendus. Cela garantit la compatibilité avec des API de fournisseur LLM spécifiques (comme OpenAI ou anthropique).
  • Messages: objets structurés représentant des parties de la conversation (par exemple, une instruction système, une requête utilisateur, une réponse d'un assistant, la sortie d'un outil).

4. Installation: se mettre en place

Obtenirpromptl-pyest simple en utilisant PIP. Assurez-vous d'avoir Python 3.9 ou plus.

pip install promptl-py
Entrez le mode de sortie en mode plein écran

Très facile! Maintenant, écrivons du code.

5. Démarrage rapide: Rendre votre première invite et exécuter une chaîne simple

Rendu de base

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?
Entrez le mode de sortie en mode plein écran

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!

Exécution de la chaîne de base

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]
Loading...