|
|
@@ -1,3 +1,4 @@
|
|
|
+
|
|
|
import os
|
|
|
script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
|
import sys
|
|
|
@@ -33,8 +34,8 @@ class IntentRecognizer:
|
|
|
database_path = os.path.join(script_dir, "intent_index.faiss")
|
|
|
if not os.path.exists(database_path):
|
|
|
# embeddings = self.model.encode(self.template_meta_list)['dense_vecs'].astype(np.float32) # 选取密集向量,变为float32
|
|
|
- #faiss.normalize_L2(embeddings) # L2归一化
|
|
|
- # 调用远程embedding模型,one by one 地处理
|
|
|
+ #faiss.normalize_L2(embeddings) # L2归一化,本地模型需要归一化
|
|
|
+ # 调用远程embedding模型,one by one 地处理,远程模型通过配置参数进行归一化
|
|
|
embeddings = [self.model.encode([temp], normalize=True)[0] for temp in self.template_meta_list]
|
|
|
for _ in embeddings:
|
|
|
if _ is None:
|
|
|
@@ -64,7 +65,7 @@ class IntentRecognizer:
|
|
|
# 下面使用远程模型代替本地模型
|
|
|
# 要求query_embedding是一个二维矩阵,形状为(1, 1024)
|
|
|
query_embedding = np.array(self.model.encode([query], normalize=True), dtype=np.float32)
|
|
|
- faiss.normalize_L2(query_embedding)
|
|
|
+ # faiss.normalize_L2(query_embedding)
|
|
|
distances, indices = self.database_index.search(query_embedding, top_k)
|
|
|
group_query = [(query, self.template_meta_list[indices[0][i]]) for i in range(top_k)]
|
|
|
# 调用远程reranker模型
|