(
self,
query_set,
query_text,
query_embedding,
top_number: int,
similarity: float,
search_mode: SearchMode,
knowledge_id_list: list[str] = None,
)
| 248 | |
| 249 | class EmbeddingSearch(ISearch): |
| 250 | def handle( |
| 251 | self, |
| 252 | query_set, |
| 253 | query_text, |
| 254 | query_embedding, |
| 255 | top_number: int, |
| 256 | similarity: float, |
| 257 | search_mode: SearchMode, |
| 258 | knowledge_id_list: list[str] = None, |
| 259 | ): |
| 260 | exec_sql, exec_params = generate_sql_by_query_dict( |
| 261 | {"embedding_query": query_set}, |
| 262 | select_string=get_file_content( |
| 263 | os.path.join(PROJECT_DIR, "apps", "knowledge", "sql", "embedding_search.sql") |
| 264 | ), |
| 265 | with_table_name=True, |
| 266 | ) |
| 267 | embedding_model = select_list( |
| 268 | exec_sql, [len(query_embedding), json.dumps(query_embedding), *exec_params, len(query_embedding), json.dumps(query_embedding), top_number, similarity, top_number] |
| 269 | ) |
| 270 | return embedding_model |
| 271 | |
| 272 | def support(self, search_mode: SearchMode): |
| 273 | return search_mode.value == SearchMode.embedding.value |
nothing calls this directly
no test coverage detected