chatGpt为代表的AI大模型使用提示器调教LLM神经网络得到模型
一、提示词工程原理
提示词工程的作用如上图
二、使用jinja2与f-string来实现提示词模板格式化
f-string
##f-string 是 python内置的一种模板引擎
from langchain.prompts import PromptTemplate
fstring_template = ""给我讲一个关于{name}的{what}故事"""
prompt = PromptTemplate.from_template(fstring_template)
prompt.format(name="翠花", what="悲伤")
安装 jinja2
pip install jinja2
## Jinja2是一个灵活、高效的python模板引擎、可以方便地生成各种标记格式的文档
from langchain.prompts import PromptTemplate
jinja2_template = "给我讲一个关于{{name}}的{{waht}}故事"
prompt = PromptTemplate.from_template(jinja2_template, template_format="jinja2")
prompt.format(name="狗剩", what="开心")
三、三层提示词设计
# Final Prompt 由一系列变量构成
full_template = """
{Chatacter}
{behavior}
{prohibit}
"""
full_prompt = PromptTemplate.from_template(full_template )
A、第一层 基本性格设计
Character_template = """你是{person},你有着{xingge}."""
Character_prompt = PromptTemplate.from_template(Character_template)
B、第二次 行为设计
behavior_template = """你应该遵守以下行为:
{behavior_list}
"""
behavior_prompt = PromptTemplate.from_template(behavior_template)
C、第三层不允许的行为
prohibit_template = """
你不允许有以下行为:{prohibit_list}
"""
prohibit_prompt = PromptTemplate.from_template(prohibit_template)
将三层提示词组合起来
input_prompts = [
("Character", Character_prompt),
("behavior", behavior_prompt),
("prohibit", prohibit_prompt),
]
pipeline_prompt = PipelinePromptTemplate(final_prompt=full_prompt, pipeline_prompts=input=input_prompts)