|
|
|
|
@ -66,6 +66,41 @@ class BingSearchTool(BuiltinTool):
|
|
|
|
|
results.append(self.create_text_message(text=f'{related.get("displayText", "")}{url}'))
|
|
|
|
|
|
|
|
|
|
return results
|
|
|
|
|
elif result_type == "json":
|
|
|
|
|
result = {}
|
|
|
|
|
if search_results:
|
|
|
|
|
result["organic"] = [
|
|
|
|
|
{
|
|
|
|
|
"title": item.get("name", ""),
|
|
|
|
|
"snippet": item.get("snippet", ""),
|
|
|
|
|
"url": item.get("url", ""),
|
|
|
|
|
"siteName": item.get("siteName", ""),
|
|
|
|
|
}
|
|
|
|
|
for item in search_results
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
if computation and "expression" in computation and "value" in computation:
|
|
|
|
|
result["computation"] = {"expression": computation["expression"], "value": computation["value"]}
|
|
|
|
|
|
|
|
|
|
if entities:
|
|
|
|
|
result["entities"] = [
|
|
|
|
|
{
|
|
|
|
|
"name": item.get("name", ""),
|
|
|
|
|
"url": item.get("url", ""),
|
|
|
|
|
"description": item.get("description", ""),
|
|
|
|
|
}
|
|
|
|
|
for item in entities
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
if news:
|
|
|
|
|
result["news"] = [{"name": item.get("name", ""), "url": item.get("url", "")} for item in news]
|
|
|
|
|
|
|
|
|
|
if related_searches:
|
|
|
|
|
result["related searches"] = [
|
|
|
|
|
{"displayText": item.get("displayText", ""), "url": item.get("webSearchUrl", "")} for item in news
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
return self.create_json_message(result)
|
|
|
|
|
else:
|
|
|
|
|
# construct text
|
|
|
|
|
text = ""
|
|
|
|
|
|