From 6d606580e07a6ccb1cf79f8ae678af5ab800cdeb Mon Sep 17 00:00:00 2001 From: fanlusky <1730976608@qq.com> Date: Sat, 20 Jun 2026 21:38:38 +0800 Subject: [PATCH] Fix the trigger condition for cloud prediction. --- server/src/session/engine_input_session.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/server/src/session/engine_input_session.cpp b/server/src/session/engine_input_session.cpp index 6c584dca..c4d15d6b 100644 --- a/server/src/session/engine_input_session.cpp +++ b/server/src/session/engine_input_session.cpp @@ -259,6 +259,25 @@ IInputSession::SelectionTransition EngineInputSession::advance_composition_after IInputSession::CloudQueryState EngineInputSession::get_cloud_query_state() const { CloudQueryState state; + if (is_shuangpin()) + { + const auto &pinyin_with_cases = get_pinyin_sequence_with_cases(); + if (!pinyin_with_cases.empty() && pinyin_with_cases.size() % 2 == 0) + { + const char last = pinyin_with_cases.back(); + state.should_query = last >= 'a' && last <= 'z'; + } + + if (state.should_query) + { + state.query_text = request().normalized_input; + } + + state.cache_key = request().raw_input; + state.committed_pinyin = request().normalized_input; + return state; + } + state.should_query = !request().normalized_input.empty(); state.query_text = request().normalized_input; state.cache_key = request().raw_input;