AI新工具
banner

Prompt Poet


介绍:

Prompt Poet简化了提示设计,使用低代码方法结合YAML和Jinja2,便于技术与非技术用户创建动态提示。









Prompt Poet

Prompt Poet 简介

Prompt Poet 是一个旨在简化和优化提示设计的工具,适用于开发人员和非技术用户。它采用低代码方法,通过 YAML 和 Jinja2 结合,允许用户灵活动态地创建提示,从而提高与人工智能模型互动的效率和质量。Prompt Poet 通过减少对字符串操作的工程时间,使用户能够更多地专注于为其用户打造最佳提示。

安装
pip install prompt-poet
基本用法

以下是一个基本用法示例,展示了如何使用 Prompt Poet 创建一个提示并与 ChatOpenAI 模型进行交互:

import os
import getpass
from prompt_poet import Prompt
from langchain import ChatOpenAI

# 如果需要设置 OPENAI_API_KEY,取消下面的注释。
# os.environ["OPENAI_API_KEY"] = getpass.getpass()

raw_template = """
- name: system instructions
  role: system
  content: |
    你的名字是 {{ character_name }},你应该对人类有帮助且无害。

- name: user query
  role: user
  content: |
   {{ username }}: {{ user_query }}

- name: response
  role: user
  content: |
    {{ character_name }}:
"""

template_data = {
  "character_name": "助理角色",
  "username": "杰夫",
  "user_query": "你能帮我做作业吗?"
}

prompt = Prompt(
    raw_template=raw_template,
    template_data=template_data
)

model = ChatOpenAI(model="gpt-4o-mini")
response = model.invoke(prompt.messages)
提示模板

Prompt Poet 的提示模板使用 YAML 结合 Jinja2。模板处理分为两个主要阶段:

  1. 渲染:Jinja2 处理输入数据,执行控制流逻辑,验证数据并适当绑定变量,且评估模板中的函数。
  2. 加载:渲染后生成结构化的 YAML 文件,YAML 结构包含重复的块,每个块封装为 Python 数据结构。这些块具有以下属性:
    • 名称:易读的标识符。
    • 内容:提示的一部分。
    • 角色(可选):区分不同用户或系统组件。
    • 截断优先级(可选):决定必要时的截断顺序,优先级相同的按出现顺序截断。
使用场景

Prompt Poet 可以应用于各种场景,包括:

  1. 基本问答机器人:通过定义系统指令、用户查询及回复提示,创建简单的问答机器人。
  2. 历史消息截断:当上下文长度受限时,根据优先级截断历史消息,以确保新信息能被处理。
  3. 用户模式调整:根据用户使用的当前模式(如音频或文本),调整系统指令。
  4. 特定查询目标:在处理不同类型查询(如家庭作业帮助)时,动态插入上下文特定示例。

示例场景代码:

{% if modality == "audio" %}
- name: special audio instruction
  role: system
  content: |
    {{ username }} 目前使用音频。保持你的答案简洁。    
{% endif %}

{% 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 %}

综上所述,Prompt Poet 通过强大的模板系统和易用性,使不同专业背景的用户能够高效地创建和优化与 AI 模型交互的提示。

可关注我们的公众号:每天AI新工具

广告:私人定制视频文本提取,字幕翻译制作等,欢迎联系QQ:1752338621