dengkane commited on
Commit
1a3c951
1 Parent(s): 3e8419b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -0
app.py CHANGED
@@ -3,6 +3,7 @@ import streamlit as st
3
  # working with sample data.
4
  import numpy as np
5
  import pandas as pd
 
6
 
7
  from sentence_transformers import SentenceTransformer
8
 
@@ -25,6 +26,43 @@ for sentence, embedding in zip(sentences, embeddings):
25
  st.write("")
26
 
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  st.title('My first app')
29
 
30
  st.write("Here's our first attempt at using data to create a table:")
 
3
  # working with sample data.
4
  import numpy as np
5
  import pandas as pd
6
+ import faiss
7
 
8
  from sentence_transformers import SentenceTransformer
9
 
 
26
  st.write("")
27
 
28
 
29
+ def get_embedding(text_content):
30
+ return model.encode(text_content)
31
+
32
+ # Load the text file as knowledge
33
+ knowledge_file = 'knowledge.txt'
34
+ knowledge = []
35
+ with open(knowledge_file, 'r', encoding='utf-8') as file:
36
+ for line in file:
37
+ knowledge.append(line.strip())
38
+
39
+ # Create an index
40
+ index = faiss.IndexFlatIP(300) # Use Inner Product (IP) as similarity measure
41
+
42
+ # Perform embedding for the knowledge texts and add to index
43
+ embeddings = []
44
+ for text in knowledge:
45
+ # Add your code here for text embedding (e.g., using word embeddings, sentence transformers, etc.)
46
+ embedding = get_embedding(text)
47
+ embeddings.append(embedding)
48
+ embeddings = np.array(embeddings)
49
+ index.add(embeddings)
50
+
51
+ # Get user input for a question
52
+ question = st.text_input("Enter your question: ")
53
+
54
+ # Perform embedding for the question
55
+ question_embedding = get_embedding(question)
56
+
57
+ # Search index for the most similar content
58
+ k = 5 # Number of results to retrieve
59
+ D, I = index.search(np.array([question_embedding]), k)
60
+
61
+ # Display the results
62
+ st.write("Top {} similar content:".format(k))
63
+ for i in range(k):
64
+ st.write("{}: {}".format(i+1, knowledge[I[0][i]]))
65
+
66
  st.title('My first app')
67
 
68
  st.write("Here's our first attempt at using data to create a table:")