HimitsudoguSearch / localtest.py
Mya-Mya
Create localtest.py
fd4ac87
raw
history blame
1.2 kB
from backend import Backend
import frontend
import numpy as np
from pandas import DataFrame
import pickle
with open("./himitsudogu_db.pkl", "rb") as file:
himitsudogu_db: dict = pickle.load(file)
class LocaltestBackend(Backend):
"""
ローカル開発環境にSentence BERTを連れ込んでくるのは無理なので、
文章をベクトル化する行程は乱数発生とする。
"""
def __init__(self):
super().__init__()
self.feature_matrix = himitsudogu_db["feature_matrix_s"][
"sonoisa/sentence-bert-base-ja-mean-tokens-v2"
]
def on_submit_button_press(self, query: str) -> DataFrame:
query_feature_vector = np.random.random((768,))
cs_s = self.feature_matrix @ query_feature_vector
ranked_index_s = np.argsort(cs_s)[::-1]
output = DataFrame(columns=["類似度", "名前", "説明"])
for rank, i in enumerate(ranked_index_s[:20], 1):
output.loc[rank] = [
cs_s[i],
himitsudogu_db["name_s"][i],
himitsudogu_db["description_s"][i],
]
return output
frontend.launch_frontend(backend=LocaltestBackend())