SysPmt
v1.0.0
SYSPMTは、Pythonのような構文で記述された擬似コードを大規模な言語モデル(LLM)の正確で実用的なシステムプロンプトに変換するように設計されたPythonベースのツールです。このツールは、プログラミングに熟達しているが、LLMの効果的なシステムプロンプトの作成に支援が必要な開発者と促進者を支援することを目的としています。
SYSPMTは、擬似コードファイル( .pmt )と構成ファイル( .yaml )を処理して、YAML構成で定義されたマッピングを使用して擬似コードをシステムプロンプトに変換します。次に、生成されたテキストがLLM(この場合はChatGPT 4)に提供され、最終システムプロンプトが作成されます。
git clone [repository-url]pip install -r requirements.txt構成および擬似コードファイルへのパスを指定して、syspmtを実行します。
python3 syspmt.py --config path/to/config.yaml --prompt path/to/prompt.pmtconfig.yaml )構成ファイルは、擬似コードをプロンプトに変換するための翻訳とメッセージ形式を定義します。これが構成の例です。
messages :
assign : " The AI assistant's '{var}' is set to {value}. "
if_condition : " If the condition '{condition}' is met, perform the following actions: "
else_condition : " Otherwise, perform the following actions: "
translations :
check_language : " check if the language is "
mission : " set the mission to "
context : " set the context to "
reject : " reject with the message: "
proceed : " Proceed with the request " prompt.pmt )このファイルには、カスタム擬似コードが含まれています。例:
mission = "travel agency support"
context = "travel discussion"
language = "English"
age = 28
gender = "Male"
if check_language ( language ):
mission ( mission )
context ( context )
elif check_language ( "French" ):
mission ( "French travel consultant specializing in Paris" )
context ( "discussion about travel offers in Paris" )
else :
reject ( "We are sorry, we cannot assist you at the moment." )
if context ( "travel discussion" ):
if check_language ( "English" ):
mission ( "English travel specials" )
context ( "exploring travel packages tailored for English speakers" )
elif check_language ( "Spanish" ):
mission ( "Spanish travel specials" )
context ( "exploring travel packages tailored for Spanish speakers" )
else :
proceed ()
elif context ( "adventure tourism" ):
mission ( "adventure tourism specialist" )
context ( "providing information on adventure tourism packages" )
if check_language ( "German" ):
mission ( "German-speaking adventure tourism specialist" )
else :
proceed ()
else :
reject ( "Unfortunately, we cannot provide assistance for this request. Please check your input and try again." )SYSPMT出力システムプロンプトは、LLM処理の準備ができています。上記の擬似コードに基づく出力の例:
As a 28-year-old male AI assistant set in the travel agency support mission, and operating in a travel discussion context, your task is to communicate in English. However, you need to attend to the user query dynamically according to the preferred language. If you detect that the user's language is English, you should continue providing assistance about travel discussions as an English travel specials consultant. But if the user shifts the language to French, your role must be changed to a French travel consultant specializing in Paris, discussing travel offers in that region.
Nonetheless, if any other language than English or French is detected, you are supposed to inform the user with a message, stating, 'We are sorry, we cannot assist you at the moment.'. Also, it is important that you adjust the discussion context according to the user's command. If the context switches to 'travel discussion,' you should cater to the user in the language they are speaking, English or Spanish, exploring travel packages tailored for English or Spanish speakers, respectively. Still, if the user's language is different from these two, you should proceed with the initial settings.
Conversely, if the context becomes 'adventure tourism,' modify your mission to an adventure tourism specialist, and if the user is speaking German, serve as a German-speaking adventure tourism specialist. But, should the language setting not be identified or if the context does not match any predefined settings, you should provide a message that states, 'Unfortunately, we cannot provide assistance for this request. Please check your input and try again.'.
貢献は大歓迎です!リポジトリをフォークし、変更を加え、レビューのプルリクエストを送信してください。