// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

edition = "2023";

package optimization_guide.proto;

import "components/optimization_guide/proto/model_quality_metadata.proto";

option optimize_for = LITE_RUNTIME;
option java_package = "org.chromium.components.optimization_guide.features.proto";

option java_outer_classname = "ScamDetectionProto";

// DO NOT EDIT THIS FILE DIRECTLY!
//
// This file is generated in g3 and then synced to Chrome. Instead, please refer to
// http://go/chrome-mqls-onboarding (Google-internal link), and then changes will
// be synced with Chrome automatically.

message ScamDetectionLoggingData {
  ScamDetectionRequest request = 1 [features = { field_presence: EXPLICIT }];

  ScamDetectionResponse response = 2 [features = { field_presence: EXPLICIT }];

  ModelExecutionInfo model_execution_info = 3 [features = { field_presence: EXPLICIT }];
}

message ScamDetectionRequest {
  // Text that was extracted from the page through GetInnerText within Chromium.
  // This text will be used to add onto the prompt under the model execution
  // config.
  string rendered_text = 1 [features = { field_presence: EXPLICIT }];

  // The URL of the web page being scanned.
  string url = 2 [features = { field_presence: EXPLICIT }];
}

// Information about LLM detection of a page of what the page is about. This
// information is used to determine if the page is a scam on the SafeBrowsing
// server side.
message ScamDetectionResponse {
  // Brand of the page, if it was detected.
  string brand = 1 [features = { field_presence: EXPLICIT }];

  // Intent of the page, if it was detected.
  string intent = 2 [features = { field_presence: EXPLICIT }];

  // The likelihood of the page being a scam. This score is between 0 and 1,
  // where 1 indicates a high likelihood of a scam and 0 indicates a low
  // likelihood of a scam.
  float scam_score = 3 [features = { field_presence: EXPLICIT }];
}
