Skip to content

Commit

Permalink
fix: 修复Milvus设置查询结果相似度阈值未生效 TencentBlueKing#2573
Browse files Browse the repository at this point in the history
  • Loading branch information
cnlkl committed Sep 19, 2024
1 parent e35b9e1 commit b4ddf56
Showing 1 changed file with 13 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -105,17 +105,23 @@ class MilvusVectorStore(
)
)

val results = ArrayList<Document>()
val respSearch = milvusClient.search(req)
return respSearch.map {
val docId = it[DOC_ID_FIELD_NAME] as String
val content = it[CONTENT_FIELD_NAME] as String
for (vector in respSearch) {
val similarity = getResultSimilarity((vector[DISTANCE_FIELD_NAME] as Double).toFloat())
if (similarity < request.similarityThreshold) {
continue
}
val docId = vector[DOC_ID_FIELD_NAME] as String
val content = vector[CONTENT_FIELD_NAME] as String
val metadata = Base64Decoder
.decodeStr(it[METADATA_FIELD_NAME] as String)
.decodeStr(vector[METADATA_FIELD_NAME] as String)
.readJsonString<MutableMap<String, Any>>()
// inject the distance into the metadata.
metadata[DISTANCE_FIELD_NAME] = 1 - getResultSimilarity((it[DISTANCE_FIELD_NAME] as Double).toFloat())
Document(content, metadata, docId)
metadata[DISTANCE_FIELD_NAME] = 1 - similarity
results.add(Document(content, metadata, docId))
}
return results
}

private fun getResultSimilarity(distance: Float): Float {
Expand All @@ -131,6 +137,7 @@ class MilvusVectorStore(
}

override fun collectionExists(): Boolean {
logger.info(similaritySearch(SearchRequest("haahaha")).toString())
return milvusClient.collectionExists(config.databaseName, config.collectionName)
}

Expand Down

0 comments on commit b4ddf56

Please sign in to comment.