1
0
mirror of synced 2026-08-07 08:16:54 +00:00

FIX: allow for blank fields in Google results (#255)

Under certain cases, for example:

```
there is this japanese band called kirimi, tell me more about them, try searching 3 times and at least 2 times in japanese before answering.
```

Results come back with blank snippets. This adds protection so this
is allowed and code does not simply blow up.
This commit is contained in:
Sam
2023-10-19 14:44:59 +11:00
committed by GitHub
parent b9d6179bfc
commit f65e50bd9e
2 changed files with 13 additions and 3 deletions
@@ -55,7 +55,9 @@ module DiscourseAi::AiBot::Commands
end
def minimize_field(result, field, max_tokens: 100)
data = result[field].squish
data = result[field]
return "" if data.blank?
data = ::DiscourseAi::Tokenizer::BertTokenizer.truncate(data, max_tokens).squish
data
end
@@ -32,7 +32,7 @@ RSpec.describe DiscourseAi::AiBot::Commands::GoogleCommand do
json_text = {
searchInformation: {
totalResults: "1",
totalResults: "2",
},
items: [
{
@@ -43,6 +43,13 @@ RSpec.describe DiscourseAi::AiBot::Commands::GoogleCommand do
formattedUrl: "formattedUrl1",
oops: "do no include me ... oops",
},
{
title: "title2",
link: "link2",
displayLink: "displayLink1",
formattedUrl: "formattedUrl1",
oops: "do no include me ... oops",
},
],
}.to_json
@@ -60,10 +67,11 @@ RSpec.describe DiscourseAi::AiBot::Commands::GoogleCommand do
info = google.process(query: "some search term").to_json
expect(google.description_args[:count]).to eq(1)
expect(google.description_args[:count]).to eq(2)
expect(info).to include("title1")
expect(info).to include("snippet1")
expect(info).to include("some+search+term")
expect(info).to include("title2")
expect(info).to_not include("oops")
google.invoke!