raghuv-aditya commited on
Commit
4379680
·
verified ·
1 Parent(s): aace4d6

Create qa_chatbot.py

Browse files
Files changed (1) hide show
  1. qa_chatbot.py +43 -0
qa_chatbot.py ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from langchain import RetrievalQA
2
+ from langchain_openai import OpenAI
3
+ from langchain_chroma import Chroma
4
+
5
+ def create_chatbot(vector_store):
6
+ """
7
+ Creates a chatbot for querying the Chroma vector store.
8
+
9
+ Args:
10
+ vector_store (Chroma): The vector store to use.
11
+
12
+ Returns:
13
+ RetrievalQA: The QA chatbot object.
14
+ """
15
+ llm = OpenAI(temperature=0.5)
16
+ retriever = vector_store.as_retriever(search_type="mmr", k=3)
17
+
18
+ qa = RetrievalQA.from_chain_type(
19
+ llm=llm,
20
+ chain_type="stuff",
21
+ retriever=retriever,
22
+ return_source_documents=True
23
+ )
24
+ return qa
25
+
26
+
27
+ def ask_question(qa, query):
28
+ """
29
+ Asks a question to the chatbot and returns the response.
30
+
31
+ Args:
32
+ qa (RetrievalQA): The QA chatbot object.
33
+ query (str): The question to ask.
34
+
35
+ Returns:
36
+ str: The answer from the chatbot.
37
+ """
38
+ try:
39
+ response = qa.invoke({"query": query})
40
+ answer = response.get('result', 'No answer found.')
41
+ return f"Answer: {answer}\n"
42
+ except Exception as e:
43
+ return f"Error: {e}"