Query-Pilot / modules /qa_chatbot.py
raghuv-aditya's picture
Transfer of files
94b1e32 verified
from langchain.chains import RetrievalQA
from langchain_openai import OpenAI
from langchain_chroma import Chroma
def create_chatbot(vector_store):
"""
Creates a chatbot for querying the Chroma vector store.
Args:
vector_store (Chroma): The vector store to use.
Returns:
RetrievalQA: The QA chatbot object.
"""
llm = OpenAI(temperature=0.5)
retriever = vector_store.as_retriever(search_type="mmr", k=5)
qa = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=retriever,
return_source_documents=True
)
return qa
def ask_question(qa, query):
"""
Asks a question to the chatbot and returns the response.
Args:
qa (RetrievalQA): The QA chatbot object.
query (str): The question to ask.
Returns:
str: The answer from the chatbot.
"""
try:
response = qa.invoke({"query": query})
answer = response.get('result', 'No answer found.')
return f"{answer}\n"
except Exception as e:
return f"Error: {e}"