stocker et servir les invites du modèle de langue
prompt-serve vous aide à gérer toutes vos invites de modèle de grande langue (LLM) et les paramètres / métadonnées associés de manière simple et contrôlée par version.
Ce projet fournit un schéma YAML pour stocker des invites de manière structurée et un petit serveur API qui gère les interactions avec un référentiel GIT, afin que vous puissiez traiter les invites plus comme le code réutilisable.
Les invites suivent le schéma fourni dans Schema.yml.
Consultez le référentiel des invites pour le voir en action.
title : prompt-title-or-name
uuid : prompt-uuid
description : prompt-description
category : prompt-category
provider : model-provider
model : model-name
model_settings :
temperature : 0.8
top_k : 40
top_p : 0.9
prompt : prompt-text
input_variables :
- var1
- var2
references :
- https://example.com
- https://example.com
associations :
- prompt_uuid
- prompt_uuid
packs :
- pack-uuid
- pack-uuid
tags :
- tag
- tag Vous pouvez utiliser l'utilitaire Validate.py pour vérifier que les invites rencontrent le schéma et ont des UUID uniques.
En spécifiant l'argument --create , un nouvel UUID sera fourni si une invite donnée n'est pas unique pour votre ensemble numérisé. Vous pouvez également rassembler des statistiques sur les types d'invites dans votre collection en passant --gen-stats (voir la section suivante par exemple les statistiques de sortie).
usage: validate.py [-h] [-s SCHEMA] [-f FILE] [-d DIRECTORY] [-c] [-g]
Validate YAML files against the prompt-serve schema.
options:
-h, --help show this help message and exit
-s SCHEMA, --schema SCHEMA
schema file to validate against
-f FILE, --file FILE single file to validate
-d DIRECTORY, --directory DIRECTORY
directory to validate
-c, --create create new uuids if validation fails
-g, --gen-stats generate statistics from directory
Exemple de sortie

L'outil de contrôle du contenu peut être utilisé pour scanner un répertoire du référentiel invite et afficher des statistiques sur toutes les invites de la collection, y compris des informations sur la catégorie, le fournisseur, le modèle et les balises.
Les statistiques peuvent également être collectées éventuellement lors de l'exécution de validate.py.
Exemple de sortie

Les fichiers de serve rapide peuvent être facilement convertis en modèles d'invite de Langchain.
L'outil de contrôle du contenu peut convertir les fichiers de serve invite individuels au format Langchain.
Exemple de sortie

Python
import yaml
from langhain import PromptTemplate
def convert ( path_to_ps_prompt ):
with open ( path_to_ps_prompt , 'r' ) as fp :
data = yaml . safe_load ( fp )
prompt = data [ 'prompt' ]
if 'input_vars' in data . keys ():
input_vars = data [ 'input_vars' ]
langchain_template = PromptTemplate ( template = prompt , input_variables = input_vars )
else :
langchain_template = PromptTemplate ( template = prompt , input_variables = [])
return langchain_template L'outil de contrôle du contenu peut être utilisé pour créer une invite de manière interactive avec le schéma de service rapide.
? Ce n'est qu'une preuve de concept et a quelques bugs connus. Vous seriez mieux servi les créer par vous-même pour le moment.
$ python create.py -n summary.yml
creating prompt file summary.yml ...
title (str): Summarize blog posts
description (str): Summarize a blog post with key takeaways
category (str): summarization
provider (str) : openai
model (str) : gpt-3.5-turbo
temperature (float) : 0.8
top_k (int) :
top_p (float) : 0.9
max_tokens (int) : 512
stream (bool) : false
presence_penalty (float) :
frequency_penalty (float) :
prompt (str): Summarize the blog post provided below with 3-5 key takeaways as bullet points: {blog_content}
references (seq) : https://github.com/deadbits/prompt-serve
associations (seq) :
packs (seq) :
tags (seq) :
successfully wrote file summary.yml