Skip to content

Commit

Permalink
Remove set_max_conversion_candidates_size() from ConversionRequest.
Browse files Browse the repository at this point in the history
* Other setters will be removed in the following CLs.
* ConversionRequest::Options is the alternative of the setters.

PiperOrigin-RevId: 699147655
  • Loading branch information
hiroyuki-komatsu committed Nov 24, 2024
1 parent 7b2e7cf commit dfa0af7
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 28 deletions.
61 changes: 39 additions & 22 deletions src/converter/converter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -256,9 +256,12 @@ bool TryNormalizingKeyAsMathExpression(const absl::string_view s,

ConversionRequest CreateConversionRequestWithType(
const ConversionRequest &request, ConversionRequest::RequestType type) {
ConversionRequest new_request = request;
new_request.set_request_type(type);
return new_request;
ConversionRequest::Options options = request.options();
options.request_type = type;
return ConversionRequestBuilder()
.SetConversionRequest(request)
.SetOptions(std::move(options))
.Build();
}

} // namespace
Expand All @@ -278,7 +281,7 @@ void Converter::Init(const engine::Modules &modules,

bool Converter::StartConversion(const ConversionRequest &original_request,
Segments *segments) const {
ConversionRequest request = CreateConversionRequestWithType(
const ConversionRequest request = CreateConversionRequestWithType(
original_request, ConversionRequest::CONVERSION);
if (!request.has_composer()) {
LOG(ERROR) << "Request doesn't have composer";
Expand Down Expand Up @@ -308,7 +311,7 @@ bool Converter::StartConversionWithKey(Segments *segments,
if (key.empty()) {
return false;
}
ConversionRequest default_request;
const ConversionRequest default_request;
return Convert(default_request, key, segments);
}

Expand Down Expand Up @@ -349,8 +352,10 @@ bool Converter::StartReverseConversion(Segments *segments,
}
}

ConversionRequest default_request;
default_request.set_request_type(ConversionRequest::REVERSE_CONVERSION);
const ConversionRequest default_request =
ConversionRequestBuilder()
.SetOptions({.request_type = ConversionRequest::REVERSE_CONVERSION})
.Build();
if (!immutable_converter_->ConvertForRequest(default_request, segments)) {
return false;
}
Expand Down Expand Up @@ -430,7 +435,7 @@ bool Converter::Predict(const ConversionRequest &request,

bool Converter::StartPrediction(const ConversionRequest &original_request,
Segments *segments) const {
ConversionRequest request = CreateConversionRequestWithType(
const ConversionRequest request = CreateConversionRequestWithType(
original_request, ConversionRequest::PREDICTION);
if (!request.has_composer()) {
LOG(ERROR) << "Composer is nullptr";
Expand All @@ -443,21 +448,25 @@ bool Converter::StartPrediction(const ConversionRequest &original_request,

bool Converter::StartPredictionWithKey(Segments *segments,
const absl::string_view key) const {
ConversionRequest default_request;
default_request.set_request_type(ConversionRequest::PREDICTION);
const ConversionRequest default_request =
ConversionRequestBuilder()
.SetOptions({.request_type = ConversionRequest::PREDICTION})
.Build();
return Predict(default_request, key, segments);
}

bool Converter::StartSuggestionWithKey(Segments *segments,
const absl::string_view key) const {
ConversionRequest default_request;
default_request.set_request_type(ConversionRequest::SUGGESTION);
const ConversionRequest default_request =
ConversionRequestBuilder()
.SetOptions({.request_type = ConversionRequest::SUGGESTION})
.Build();
return Predict(default_request, key, segments);
}

bool Converter::StartSuggestion(const ConversionRequest &original_request,
Segments *segments) const {
ConversionRequest request = CreateConversionRequestWithType(
const ConversionRequest request = CreateConversionRequestWithType(
original_request, ConversionRequest::SUGGESTION);
DCHECK(request.has_composer());
std::string prediction_key = request.composer().GetQueryForPrediction();
Expand All @@ -466,14 +475,16 @@ bool Converter::StartSuggestion(const ConversionRequest &original_request,

bool Converter::StartPartialSuggestionWithKey(
Segments *segments, const absl::string_view key) const {
ConversionRequest default_request;
default_request.set_request_type(ConversionRequest::PARTIAL_SUGGESTION);
const ConversionRequest default_request =
ConversionRequestBuilder()
.SetOptions({.request_type = ConversionRequest::PARTIAL_SUGGESTION})
.Build();
return Predict(default_request, key, segments);
}

bool Converter::StartPartialSuggestion(
const ConversionRequest &original_request, Segments *segments) const {
ConversionRequest request = CreateConversionRequestWithType(
const ConversionRequest request = CreateConversionRequestWithType(
original_request, ConversionRequest::PARTIAL_SUGGESTION);
DCHECK(request.has_composer());
const size_t cursor = request.composer().GetCursor();
Expand All @@ -489,14 +500,16 @@ bool Converter::StartPartialSuggestion(

bool Converter::StartPartialPredictionWithKey(
Segments *segments, const absl::string_view key) const {
ConversionRequest default_request;
default_request.set_request_type(ConversionRequest::PARTIAL_PREDICTION);
const ConversionRequest default_request =
ConversionRequestBuilder()
.SetOptions({.request_type = ConversionRequest::PARTIAL_PREDICTION})
.Build();
return Predict(default_request, key, segments);
}

bool Converter::StartPartialPrediction(
const ConversionRequest &original_request, Segments *segments) const {
ConversionRequest request = CreateConversionRequestWithType(
const ConversionRequest request = CreateConversionRequestWithType(
original_request, ConversionRequest::PARTIAL_PREDICTION);
DCHECK(request.has_composer());
const size_t cursor = request.composer().GetCursor();
Expand Down Expand Up @@ -886,7 +899,6 @@ void Converter::CompletePosIds(Segment::Candidate *candidate) const {
// In order to reduce the latency, first, expand 5 candidates.
// If no valid candidates are found within 5 candidates, expand
// candidates step-by-step.
ConversionRequest request;
for (size_t size = kExpandSizeStart; size < kExpandSizeMax;
size += kExpandSizeDiff) {
Segments segments;
Expand All @@ -896,8 +908,13 @@ void Converter::CompletePosIds(Segment::Candidate *candidate) const {
// However, PREDICTION mode produces "predictions", meaning
// that keys of result candidate are not always the same as
// query key. It would be nice to have PREDICTION_REALTIME_CONVERSION_ONLY.
request.set_request_type(ConversionRequest::PREDICTION);
request.set_max_conversion_candidates_size(size);
const ConversionRequest request =
ConversionRequestBuilder()
.SetOptions({
.request_type = ConversionRequest::PREDICTION,
.max_conversion_candidates_size = static_cast<int>(size),
})
.Build();
// In order to complete PosIds, call ImmutableConverter again.
if (!immutable_converter_->ConvertForRequest(request, &segments)) {
LOG(ERROR) << "ImmutableConverter::Convert() failed";
Expand Down
9 changes: 6 additions & 3 deletions src/prediction/dictionary_prediction_aggregator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -206,9 +206,12 @@ size_t GetDefaultSizeForRealtimeCandidates(bool is_long_key) {

ConversionRequest GetConversionRequestForRealtimeCandidates(
const ConversionRequest &request, size_t realtime_candidates_size) {
ConversionRequest ret = request;
ret.set_max_conversion_candidates_size(realtime_candidates_size);
return ret;
ConversionRequest::Options options = request.options();
options.max_conversion_candidates_size = realtime_candidates_size;
return ConversionRequestBuilder()
.SetConversionRequest(request)
.SetOptions(std::move(options))
.Build();
}

Segments GetSegmentsForRealtimeCandidatesGeneration(
Expand Down
3 changes: 0 additions & 3 deletions src/request/conversion_request.h
Original file line number Diff line number Diff line change
Expand Up @@ -211,9 +211,6 @@ class ConversionRequest {
size_t max_conversion_candidates_size() const {
return options_.max_conversion_candidates_size;
}
void set_max_conversion_candidates_size(size_t value) {
options_.max_conversion_candidates_size = value;
}

size_t max_user_history_prediction_candidates_size() const {
return options_.max_user_history_prediction_candidates_size;
Expand Down

0 comments on commit dfa0af7

Please sign in to comment.