@tencentcloud/sdk-mcp 1.6.3 → 1.6.5
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/index.js +0 -4
- package/knowledge/build-index.js +1 -1
- package/knowledge/chunker.js +81 -52
- package/knowledge/path-meta.js +181 -21
- package/knowledge/search/exact-lookup.js +166 -0
- package/knowledge/search/filter-pool.js +73 -19
- package/knowledge/search/product-scope-intent.js +2 -2
- package/knowledge/search/requires-framework.js +1 -1
- package/knowledge/search/search-knowledge.js +234 -57
- package/package.json +1 -1
- package/resource/_schema/feature-aliases.yaml +1 -0
- package/resource/integration/callkit/preset/android/integration.md +3 -5
- package/resource/integration/callkit/preset/flutter/integration.md +2 -3
- package/resource/integration/callkit/preset/ios/integration.md +2 -5
- package/resource/integration/callkit/preset/react/integration.md +12 -26
- package/resource/integration/callkit/preset/vue/integration.md +17 -33
- package/resource/integration/chat/preset/android/integration.md +44 -14
- package/resource/integration/chat/preset/flutter/integration.md +54 -13
- package/resource/integration/chat/preset/ios/integration.md +42 -6
- package/resource/integration/chat/preset/react/integration.md +30 -28
- package/resource/integration/chat/preset/uni-app/integration.md +101 -40
- package/resource/integration/chat/preset/vue/integration.md +62 -28
- package/resource/integration/livekit/preset/live/android/live-audience-integration.md +133 -0
- package/resource/integration/livekit/preset/live/android/live-host-integration.md +225 -0
- package/resource/integration/livekit/preset/live/android/live-list-integration.md +278 -0
- package/resource/integration/livekit/preset/live/android/prepare-integration.md +271 -0
- package/resource/integration/livekit/preset/live/ios/live-audience-integration.md +207 -0
- package/resource/integration/livekit/preset/live/ios/live-host-integration.md +358 -0
- package/resource/integration/livekit/preset/live/ios/live-list-integration.md +246 -0
- package/resource/integration/livekit/preset/live/ios/prepare-integration.md +218 -0
- package/resource/integration/livekit/preset/live/vue/live-list-integration.md +4 -7
- package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +5 -12
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +4 -11
- package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +250 -482
- package/resource/integration/roomkit/preset/vue/integration.md +399 -106
- package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +80 -0
- package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +20 -0
- package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +116 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +11 -15
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +10 -13
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +2 -4
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +10 -17
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +11 -17
- package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +11 -20
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +10 -15
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +9 -14
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +12 -18
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +390 -0
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +317 -0
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +16 -22
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +17 -23
- package/resource/knowledge/callkit/core-sdk/web/call-engine.md +39 -0
- package/resource/knowledge/callkit/core-sdk/web/call-event.md +341 -0
- package/resource/knowledge/callkit/core-sdk/web/callengine-api-overview.md +39 -0
- package/resource/knowledge/callkit/faq/android.md +1 -5
- package/resource/knowledge/callkit/faq/common.md +10 -12
- package/resource/knowledge/callkit/faq/ios.md +5 -7
- package/resource/knowledge/callkit/faq/uniapp-app.md +7 -7
- package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +9 -12
- package/resource/knowledge/callkit/faq/web.md +2 -12
- package/resource/knowledge/callkit/preset/android/api.md +5 -8
- package/resource/knowledge/callkit/preset/ios/api.md +4 -6
- package/resource/knowledge/callkit/preset/miniprogram/api.md +295 -0
- package/resource/knowledge/callkit/preset/react/api.md +622 -0
- package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +475 -0
- package/resource/knowledge/callkit/preset/vue/api.md +622 -0
- package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +587 -0
- package/resource/knowledge/callkit/preset/web/api.md +1 -1
- package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +16 -0
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +1 -1
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +0 -1
- package/resource/knowledge/chat/preset/android/features/language.md +2 -4
- package/resource/knowledge/chat/preset/android/features/message-input.md +1 -1
- package/resource/knowledge/chat/preset/android/features/message-list.md +1 -2
- package/resource/knowledge/chat/preset/android/features/search.md +0 -1
- package/resource/knowledge/chat/preset/android/features/theme.md +1 -1
- package/resource/knowledge/chat/preset/android-view/integration.md +35 -10
- package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +0 -1
- package/resource/knowledge/chat/preset/flutter/features/language.md +1 -1
- package/resource/knowledge/chat/preset/flutter/features/message-list.md +0 -1
- package/resource/knowledge/chat/preset/flutter/features/search.md +4 -5
- package/resource/knowledge/chat/preset/flutter/features/theme.md +1 -1
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +1 -1
- package/resource/knowledge/chat/preset/ios/features/conversation-list.md +0 -1
- package/resource/knowledge/chat/preset/ios/features/language.md +2 -5
- package/resource/knowledge/chat/preset/ios/features/message-list.md +0 -1
- package/resource/knowledge/chat/preset/ios/features/search.md +0 -1
- package/resource/knowledge/chat/preset/ios/features/theme.md +1 -1
- package/resource/knowledge/chat/preset/ios-uikit/integration.md +57 -166
- package/resource/knowledge/chat/preset/react/features/chat-setting.md +0 -1
- package/resource/knowledge/chat/preset/react/features/conversation-actions.md +3 -3
- package/resource/knowledge/chat/preset/react/features/conversation-list.md +3 -3
- package/resource/knowledge/chat/preset/react/features/conversation-preview.md +1 -1
- package/resource/knowledge/chat/preset/react/features/message-input.md +2 -3
- package/resource/knowledge/chat/preset/react/features/search.md +0 -1
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +1 -1
- package/resource/knowledge/chat/preset/vue/features/chat-setting.md +3 -4
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +4 -4
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +1 -1
- package/resource/knowledge/chat/preset/vue/features/message-input.md +2 -2
- package/resource/knowledge/chat/preset/vue/features/message-list.md +2 -2
- package/resource/knowledge/chat/preset/vue/features/search.md +0 -1
- package/resource/knowledge/chat/preset/vue/features/theme.md +4 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +2 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +12 -15
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +3 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +12 -15
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +2 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +3 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +2 -4
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/vue/capability-matrix.md +82 -0
- package/resource/knowledge/livekit/core-sdk/{voice/android/voice-audio-effect.md → features/android/audio-effect.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/{live/android/live-barrage.md → features/android/barrage.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{live/android/live-base-beauty.md → features/android/base-beauty.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{voice/android/voice-gift.md → features/android/gift.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/{live/android/live-live-list.md → features/android/live-list.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audio-effect.md → features/flutter/audio-effect.md} +0 -2
- package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-barrage.md → features/flutter/barrage.md} +3 -3
- package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-gift.md → features/flutter/gift.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/{voice/flutter/voice-room-list.md → features/flutter/live-list.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audience-list.md → features/ios/audience-list.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-audio-effect.md → features/ios/audio-effect.md} +1 -3
- package/resource/knowledge/livekit/core-sdk/{voice/ios/voice-barrage.md → features/ios/barrage.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/{live/ios/live-base-beauty.md → features/ios/base-beauty.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/{live/ios/live-gift.md → features/ios/gift.md} +8 -9
- package/resource/knowledge/livekit/core-sdk/{live/ios/live-live-list.md → features/ios/live-list.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-audio-effect.md → features/uni-app/audio-effect.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-barrage.md → features/uni-app/barrage.md} +2 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/base-beauty.md +145 -0
- package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-gift.md → features/uni-app/gift.md} +6 -7
- package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-room-list.md → features/uni-app/live-list.md} +1 -1
- package/resource/knowledge/livekit/core-sdk/live/android/{live-co-guest-interaction.md → co-guest-interaction.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/live/android/{live-host-interaction.md → host-interaction.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/live/android/{live-integration.md → integration.md} +6 -9
- package/resource/knowledge/livekit/core-sdk/live/flutter/{live-host-interaction.md → host-interaction.md} +1 -3
- package/resource/knowledge/livekit/core-sdk/live/flutter/{live-integration.md → integration.md} +1 -6
- package/resource/knowledge/livekit/core-sdk/live/ios/{live-co-guest-interaction.md → co-guest-interaction.md} +2 -3
- package/resource/knowledge/livekit/core-sdk/live/ios/{live-host-interaction.md → host-interaction.md} +3 -5
- package/resource/knowledge/livekit/core-sdk/live/ios/{live-integration.md → integration.md} +7 -10
- package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +561 -0
- package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +323 -0
- package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +312 -0
- package/resource/knowledge/livekit/core-sdk/voice/android/{voice-co-guest-interaction.md → co-guest-interaction.md} +3 -3
- package/resource/knowledge/livekit/core-sdk/voice/android/{voice-host-interaction.md → host-interaction.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/voice/android/{voice-integration.md → integration.md} +11 -14
- package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-co-guest-interaction.md → co-guest-interaction.md} +0 -1
- package/resource/knowledge/livekit/core-sdk/voice/flutter/{voice-integration.md → integration.md} +1 -4
- package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-co-guest-interaction.md → co-guest-interaction.md} +3 -3
- package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-host-interaction.md → host-interaction.md} +2 -4
- package/resource/knowledge/livekit/core-sdk/voice/ios/{voice-integration.md → integration.md} +7 -10
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/{voice-co-guest-interaction.md → co-guest-interaction.md} +6 -6
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/{voice-integration.md → integration.md} +6 -7
- package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +2 -3
- package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +1 -1
- package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +1 -1
- package/resource/knowledge/push/api-reference/android.md +337 -0
- package/resource/knowledge/push/api-reference/donut.md +190 -0
- package/resource/knowledge/push/api-reference/flutter.md +176 -0
- package/resource/knowledge/push/api-reference/harmonyos.md +140 -0
- package/resource/knowledge/push/api-reference/ios.md +537 -0
- package/resource/knowledge/push/api-reference/react-native.md +154 -0
- package/resource/knowledge/push/api-reference/uni-app.md +148 -0
- package/resource/knowledge/push/api-reference/unity.md +119 -0
- package/resource/knowledge/push/api-reference/unreal-engine.md +123 -0
- package/resource/knowledge/push/config/android/fcm.md +1 -8
- package/resource/knowledge/push/config/android/honor.md +3 -7
- package/resource/knowledge/push/config/android/huawei.md +0 -5
- package/resource/knowledge/push/config/android/meizu.md +0 -5
- package/resource/knowledge/push/config/android/oppo.md +0 -4
- package/resource/knowledge/push/config/android/vivo.md +0 -4
- package/resource/knowledge/push/config/android/xiaomi.md +0 -2
- package/resource/knowledge/push/config/donut.md +33 -46
- package/resource/knowledge/push/config/harmonyos.md +6 -9
- package/resource/knowledge/push/config/ios.md +2 -9
- package/resource/knowledge/push/config/react-native.md +17 -25
- package/resource/knowledge/push/config/unity.md +16 -24
- package/resource/knowledge/push/config/unreal-engine.md +16 -24
- package/resource/knowledge/push/integration/android.md +21 -21
- package/resource/knowledge/push/integration/donut.md +24 -34
- package/resource/knowledge/push/integration/flutter.md +12 -1
- package/resource/knowledge/push/integration/harmonyos.md +2 -1
- package/resource/knowledge/push/integration/ios.md +16 -10
- package/resource/knowledge/push/integration/react-native.md +10 -14
- package/resource/knowledge/push/integration/uni-app.md +10 -6
- package/resource/knowledge/push/integration/unity.md +19 -22
- package/resource/knowledge/push/integration/unreal-engine.md +7 -9
- package/resource/knowledge/push/overview/prepare.md +2 -2
- package/resource/knowledge/roomkit/core-sdk/android/capability-matrix.md +46 -0
- package/resource/knowledge/roomkit/core-sdk/android/unsupported-features.md +82 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/capability-matrix.md +46 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/flutter/unsupported-features.md +82 -0
- package/resource/knowledge/roomkit/core-sdk/ios/capability-matrix.md +46 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/ios/unsupported-features.md +82 -0
- package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +0 -4
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +2 -5
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +2 -6
- package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -1
- package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +1 -1
- package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +2 -4
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +2 -3
- package/resource/knowledge/roomkit/preset/android/integration.md +14 -16
- package/resource/knowledge/roomkit/preset/flutter/integration.md +9 -17
- package/resource/knowledge/roomkit/preset/ios/integration.md +9 -17
- package/resource/knowledge/roomkit/preset/react/integration.md +0 -4
- package/resource/knowledge/trtc/android/TRTCCloud.md +97 -180
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +20 -20
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +43 -77
- package/resource/knowledge/trtc/android/TRTCStatistics.md +1 -1
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +4 -24
- package/resource/knowledge/trtc/android/TXDeviceManager.md +2 -2
- package/resource/knowledge/trtc/android/TXLiteAVCode.md +1 -1
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +96 -189
- package/resource/knowledge/trtc/c++/ITRTCStatistics.md +1 -1
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +1 -21
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +4 -6
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +42 -76
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +18 -19
- package/resource/knowledge/trtc/c++/TXLiteAVCode.md +1 -1
- package/resource/knowledge/trtc/ios/TRTCCloud.md +95 -181
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +43 -78
- package/resource/knowledge/trtc/ios/TRTCStatistics.md +1 -1
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +1 -20
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +4 -6
- package/resource/knowledge/trtc/ios/TXLiteAVCode.md +1 -1
- package/resource/knowledge/trtc/ios/TXLiveSDKTypeDef.md +20 -20
- package/server-config.js +7 -4
- package/server.js +2 -2
- package/tools/common/finalize_answer.js +1 -1
- package/tools/common/present_framework_choice.js +2 -2
- package/tools/common/search_trtc_knowledge.js +3 -3
- package/tools/common/submit_feedback.js +1 -1
- package/tools/definitions/get_native_live_uikit_integration_def.js +60 -0
- package/tools/definitions/get_native_livekit_core_integration_def.js +1 -1
- package/tools/definitions/present_framework_choice_def.js +2 -2
- package/tools/definitions/search_trtc_knowledge_def.js +5 -5
- package/tools/index.js +2 -0
- package/tools/live/get_native_live_uikit_integration.js +69 -0
- package/tools/live/get_native_livekit_core_integration.js +6 -6
- package/utils/is-valid-sdkappid.js +4 -0
- package/utils/report-cls-client.js +1 -1
- package/utils/report-es-client.js +1 -1
- package/resource/index/component-slugs.json +0 -1
- package/resource/index/doc-source-urls.json +0 -1
- package/resource/index/manifest.json +0 -1
- package/resource/knowledge/livekit/core-sdk/live/android/live-audio-effect.md +0 -229
- package/resource/knowledge/livekit/core-sdk/live/android/live-gift.md +0 -459
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-barrage.md +0 -506
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-gift.md +0 -427
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-live-list.md +0 -726
- package/resource/knowledge/livekit/core-sdk/live/ios/live-audience-list.md +0 -265
- package/resource/knowledge/livekit/core-sdk/live/ios/live-audio-effect.md +0 -214
- package/resource/knowledge/livekit/core-sdk/live/ios/live-barrage.md +0 -427
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-audience-list.md +0 -272
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-barrage.md +0 -486
- package/resource/knowledge/livekit/core-sdk/voice/android/voice-room-list.md +0 -523
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +0 -262
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +0 -600
- package/resource/knowledge/livekit/core-sdk/voice/ios/voice-gift.md +0 -411
- package/resource/knowledge/livekit/core-sdk/voice/ios/voice-room-list.md +0 -404
- /package/resource/knowledge/livekit/core-sdk/api-reference/{web → vue}/index.md +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/android/live-audience-list.md → features/android/audience-list.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-audience-list.md → features/flutter/audience-list.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{live/flutter/live-base-beauty.md → features/flutter/base-beauty.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/{voice/uni-app/voice-audience-list.md → features/uni-app/audience-list.md} +0 -0
- /package/resource/knowledge/livekit/core-sdk/live/flutter/{live-co-guest-interaction.md → co-guest-interaction.md} +0 -0
|
@@ -74,16 +74,26 @@ function postProcess(ranked, chunksById, limit) {
|
|
|
74
74
|
if (topScore > 0 && item.score < topScore * 0.05)
|
|
75
75
|
break;
|
|
76
76
|
}
|
|
77
|
+
const contentWithHint = chunk.contains_code
|
|
78
|
+
? `【代码示例,须与目标端一致】\n${chunk.content}`
|
|
79
|
+
: chunk.content;
|
|
77
80
|
fragments.push({
|
|
78
81
|
rank: fragments.length + 1,
|
|
79
82
|
score: item.score,
|
|
80
83
|
title: chunk.title,
|
|
81
|
-
content:
|
|
84
|
+
content: contentWithHint,
|
|
82
85
|
source: chunk.source,
|
|
83
86
|
doc_urls: resolveFragmentDocUrls(chunk.source, chunk.content, getSourceFileContent(chunk.source)),
|
|
84
87
|
product: chunk.product,
|
|
85
88
|
framework: chunk.framework,
|
|
86
89
|
types: chunk.types,
|
|
90
|
+
variant: chunk.variant,
|
|
91
|
+
scope: chunk.scope,
|
|
92
|
+
doc_kind: chunk.doc_kind,
|
|
93
|
+
capability_status: chunk.capability_status,
|
|
94
|
+
api_names: chunk.api_names,
|
|
95
|
+
contains_code: chunk.contains_code,
|
|
96
|
+
citation: `[来源: ${chunk.id}]`,
|
|
87
97
|
chunk_id: chunk.id,
|
|
88
98
|
});
|
|
89
99
|
if (fragments.length >= limit)
|
|
@@ -112,60 +122,166 @@ function partitionFragments(fragments) {
|
|
|
112
122
|
const urlMappingKinds = [...new Set(urlMapping.map((f) => isUrlMappingSource(f.source)).filter(Boolean))];
|
|
113
123
|
return { urlMapping, localDoc, urlMappingKinds };
|
|
114
124
|
}
|
|
125
|
+
function hasBestPracticeFragment(fragments) {
|
|
126
|
+
return fragments.some((f) => /\/best-practice\//i.test(f.source));
|
|
127
|
+
}
|
|
128
|
+
function inferQueryApiTokens(prompt) {
|
|
129
|
+
const tokens = new Set();
|
|
130
|
+
const upperNoise = new Set(['SDK', 'API', 'HTTP', 'HTTPS', 'JSON', 'CALL', 'NAME', 'STATUS']);
|
|
131
|
+
for (const match of prompt.matchAll(/\b([a-z]+[A-Z][A-Za-z0-9_]*)\b/g)) {
|
|
132
|
+
tokens.add(match[1]);
|
|
133
|
+
}
|
|
134
|
+
for (const match of prompt.matchAll(/\b([A-Z][A-Za-z0-9_]*\.[A-Za-z_][A-Za-z0-9_]*)\b/g)) {
|
|
135
|
+
tokens.add(match[1]);
|
|
136
|
+
}
|
|
137
|
+
for (const match of prompt.matchAll(/\b(use[A-Z]\w*)\b/g)) {
|
|
138
|
+
tokens.add(match[1]);
|
|
139
|
+
}
|
|
140
|
+
for (const match of prompt.matchAll(/\b(I[A-Z][A-Za-z0-9_]*)\b/g)) {
|
|
141
|
+
tokens.add(match[1]);
|
|
142
|
+
}
|
|
143
|
+
for (const match of prompt.matchAll(/\b([A-Z][A-Za-z0-9_]*\.[A-Z_][A-Z0-9_]*)\b/g)) {
|
|
144
|
+
tokens.add(match[1]);
|
|
145
|
+
}
|
|
146
|
+
for (const match of prompt.matchAll(/\b([A-Z_]{3,})\b/g)) {
|
|
147
|
+
const token = match[1];
|
|
148
|
+
if (!upperNoise.has(token))
|
|
149
|
+
tokens.add(token);
|
|
150
|
+
}
|
|
151
|
+
return [...tokens];
|
|
152
|
+
}
|
|
153
|
+
function tokenInChunk(token, chunk) {
|
|
154
|
+
if (chunk.api_names?.some((name) => name.toLowerCase() === token.toLowerCase()))
|
|
155
|
+
return true;
|
|
156
|
+
if (chunk.symbols?.some((name) => name.toLowerCase() === token.toLowerCase()))
|
|
157
|
+
return true;
|
|
158
|
+
const low = token.toLowerCase();
|
|
159
|
+
return chunk.title.toLowerCase().includes(low) || chunk.source.toLowerCase().includes(low);
|
|
160
|
+
}
|
|
161
|
+
function computeApiNameCoverage(tokens, candidates) {
|
|
162
|
+
if (!tokens.length)
|
|
163
|
+
return 1;
|
|
164
|
+
const hit = tokens.filter((token) => candidates.some((chunk) => tokenInChunk(token, chunk))).length;
|
|
165
|
+
return Number((hit / tokens.length).toFixed(2));
|
|
166
|
+
}
|
|
167
|
+
function computeMissingApiTokens(tokens, candidates) {
|
|
168
|
+
if (!tokens.length)
|
|
169
|
+
return [];
|
|
170
|
+
return tokens.filter((token) => !candidates.some((chunk) => tokenInChunk(token, chunk)));
|
|
171
|
+
}
|
|
172
|
+
function applyRankMultipliers(ranked, chunksById, opts) {
|
|
173
|
+
const adjusted = ranked.map((item) => {
|
|
174
|
+
const chunk = chunksById.get(item.id);
|
|
175
|
+
if (!chunk)
|
|
176
|
+
return item;
|
|
177
|
+
let multiplier = 1;
|
|
178
|
+
// A2: 传了 product 时,命中 scope 的通配语料允许召回但降权
|
|
179
|
+
if (opts.product?.length && chunk.product === '*') {
|
|
180
|
+
multiplier *= 0.2;
|
|
181
|
+
}
|
|
182
|
+
// F2: framework 软降权(保留硬过滤,处理 fallback/边界残留)
|
|
183
|
+
if (opts.framework && opts.frameworks?.length && !chunk.framework.includes('*')) {
|
|
184
|
+
const explicitMatch = opts.frameworks.some((fw) => chunk.framework.includes(fw));
|
|
185
|
+
const callCoreWebFallback = Boolean(opts.product?.includes('call')
|
|
186
|
+
&& (opts.framework === 'react' || opts.framework === 'vue')
|
|
187
|
+
&& chunk.variant === 'core-sdk'
|
|
188
|
+
&& chunk.framework.includes('web'));
|
|
189
|
+
const liveWebVueFallback = Boolean(opts.product?.includes('live')
|
|
190
|
+
&& opts.framework === 'web'
|
|
191
|
+
&& chunk.variant === 'core-sdk'
|
|
192
|
+
&& chunk.framework.includes('vue')
|
|
193
|
+
&& chunk.source.includes('/api-reference/'));
|
|
194
|
+
if (!explicitMatch && !callCoreWebFallback && !liveWebVueFallback) {
|
|
195
|
+
multiplier *= 0.2;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return { ...item, score: item.score * multiplier };
|
|
199
|
+
});
|
|
200
|
+
return adjusted.sort((a, b) => b.score - a.score);
|
|
201
|
+
}
|
|
115
202
|
/**
|
|
116
|
-
*
|
|
117
|
-
* - high:top ≥ 50 或有精确命中(exactHits 非空)
|
|
118
|
-
* - medium:top ≥ 10 且 top / second ≥ 1.3(区分度足够)
|
|
119
|
-
* - low:top 较低或与 second 接近(同水位竞争,agent 应谨慎)
|
|
120
|
-
* - none:fragments 为空
|
|
203
|
+
* 多因子置信度评估:exact 命中 + 分数梯度 + API 覆盖度。
|
|
121
204
|
*/
|
|
122
|
-
function assessConfidence(fragments, exactHits) {
|
|
205
|
+
function assessConfidence(fragments, exactHits, apiNameCoverage, queryApiTokens) {
|
|
123
206
|
if (fragments.length === 0) {
|
|
124
207
|
return { confidence: 'none', status: 'empty' };
|
|
125
208
|
}
|
|
126
209
|
const top = fragments[0].score;
|
|
127
210
|
const second = fragments[1]?.score ?? 0;
|
|
128
|
-
if (exactHits.length > 0 || top >= 50) {
|
|
129
|
-
return { confidence: 'high', status: 'success' };
|
|
130
|
-
}
|
|
131
211
|
const ratio = second > 0 ? top / second : Infinity;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
if (top >=
|
|
136
|
-
|
|
212
|
+
let confidence;
|
|
213
|
+
if (exactHits.length > 0 || top >= 50)
|
|
214
|
+
confidence = 'high';
|
|
215
|
+
else if (top >= 12 && ratio >= 1.25)
|
|
216
|
+
confidence = 'medium';
|
|
217
|
+
else if (top >= 6 && ratio >= 1.12)
|
|
218
|
+
confidence = 'medium';
|
|
219
|
+
else
|
|
220
|
+
confidence = 'low';
|
|
221
|
+
// D2: API 覆盖过低时,confidence 上限降为 low
|
|
222
|
+
if (queryApiTokens.length > 0 && apiNameCoverage < 0.3) {
|
|
223
|
+
confidence = 'low';
|
|
137
224
|
}
|
|
138
|
-
|
|
225
|
+
const status = confidence === 'low' ? 'low_confidence' : 'success';
|
|
226
|
+
return { confidence, status };
|
|
227
|
+
}
|
|
228
|
+
function buildAnswerContract(status, confidence, opts) {
|
|
229
|
+
const uncertaintyRule = status === 'low_confidence' || confidence === 'low'
|
|
230
|
+
? '当信息不足时必须显式写“待确认:”,只允许陈述缺口,不允许猜测补全。'
|
|
231
|
+
: '除“待确认:”段落外,不得出现“可能/大概/应该/推测”等猜测措辞。';
|
|
232
|
+
const riskRule = opts?.fabricationRisk
|
|
233
|
+
? 'fabrication_risk=true 时,若片段未覆盖该细节,必须输出“待确认:知识片段未覆盖此项”。'
|
|
234
|
+
: '';
|
|
235
|
+
return [
|
|
236
|
+
'【输出模板(必须遵守)】',
|
|
237
|
+
'使用“问题导向”标题组织答案,优先复用用户提问原句:一、<问题1> 二、<问题2> 三、<问题3> …',
|
|
238
|
+
'每个小节先给直接结论,再补 1-2 句必要说明;避免模板化术语(如“依据/操作”字样)。',
|
|
239
|
+
'信息缺口统一放在对应小节末尾,使用“待确认:xxx”;若全都确认则可省略“待确认”小节。',
|
|
240
|
+
'末尾保留“参考文档”小节,仅列文档标题或 URL;正文不展示检索过程、证据链、打分细节。',
|
|
241
|
+
'用户可见正文禁止出现系统检索话术(如“命中片段/检索结果/置信度/分数/召回/重排”)。',
|
|
242
|
+
'硬约束:不得引入 fragments 未出现的 API 名、字段值、枚举项、事件名。',
|
|
243
|
+
uncertaintyRule,
|
|
244
|
+
riskRule,
|
|
245
|
+
].filter(Boolean).join(' ');
|
|
139
246
|
}
|
|
140
|
-
function buildAgentMessage(status, fragments, confidence,
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
const tail = `${
|
|
247
|
+
function buildAgentMessage(status, fragments, confidence, _references, opts) {
|
|
248
|
+
const platformRule = '端别硬规则:字段/API 描述前先标注【端别: framework】;禁止“部分版本也称 xxx”这类跨端混写;字段大小写必须与目标端文档一致;多端片段同时命中时主答案仅讲目标端,其他端差异放末尾简述;无片段覆盖的细节禁止补全。';
|
|
249
|
+
const riskRule = opts?.fabricationRisk ? '当前检索存在幻觉风险(fabrication_risk=true):禁止补全未命中 API 细节。' : '';
|
|
250
|
+
const answerContract = buildAnswerContract(status, confidence, opts);
|
|
251
|
+
const tail = `${platformRule} ${riskRule} ${answerContract} Final answer drafted -> MUST call \`finalize_answer\` before replying. Explicit follow-up feedback -> call \`submit_feedback\`.`;
|
|
145
252
|
if (status === 'needs_framework') {
|
|
146
|
-
return '【硬规则】问题依赖具体平台实现,但未指定
|
|
253
|
+
return '【硬规则】问题依赖具体平台实现,但未指定 frameworks,全平台混检信息密度低且被禁止。MUST 先调用 `present_framework_choice`(传入 product),等用户选定 web/miniprogram/android/ios/flutter/react/vue/uni-app 等后再调用本工具,并 MUST 带上 **product + frameworks**。禁止传空 frameworks 硬搜。';
|
|
147
254
|
}
|
|
148
255
|
const { urlMapping, localDoc, urlMappingKinds } = partitionFragments(fragments);
|
|
149
256
|
const hasUrlMapping = urlMapping.length > 0;
|
|
150
257
|
const hasLocalDoc = localDoc.length > 0;
|
|
258
|
+
const hasBestPractice = hasBestPracticeFragment(fragments);
|
|
151
259
|
const urlKindLabel = urlMappingKinds.join(' / ') || 'urls';
|
|
152
260
|
if (status === 'success' && fragments.length > 0) {
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
261
|
+
const topFragment = fragments[0];
|
|
262
|
+
if (topFragment?.capability_status === 'unsupported') {
|
|
263
|
+
const scopeLabel = topFragment.scope ? `(${topFragment.scope})` : '';
|
|
264
|
+
return `当前问题在该平台 / 形态下 **不支持**${scopeLabel}。回答 MUST:① 第一段先明确写“**不支持**”;② 说明这是当前平台 Core 的能力边界,而不是缺少示例代码;③ 仅提供当前平台已支持的替代方案(如对应平台 preset 预制 UI);若当前知识库未给出明确替代形态,应直接说明暂无可执行替代路径;④ **禁止**输出当前平台 Core 的 API 调用步骤或集成步骤。${tail}`;
|
|
265
|
+
}
|
|
156
266
|
if (hasUrlMapping && !hasLocalDoc) {
|
|
157
|
-
return
|
|
267
|
+
return `当前可用信息主要是文档入口链接(${urlKindLabel})。请先匹配用户问题对应的目标 URL,抓取官网文档后再合成答案;禁止仅复述映射表或臆造 API/错误码细节。${tail}`;
|
|
158
268
|
}
|
|
159
269
|
if (hasUrlMapping && hasLocalDoc) {
|
|
160
|
-
|
|
270
|
+
if (hasBestPractice) {
|
|
271
|
+
return `优先基于已命中的 best-practice 与本地片段直接作答;URL 映射仅作补充参考,不要再抓官网做二次求证。${tail}`;
|
|
272
|
+
}
|
|
273
|
+
return `本地文档片段可直接用于作答;若本地片段未覆盖关键细节,再从 URL 映射中提取目标 URL 抓取官网文档补齐。${tail}`;
|
|
161
274
|
}
|
|
162
|
-
return
|
|
275
|
+
return `请仅基于已返回 fragments 合成答案;不要并行 web_search 或额外抓取官网文档。${tail}`;
|
|
163
276
|
}
|
|
164
277
|
if (status === 'low_confidence') {
|
|
165
278
|
if (hasUrlMapping) {
|
|
166
|
-
|
|
279
|
+
if (hasBestPractice) {
|
|
280
|
+
return `优先基于 best-practice 与本地片段给出可执行结论;未覆盖的内容统一写入“待确认”,不要默认抓官网二次求证。${tail}`;
|
|
281
|
+
}
|
|
282
|
+
return `请先从 URL 映射里提取目标 URL 并抓取官网文档补齐关键信息,再给出答案;仍无法确认的内容明确写“待确认”。${tail}`;
|
|
167
283
|
}
|
|
168
|
-
return
|
|
284
|
+
return `请基于已有 fragments 给出最可执行答案,并将未覆盖细节明确写为“待确认”;可引导用户补充组件名/API 名/错误码后重新检索。不要默认并行 web_search。${tail}`;
|
|
169
285
|
}
|
|
170
286
|
return `知识库未命中有效片段。请向用户说明并确认 product/framework 是否准确;若仍无 platform 信息且问题依赖具体客户端,应先 \`present_framework_choice\`。${tail}`;
|
|
171
287
|
}
|
|
@@ -188,42 +304,103 @@ export function searchKnowledge(params) {
|
|
|
188
304
|
}
|
|
189
305
|
const manifest = loadManifest();
|
|
190
306
|
const allChunks = manifest.chunks;
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
307
|
+
const queryApiTokens = inferQueryApiTokens(norm.prompt);
|
|
308
|
+
const runSearchPass = (passNorm, opts) => {
|
|
309
|
+
let pool = filterPool(allChunks, passNorm);
|
|
310
|
+
// types 误传自愈:首轮保留,二次扩检也同样保留该能力
|
|
311
|
+
if (pool.length === 0 && passNorm.types?.length) {
|
|
312
|
+
pool = filterPool(allChunks, { ...passNorm, types: undefined });
|
|
313
|
+
}
|
|
314
|
+
const { boosts, exactHits } = runExactLookup(passNorm.prompt, pool, passNorm);
|
|
315
|
+
// A2 补充正向路由:UserSig 问法下允许 share 命中且优先于无关 urls 噪声
|
|
316
|
+
if (/usersig|sdkappid|secretkey|鉴权|签名|gentestusersig/i.test(passNorm.prompt)) {
|
|
317
|
+
for (const chunk of pool) {
|
|
318
|
+
if (chunk.product === '*' && chunk.source.includes('knowledge/share/userSig.md')) {
|
|
319
|
+
boosts[chunk.id] = (boosts[chunk.id] ?? 0) + 220;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
// B2: API 覆盖不足扩检时,对 api/integration 语料做轻量重排提权
|
|
324
|
+
if (opts?.apiRetry) {
|
|
325
|
+
for (const chunk of pool) {
|
|
326
|
+
if (chunk.types.includes('api') || chunk.types.includes('integration')) {
|
|
327
|
+
boosts[chunk.id] = (boosts[chunk.id] ?? 0) + 40;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
const productIndex = getProductsBM25Index(allChunks, passNorm.product);
|
|
332
|
+
const poolWithContent = attachPoolContent(pool);
|
|
333
|
+
const chunksById = new Map(poolWithContent.map((chunk) => [chunk.id, chunk]));
|
|
334
|
+
const ranked = rankSubsetWithIndex(passNorm.prompt, pool.map((chunk) => chunk.id), productIndex, boosts);
|
|
335
|
+
const rankedWithMultipliers = applyRankMultipliers(ranked, chunksById, {
|
|
336
|
+
product: passNorm.product,
|
|
337
|
+
framework: passNorm.framework,
|
|
338
|
+
frameworks: passNorm.frameworks,
|
|
339
|
+
});
|
|
340
|
+
const fragments = postProcess(rankedWithMultipliers, chunksById, passNorm.limit);
|
|
341
|
+
const urlMappingSources = [...new Set(fragments.map((f) => f.source).filter((source) => isUrlMappingSource(source)))];
|
|
342
|
+
const references = buildReferences(fragments);
|
|
343
|
+
const apiNameCoverage = computeApiNameCoverage(queryApiTokens, poolWithContent);
|
|
344
|
+
const missingApiTokens = computeMissingApiTokens(queryApiTokens, poolWithContent);
|
|
345
|
+
return {
|
|
346
|
+
pool,
|
|
347
|
+
fragments,
|
|
348
|
+
exactHits,
|
|
349
|
+
urlMappingSources,
|
|
350
|
+
references,
|
|
351
|
+
apiNameCoverage,
|
|
352
|
+
missingApiTokens,
|
|
353
|
+
};
|
|
354
|
+
};
|
|
355
|
+
let pass = runSearchPass(norm);
|
|
356
|
+
let retryReason;
|
|
357
|
+
// B2: API token 覆盖不足时触发一次扩检(去掉 types 约束 + api/integration 轻提权)
|
|
358
|
+
const missingRatio = queryApiTokens.length > 0
|
|
359
|
+
? Number((pass.missingApiTokens.length / queryApiTokens.length).toFixed(2))
|
|
360
|
+
: 0;
|
|
361
|
+
if (queryApiTokens.length > 0 && (pass.apiNameCoverage === 0 || missingRatio >= 0.3)) {
|
|
362
|
+
const retryPass = runSearchPass({ ...norm, types: undefined }, { apiRetry: true });
|
|
363
|
+
const retryMissingRatio = queryApiTokens.length > 0
|
|
364
|
+
? Number((retryPass.missingApiTokens.length / queryApiTokens.length).toFixed(2))
|
|
365
|
+
: 0;
|
|
366
|
+
if (retryPass.apiNameCoverage > pass.apiNameCoverage
|
|
367
|
+
|| retryMissingRatio < missingRatio
|
|
368
|
+
|| (pass.fragments.length === 0 && retryPass.fragments.length > 0)) {
|
|
369
|
+
pass = retryPass;
|
|
370
|
+
retryReason = `api_gap_retry:coverage=${pass.apiNameCoverage},missing_ratio=${retryMissingRatio}`;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
const routeInconsistencyWarning = pass.fragments.length > 0
|
|
374
|
+
? pass.fragments.filter((f) => f.product === '*').length / pass.fragments.length > 0.3
|
|
375
|
+
: false;
|
|
376
|
+
const { confidence, status } = assessConfidence(pass.fragments, pass.exactHits, pass.apiNameCoverage, queryApiTokens);
|
|
377
|
+
const fabricationRisk = (queryApiTokens.length > 0 && pass.apiNameCoverage < 0.3)
|
|
378
|
+
|| (confidence === 'low' && pass.fragments.length < 2);
|
|
379
|
+
const topScore = pass.fragments[0]?.score;
|
|
380
|
+
const secondScore = pass.fragments[1]?.score;
|
|
381
|
+
const answerContract = buildAnswerContract(status, confidence, { fabricationRisk });
|
|
212
382
|
return {
|
|
213
383
|
status,
|
|
214
384
|
confidence,
|
|
215
|
-
message: buildAgentMessage(status, fragments, confidence, references),
|
|
385
|
+
message: buildAgentMessage(status, pass.fragments, confidence, pass.references, { fabricationRisk }),
|
|
216
386
|
query: params,
|
|
217
387
|
meta: {
|
|
218
388
|
pool_size: allChunks.length,
|
|
219
|
-
filtered_size: pool.length,
|
|
220
|
-
exact_hits: exactHits,
|
|
221
|
-
...(urlMappingSources.length ? { url_mapping_sources: urlMappingSources } : {}),
|
|
222
|
-
...(references.length ? { references } : {}),
|
|
389
|
+
filtered_size: pass.pool.length,
|
|
390
|
+
exact_hits: pass.exactHits,
|
|
391
|
+
...(pass.urlMappingSources.length ? { url_mapping_sources: pass.urlMappingSources } : {}),
|
|
392
|
+
...(pass.references.length ? { references: pass.references } : {}),
|
|
223
393
|
...(topScore !== undefined ? { top_score: Number(topScore.toFixed(2)) } : {}),
|
|
224
394
|
...(secondScore !== undefined ? { second_score: Number(secondScore.toFixed(2)) } : {}),
|
|
395
|
+
...(queryApiTokens.length ? { query_api_tokens: queryApiTokens } : {}),
|
|
396
|
+
...(pass.missingApiTokens.length ? { missing_api_tokens: pass.missingApiTokens } : {}),
|
|
397
|
+
...(retryReason ? { retry_reason: retryReason } : {}),
|
|
398
|
+
answer_contract: answerContract,
|
|
399
|
+
api_name_coverage: pass.apiNameCoverage,
|
|
400
|
+
fabrication_risk: fabricationRisk,
|
|
401
|
+
route_inconsistency_warning: routeInconsistencyWarning,
|
|
225
402
|
},
|
|
226
|
-
fragments,
|
|
403
|
+
fragments: pass.fragments,
|
|
227
404
|
};
|
|
228
405
|
}
|
|
229
406
|
export { normalizeParams, filterPool };
|
package/package.json
CHANGED
|
@@ -4,6 +4,7 @@ live:
|
|
|
4
4
|
live-co-guest-interaction.md: ["连麦", "观众连麦", "co_guest", "CoGuest"]
|
|
5
5
|
live-host-interaction.md: ["PK", "主播连线", "co_host"]
|
|
6
6
|
live-base-beauty.md: ["美颜", "base_beauty"]
|
|
7
|
+
live-list.md: ["直播列表", "房间列表", "live_list", "房间大厅"]
|
|
7
8
|
voice-co-guest-interaction.md: ["语聊房上麦", "上麦", "voice co guest", "co guest"]
|
|
8
9
|
room:
|
|
9
10
|
screen-share.md: ["屏幕分享", "screen share", "startScreenShare"]
|
|
@@ -52,7 +52,6 @@ dependencies {
|
|
|
52
52
|
|
|
53
53
|
> **说明:**
|
|
54
54
|
>
|
|
55
|
-
|
|
56
55
|
> TUICallKit 工程内部已经默认依赖:`TRTC SDK`、`IM SDK`、`tuicallengine` 以及公共库 `tuicore`,不需要开发者单独配置。如需进行版本升级,则修改`tuicallkit-kt/build.gradle`文件中的版本号即可。
|
|
57
56
|
>
|
|
58
57
|
|
|
@@ -77,12 +76,12 @@ dependencies {
|
|
|
77
76
|
|
|
78
77
|
> **说明:**
|
|
79
78
|
>
|
|
80
|
-
|
|
81
79
|
> 如果您集成 tuicallkit-kt 后报如下错误:
|
|
82
80
|
>
|
|
83
|
-
|
|
81
|
+
>
|
|
84
82
|
> 原因是 AGP 8.0+ 要求 Gradle 运行时使用 Java 17 或更高版本。您可以在 Android Studio 中点击 Tools -> SDK Manager -> Build,Execution,Deployment -> Build Tools -> Gradle 配置 Gradle JDK 版本为 17 解决该问题
|
|
85
83
|
>
|
|
84
|
+
>
|
|
86
85
|
|
|
87
86
|
### 步骤3:登录
|
|
88
87
|
|
|
@@ -421,7 +420,7 @@ TUICallKit.createInstance(this).join(callId, new CompletionHandler() {
|
|
|
421
420
|
### 设置语言
|
|
422
421
|
- **支持的语言:**目前支持**简体中文、繁体中文、英文、日文和阿拉伯语。**
|
|
423
422
|
|
|
424
|
-
- **切换语言:**TUICallKit 默认语言与手机系统保持一致 。如果需要切换语言,可以使用 `TUIThemeManager.getInstance().changeLanguage
|
|
423
|
+
- **切换语言:**TUICallKit 默认语言与手机系统保持一致 。如果需要切换语言,可以使用 `TUIThemeManager.getInstance().changeLanguage` 方法设置语言,以设置语言为英文的示例代码如下**。**
|
|
425
424
|
|
|
426
425
|
【Kotlin】
|
|
427
426
|
``` java
|
|
@@ -459,7 +458,6 @@ public class MainActivity extends BaseActivity {
|
|
|
459
458
|
|
|
460
459
|
> **说明:**
|
|
461
460
|
>
|
|
462
|
-
|
|
463
461
|
>
|
|
464
462
|
|
|
465
463
|
### 设置铃声
|
|
@@ -87,12 +87,12 @@ android {
|
|
|
87
87
|
|
|
88
88
|
> **注意:**
|
|
89
89
|
>
|
|
90
|
-
|
|
91
90
|
> 由于 tencent_rtc_sdk 通过 Flutter FFI 调用接口,iOS Release 构建时 Xcode 的符号裁剪优化可能误移除 TRTC 的 C 符号,引发 `symbol not found` 错误。解决方案如下:
|
|
92
91
|
>
|
|
93
92
|
> 1. 在项目的 Build Settings 中找到 **Deployment Postprocessing**,将其设置为 **Yes 。**
|
|
94
|
-
|
|
93
|
+
>
|
|
95
94
|
> 2. 在项目的 Build Settings 中找到 **Strip Style**,将其中 Release 的值设置为 **Non-Global Symbols 。**
|
|
95
|
+
>
|
|
96
96
|
|
|
97
97
|
- Flutter 工程配置
|
|
98
98
|
|
|
@@ -301,7 +301,6 @@ void join() {
|
|
|
301
301
|
|
|
302
302
|
> **说明:**
|
|
303
303
|
>
|
|
304
|
-
|
|
305
304
|
>
|
|
306
305
|
|
|
307
306
|
### 铃声设置
|
|
@@ -64,7 +64,6 @@ pod init
|
|
|
64
64
|
|
|
65
65
|
> **提示:**
|
|
66
66
|
>
|
|
67
|
-
|
|
68
67
|
> 安装完成后,使用 `YourProjectName.xcworkspace` 文件打开项目
|
|
69
68
|
>
|
|
70
69
|
|
|
@@ -177,7 +176,6 @@ TUICallKit.createInstance().setSelfInfo(nickname: "jack", avatar: "https:/****/u
|
|
|
177
176
|
|
|
178
177
|
> **注意:**
|
|
179
178
|
>
|
|
180
|
-
|
|
181
179
|
> calls 接口不能写在 viewDidLoad 方法中,应放在按钮的点击事件或其他用户交互的响应方法中调用。
|
|
182
180
|
>
|
|
183
181
|
|
|
@@ -330,7 +328,6 @@ func setLanguage() {
|
|
|
330
328
|
|
|
331
329
|
> **说明:**
|
|
332
330
|
>
|
|
333
|
-
|
|
334
331
|
>
|
|
335
332
|
|
|
336
333
|
### 铃声设置
|
|
@@ -402,9 +399,9 @@ TUICallKit.createInstance().enableMuteMode(enable: true)
|
|
|
402
399
|
|
|
403
400
|
**支持**,如需要进入后台仍然运行相关功能,可选中当前工程项目,在 **Capabilities** 下的 **Background Modes** 模块中勾选 **Audio,AirPlay, and Picture in Picture** ,如下图所示:
|
|
404
401
|
|
|
405
|
-
### Xcode 出现 **Sandbox: rsync
|
|
402
|
+
### Xcode 出现 **Sandbox: rsync** 编译报错?
|
|
406
403
|
|
|
407
|
-
可以在 **Build Settings
|
|
404
|
+
可以在 **Build Settings** 中把 **User Script Sandboxing** 设置为 **NO:**
|
|
408
405
|
|
|
409
406
|
如果您在接入和使用中遇到其他问题,请参见 常见问题。
|
|
410
407
|
|
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
> **推荐使用更高效的 AI 集成助手**
|
|
4
4
|
>
|
|
5
|
-
|
|
6
5
|
> 我们为您提供了全新的 AI 集成方式,只需要简单描述您的需求,即可**自动生成集成代码**,大幅提升开发效率。
|
|
7
6
|
>
|
|
8
|
-
|
|
9
|
-
> [点击这里,立即体验 AI 集成](https://cloud.tencent.com/document/product/647/125504)
|
|
7
|
+
> [点击这里,立即体验 AI 集成](https://cloud.tencent.com/document/product/647/125504)
|
|
10
8
|
>
|
|
11
9
|
|
|
12
10
|
## 准备工作
|
|
@@ -28,7 +26,6 @@
|
|
|
28
26
|
|
|
29
27
|
> **说明:**
|
|
30
28
|
>
|
|
31
|
-
|
|
32
29
|
> 高版本 Vite 需要使用最新的 Node.js 版本。
|
|
33
30
|
>
|
|
34
31
|
|
|
@@ -106,7 +103,7 @@ xcopy node_modules\@trtc\calls-uikit-react\debug .\src\debug /i /e
|
|
|
106
103
|
|
|
107
104
|
.demo-wrapper { max-width: 680px; margin: 40px auto; padding: 0 20px; font-family: system-ui, -apple-system, sans-serif; } .demo-card { background: #fff; border-radius: 16px; box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08); padding: 32px; margin-bottom: 24px; } .demo-title { margin: 0 0 28px; font-size: 22px; font-weight: 600; color: #1a1a2e; text-align: center; } .form-row { margin-bottom: 18px; } .form-row:last-of-type { margin-bottom: 0; } .form-label { display: block; font-size: 14px; font-weight: 600; color: #6b7280; letter-spacing: 0.5px; margin-bottom: 8px; } .form-controls { display: flex; gap: 10px; } .form-input { flex: 1; height: 42px; padding: 0 14px; border: 1.5px solid #e5e7eb; border-radius: 10px; font-size: 15px; color: #1a1a2e; background: #fafafa; outline: none; transition: border-color 0.2s, box-shadow 0.2s; } .form-input:focus { border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15); background: #fff; } .form-input::placeholder { color: #c0c4cc; } .btn { height: 42px; padding: 0 20px; border: none; border-radius: 10px; font-size: 14px; font-weight: 600; cursor: pointer; white-space: nowrap; transition: transform 0.15s, box-shadow 0.2s, background 0.2s; } .btn:active { transform: scale(0.97); } .btn-primary { background: linear-gradient(135deg, #6366f1, #818cf8); color: #fff; box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3); } .btn-primary:hover { background: linear-gradient(135deg, #4f46e5, #6366f1); box-shadow: 0 4px 14px rgba(99, 102, 241, 0.4); } .btn-success { background: linear-gradient(135deg, #10b981, #34d399); color: #fff; box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3); } .btn-success:hover { background: linear-gradient(135deg, #059669, #10b981); box-shadow: 0 4px 14px rgba(16, 185, 129, 0.4); } .callkit-area { background: #fff; border-radius: 16px; box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08); overflow: hidden; }
|
|
108
105
|
```
|
|
109
|
-
4. 调用 [TUICallKitAPI.init](https://cloud.tencent.com/document/product/647/81015#init) API
|
|
106
|
+
4. 调用 [TUICallKitAPI.init](https://cloud.tencent.com/document/product/647/81015#init) API 登录组件,需要在代码中**填写** `SDKAppID、SecretKey` **两个参数。**
|
|
110
107
|
|
|
111
108
|
``` javascript
|
|
112
109
|
const SDKAppID = 0; // TODO: Replace with your SDKAppID (Notice: SDKAppID is of type number)
|
|
@@ -139,8 +136,8 @@ xcopy node_modules\@trtc\calls-uikit-react\debug .\src\debug /i /e
|
|
|
139
136
|
|
|
140
137
|
> **userSig 说明:**
|
|
141
138
|
>
|
|
142
|
-
>
|
|
143
|
-
>
|
|
139
|
+
> - **开发环境**:如果您正在本地跑通 Demo、开发调试,可以采用 `debug` 文件中的 `genTestUserSig`(参考步骤3.2)函数生成 userSig。该方法中 SDKSecretKey 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量。
|
|
140
|
+
> - **生产环境**:如果您的项目要发布上线,请采用 [服务端生成 UserSig](https://trtc.io/document/35166) 的方式。
|
|
144
141
|
|
|
145
142
|
### 步骤3:设置昵称和头像(可选)
|
|
146
143
|
|
|
@@ -158,7 +155,6 @@ try {
|
|
|
158
155
|
|
|
159
156
|
> **注意:**
|
|
160
157
|
>
|
|
161
|
-
|
|
162
158
|
> 因为用户隐私限制,非好友之间的通话,被叫的昵称和头像更新可能会有延迟,一次通话成功后就会顺利更新。
|
|
163
159
|
>
|
|
164
160
|
|
|
@@ -180,13 +176,12 @@ try {
|
|
|
180
176
|
|
|
181
177
|
> **注意:**
|
|
182
178
|
>
|
|
183
|
-
|
|
184
179
|
> 本地环境请在 localhost 协议下访问,公网体验请在 HTTPS 协议下访问,具体参见 [网络访问协议说明](https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/tutorial-05-info-browser.html#h2-3)。
|
|
185
180
|
>
|
|
186
181
|
|
|
187
182
|
3. 打开两个浏览器页面,输入不同的 userID(由您定义) 单击`step1. init`登录(主叫方和被叫方)。
|
|
188
183
|
|
|
189
|
-
4. 两个 userID 都登录成功后,单击`step2. call
|
|
184
|
+
4. 两个 userID 都登录成功后,单击`step2. call` 拨打通话,如果您有通话问题,参见 [常见问题](https://cloud.tencent.com/document/product/647/78769)。
|
|
190
185
|
|
|
191
186
|
### 步骤5:接听通话
|
|
192
187
|
|
|
@@ -198,7 +193,6 @@ try {
|
|
|
198
193
|
|
|
199
194
|
> **说明:**
|
|
200
195
|
>
|
|
201
|
-
|
|
202
196
|
> v4.4.5 版本及以上支持。
|
|
203
197
|
>
|
|
204
198
|
|
|
@@ -278,7 +272,6 @@ TUICallKitAPI.setLanguage("zh-cn"); // "en" | "zh-cn" | "ja_JP"
|
|
|
278
272
|
|
|
279
273
|
> **说明:**
|
|
280
274
|
>
|
|
281
|
-
|
|
282
275
|
>
|
|
283
276
|
|
|
284
277
|
### 铃声设置
|
|
@@ -288,9 +281,9 @@ TUICallKitAPI.setLanguage("zh-cn"); // "en" | "zh-cn" | "ja_JP"
|
|
|
288
281
|
|
|
289
282
|
> **注意:**
|
|
290
283
|
>
|
|
291
|
-
>
|
|
292
|
-
>
|
|
293
|
-
>
|
|
284
|
+
> - 仅限传入本地 MP3 格式的文件地址,确保该文件是可以访问的。
|
|
285
|
+
> - 如需恢复默认铃声 filePath 传空即可。
|
|
286
|
+
> - 使用 ES6 import 方式引入铃声文件。
|
|
294
287
|
|
|
295
288
|
``` typescript
|
|
296
289
|
import filePath from './static/ring.mp3';
|
|
@@ -326,8 +319,7 @@ TUICallKitAPI.setLanguage("zh-cn"); // "en" | "zh-cn" | "ja_JP"
|
|
|
326
319
|
|
|
327
320
|
> **注意:**
|
|
328
321
|
>
|
|
329
|
-
|
|
330
|
-
> 替换图标适用于 **Vue + TypeScript** 项目且** CallKit** 版本号 ≥ 3.2.2,若您采用其他语言或者技术栈,请使用自实现 UI 方案。
|
|
322
|
+
> 替换图标适用于 **Vue + TypeScript** 项目且 **CallKit** 版本号 ≥ 3.2.2,若您采用其他语言或者技术栈,请使用自实现 UI 方案。
|
|
331
323
|
>
|
|
332
324
|
|
|
333
325
|
1. **下载源码**
|
|
@@ -337,7 +329,7 @@ TUICallKitAPI.setLanguage("zh-cn"); // "en" | "zh-cn" | "ja_JP"
|
|
|
337
329
|
npm install @trtc/calls-uikit-react
|
|
338
330
|
```
|
|
339
331
|
|
|
340
|
-
2.
|
|
332
|
+
2. **将源码拷贝到自己的项目中,以拷贝到** `src/components/` **目录为例:**
|
|
341
333
|
|
|
342
334
|
【macOS + React】
|
|
343
335
|
``` bash
|
|
@@ -356,9 +348,7 @@ xcopy .\node_modules\@trtc\calls-uikit-react .\src\components\TUICallKit /i /e
|
|
|
356
348
|
``` javascript
|
|
357
349
|
import { TUICallKit, TUICallKitAPI, CallMediaType } from "./components/TUICallKit/src/index";
|
|
358
350
|
```
|
|
359
|
-
4.
|
|
360
|
-
|
|
361
|
-
**解决源码拷贝可能导致的报错**
|
|
351
|
+
4. **解决源码拷贝可能导致的报错**
|
|
362
352
|
|
|
363
353
|
【ESLint 报错】
|
|
364
354
|
|
|
@@ -390,11 +380,10 @@ src/components/TUICallKit
|
|
|
390
380
|
}
|
|
391
381
|
```
|
|
392
382
|
|
|
393
|
-
|
|
383
|
+
5. **修改 TUICallKit/Components/assets 文件夹下的图标组件**
|
|
394
384
|
|
|
395
385
|
> **注意:**
|
|
396
386
|
>
|
|
397
|
-
|
|
398
387
|
> 为了确保整个应用中的图标色调风格保持一致,请在替换时保持图标文件的名字不变。
|
|
399
388
|
>
|
|
400
389
|
|
|
@@ -428,7 +417,6 @@ src/components/TUICallKit
|
|
|
428
417
|
|
|
429
418
|
> **注意:**
|
|
430
419
|
>
|
|
431
|
-
|
|
432
420
|
> **v3.2.9+ 支持**。
|
|
433
421
|
>
|
|
434
422
|
|
|
@@ -447,7 +435,6 @@ TUICallKitAPI.hideFeatureButton(FeatureButton.Camera);
|
|
|
447
435
|
|
|
448
436
|
> **注意:**
|
|
449
437
|
>
|
|
450
|
-
|
|
451
438
|
> **v3.2.9+ 支持**。
|
|
452
439
|
>
|
|
453
440
|
|
|
@@ -463,7 +450,6 @@ TUICallKitAPI.setRemoteViewBackgroundImage('remoteUserId', 'http://xxx.png');
|
|
|
463
450
|
|
|
464
451
|
> **注意:**
|
|
465
452
|
>
|
|
466
|
-
|
|
467
453
|
> **仅 1V1 视频通话可用,v3.3.0+ 支持**。
|
|
468
454
|
>
|
|
469
455
|
|