更新阅读器功能与示例

This commit is contained in:
shen
2026-07-27 21:43:13 +08:00
parent 68d9363f0a
commit 9392027106
78 changed files with 8780 additions and 2084 deletions
@@ -0,0 +1,19 @@
import Foundation
import NaturalLanguage
/// Uses Apple's bundled sentence embeddings when the language asset exists.
/// Distances are converted to a stable 0...1 ranking signal only within one
/// query; callers must not compare values across embedding revisions.
public struct RDAINaturalLanguageSemanticScorer: RDAISemanticScoring {
public init() {}
public func score(query: String, text: String, languageCode: String?) async -> Double? {
await Task.detached(priority: .utility) {
let language = languageCode.flatMap(NLLanguage.init(rawValue:)) ?? .english
guard let embedding = NLEmbedding.sentenceEmbedding(for: language) else { return nil }
let distance = embedding.distance(between: query, and: text)
guard distance.isFinite else { return nil }
return 1 / (1 + Double(distance))
}.value
}
}