Iwebsearch

Classes

class arshai.core.interfaces.iwebsearch.IWebSearchClient(*args, **kwargs)[source]

Bases: Protocol

Interface defining the contract for web search clients. Any web search client implementation must conform to this interface.

search(query, num_results=10, **kwargs)[source]

Perform synchronous web search.

Parameters:
  • query (str) – Search query string

  • num_results (int) – Maximum number of results to return

  • **kwargs (Any) – Additional search parameters

Return type:

List[IWebSearchResult]

Returns:

List of SearchResult objects

async asearch(query, num_results=10, **kwargs)[source]

Perform asynchronous web search.

Parameters:
  • query (str) – Search query string

  • num_results (int) – Maximum number of results to return

  • **kwargs (Any) – Additional search parameters

Return type:

List[IWebSearchResult]

Returns:

List of SearchResult objects

__init__(*args, **kwargs)
class arshai.core.interfaces.iwebsearch.IWebSearchConfig(**data)[source]

Bases: IDTO

Base configuration for web search clients. This is a generalized configuration that can be extended for specific search engines.

host: Optional[str]
timeout: int
verify_ssl: bool
language: str
additional_params: Dict[str, Any]
model_config: ClassVar[ConfigDict] = {'allow_mutation': False, 'arbitrary_types_allowed': True, 'smart_union': True, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class arshai.core.interfaces.iwebsearch.IWebSearchResult(**data)[source]

Bases: IDTO

Represents a single search result.

title: str
url: str
content: Optional[str]
engines: List[str]
category: str
model_config: ClassVar[ConfigDict] = {'allow_mutation': False, 'arbitrary_types_allowed': True, 'smart_union': True, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].