refactor(captain): clarify v1 handoff checks

This commit is contained in:
aakashb95
2026-05-01 02:37:35 +05:30
parent f8d461d289
commit 276e2c5f16
2 changed files with 17 additions and 8 deletions
@@ -106,7 +106,11 @@ class Captain::Conversation::ResponseBuilderJob < ApplicationJob
end
def v1_handoff_requested?
@response['action'] == 'handoff' || legacy_v1_handoff_token?
legacy_v1_handoff_token? || classifier_v1_handoff_requested?
end
def classifier_v1_handoff_requested?
@response['action'] == 'handoff'
end
def legacy_v1_handoff_token?
@@ -25,13 +25,7 @@ module Captain::Conversation::V1ActionClassifier
def apply_v1_action_classification(classification)
action = classification['action']
unless Captain::Llm::AssistantActionClassifierService::VALID_ACTIONS.include?(action)
Rails.logger.warn(
"[CAPTAIN][ResponseBuilderJob] V1 action classifier returned invalid action for account=#{account.id} " \
"conversation=#{@conversation.display_id}: #{classification['error'] || classification['raw_response']}"
)
return
end
return log_invalid_v1_action_classification(classification) unless valid_v1_action_classification?(action)
@response.merge!(
'action' => action,
@@ -51,4 +45,15 @@ module Captain::Conversation::V1ActionClassifier
"prompt_version=#{classification['prompt_version']}"
)
end
def valid_v1_action_classification?(action)
Captain::Llm::AssistantActionClassifierService::VALID_ACTIONS.include?(action)
end
def log_invalid_v1_action_classification(classification)
Rails.logger.warn(
'[CAPTAIN][ResponseBuilderJob] V1 action classifier returned invalid action; falling back to assistant response ' \
"for account=#{account.id} conversation=#{@conversation.display_id}: #{classification['error'] || classification['raw_response']}"
)
end
end