主题
概念
提示词(Prompting)是最根本的输入,正是它赋予了 LLM 表达能力。LlamaIndex 在构建索引、执行插入、查询遍历以及合成最终回答时都会用到提示词。
构建智能体工作流时,提示词的编写与管理是开发过程中的关键环节。LlamaIndex 提供了灵活而强大的方式来管理提示词,并以多种方式加以使用。
RichPromptTemplate—— 较新的写法,用于构建带变量与逻辑的 jinja 风格提示词PromptTemplate—— 较早的简单模板写法,用单个 f-string 构建提示词ChatPromptTemplate—— 较早的简单模板写法,用消息与 f-string 构建对话提示词
LlamaIndex 内置了一套默认提示词模板,开箱即可良好工作。
此外,还有一些专为 gpt-3.5-turbo 这类对话模型编写和使用的提示词,见这里。
用户也可以提供自己的提示词模板,进一步定制框架行为。最好的定制方式是把上面链接里的默认提示词复制出来,在其基础上做修改。
使用方式
使用提示词很简单。下面示例演示如何用 RichPromptTemplate 构建一个 jinja 风格的提示词模板:
from llama_index.core.prompts import RichPromptTemplate
template_str = """We have provided context information below.
---------------------
{{ context_str }}
---------------------
Given this information, please answer the question: {{ query_str }}
"""
qa_template = RichPromptTemplate(template_str)
# you can create text prompt (for completion API)
prompt = qa_template.format(context_str=..., query_str=...)
# or easily convert to message prompts (for chat API)
messages = qa_template.format_messages(context_str=..., query_str=...)想充分发挥 RichPromptTemplate 的能力、并了解其他提示词模板的细节,见我们的使用方式指南。
示例指南
提示词工程指南
简单定制示例