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=3) 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: {answer}\n" except Exception as e: return f"Error: {e}"