gateway/modules/methods/web/web_search/web_search_base.py
2025-08-25 17:24:33 +02:00

31 lines
713 B
Python

"""Base class for web search classes."""
from abc import ABC, abstractmethod
from modules.interfaces.interfaceChatModel import ActionDocument, ActionResult
from pydantic import BaseModel, Field
from typing import List
class WebSearchRequest(BaseModel):
query: str
max_results: int
class WebSearchDocumentData(BaseModel):
title: str
url: str
class WebSearchActionDocument(ActionDocument):
documentData: List[WebSearchDocumentData]
class WebSearchActionResult(ActionResult):
documents: List[WebSearchActionDocument] = Field(default_factory=list)
class WebSearchBase(ABC):
@abstractmethod
async def __call__(self, request: WebSearchRequest) -> WebSearchActionResult: ...