Spaces:
Sleeping
Sleeping
| # Copyright (c) Meta Platforms, Inc. and affiliates. | |
| # All rights reserved. | |
| # | |
| # This source code is licensed under the BSD-style license found in the | |
| # LICENSE file in the root directory of this source tree. | |
| """ | |
| Data models for the WebSearch Env Environment. | |
| The WebSearch Env environment is an environment that searches the web with Google Search API (via Serper.dev). | |
| """ | |
| from __future__ import annotations | |
| from pydantic import Field | |
| # Support both in-repo and standalone imports | |
| try: | |
| from openenv.core.env_server.types import Action, Observation | |
| except ImportError: | |
| from openenv_core.env_server.types import Action, Observation | |
| class WebSearchAction(Action): | |
| """Action for the WebSearch Env environment - just a message to echo.""" | |
| query: str = Field(..., description="The query to search the web for") | |
| temp_api_key: str | None = Field( | |
| None, | |
| description="The temporary API key to use for the Serper API (better to use the default API key from the environment variables)", | |
| ) | |
| class WebSearchObservation(Observation): | |
| """Observation from the WebSearch Env environment - the echoed message.""" | |
| content: str = Field( | |
| ..., | |
| description="The formatted content of the search results or error message if the search failed", | |
| ) | |
| web_contents: list[WebContent] = Field( | |
| ..., description="The web contents of the search results" | |
| ) | |
| class WebContent: | |
| """Web content of a search result.""" | |
| title: str = Field(..., description="The title of the web content") | |
| content: str = Field(..., description="The content of the web content") | |
| url: str = Field(..., description="The URL of the web content") | |