Comme les modèles de langue (LMS) sont utilisés pour des tâches de plus en plus complexes, l'élaboration de leurs invites devient difficile et lourde, en particulier lorsque les tâches impliquent des directives complexes ou des systèmes multi-LM.
Promptcoder ( procoder ) est un package Python conçu pour rationaliser la création d'invites LM. Ce package convivial permet de coder les invites LM modularisées tout comme la programmation avec Python, permettant facilement la création de systèmes d'invites complexes et complexes.
Les caractéristiques clés de ce package comprennent:
En utilisant le package procoder , nous avons développé et maintenu un système d'invites qui a au total plus de 20 000 jetons dans le projet TooleMu, qui est un cadre d'émulation d'outils basé sur LM pour évaluer les risques des agents LM.
Notez que le package en est encore à ses débuts et sous le développement actif.
git clone https://github.com/dhh1995/PromptCoder
cd PromptCoder
pip install -e . L'exemple suivant montre comment utiliser l'invitecoder pour coder une invite. L'exemple utilise les modules implémentés dans le package procoder.prompt . L'invite de sortie est indiquée sous le code.
from procoder . functional import format_prompt , replaced_submodule
from procoder . prompt import *
requirements = NamedBlock (
"Requirements" ,
Collection (
NamedVariable (
refname = "input_req" ,
name = "Input Requirement" ,
content = "The input should be two numbers." ,
),
NamedVariable (
refname = "output_req" ,
name = "Output Requirement" ,
content = Single (
"The output should be the sum of the two numbers."
). set_refname ( "output_req_content" ),
),
),
)
instruction = NamedBlock (
"Instruction" ,
"Write a function in {language} that satisfies the {input_req} and {output_req}." ,
)
prompt = (
Collection ( requirements , instruction )
. set_sep ( " n n " )
. set_indexing_method ( sharp2_indexing )
)
another_prompt = replaced_submodule (
prompt ,
"output_req_content" ,
Single ( "The output should be the multiplication of the two numbers." ),
)
inputs = { "language" : "python" }
print ( "First prompt:" )
print ( format_prompt ( prompt , inputs ))
print ( "" )
print ( "Second prompt:" )
print ( format_prompt ( another_prompt , inputs ))La sortie de la première invite est:
## Requirements
1 . Input Requirement: The input should be two numbers.
2 . Output Requirement: The output should be the sum of the two numbers.
## Instruction
Write a function in python that satisfies the [ Input Requirement ] and [ Output Requirement ] .La sortie de la deuxième invite est:
## Requirements
1 . Input Requirement: The input should be two numbers.
2 . Output Requirement: The output should be the multiplication of the two numbers.
## Instruction
Write a function in python that satisfies the [ Input Requirement ] and [ Output Requirement ] . Pour plus d'exemples, veuillez vous référer aux invites TooleMu qui ont été développées à l'aide du package procoder .