Course-Finder-AI / chatbot.py
raghuv-aditya's picture
Update chatbot.py
68406a8 verified
"""
chatbot.py
Module to create a chatbot using RetrievalQA and the ChromaDB embeddings.
"""
from langchain_openai import OpenAI
from langchain.chains import RetrievalQA
def create_chatbot(vector_store):
"""Creates a chatbot that retrieves and answers questions.
Args:
vector_store (Chroma): Vector store with document embeddings.
Returns:
RetrievalQA: A retrieval-based QA system.
"""
llm = OpenAI(temperature=0.5)
retriever = vector_store.as_retriever(search_type="mmr", k=3)
qa = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=retriever,
return_source_documents=True
)
return qa
def ask_question(qa, query):
"""Queries the chatbot and returns the answer.
Args:
qa (RetrievalQA): The QA system.
query (str): The user query.
Returns:
str: The answer with source information if available.
"""
try:
response = qa.invoke({"query": query})
answer = response.get('result', 'No answer found.')
sources = response.get('source_documents', [])
return f"Answer: {answer}\n"
except Exception as e:
print(f"Error processing query '{query}': {e}")
return f"Error: {e}"