haive.games.api.setup ===================== .. py:module:: haive.games.api.setup .. autoapi-nested-parse:: Game API setup utilities. This module provides utilities for setting up game APIs using the standardized GameAPI system from haive-dataflow. Classes ------- .. autoapisummary:: haive.games.api.setup.GameAPIConfig Functions --------- .. autoapisummary:: haive.games.api.setup.create_chess_api haive.games.api.setup.create_connect4_api haive.games.api.setup.create_game_api haive.games.api.setup.create_tic_tac_toe_api Module Contents --------------- .. py:class:: GameAPIConfig(/, **data) Bases: :py:obj:`pydantic.BaseModel` Configuration for game API setup. Create a new model by parsing and validating input data from keyword arguments. Raises [`ValidationError`][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model. `self` is explicitly positional-only to allow `self` as a field name. .. py:function:: create_chess_api(app, config_overrides = None, **kwargs) Create a Chess game API. :param app: FastAPI application :param config_overrides: Configuration overrides for chess :param \*\*kwargs: Additional API configuration :returns: Configured GameAPI for chess .. rubric:: Examples >>> app = FastAPI() >>> chess_api = create_chess_api( ... app, ... config_overrides={ ... "white_model": "gpt-4", ... "black_model": "claude-3-opus", ... "enable_analysis": True ... } ... ) .. py:function:: create_connect4_api(app, config_overrides = None, **kwargs) Create a Connect4 game API. :param app: FastAPI application :param config_overrides: Configuration overrides for Connect4 :param \*\*kwargs: Additional API configuration :returns: Configured GameAPI for Connect4 .. rubric:: Examples >>> app = FastAPI() >>> connect4_api = create_connect4_api( ... app, ... config_overrides={ ... "red_model": "gpt-3.5-turbo", ... "yellow_model": "gpt-3.5-turbo", ... "temperature": 0.5 ... } ... ) .. py:function:: create_game_api(app, agent_class, api_config = None, **kwargs) Create a game API with the standardized system. :param app: FastAPI application instance :param agent_class: The game agent class :param api_config: API configuration :param \*\*kwargs: Additional arguments passed to GameAPI :returns: Configured GameAPI instance .. py:function:: create_tic_tac_toe_api(app, config_overrides = None, **kwargs) Create a Tic-Tac-Toe game API. :param app: FastAPI application :param config_overrides: Configuration overrides for Tic-Tac-Toe :param \*\*kwargs: Additional API configuration :returns: Configured GameAPI for Tic-Tac-Toe .. rubric:: Examples >>> app = FastAPI() >>> ttt_api = create_tic_tac_toe_api( ... app, ... config_overrides={ ... "x_model": "claude-3-haiku", ... "o_model": "claude-3-haiku", ... "example_config": "budget" ... } ... )