定义提示 提示是LLMs的基本输入,提供其表达能力。LlamaIndex使用提示来构建索引,插入,在查询期间执行遍历以及合成最终答案。 LlamaIndex使用一组默认提示模板,可以直接使用。 用户也可以提供自己的提示模板,以进一步定制框架的行为。
定义自定义提示
定义自定义提示只需要创建一个格式字符串即可:
from llama_index import Prompt
template = (
"We have provided context information below. \n"
"---------------------\n"
"{context_str}"
"\n---------------------\n"
"Given this information, please answer the question: {query_str}\n"
)
qa_template = Prompt(template)
注意:您可能会看到对遗留提示子类(如
QuestionAnswerPrompt
,RefinePrompt
)的引用。这些已经被弃用(现在是Prompt
的类型别名)。现在,您可以直接指定Prompt(template)
来构造自定义提示。但是,您仍然必须确保模板字符串包含预期的参数(例如{context_str}
和{query_str}
),以替换默认的问答提示。
将自定义提示传递到管道中
由于LlamaIndex是一个多步管道,因此确定要修改的操作并在正确的位置传入自定义提示是很重要的。 从高层次上讲,提示用于1)索引构建和2)查询引擎执行。
修改索引构建中使用的提示
不同的索引在构建过程中使用不同类型的提示(有些根本不使用提示)。
例如,GPTTreeIndex
使用SummaryPrompt
来分层摘要节点,GPTKeywordTableIndex
使用KeywordExtractPrompt
来提取关键字。
有两种等效的方法可以覆盖提示:
通过默认节点构造器
index = GPTTreeIndex(nodes, summary_template=<custom_prompt>)
通过文档构造器。
index = GPTTreeIndex.from_documents(docs, summary_template=<custom_prompt>)
有关哪个索引使用哪些提示的更多详细信息,请访问索引类引用。