前文的代码在与AI进行对话时,只使用了内置的模板,将检索出的上下文与提问拼接后交由大模型处理。如果想要自定义提示词以实现更多的功能,则可以使用查询引擎提供的提示词模板功能来进行处理。核心代码
query_engine = index.as_query_engine(similarity_top_k=2,text_qa_template=qa_prompt)from dotenv import load_dotenvfrom llama_index.core import Settings,StorageContext,load_index_from_storage,Promptimport osfrom llama_index.embeddings.openai import OpenAIEmbeddingfrom llama_index.llms.openai_like import OpenAILikeload_dotenv()QWEN_AGENT_SERVER = os.getenv('QWEN_AGENT_SERVER')QWEN_AGENT_API_KEY =os.getenv('QWEN_API_KEY')Settings.embed_model = OpenAIEmbedding(model_name="qwen3-embedding:4b",api_base=QWEN_AGENT_SERVER,api_key=QWEN_AGENT_API_KEY,)# 所调用的模型Settings.llm = OpenAILike(model="qwen3.6",api_base=QWEN_AGENT_SERVER,api_key=QWEN_AGENT_API_KEY,is_chat_model=False,enable_thinking=False,)storage_context = StorageContext.from_defaults(persist_dir="./dbstore/uncle_tuu")index = load_index_from_storage(storage_context,index_id="uncle_tuu")prompt_tmpl = ("以下是为模型提供的上下文信息:\n""-----------------------------------\n""{context_str}\n""-----------------------------------\n""现在,请根据以上信息,回答用户的问题:\n""-----------------------------------\n""{query_str}\n""-----------------------------------\n""如果你不知道,可以用你已有的知识尽量回复。如果仍然无法回答,""则请回复用户:对不起,你所提到的问题我暂时无法告知答案,建议咨询我们的人工客服\n")qa_prompt = Prompt(prompt_tmpl)query_engine = index.as_query_engine(similarity_top_k=2,text_qa_template=qa_prompt)response = query_engine.query("乔峰是谁?")print(response)
夜雨聆风