| # envs/finqa_env/models.py | |
| """ | |
| State types for the FinQA environment. | |
| FinQA is a financial question-answering benchmark that evaluates LLMs on their | |
| ability to answer complex financial questions using tool calls (SQL queries, | |
| calculations, etc.) on SEC 10-K filing data. | |
| This environment uses the MCP protocol for tool interactions. Use | |
| ``CallToolAction`` and ``ListToolsAction`` from ``openenv.core.env_server.mcp_types`` | |
| to interact with the environment. | |
| """ | |
| from openenv.core.env_server import State | |
| # Tool names - defined statically to avoid circular imports | |
| AVAILABLE_TOOLS = ["get_descriptions", "get_table_info", "sql_query", "submit_answer"] | |
| class FinQAState(State): | |
| """ | |
| Internal environment state for tracking the current episode. | |
| All fields are set during reset() and are essential for episode tracking. | |
| Attributes: | |
| current_question: The question being asked | |
| current_company: The company the question is about | |
| ground_truth: The expected answer for reward computation | |
| question_id: Identifier for the current question | |
| # Inherited from State: episode_id, step_count | |
| """ | |
| current_question: str = "" | |
| current_company: str = "" | |
| ground_truth: str = "" | |
| question_id: str = "" | |