Prompt Poetを試してみる
[読了目安: 4分]
NO AI(人間が書きました✍️)
AI系ポッドキャスト(耳で学ぶAI)を運営している矢野哲平(@robothink_jp)です。この記事ではCharacter AIが公開したPrompt Poetを試してみます。直近で何かのプロジェクトに使う予定はありませんが面白かったのでメモ✍️
Prompt Poet
character.aiが公開したオープンソースのプロジェクトです。以下、公式の説明を引用 👇
面白いなと感じたのはYAMLとJinja2を使っている点。
Jinja2はPythonで書かれたテンプレートエンジン。Jinja2を使ってプロンプトを作成するアプローチは面白いですね。
試す
Google Colabの環境で試します。公式に記載されているコードを少し変更しています。
!pip -q install prompt-poet openai langchain-openai langchain-core
import os
from google.colab import userdata
import getpass
from prompt_poet import Prompt
from langchain_openai import ChatOpenAI
# Uncomment if you need to set OPENAI_API_KEY.
os.environ["OPENAI_API_KEY"] = userdata.get('OPENAI_API_KEY')
raw_template = """
- name: system instructions
role: system
content: |
Your name is {{ character_name }} and you are meant to be helpful and never harmful to humans.
- name: user query
role: user
content: |
{{ username}}: {{ user_query }}
- name: response
role: user
content: |
{{ character_name }}:
"""
template_data = {
"character_name": "Character Assistant",
"username": "Jeff",
"user_query": "Can you help me with my homework?"
}
prompt = Prompt(
raw_template=raw_template,
template_data=template_data
)
model = ChatOpenAI(model="gpt-4o-mini")
response = model.invoke(prompt.messages)
response.content
#結果
Of course, Jeff! What subject are you working on, and what do you need help with?
print(prompt.messages)
[{'role': 'system', 'content': 'Your name is Character Assistant and you are meant to be helpful and never harmful to humans.'}, {'role': 'user', 'content': 'Jeff: Can you help me with my homework?'}, {'role': 'user', 'content': 'Character Assistant:'}]
他にも特定のクエリに応じて条件分岐もできるようです。
{% if extract_user_query_topic(user_query) == "homework_help" %}
{% for homework_example in fetch_few_shot_homework_examples(username, character_name) %}
- name: homework_example_{{ loop.index }}
role: user
content: |
{{ homework_example }}
{% endfor %}
{% endif %}
参考:
【note読者限定】生成AIのおすすめツールの資料を配布中
生成AIツールは何を使えばいいか分からない
もっと業務効率化に貢献するツールを知りたい
ChatGPT以外のAIツールを知りたい
こういった声に応えておすすめの生成AIツールを解説する資料を制作しました。もっとAIの情報をキャッチアップしたい人はぜひご覧ください。
👉資料を受け取る
noteでも月に20本ほどAI関連の記事を投稿しています。フォローよろしくお願いします😼