MCPcopy Create free account
hub / github.com/1Panel-dev/MaxKB / hit_test

Method hit_test

apps/knowledge/vector/pg_vector.py:112–147  ·  view source on GitHub ↗
(
        self,
        query_text,
        knowledge_id_list: list[str],
        exclude_document_id_list: list[str],
        top_number: int,
        similarity: float,
        search_mode: SearchMode,
        embedding: Embeddings,
    )

Source from the content-addressed store, hash-verified

110 return True
111
112 def hit_test(
113 self,
114 query_text,
115 knowledge_id_list: list[str],
116 exclude_document_id_list: list[str],
117 top_number: int,
118 similarity: float,
119 search_mode: SearchMode,
120 embedding: Embeddings,
121 ):
122 if knowledge_id_list is None or len(knowledge_id_list) == 0:
123 return []
124 exclude_dict = {}
125 query_text = normalize_for_embedding(query_text)
126 embedding_query = embedding.embed_query(query_text)
127 if exclude_document_id_list is not None and len(exclude_document_id_list) > 0:
128 exclude_dict.__setitem__("document_id__in", exclude_document_id_list)
129 for search_handle in search_handle_list:
130 if search_handle.support(search_mode):
131 # Query per knowledge base to leverage per-KB partial HNSW indexes
132 # (WHERE knowledge_id = '{k_id}'), which won't be used with knowledge_id__in
133 if len(knowledge_id_list) == 1:
134 query_set = QuerySet(Embedding).filter(knowledge_id=knowledge_id_list[0], is_active=True).exclude(**exclude_dict)
135 return search_handle.handle(
136 query_set, query_text, embedding_query, top_number, similarity, search_mode, knowledge_id_list
137 )
138 else:
139 all_results = []
140 for kid in knowledge_id_list:
141 query_set = QuerySet(Embedding).filter(knowledge_id=kid, is_active=True).exclude(**exclude_dict)
142 results = search_handle.handle(
143 query_set, query_text, embedding_query, top_number, similarity, search_mode, knowledge_id_list
144 )
145 all_results.extend(results)
146 all_results.sort(key=lambda x: x.get("similarity", x.get("comprehensive_score", 0)), reverse=True)
147 return all_results[:top_number]
148
149 def query(
150 self,

Callers 1

postMethod · 0.45

Calls 6

normalize_for_embeddingFunction · 0.90
__setitem__Method · 0.80
embed_queryMethod · 0.45
supportMethod · 0.45
handleMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected