From 8ffbd9665b04b491021aeb96484ce670a8b2bbeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moura?= Date: Sun, 3 Mar 2024 12:32:13 -0300 Subject: [PATCH] avoinding organic error on serper dev tool --- .../tools/serper_dev_tool/serper_dev_tool.py | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/src/crewai_tools/tools/serper_dev_tool/serper_dev_tool.py b/src/crewai_tools/tools/serper_dev_tool/serper_dev_tool.py index 9da634e3d..3fbf5ea61 100644 --- a/src/crewai_tools/tools/serper_dev_tool/serper_dev_tool.py +++ b/src/crewai_tools/tools/serper_dev_tool/serper_dev_tool.py @@ -6,14 +6,14 @@ from typing import Type, Any from pydantic.v1 import BaseModel, Field from crewai_tools.tools.base_tool import BaseTool -class SeperDevToolSchema(BaseModel): +class SerperDevToolSchema(BaseModel): """Input for TXTSearchTool.""" search_query: str = Field(..., description="Mandatory search query you want to use to search the internet") -class SeperDevTool(BaseTool): +class SerperDevTool(BaseTool): name: str = "Search the internet" description: str = "A tool that can be used to semantic search a query from a txt's content." - args_schema: Type[BaseModel] = SeperDevToolSchema + args_schema: Type[BaseModel] = SerperDevToolSchema search_url: str = "https://google.serper.dev/search" n_results: int = None @@ -28,18 +28,22 @@ class SeperDevTool(BaseTool): 'content-type': 'application/json' } response = requests.request("POST", self.search_url, headers=headers, data=payload) - results = response.json()['organic'] - stirng = [] - for result in results: - try: - stirng.append('\n'.join([ - f"Title: {result['title']}", - f"Link: {result['link']}", - f"Snippet: {result['snippet']}", - "---" - ])) - except KeyError: - next + results = response.json() + if 'organic' in results: + results = results['organic'] + stirng = [] + for result in results: + try: + stirng.append('\n'.join([ + f"Title: {result['title']}", + f"Link: {result['link']}", + f"Snippet: {result['snippet']}", + "---" + ])) + except KeyError: + next - content = '\n'.join(stirng) - return f"\nSearch results: {content}\n" + content = '\n'.join(stirng) + return f"\nSearch results: {content}\n" + else: + return results