Spaces:
Sleeping
Sleeping
from langchain.prompts.prompt import PromptTemplate | |
from langchain.llms import OpenAI | |
from langchain.chains import ChatVectorDBChain | |
_template = """Given the following conversation and a follow up question, rephrase the follow up question to be a standalone question. | |
You can assume the question about the war in Ukraine. | |
Chat History: | |
{chat_history} | |
Follow Up Input: {question} | |
Standalone question:""" | |
CONDENSE_QUESTION_PROMPT = PromptTemplate.from_template(_template) | |
template = """You are an AI assistant for answering questions about the war in Ukraine. | |
You are given the following extracted parts of a long document and a question. Provide a conversational answer. | |
If you don't know the answer, just say "Hmm, I'm not sure." Don't try to make up an answer. | |
If the question is not about the war in Ukraine, politely inform them that you are tuned to only answer questions about the war in Ukraine. | |
Question: {question} | |
========= | |
{context} | |
========= | |
Answer in Markdown:""" | |
QA_PROMPT = PromptTemplate(template=template, input_variables=["question", "context"]) | |
def get_chain(vectorstore): | |
llm = OpenAI(temperature=0) | |
qa_chain = ChatVectorDBChain.from_llm( | |
llm, | |
vectorstore, | |
qa_prompt=QA_PROMPT, | |
condense_question_prompt=CONDENSE_QUESTION_PROMPT, | |
) | |
return qa_chain | |