mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-09 16:18:30 +00:00
avoinding organic error on serper dev tool
This commit is contained in:
@@ -6,14 +6,14 @@ from typing import Type, Any
|
|||||||
from pydantic.v1 import BaseModel, Field
|
from pydantic.v1 import BaseModel, Field
|
||||||
from crewai_tools.tools.base_tool import BaseTool
|
from crewai_tools.tools.base_tool import BaseTool
|
||||||
|
|
||||||
class SeperDevToolSchema(BaseModel):
|
class SerperDevToolSchema(BaseModel):
|
||||||
"""Input for TXTSearchTool."""
|
"""Input for TXTSearchTool."""
|
||||||
search_query: str = Field(..., description="Mandatory search query you want to use to search the internet")
|
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"
|
name: str = "Search the internet"
|
||||||
description: str = "A tool that can be used to semantic search a query from a txt's content."
|
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"
|
search_url: str = "https://google.serper.dev/search"
|
||||||
n_results: int = None
|
n_results: int = None
|
||||||
|
|
||||||
@@ -28,18 +28,22 @@ class SeperDevTool(BaseTool):
|
|||||||
'content-type': 'application/json'
|
'content-type': 'application/json'
|
||||||
}
|
}
|
||||||
response = requests.request("POST", self.search_url, headers=headers, data=payload)
|
response = requests.request("POST", self.search_url, headers=headers, data=payload)
|
||||||
results = response.json()['organic']
|
results = response.json()
|
||||||
stirng = []
|
if 'organic' in results:
|
||||||
for result in results:
|
results = results['organic']
|
||||||
try:
|
stirng = []
|
||||||
stirng.append('\n'.join([
|
for result in results:
|
||||||
f"Title: {result['title']}",
|
try:
|
||||||
f"Link: {result['link']}",
|
stirng.append('\n'.join([
|
||||||
f"Snippet: {result['snippet']}",
|
f"Title: {result['title']}",
|
||||||
"---"
|
f"Link: {result['link']}",
|
||||||
]))
|
f"Snippet: {result['snippet']}",
|
||||||
except KeyError:
|
"---"
|
||||||
next
|
]))
|
||||||
|
except KeyError:
|
||||||
|
next
|
||||||
|
|
||||||
content = '\n'.join(stirng)
|
content = '\n'.join(stirng)
|
||||||
return f"\nSearch results: {content}\n"
|
return f"\nSearch results: {content}\n"
|
||||||
|
else:
|
||||||
|
return results
|
||||||
|
|||||||
Reference in New Issue
Block a user