AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Prompt Poet:一款创新的低代码工具,专为简化提示设计而生。
发布日期:2024-08-22 22:36:35 浏览次数: 1695 来源:Halo咯咯


01

概述

Character.AI 在提示工程领域迈出了重要一步,认识到其在运营中的关键作用。该公司构建提示的方法非常全面,考虑了诸多因素,如对话模式、持续实验、角色档案、聊天类型、用户属性、固定记忆、用户角色和整个对话历史等。这种细致入微的细节处理,是因为他们每天生成的提示数量高达数十亿,并且需要最大化利用不断扩大的大型语言模型(LLM)上下文窗口的潜力。面对多样化的应用场景,Character.AI 提倡从传统的“提示工程”向“提示设计”转变。这一演变旨在超越平凡的字符串操作,朝着创造精确且引人入胜的提示迈进。为了实现这一目标,他们开发了一个创新的库,名为 Prompt Poet。
Character.AI 对提示设计的创新方法体现在他们新开发的 Prompt Poet 工具上。尽管 Python f-strings 已经成为提示工程师的行业标准,从简单的查询插入到复杂的字符串操作,这种方法通常需要编码技能,限制了非技术用户的可及性。Prompt Poet 通过为开发者和非技术个体提供更直观高效的解决方案来应对这一挑战,以便设计和管理生产提示。这个工具大幅减少了在工程字符串操作中花费的时间,让用户能够专注于打造最优的提示。Prompt Poet 从 UI 设计原则中汲取灵感,将提示概念化为运行时状态的函数,包括提示模板、数据、令牌限制以及其他相关因素。这种方法标志着朝着使提示设计对更广泛的用户群体更加可访问和高效迈出了重要一步。

02

安装使用

安装

pip install prompt-poet

基础使用 

import os
import getpass

from prompt_poet import Prompt
from langchain import ChatOpenAI

# Uncomment if you need to set OPENAI_API_KEY.
# os.environ["OPENAI_API_KEY"] = getpass.getpass()

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)

03

Prompt 模板

Prompt Poet 模板结合了 YAML 和 Jinja2 的特点。模板处理主要分为两个阶段:
  • 渲染:首先,Jinja2 对输入数据进行处理。在这个阶段,执行控制流程逻辑,对数据进行验证并适当绑定到变量,模板内的函数也得到恰当的评估。 
  • 加载:渲染之后,输出为结构化的 YAML 文件。这个 YAML 结构由重复的区块或部分构成,每个部分都被封装进 Python 数据结构。这些部分具有多个属性: 
      • 名称:清晰易读的标识符,用于标识该部分。
      • 内容:构成提示部分的实际字符串有效载荷。 
      • 角色(可选):指定参与者的角色,有助于区分不同的用户或系统组件。
      • 截断优先级(可选):在必要时确定截断的顺序,具有相同优先级的部分将按照它们出现的顺序进行截断。
模板设计的创新之举
Prompt Poet 以其创新的模板设计,将 YAML 的结构化能力和 Jinja2 的灵活处理相结合,为提示的创建和迭代提供了强大支持。在渲染阶段,Jinja2 精准地处理输入数据,执行逻辑控制,确保数据的准确性和模板函数的正确评估。加载阶段则将这些数据转化为结构化的 YAML 文件,进而封装为 Python 数据结构,为程序的进一步处理提供了便利。
模板属性的细致打磨
    • 名称:为每个提示部分赋予一个清晰易读的名称,便于识别和管理。
    • 内容:提示的核心,即构成提示的实际字符串。
    • 角色(可选):为不同参与者指定角色,以区分用户或系统组件。
    • 截断优先级(可选):在空间受限时,决定提示部分的截断顺序,确保信息传递的高效性。
这种结构化的模板设计,不仅提高了提示管理的效率,也使得提示的创建过程更加直观和用户友好,无论是技术用户还是非技术用户,都能够轻松上手,高效地设计出满足需求的提示。Prompt Poet 的出现,为技术文章交流提供了一种全新的、高效的解决方案。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询