プロンプトエンジニアリングの分野では、プロンプトの複数のバージョンの管理が圧倒的になる可能性があります。個人やチームは、さまざまな種類のプロンプトの追跡と整理において課題に直面していることが多く、最高のプロンプトを逃す可能性につながります。
迅速なエンジニアと開発者にとって生活を容易にしようとする実験的なオープンソースの試み。プロンプトを管理する組織化されていない方法により、作業が困難になるため、エンジニアと開発者がプロンプトを簡単に追跡、共有、処理するプロンプトを支援するための構造化されたアプローチをもたらします。プロンプトオーガナイザー。
タスクベースの組織:ユーザーは、さまざまなタスク(要約、トピック発見、意図識別など)の下でプロンプトを整理し、各プロンプトの明確で分類されたビューを可能にします。
プロンプトバージョン管理:各タスク内で、ユーザーはプロンプトの複数のバージョンを作成および管理できます。
違いの視覚化:ユーザーは、統合された「show diff」機能を活用して、さまざまなプロンプトバージョン間の違い、追加、または削除を簡単に視覚化および比較できます。
プロンプトパラメーターの構成:ユーザーは、プロンプトの各バージョンの温度、TOP_P、最大トークン、しきい値などのさまざまなパラメーターを簡単に構成できます。
ステータス追跡:アプリを使用すると、ユーザーは各プロンプトのステータスを設定および追跡でき、プロンプトの評価と最適化を支援します。
コメント機能:各プロンプトバージョンには関連するコメントボックスがあり、ユーザーがプロンプトに関連する重要なメモまたは情報を注釈できます。
システムプロンプト管理:ユーザープロンプトと並んで、アプリはシステムプロンプトの管理を有効にし、それぞれにコメント機能を備えています。
保存とダウンロード:ユーザーは進捗状況を保存し、YAML形式で整理されたプロンプトをダウンロードして、簡単な共有とストレージを促進できます。
開発者パイプラインのYAML統合:このアプリケーションは、YAMLファイルを開発パイプラインに直接組み込むことを可能にすることにより、開発者をシームレスに促進し、開発プロセスをより直感的でエラーが発生しないようにします。
シングルユーザーアプリ:このアプリケーションは現在、個々の使用のために設計されており、複数のユーザーをサポートするための将来のアップグレードを計画しています。
「プロンプトオーガナイザー」フォルダーに移動して実行します。
python app.py
Python 3.8を使用しました
プロンプトオーガナイザーからYAMLファイルをダウンロードし、この方法を使用してロードします。
import yaml
def read_template():
directory_path = "data.yaml"
yaml_content = ''
with open(directory_path, "r") as f:
try:
yaml_content = yaml.safe_load(f)
except yaml.YAMLError as e:
print(f"Error parsing {directory_path}: {e}")
return yaml_content
def get_prompt(task, version):
yaml_content = read_template()
version = "version"+"_"+str(version)
return yaml_content[task]['prompts']['version_1']["prompt"]
prompt = get_prompt("Intent",1)
def get_parameters(task, version):
yaml_content = read_template()
version = "version"+"_"+str(version)
temp = yaml_content[task]['prompts'][version]['temperature']
top_p = yaml_content[task]['prompts'][version]['top_p']
max_tokens = yaml_content[task]['prompts'][version]['max_tokens']
threshold = yaml_content[task]['prompts'][version]['threshold']
return {"temperature":temp, "top_p":top_p, "max_tokens":max_tokens, "threshold":threshold}
params = get_parameters('Intent',1)
プロンプトの内部では、プレースホルダーを使用して、それらを適切な内容に置き換えます。
プロンプトの例:
私はあなたに一節を与えています、そしてあなたは高い議論の価値を持っている最も重要な意図を見つけなければなりません。すべての意図は文字列形式でなければならず、関連スコアはフロート形式でなければなりません。 n nyour応答は辞書形式の出力を含める必要があります。説明。 n npassage: n n ## placeholder_1 ##
## Placeholder_1 ##を入力パッセージに動的に交換します。
passage_content = "Your passage data"
prompt_passage = get_prompt('Intent',1)
prompt_passage = prompt_passage.replace("##placeholder_1##", passage_content)
Helper.pyファイルを使用して、これらすべてのメソッドを使用します。
openai.api_key = 'your-api-key-here'
passage_content = "Your data"
prompt_passage = get_prompt("Intent", 1) # This will provide you the prompt for the specified version and task.
system_prompt = get_sysprompt("Intent", 1) # This will provide you the system prompt for the specified version and task.
prompt_param = get_parameters("Intent", 1) # This will provide you the all parameters for the specified version and task.
prompt_passage = prompt_passage.replace("##placeholder_1##", passage_content)
response = openai.ChatCompletion.create(
model = "gpt-3.5-turbo",
temperature = prompt_param["temperature"],
top_p = prompt_param["top_p"],
max_tokens = prompt_param["max_tokens"],
messages=[
{"role": "system", "content": prompt_passage},
{"role": "user", "content": system_prompt},
]
)
# Extracting response
answer = response['choices'][0]['message']['content']
print(answer)
概説された手順を順守することにより、構造化された体系的なアプローチを採用できます。プロンプトオーガナイザーは、保証でプロンプトを設計し、細心の注意を払って検査し、実装することができます。これにより、高度で信頼性の高いAIアプリケーションが開発されます。
とりあえず、YAMLファイルを行き来しないように、プロジェクトからこのアプリを実行しています。私のすべての変更はプロジェクトレベルにとどまります。アイデアは、近い将来、この統合をシームレスにすることです。
そしてもっと...
使いやすい。
ハッピープロンプト、:clap:プロンプトオーガナイザー?