RyanDA commited on
Commit
e61912a
·
1 Parent(s): fa6af03

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -6
app.py CHANGED
@@ -9,7 +9,17 @@ openai.api_key = os.environ["OPENAI_API_KEY"]
9
  embedding = SentenceTransformerEmbeddings(model_name="all-MiniLM-L6-v2")
10
  vectordb = Chroma(persist_directory='db-DA',
11
  embedding_function=embedding)
12
- retriever = vectordb.as_retriever(search_kwargs={"k": 2})
 
 
 
 
 
 
 
 
 
 
13
 
14
  def answer(message):
15
  ctx = retriever.get_relevant_documents(message)
@@ -29,14 +39,12 @@ def answer(message):
29
  ],
30
  temperature=0
31
  )
 
32
 
33
- # long one-liner to format sources into proper url
34
- format_sources = lamda doc: "https://dupperanalytics.com/" + doc.metadata['source'][13:-4] if doc.metadata['source'] != "home.txt" else "https://dupperanalytics.com/"
35
-
36
- sources = "\n\nSources:\n" + "\n".join([format_sources(doc) for doc in ctx])
37
 
38
  ans = response['choices'][0]['message']['content'] + sources
39
  return ans
40
 
41
- iface = gr.Interface(fn=answer, inputs="text", outputs="text")
42
  iface.launch()
 
9
  embedding = SentenceTransformerEmbeddings(model_name="all-MiniLM-L6-v2")
10
  vectordb = Chroma(persist_directory='db-DA',
11
  embedding_function=embedding)
12
+ retriever = vectordb.as_retriever(search_kwargs={"k": 3})
13
+
14
+ def remove_duplicates(input_list):
15
+ return list(dict.fromkeys(input_list))
16
+
17
+ def format_sources(doc):
18
+ string = doc.metadata['source'][13:-4]
19
+ if string == "home":
20
+ return "https://dupperanalytics.com/"
21
+ else:
22
+ return "https://dupperanalytics.com/" + string
23
 
24
  def answer(message):
25
  ctx = retriever.get_relevant_documents(message)
 
39
  ],
40
  temperature=0
41
  )
42
+ sources_list = remove_duplicates([format_sources(doc) for doc in ctx])
43
 
44
+ sources = "\n\nSources:\n" + "\n".join(sources_list)
 
 
 
45
 
46
  ans = response['choices'][0]['message']['content'] + sources
47
  return ans
48
 
49
+ iface = gr.Interface(fn=answer, inputs="text", outputs="text", examples=["Why might I choose DupperAnalytics over other providers?", "What makes the CEO unique?", "What cloud servers do Dupper Analytics use?"])
50
  iface.launch()