提交 75eec7e1 作者: imClumsyPanda

更新 Prompt 模版

上级 3fbbf1d7
from langchain.chains import RetrievalQA from langchain.chains import RetrievalQA
from langchain.prompts.chat import ( from langchain.prompts import PromptTemplate
ChatPromptTemplate,
SystemMessagePromptTemplate,
HumanMessagePromptTemplate,
)
from langchain.embeddings.huggingface import HuggingFaceEmbeddings from langchain.embeddings.huggingface import HuggingFaceEmbeddings
from langchain.vectorstores import FAISS from langchain.vectorstores import FAISS
from langchain.document_loaders import UnstructuredFileLoader from langchain.document_loaders import UnstructuredFileLoader
...@@ -80,24 +76,28 @@ def init_knowledge_vector_store(filepath:str): ...@@ -80,24 +76,28 @@ def init_knowledge_vector_store(filepath:str):
def get_knowledge_based_answer(query, vector_store, chat_history=[]): def get_knowledge_based_answer(query, vector_store, chat_history=[]):
global chatglm, embeddings global chatglm, embeddings
system_template = """基于以下内容,简洁和专业的来回答用户的问题。
如果无法从中得到答案,请说 "不知道" 或 "没有足够的相关信息",不要试图编造答案。答案请使用中文。
----------------
{context}
----------------
"""
messages = [
SystemMessagePromptTemplate.from_template(system_template),
HumanMessagePromptTemplate.from_template("{question}"),
]
prompt = ChatPromptTemplate.from_messages(messages)
prompt_template = """基于以下已知信息,简洁和专业的来回答用户的问题。
如果无法从中得到答案,请说 "根据已知信息无法回答该问题" 或 "没有提供足够的相关信息",不允许在答案中添加编造成分,答案请使用中文。
已知内容:
{context}
问题:
{question}"""
prompt = PromptTemplate(
template=prompt_template,
input_variables=["context", "question"]
)
chatglm.history = chat_history chatglm.history = chat_history
knowledge_chain = RetrievalQA.from_llm( knowledge_chain = RetrievalQA.from_llm(
llm=chatglm, llm=chatglm,
retriever=vector_store.as_retriever(search_kwargs={"k": VECTOR_SEARCH_TOP_K}), retriever=vector_store.as_retriever(search_kwargs={"k": VECTOR_SEARCH_TOP_K}),
prompt=prompt prompt=prompt
) )
knowledge_chain.combine_documents_chain.document_prompt = PromptTemplate(
input_variables=["page_content"], template="{page_content}"
)
knowledge_chain.return_source_documents = True knowledge_chain.return_source_documents = True
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论