mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-08 15:48:29 +00:00
feat: add required env var validation for brightdata
Co-authored-by: Greyson Lalonde <greyson.r.lalonde@gmail.com>
This commit is contained in:
@@ -3,7 +3,7 @@ import os
|
||||
from typing import Any
|
||||
|
||||
import aiohttp
|
||||
from crewai.tools import BaseTool
|
||||
from crewai.tools import BaseTool, EnvVar
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
@@ -414,6 +414,15 @@ class BrightDataDatasetTool(BaseTool):
|
||||
format: str = "json"
|
||||
zipcode: str | None = None
|
||||
additional_params: dict[str, Any] | None = None
|
||||
env_vars: list[EnvVar] = Field(
|
||||
default_factory=lambda: [
|
||||
EnvVar(
|
||||
name="BRIGHT_DATA_API_KEY",
|
||||
description="API key for Bright Data",
|
||||
required=True,
|
||||
),
|
||||
]
|
||||
)
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
@@ -422,8 +431,9 @@ class BrightDataDatasetTool(BaseTool):
|
||||
format: str = "json",
|
||||
zipcode: str | None = None,
|
||||
additional_params: dict[str, Any] | None = None,
|
||||
**kwargs: Any,
|
||||
):
|
||||
super().__init__()
|
||||
super().__init__(**kwargs)
|
||||
self.dataset_type = dataset_type
|
||||
self.url = url
|
||||
self.format = format
|
||||
@@ -441,7 +451,7 @@ class BrightDataDatasetTool(BaseTool):
|
||||
zipcode: str | None = None,
|
||||
additional_params: dict[str, Any] | None = None,
|
||||
polling_interval: int = 1,
|
||||
) -> dict:
|
||||
) -> str:
|
||||
"""Asynchronously trigger and poll Bright Data dataset scraping.
|
||||
|
||||
Args:
|
||||
|
||||
@@ -2,7 +2,7 @@ import os
|
||||
from typing import Any
|
||||
import urllib.parse
|
||||
|
||||
from crewai.tools import BaseTool
|
||||
from crewai.tools import BaseTool, EnvVar
|
||||
from pydantic import BaseModel, Field
|
||||
import requests
|
||||
|
||||
@@ -89,6 +89,15 @@ class BrightDataSearchTool(BaseTool):
|
||||
search_type: str | None = None
|
||||
device_type: str = "desktop"
|
||||
parse_results: bool = True
|
||||
env_vars: list[EnvVar] = Field(
|
||||
default_factory=lambda: [
|
||||
EnvVar(
|
||||
name="BRIGHT_DATA_API_KEY",
|
||||
description="API key for Bright Data",
|
||||
required=True,
|
||||
),
|
||||
]
|
||||
)
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
@@ -99,8 +108,9 @@ class BrightDataSearchTool(BaseTool):
|
||||
search_type: str | None = None,
|
||||
device_type: str = "desktop",
|
||||
parse_results: bool = True,
|
||||
**kwargs: Any,
|
||||
):
|
||||
super().__init__()
|
||||
super().__init__(**kwargs)
|
||||
self.base_url = self._config.API_URL
|
||||
self.query = query
|
||||
self.search_engine = search_engine
|
||||
@@ -110,8 +120,8 @@ class BrightDataSearchTool(BaseTool):
|
||||
self.device_type = device_type
|
||||
self.parse_results = parse_results
|
||||
|
||||
self.api_key = os.getenv("BRIGHT_DATA_API_KEY")
|
||||
self.zone = os.getenv("BRIGHT_DATA_ZONE")
|
||||
self.api_key = os.getenv("BRIGHT_DATA_API_KEY") or ""
|
||||
self.zone = os.getenv("BRIGHT_DATA_ZONE") or ""
|
||||
if not self.api_key:
|
||||
raise ValueError("BRIGHT_DATA_API_KEY environment variable is required.")
|
||||
if not self.zone:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import os
|
||||
from typing import Any
|
||||
|
||||
from crewai.tools import BaseTool
|
||||
from crewai.tools import BaseTool, EnvVar
|
||||
from pydantic import BaseModel, Field
|
||||
import requests
|
||||
|
||||
@@ -69,18 +69,31 @@ class BrightDataWebUnlockerTool(BaseTool):
|
||||
url: str | None = None
|
||||
format: str = "raw"
|
||||
data_format: str = "markdown"
|
||||
env_vars: list[EnvVar] = Field(
|
||||
default_factory=lambda: [
|
||||
EnvVar(
|
||||
name="BRIGHT_DATA_API_KEY",
|
||||
description="API key for Bright Data",
|
||||
required=True,
|
||||
),
|
||||
]
|
||||
)
|
||||
|
||||
def __init__(
|
||||
self, url: str | None = None, format: str = "raw", data_format: str = "markdown"
|
||||
self,
|
||||
url: str | None = None,
|
||||
format: str = "raw",
|
||||
data_format: str = "markdown",
|
||||
**kwargs: Any,
|
||||
):
|
||||
super().__init__()
|
||||
super().__init__(**kwargs)
|
||||
self.base_url = self._config.API_URL
|
||||
self.url = url
|
||||
self.format = format
|
||||
self.data_format = data_format
|
||||
|
||||
self.api_key = os.getenv("BRIGHT_DATA_API_KEY")
|
||||
self.zone = os.getenv("BRIGHT_DATA_ZONE")
|
||||
self.api_key = os.getenv("BRIGHT_DATA_API_KEY") or ""
|
||||
self.zone = os.getenv("BRIGHT_DATA_ZONE") or ""
|
||||
if not self.api_key:
|
||||
raise ValueError("BRIGHT_DATA_API_KEY environment variable is required.")
|
||||
if not self.zone:
|
||||
|
||||
Reference in New Issue
Block a user