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 conversation containing all the messages exchanged between these people. 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 this online conversation between these people. You are given the following extracted parts of a long document and a question. Provide a conversational answer that solely comes from this online conversation between these people and your interpretation. Your responses should be informative, interesting, and engaging. You should respond thoroughly. Question: {question} ========= {context} ========= Answer:""" 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