@tencentcloud/sdk-mcp 1.7.7 → 1.7.9-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +7 -9
- package/index.js +8 -8
- package/knowledge/chunker.js +1 -0
- package/knowledge/doc-url-resolver.js +16 -9
- package/knowledge/embedding/build-vectors.js +92 -0
- package/knowledge/embedding/embed-model.js +41 -0
- package/knowledge/embedding/vector-augment.js +126 -0
- package/knowledge/embedding/vector-index.js +70 -0
- package/knowledge/frontmatter-meta.js +23 -0
- package/knowledge/path-meta.js +56 -0
- package/knowledge/search/exact-lookup.js +145 -16
- package/knowledge/search/filter-pool.js +77 -33
- package/knowledge/search/rank-profile.js +25 -0
- package/knowledge/search/requires-framework.js +4 -1
- package/knowledge/search/search-core.js +74 -13
- package/knowledge/search/search-knowledge.js +24 -34
- package/knowledge/search/search-pass.js +495 -169
- package/knowledge/search/url-row-scorer.js +24 -6
- package/package.json +3 -1
- package/resource/index/manifest.json +1 -1
- package/resource/index/vectors/index.json +4 -0
- package/resource/integration/callkit/preset/android/integration.md +0 -2
- package/resource/integration/callkit/preset/ios/integration.md +0 -2
- package/resource/integration/chat/preset/react/integration.md +9 -5
- package/resource/integration/chat/preset/uni-app/integration.md +4 -0
- package/resource/integration/chat/preset/vue/integration.md +10 -6
- package/resource/integration/livekit/preset/live/android/prepare-integration.md +0 -4
- package/resource/integration/livekit/preset/live/ios/prepare-integration.md +0 -4
- package/resource/integration/roomkit/preset/vue/integration.md +154 -208
- package/resource/knowledge/callkit/best-practice/android/video-chat-dating.md +0 -2
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +0 -2
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +0 -2
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +0 -4
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +0 -2
- package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +0 -2
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +0 -2
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +0 -4
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +0 -2
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +0 -2
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +0 -2
- package/resource/knowledge/callkit/faq/ios.md +0 -2
- package/resource/knowledge/callkit/faq/uniapp-app.md +0 -2
- package/resource/knowledge/callkit/preset/miniprogram/integration.md +2 -3
- package/resource/knowledge/callkit/preset/miniprogram/uniapp-integration.md +0 -2
- package/resource/knowledge/chat/preset/ios-uikit/integration.md +0 -16
- package/resource/knowledge/chat/preset/react/h5/integration.md +16 -5
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +6 -3
- package/resource/knowledge/chat/preset/vue/h5/integration.md +7 -4
- package/resource/knowledge/iot/app/activate-service.md +95 -0
- package/resource/knowledge/iot/app/demo/android.md +93 -0
- package/resource/knowledge/iot/app/demo/ios.md +87 -0
- package/resource/knowledge/iot/app/demo/miniprogram.md +79 -0
- package/resource/knowledge/iot/app/device-binding.md +378 -0
- package/resource/knowledge/iot/app/device-sharing.md +414 -0
- package/resource/knowledge/iot/app/family-management.md +762 -0
- package/resource/knowledge/iot/app/integration/android.md +328 -0
- package/resource/knowledge/iot/app/integration/harmonyos.md +326 -0
- package/resource/knowledge/iot/app/integration/ios.md +351 -0
- package/resource/knowledge/iot/app/integration/miniprogram.md +268 -0
- package/resource/knowledge/iot/app/monitor-playback.md +557 -0
- package/resource/knowledge/iot/app/remote-control.md +139 -0
- package/resource/knowledge/iot/app/video-call.md +559 -0
- package/resource/knowledge/iot/app/wechat-call/device-call-miniprogram.md +204 -0
- package/resource/knowledge/iot/app/wechat-call/miniprogram-call-device.md +193 -0
- package/resource/knowledge/iot/client-api/app/android/txiotcallsession.md +189 -0
- package/resource/knowledge/iot/client-api/app/android/txiotcloudstorage.md +77 -0
- package/resource/knowledge/iot/client-api/app/android/txiotdevicemanager.md +175 -0
- package/resource/knowledge/iot/client-api/app/android/txiotengine.md +172 -0
- package/resource/knowledge/iot/client-api/app/android/txiotenginedef.md +163 -0
- package/resource/knowledge/iot/client-api/app/android/txiotfamilymanager.md +146 -0
- package/resource/knowledge/iot/client-api/app/android/txiotmonitorsession.md +246 -0
- package/resource/knowledge/iot/client-api/app/harmonyos/txiotcallsession.md +191 -0
- package/resource/knowledge/iot/client-api/app/harmonyos/txiotcloudstorage.md +77 -0
- package/resource/knowledge/iot/client-api/app/harmonyos/txiotdevicemanager.md +183 -0
- package/resource/knowledge/iot/client-api/app/harmonyos/txiotengine.md +186 -0
- package/resource/knowledge/iot/client-api/app/harmonyos/txiotenginedef.md +164 -0
- package/resource/knowledge/iot/client-api/app/harmonyos/txiotfamilymanager.md +150 -0
- package/resource/knowledge/iot/client-api/app/harmonyos/txiotmonitorsession.md +252 -0
- package/resource/knowledge/iot/client-api/app/ios/txiotcallsession.md +199 -0
- package/resource/knowledge/iot/client-api/app/ios/txiotcloudstorage.md +76 -0
- package/resource/knowledge/iot/client-api/app/ios/txiotdevicemanager.md +173 -0
- package/resource/knowledge/iot/client-api/app/ios/txiotengine.md +173 -0
- package/resource/knowledge/iot/client-api/app/ios/txiotenginedef.md +171 -0
- package/resource/knowledge/iot/client-api/app/ios/txiotfamilymanager.md +146 -0
- package/resource/knowledge/iot/client-api/app/ios/txiotmonitorsession.md +250 -0
- package/resource/knowledge/iot/client-api/app/miniprogram/txiotcallsession.md +180 -0
- package/resource/knowledge/iot/client-api/app/miniprogram/txiotcloudstorage.md +76 -0
- package/resource/knowledge/iot/client-api/app/miniprogram/txiotdevicemanager.md +281 -0
- package/resource/knowledge/iot/client-api/app/miniprogram/txiotengine.md +183 -0
- package/resource/knowledge/iot/client-api/app/miniprogram/txiotenginedef.md +152 -0
- package/resource/knowledge/iot/client-api/app/miniprogram/txiotfamilymanager.md +179 -0
- package/resource/knowledge/iot/client-api/app/miniprogram/txiotmonitorsession.md +226 -0
- package/resource/knowledge/iot/client-api/device/android-smart-device.md +813 -0
- package/resource/knowledge/iot/client-api/device/linux-rtos-device.md +2027 -0
- package/resource/knowledge/iot/device/activate-service.md +167 -0
- package/resource/knowledge/iot/device/ai-voice-chat/advanced-features/custom-agent.md +171 -0
- package/resource/knowledge/iot/device/ai-voice-chat/advanced-features/smart-device-control.md +721 -0
- package/resource/knowledge/iot/device/ai-voice-chat/integration-guide/android-smart-device.md +247 -0
- package/resource/knowledge/iot/device/ai-voice-chat/integration-guide/linux-rtos-device.md +368 -0
- package/resource/knowledge/iot/device/ai-voice-chat/overview.md +84 -0
- package/resource/knowledge/iot/device/cloud-storage.md +696 -0
- package/resource/knowledge/iot/device/data-model.md +972 -0
- package/resource/knowledge/iot/device/demo/android-smart-device.md +97 -0
- package/resource/knowledge/iot/device/demo/linux-rtos-device.md +106 -0
- package/resource/knowledge/iot/device/device-ota-upgrade.md +237 -0
- package/resource/knowledge/iot/device/dynamic-registration/android-smart-device.md +275 -0
- package/resource/knowledge/iot/device/dynamic-registration/linux-rtos-device.md +297 -0
- package/resource/knowledge/iot/device/login-and-register/android-smart-device.md +131 -0
- package/resource/knowledge/iot/device/login-and-register/linux-rtos-device.md +291 -0
- package/resource/knowledge/iot/device/monitor-pushing/android-smart-device.md +237 -0
- package/resource/knowledge/iot/device/monitor-pushing/linux-rtos-device.md +493 -0
- package/resource/knowledge/iot/device/video-call/android-smart-device.md +299 -0
- package/resource/knowledge/iot/device/video-call/linux-rtos-device.md +465 -0
- package/resource/knowledge/iot/device/wechat-call/android-smart-device.md +534 -0
- package/resource/knowledge/iot/device/wechat-call/linux-rtos-device.md +681 -0
- package/resource/knowledge/iot/kids-watch/overview.md +28 -0
- package/resource/knowledge/iot/security-camera/activate-service.md +74 -0
- package/resource/knowledge/iot/security-camera/monitor-playback/app-integration.md +302 -0
- package/resource/knowledge/iot/security-camera/monitor-playback/device-integration/android.md +237 -0
- package/resource/knowledge/iot/security-camera/monitor-playback/device-integration/linux-rtos.md +493 -0
- package/resource/knowledge/iot/security-camera/overview.md +31 -0
- package/resource/knowledge/iot/security-camera/ptz-control.md +153 -0
- package/resource/knowledge/iot/security-camera/recording-and-snapshot.md +182 -0
- package/resource/knowledge/iot/security-camera/voice-intercom.md +174 -0
- package/resource/knowledge/iot/smart-vision/serviceoverview.md +114 -0
- package/resource/knowledge/iot/voice-recorder/app-demo.md +99 -0
- package/resource/knowledge/iot/voice-recorder/device-demo.md +189 -0
- package/resource/knowledge/iot/voice-recorder/overview.md +64 -0
- package/resource/knowledge/livekit/core-sdk/features/android/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/android/gift.md +0 -4
- package/resource/knowledge/livekit/core-sdk/features/android/live-list.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/audio-effect.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/gift.md +0 -4
- package/resource/knowledge/livekit/core-sdk/features/ios/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/gift.md +0 -4
- package/resource/knowledge/livekit/core-sdk/features/ios/live-list.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/gift.md +0 -4
- package/resource/knowledge/livekit/core-sdk/live/android/co-guest-interaction.md +0 -4
- package/resource/knowledge/livekit/core-sdk/live/android/host-interaction.md +0 -10
- package/resource/knowledge/livekit/core-sdk/live/android/integration.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/flutter/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/flutter/host-interaction.md +0 -10
- package/resource/knowledge/livekit/core-sdk/live/flutter/integration.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/ios/co-guest-interaction.md +0 -4
- package/resource/knowledge/livekit/core-sdk/live/ios/host-interaction.md +0 -10
- package/resource/knowledge/livekit/core-sdk/live/ios/integration.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +0 -4
- package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +0 -4
- package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/android/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/android/host-interaction.md +0 -4
- package/resource/knowledge/livekit/core-sdk/voice/android/integration.md +0 -4
- package/resource/knowledge/livekit/core-sdk/voice/flutter/integration.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/ios/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/ios/host-interaction.md +0 -4
- package/resource/knowledge/livekit/core-sdk/voice/ios/integration.md +0 -4
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/integration.md +0 -2
- package/resource/knowledge/livekit/faq/error-code.md +0 -2
- package/resource/knowledge/push/config/android/honor.md +16 -1
- package/resource/knowledge/push/config/android/huawei.md +20 -4
- package/resource/knowledge/push/config/android/meizu.md +19 -5
- package/resource/knowledge/push/config/android/vivo.md +20 -1
- package/resource/knowledge/push/config/donut.md +0 -2
- package/resource/knowledge/push/config/harmonyos.md +21 -5
- package/resource/knowledge/push/integration/android.md +0 -5
- package/resource/knowledge/push/integration/donut.md +0 -3
- package/resource/knowledge/push/integration/flutter.md +1 -4
- package/resource/knowledge/push/integration/harmonyos.md +0 -3
- package/resource/knowledge/push/integration/ios.md +0 -3
- package/resource/knowledge/push/integration/react-native.md +0 -5
- package/resource/knowledge/push/integration/uni-app.md +0 -3
- package/resource/knowledge/push/integration/unity.md +0 -3
- package/resource/knowledge/push/integration/unreal-engine.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -3
- package/resource/knowledge/roomkit/preset/uniapp-app/integration.md +18 -14
- package/resource/knowledge/rtcengine/web/how_to_run_web_sdk_demo.md +0 -2
- package/resource/knowledge/rtcengine/web/plugin/23-advanced-support-detection.md +30 -0
- package/resource/knowledge/rtcengine/web/plugin/24-advanced-network-quality.md +0 -2
- package/resource/knowledge/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
- package/resource/knowledge/rtcengine/web/plugin/35-advanced-ai-denoiser.md +1 -1
- package/resource/knowledge/rtcengine/web/plugin/36-advanced-virtual-background.md +4 -0
- package/resource/knowledge/trtc/android/TRTCCloud.md +94 -85
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +48 -46
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +48 -48
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +18 -18
- package/resource/knowledge/trtc/android/TXDeviceManager.md +4 -4
- package/resource/knowledge/trtc/android/TXLiteAVCode.md +1 -0
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +90 -90
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +18 -18
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +9 -9
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +47 -47
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +47 -45
- package/resource/knowledge/trtc/c++/TXLiteAVCode.md +1 -0
- package/resource/knowledge/trtc/ios/TRTCCloud.md +93 -93
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +50 -50
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +8 -8
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +9 -9
- package/resource/knowledge/trtc/ios/TXLiteAVCode.md +1 -0
- package/resource/knowledge/trtc/ios/TXLiveSDKTypeDef.md +48 -46
- package/server-config.js +8 -9
- package/server.js +1 -1
- package/tools/common/finalize_answer.js +1 -1
- package/tools/common/present_framework_choice.js +1 -1
- package/tools/common/search_trtc_knowledge.js +22 -3
- package/tools/definitions/search_trtc_knowledge_def.js +3 -2
- package/utils/preflight-route.js +19 -2
- package/utils/report-cls-client.js +1 -1
- package/utils/report-es-client.js +1 -1
|
@@ -7,7 +7,7 @@ import { classifyRetrievalMode } from './intent-router.js';
|
|
|
7
7
|
import { rankSubsetWithIndex } from '../bm25.js';
|
|
8
8
|
import { getProductsBM25Index } from '../bm25-cache.js';
|
|
9
9
|
import { hasExplicitFrameworkMatch } from './framework-fallback.js';
|
|
10
|
-
import { assessConfidence, assessNarrativeCompleteness, buildNarrativeDocument, hasNativeClientFramework, hasNativeTrtcApiSignal, hasProductScopeIntent, inferQueryApiTokens, pickNarrativeSource, } from './search-core.js';
|
|
10
|
+
import { assessConfidence, assessNarrativeCompleteness, buildDiscoveryCatalog, buildNarrativeDocument, hasNativeClientFramework, hasNativeTrtcApiSignal, hasProductScopeIntent, inferQueryApiTokens, pickNarrativeSource, } from './search-core.js';
|
|
11
11
|
import { scoreUrlRow } from './url-row-scorer.js';
|
|
12
12
|
import { buildAnswerContract, buildAgentMessage } from './search-message.js';
|
|
13
13
|
import { runSearchPass } from './search-pass.js';
|
|
@@ -174,7 +174,7 @@ function computePrimaryCompleteness(allChunks, fragments, preferredSource) {
|
|
|
174
174
|
primary_completeness: fileToken > 0 ? Number((hitToken / fileToken).toFixed(2)) : 0,
|
|
175
175
|
};
|
|
176
176
|
}
|
|
177
|
-
export function searchKnowledge(params) {
|
|
177
|
+
export async function searchKnowledge(params) {
|
|
178
178
|
const norm = normalizeParams(params);
|
|
179
179
|
const retrievalMode = classifyRetrievalMode(norm.prompt);
|
|
180
180
|
if (requiresFramework(norm)) {
|
|
@@ -196,36 +196,21 @@ export function searchKnowledge(params) {
|
|
|
196
196
|
const manifest = loadManifest();
|
|
197
197
|
const allChunks = manifest.chunks;
|
|
198
198
|
const queryApiTokens = inferQueryApiTokens(norm.prompt);
|
|
199
|
-
let pass = runSearchPass({
|
|
199
|
+
let pass = await runSearchPass({
|
|
200
200
|
allChunks,
|
|
201
201
|
passNorm: norm,
|
|
202
202
|
retrievalMode,
|
|
203
203
|
queryApiTokens,
|
|
204
204
|
});
|
|
205
|
-
// best-practice
|
|
206
|
-
//
|
|
207
|
-
//
|
|
208
|
-
//
|
|
209
|
-
//
|
|
210
|
-
//
|
|
211
|
-
// 改为 `types: ['faq']` 后:
|
|
212
|
-
// - best-practice(types=['faq'])走 filterPool 的 bp-bypass 保留
|
|
213
|
-
// - chat/preset/.../integration.md(types=['integration'])被硬过滤
|
|
214
|
-
// - URL row(types 与原请求一致)继续保留
|
|
215
|
-
// 合并策略:append BP fragments 到原 pass(不去重 URL row),保留 URL row 在 top。
|
|
205
|
+
// best-practice 懒补充(收敛版):仅在主 pass 完全无结果时触发。
|
|
206
|
+
//
|
|
207
|
+
// 设计意图:
|
|
208
|
+
// - BP 从“主通道召回增强”退到“兜底校准器”
|
|
209
|
+
// - 对“仅 URL 行”的场景不再补 BP,避免策略叠加导致的 BP 过召回
|
|
210
|
+
// - 保留 hard-fail 场景的可恢复性(空结果时补一次 faq)
|
|
216
211
|
const passRetryReasons = [];
|
|
217
|
-
const
|
|
218
|
-
|
|
219
|
-
// 避免 BP 兜底把无关 BP 文档(message-unread-count、avchatroom-message-loss-diagnosis 等)塞满 fragments。
|
|
220
|
-
// 典型反例:query「im 内网代理」types=['product'],pass 命中「内网代理实现方案」(scoreUrlRow=460),
|
|
221
|
-
// 旧 B1 会触发 → 拉 8 个无关 BP → fragments 膨胀到 9 个。
|
|
222
|
-
// 进一步保护:当 top1 finalScore < 20(零命中场景,如「im 怎么发火箭」finalScore=16.8),
|
|
223
|
-
// 也不触发 B1——无意义 query 不该被 BP 兜底撑满。
|
|
224
|
-
const top1UrlScore = !hasLocalContent && pass.fragments[0]?.title
|
|
225
|
-
? scoreUrlRow(norm.prompt, pass.fragments[0].title).score
|
|
226
|
-
: 0;
|
|
227
|
-
const top1FinalScore = pass.fragments[0]?.score ?? 0;
|
|
228
|
-
if (!hasLocalContent && top1UrlScore < 300 && top1FinalScore >= 20 && norm.product?.length && !norm.types?.includes('faq')) {
|
|
212
|
+
const noFragments = pass.fragments.length === 0;
|
|
213
|
+
if (noFragments && norm.product?.length && !norm.types?.includes('faq')) {
|
|
229
214
|
const primaryProduct = norm.product[0];
|
|
230
215
|
const bpCandidates = allChunks.filter((chunk) => {
|
|
231
216
|
if (!/\/best-practice\//i.test(chunk.source))
|
|
@@ -244,7 +229,7 @@ export function searchKnowledge(params) {
|
|
|
244
229
|
const bpIndex = getProductsBM25Index(allChunks, [norm.product[0]]);
|
|
245
230
|
const bpRanked = rankSubsetWithIndex(norm.prompt, bpCandidates.map((c) => c.id), bpIndex, {});
|
|
246
231
|
if ((bpRanked[0]?.score ?? 0) >= 6) {
|
|
247
|
-
const bpPass = runSearchPass({
|
|
232
|
+
const bpPass = await runSearchPass({
|
|
248
233
|
allChunks,
|
|
249
234
|
passNorm: { ...norm, types: ['faq'] },
|
|
250
235
|
retrievalMode,
|
|
@@ -276,7 +261,7 @@ export function searchKnowledge(params) {
|
|
|
276
261
|
? Number((pass.missingApiTokens.length / queryApiTokens.length).toFixed(2))
|
|
277
262
|
: 0;
|
|
278
263
|
if (queryApiTokens.length > 0 && (pass.apiNameCoverage === 0 || missingRatio >= 0.3)) {
|
|
279
|
-
const retryPass = runSearchPass({
|
|
264
|
+
const retryPass = await runSearchPass({
|
|
280
265
|
allChunks,
|
|
281
266
|
passNorm: { ...norm, types: undefined },
|
|
282
267
|
retrievalMode,
|
|
@@ -296,7 +281,7 @@ export function searchKnowledge(params) {
|
|
|
296
281
|
// B3: 混合“集成 + 产品开通/计费/控制台”问法时,补充 product type,避免仅搜 integration/feature。
|
|
297
282
|
if (norm.types?.length && !norm.types.includes('product') && hasProductScopeIntent(norm.prompt)) {
|
|
298
283
|
const widenedTypes = [...new Set([...norm.types, 'product'])];
|
|
299
|
-
const retryPass = runSearchPass({
|
|
284
|
+
const retryPass = await runSearchPass({
|
|
300
285
|
allChunks,
|
|
301
286
|
passNorm: { ...norm, types: widenedTypes },
|
|
302
287
|
retrievalMode,
|
|
@@ -320,7 +305,7 @@ export function searchKnowledge(params) {
|
|
|
320
305
|
&& pass.apiNameCoverage < 0.5;
|
|
321
306
|
if (shouldRetryNativeProduct) {
|
|
322
307
|
const expandedProducts = [...new Set([...(norm.product ?? []), 'native_trtc_sdk'])];
|
|
323
|
-
const retryPass = runSearchPass({
|
|
308
|
+
const retryPass = await runSearchPass({
|
|
324
309
|
allChunks,
|
|
325
310
|
passNorm: { ...norm, product: expandedProducts, types: undefined },
|
|
326
311
|
retrievalMode,
|
|
@@ -356,7 +341,7 @@ export function searchKnowledge(params) {
|
|
|
356
341
|
types: undefined,
|
|
357
342
|
limit: Math.max(norm.limit ?? 8, 12),
|
|
358
343
|
};
|
|
359
|
-
const retryPass = runSearchPass({
|
|
344
|
+
const retryPass = await runSearchPass({
|
|
360
345
|
allChunks,
|
|
361
346
|
passNorm: narrativeRetryNorm,
|
|
362
347
|
retrievalMode,
|
|
@@ -379,7 +364,7 @@ export function searchKnowledge(params) {
|
|
|
379
364
|
if (shouldDeepCoverageCheck) {
|
|
380
365
|
coverageReport = buildCoverageReport(allChunks, pass.fragments, pass.preferredSource);
|
|
381
366
|
if (coverageReport.retry_suggested) {
|
|
382
|
-
const coverageRetryPass = runSearchPass({
|
|
367
|
+
const coverageRetryPass = await runSearchPass({
|
|
383
368
|
allChunks,
|
|
384
369
|
passNorm: { ...norm, types: undefined, limit: Math.max(norm.limit ?? 8, 12) },
|
|
385
370
|
retrievalMode,
|
|
@@ -441,6 +426,9 @@ export function searchKnowledge(params) {
|
|
|
441
426
|
const documents = retrievalMode === 'narrative'
|
|
442
427
|
? (narrativeState.document ? [narrativeState.document] : [])
|
|
443
428
|
: [];
|
|
429
|
+
const catalog = retrievalMode === 'discovery'
|
|
430
|
+
? buildDiscoveryCatalog(pass.rankedWithMultipliers, pass.poolWithContent, Math.max(norm.limit ?? 8, 6))
|
|
431
|
+
: [];
|
|
444
432
|
let finalStatus = status;
|
|
445
433
|
let finalConfidence = confidence;
|
|
446
434
|
if (retrievalMode === 'narrative' && documents.length > 0) {
|
|
@@ -453,7 +441,7 @@ export function searchKnowledge(params) {
|
|
|
453
441
|
finalConfidence = 'low';
|
|
454
442
|
}
|
|
455
443
|
}
|
|
456
|
-
if (retrievalMode === 'discovery' &&
|
|
444
|
+
if (retrievalMode === 'discovery' && catalog.length > 0) {
|
|
457
445
|
finalStatus = 'success';
|
|
458
446
|
finalConfidence = finalConfidence === 'none' ? 'medium' : finalConfidence;
|
|
459
447
|
}
|
|
@@ -486,7 +474,7 @@ export function searchKnowledge(params) {
|
|
|
486
474
|
const narrativeConverged = retrievalMode !== 'narrative'
|
|
487
475
|
|| (documents.length > 0 && narrativeState.quality.isComplete);
|
|
488
476
|
const convergenceReached = (retrievalMode === 'narrative' && narrativeConverged)
|
|
489
|
-
|| (retrievalMode === 'discovery' &&
|
|
477
|
+
|| (retrievalMode === 'discovery' && catalog.length > 0)
|
|
490
478
|
|| (finalStatus === 'success'
|
|
491
479
|
&& (finalConfidence === 'high' || finalConfidence === 'medium')
|
|
492
480
|
&& (!hasApiQueryTokens || pass.apiNameCoverage >= 0.5)
|
|
@@ -529,6 +517,7 @@ export function searchKnowledge(params) {
|
|
|
529
517
|
query: params,
|
|
530
518
|
retrieval_mode: retrievalMode,
|
|
531
519
|
documents,
|
|
520
|
+
catalog,
|
|
532
521
|
meta: {
|
|
533
522
|
// 参考文档(AI 输出「参考文档」小节依据):
|
|
534
523
|
...(pass.references.length ? { references: pass.references } : {}),
|
|
@@ -549,6 +538,7 @@ export function searchKnowledge(params) {
|
|
|
549
538
|
},
|
|
550
539
|
}
|
|
551
540
|
: {}),
|
|
541
|
+
vector_retrieval: pass.vectorDiagnostics,
|
|
552
542
|
},
|
|
553
543
|
fragments: pass.fragments,
|
|
554
544
|
};
|