sickcell69 commited on
Commit
fc7d349
1 Parent(s): ac171fd

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -18
app.py CHANGED
@@ -1,9 +1,8 @@
1
- from flask import Flask, request, jsonify, render_template
2
  import pandas as pd
3
  from sentence_transformers import SentenceTransformer, util
4
  import torch
5
 
6
-
7
  # 載入語義搜索模型
8
  model_checkpoint = "sickcell69/cti-semantic-search-minilm"
9
  model = SentenceTransformer(model_checkpoint)
@@ -16,27 +15,25 @@ data = pd.read_json(data_path)
16
  embeddings_path = 'corpus_embeddings.pt'
17
  corpus_embeddings = torch.load(embeddings_path)
18
 
19
- app = Flask(__name__)
20
-
21
- @app.route('/')
22
- def home():
23
- return render_template('index.html')
24
-
25
- @app.route('/search', methods=['GET'])
26
- def search():
27
- query = request.args.get('query')
28
  query_embedding = model.encode(query, convert_to_tensor=True)
29
  search_hits = util.semantic_search(query_embedding, corpus_embeddings, top_k=5)
30
-
31
  results = []
32
  for hit in search_hits[0]:
33
  text = " ".join(data.iloc[hit['corpus_id']]['tokens'])
34
- results.append({
35
- "text": text,
36
- "score": hit['score']
37
- })
38
 
39
- return jsonify(results)
 
 
 
 
 
 
 
 
40
 
41
  if __name__ == "__main__":
42
- app.run(debug=True, host='0.0.0.0')
 
 
1
+ import gradio as gr
2
  import pandas as pd
3
  from sentence_transformers import SentenceTransformer, util
4
  import torch
5
 
 
6
  # 載入語義搜索模型
7
  model_checkpoint = "sickcell69/cti-semantic-search-minilm"
8
  model = SentenceTransformer(model_checkpoint)
 
15
  embeddings_path = 'corpus_embeddings.pt'
16
  corpus_embeddings = torch.load(embeddings_path)
17
 
18
+ def semantic_search(query):
 
 
 
 
 
 
 
 
19
  query_embedding = model.encode(query, convert_to_tensor=True)
20
  search_hits = util.semantic_search(query_embedding, corpus_embeddings, top_k=5)
21
+
22
  results = []
23
  for hit in search_hits[0]:
24
  text = " ".join(data.iloc[hit['corpus_id']]['tokens'])
25
+ results.append(f"Score: {hit['score']:.4f} - Text: {text}")
 
 
 
26
 
27
+ return "\n".join(results)
28
+
29
+ iface = gr.Interface(
30
+ fn=semantic_search,
31
+ inputs="text",
32
+ outputs="text",
33
+ title="語義搜索應用",
34
+ description="輸入一個查詢,然後模型將返回最相似的結果。"
35
+ )
36
 
37
  if __name__ == "__main__":
38
+ #iface.launch()
39
+ iface.launch(share=True) #網頁跑不出來