doc_quality_env / models.py
akiii1234's picture
Upload folder using huggingface_hub
02c0b36 verified
# 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 Doc Quality Env Environment.
A real-world environment for technical documentation quality assessment and enhancement.
Agents evaluate documentation for clarity, completeness, and correctness.
"""
from typing import List, Literal
from openenv.core.env_server.types import Action, Observation
from pydantic import Field
class DocQualityAction(Action):
"""Action for doc quality assessment - agents identify issues or suggest improvements."""
action_type: Literal["identify_issue", "suggest_improvement", "rate_quality"] = Field(
..., description="Type of action: identify an issue, suggest an improvement, or provide final quality rating"
)
content: str = Field(..., description="The identified issue, improvement suggestion, or reasoning for quality rating")
issue_category: str = Field(
default="", description="Category of issue: 'clarity', 'completeness', 'accuracy', 'structure', 'consistency'"
)
class DocQualityObservation(Observation):
"""Observation from doc quality assessment environment."""
task_name: str = Field(default="", description="Name of the current task")
task_difficulty: Literal["easy", "medium", "hard"] = Field(default="easy", description="Task difficulty level")
current_doc: str = Field(default="", description="The documentation being evaluated")
doc_section: str = Field(default="", description="The current section being reviewed")
issues_identified: List[str] = Field(default=[], description="Issues found so far by the agent")
known_issues: List[str] = Field(default=[], description="Known issues in this doc for reference")
quality_score: float = Field(default=0.0, description="Current quality assessment score (0.0-1.0)")
step_count: int = Field(default=0, description="Number of steps taken so far")
max_steps: int = Field(default=10, description="Maximum steps allowed")
feedback: str = Field(default="", description="Feedback on last action")