Spaces:
Sleeping
Sleeping
File size: 1,086 Bytes
94b1e32 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
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}" |