Reggie commited on
Commit
c476445
1 Parent(s): bd9071b
Files changed (2) hide show
  1. app.py +28 -1
  2. templates/index.html +45 -0
app.py CHANGED
@@ -26,6 +26,9 @@ wmodel = WhisperModel("guillaumekln/faster-whisper-small", device="cpu", compute
26
  qdrant_api_key = os.environ.get("qdrant_api_key")
27
  qdrant_url = os.environ.get("qdrant_url")
28
 
 
 
 
29
  client = QdrantClient(url=qdrant_url, port=443, api_key=qdrant_api_key, prefer_grpc=False)
30
 
31
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
@@ -47,6 +50,11 @@ def e5embed(query):
47
  embeddings = embeddings.cpu().detach().numpy().flatten().tolist()
48
  return embeddings
49
 
 
 
 
 
 
50
  @app.route("/")
51
  def index():
52
  return render_template("index.html")
@@ -89,7 +97,7 @@ def search():
89
  for r in results:
90
  if 'context' in r.payload and r.payload['context'] != '':
91
  if 'date' not in r.payload: r.payload['date'] = '20200101'
92
- new_results.append({"text": r.payload['title'] + '\nContext: ' + r.payload['context'], "url": r.payload['url'], "date": r.payload['date'], "id": r.id})
93
  else:
94
  if 'date' not in r.payload: r.payload['date'] = '20200101'
95
  new_results.append({"text": r.payload['title'], "url": r.payload['url'], "date": r.payload['date'], "id": r.id})
@@ -97,6 +105,25 @@ def search():
97
  # except:
98
  # return jsonify([])
99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  @app.route("/delete_joke", methods=["POST"])
101
  def delete_joke():
102
  joke_id = request.form["id"]
 
26
  qdrant_api_key = os.environ.get("qdrant_api_key")
27
  qdrant_url = os.environ.get("qdrant_url")
28
 
29
+ qdrant_api_key = "WaGH94-bo_CzlxTNHFjBAGPvWRhbsWEKUKbMz6YQtYt4oTD1ZXTvwg"
30
+ qdrant_url = "https://c9bee7c7-2bf3-4e1b-8838-2f6f23372ab5.us-east-1-0.aws.cloud.qdrant.io"
31
+
32
  client = QdrantClient(url=qdrant_url, port=443, api_key=qdrant_api_key, prefer_grpc=False)
33
 
34
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
 
50
  embeddings = embeddings.cpu().detach().numpy().flatten().tolist()
51
  return embeddings
52
 
53
+ def get_id(collection):
54
+ resp = client.scroll(collection_name=collection, limit=10000, with_payload=True, with_vectors=False,)
55
+ max_id = max([r.id for r in resp[0]])+1
56
+ return int(max_id)
57
+
58
  @app.route("/")
59
  def index():
60
  return render_template("index.html")
 
97
  for r in results:
98
  if 'context' in r.payload and r.payload['context'] != '':
99
  if 'date' not in r.payload: r.payload['date'] = '20200101'
100
+ new_results.append({"text": r.payload['title'] + '<br>Context: ' + r.payload['context'], "url": r.payload['url'], "date": r.payload['date'], "id": r.id})
101
  else:
102
  if 'date' not in r.payload: r.payload['date'] = '20200101'
103
  new_results.append({"text": r.payload['title'], "url": r.payload['url'], "date": r.payload['date'], "id": r.id})
 
105
  # except:
106
  # return jsonify([])
107
 
108
+ @app.route("/add_item", methods=["POST"])
109
+ def add_item():
110
+ title = request.form["title"]
111
+ url = request.form["url"]
112
+ if url.strip() == '':
113
+ collection_name = 'jks'
114
+ cid = get_id(collection_name)
115
+ print('cid', cid, time.strftime("%Y%m%d"))
116
+ resp = client.upsert(collection_name=collection_name, points=Batch(ids=[cid], payloads=[{'text':title, 'date': time.strftime("%Y%m%d")}],vectors=[e5embed(title)]),)
117
+ else:
118
+ collection_name = 'tils'
119
+ cid = get_id('tils')
120
+ print('cid', cid, time.strftime("%Y%m%d"), collection_name)
121
+ til = {'title': title.replace('TIL that', '').replace('TIL:', '').replace('TIL ', '').strip(), 'url': url.replace('https://', '').replace('http://', ''), "date": time.strftime("%Y%m%d_%H%M")}
122
+ resp = client.upsert(collection_name="tils", points=[PointStruct(id=cid, payload=til, vector={"title": e5embed(til['title']),},)])
123
+ print('Upsert response:', resp)
124
+ return jsonify({"success": True, "index": collection_name})
125
+
126
+
127
  @app.route("/delete_joke", methods=["POST"])
128
  def delete_joke():
129
  joke_id = request.form["id"]
templates/index.html CHANGED
@@ -24,6 +24,12 @@
24
  padding: 10px;
25
  }
26
 
 
 
 
 
 
 
27
  #search {
28
  background-color: #4c72af;
29
  color: white;
@@ -33,6 +39,15 @@
33
  margin-left: 10px;
34
  }
35
 
 
 
 
 
 
 
 
 
 
36
  #results {
37
  margin: 20px;
38
  }
@@ -77,6 +92,17 @@
77
  Drag & Drop Audio File (mp3, wav, ogg, m4v) Here
78
  </div>
79
 
 
 
 
 
 
 
 
 
 
 
 
80
  <script>
81
  $(document).ready(function () {
82
  var collection = "jks";
@@ -127,6 +153,25 @@
127
  });
128
  }
129
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  function displayTranscriptionResult(transcription) {
131
  // Display the transcription result
132
  var results = $("#results");
 
24
  padding: 10px;
25
  }
26
 
27
+ #title, #link {
28
+ width: 70%;
29
+ padding: 10px;
30
+ margin-top: 10px;
31
+ }
32
+
33
  #search {
34
  background-color: #4c72af;
35
  color: white;
 
39
  margin-left: 10px;
40
  }
41
 
42
+ #add {
43
+ background-color: #4c72af;
44
+ color: white;
45
+ border: none;
46
+ padding: 10px 20px;
47
+ cursor: pointer;
48
+ margin-top: 10px;
49
+ }
50
+
51
  #results {
52
  margin: 20px;
53
  }
 
92
  Drag & Drop Audio File (mp3, wav, ogg, m4v) Here
93
  </div>
94
 
95
+ <div>
96
+ <label for="title">Title:</label>
97
+ <input type="text" id="title" placeholder="TIL something or the other">
98
+ </div>
99
+ <div>
100
+ <label for="link">Link:</label>
101
+ <input type="text" id="link" placeholder="https://somelink.com">
102
+ </div>
103
+ <button id="add">ADD ITEM</button>
104
+ <div id="add-results"></div>
105
+
106
  <script>
107
  $(document).ready(function () {
108
  var collection = "jks";
 
153
  });
154
  }
155
 
156
+ $('#add').click(function() {
157
+ $('#add-results').append("<h3>Adding item. Hold on!</h3>");
158
+ var title = $('#title').val();
159
+ var url = $('#link').val();
160
+
161
+ $.post('/add_item', {
162
+ title: title,
163
+ url: url
164
+ }, function(data) {
165
+ if(data.success) {
166
+ $('#title').val('');
167
+ $('#link').val('');
168
+ $('#add-results').empty();
169
+ $('#add-results').append("<h3>Successfully added item to " + data.index + "</h3>");
170
+ }
171
+ });
172
+
173
+ });
174
+
175
  function displayTranscriptionResult(transcription) {
176
  // Display the transcription result
177
  var results = $("#results");