blob: ea9c83695a0a436ccd64c71b9a10a6c5ccf0e70e [file] [log] [blame]
// 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.
#include "components/history_embeddings/mock_intent_classifier.h"
#include "base/strings/string_util.h"
#include "base/task/sequenced_task_runner.h"
#include "base/time/time.h"
#include "components/history_embeddings/history_embeddings_features.h"
namespace history_embeddings {
MockIntentClassifier::MockIntentClassifier() = default;
MockIntentClassifier::~MockIntentClassifier() = default;
int64_t MockIntentClassifier::GetModelVersion() {
return 1;
}
void MockIntentClassifier::ComputeQueryIntent(
std::string query,
ComputeQueryIntentCallback callback) {
std::vector<std::string> query_intent_indicating_words({
"can ",
"could ",
"do ",
"does ",
"how ",
"should ",
"what ",
"when ",
"where ",
"whether ",
"which ",
"who ",
"whose ",
"why ",
"would ",
});
query = base::ToLowerASCII(query);
bool is_query_answerable =
query.ends_with('?') ||
std::ranges::any_of(
query_intent_indicating_words,
[&](std::string_view start) { return query.starts_with(start); });
base::SequencedTaskRunner::GetCurrentDefault()->PostDelayedTask(
FROM_HERE,
base::BindOnce(std::move(callback), ComputeIntentStatus::SUCCESS,
is_query_answerable),
base::Milliseconds(
GetFeatureParameters().mock_intent_classifier_delay_ms));
}
} // namespace history_embeddings