Initial commit: add .gitignore and README
This commit is contained in:
30
fusionagi/schemas/grounding.py
Normal file
30
fusionagi/schemas/grounding.py
Normal file
@@ -0,0 +1,30 @@
|
||||
"""Grounding schemas: citations, sources, show-your-work for AGI verification."""
|
||||
|
||||
from datetime import datetime, timezone
|
||||
from typing import Any
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
def _utc_now() -> datetime:
|
||||
return datetime.now(timezone.utc)
|
||||
|
||||
|
||||
class Citation(BaseModel):
|
||||
"""Reference to a source supporting a claim."""
|
||||
|
||||
source_id: str = Field(..., min_length=1, description="e.g. doc id, URL, trace step")
|
||||
excerpt: str = Field(default="", description="Relevant excerpt or quote")
|
||||
confidence: float = Field(default=1.0, ge=0.0, le=1.0)
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class GroundedClaim(BaseModel):
|
||||
"""A claim with citations and optional show-your-work trace."""
|
||||
|
||||
claim_id: str = Field(..., min_length=1)
|
||||
claim: str = Field(..., min_length=1)
|
||||
citations: list[Citation] = Field(default_factory=list)
|
||||
reasoning_trace: list[dict[str, Any]] = Field(default_factory=list, description="Show-your-work steps")
|
||||
confidence: float = Field(default=1.0, ge=0.0, le=1.0)
|
||||
created_at: datetime = Field(default_factory=_utc_now)
|
||||
Reference in New Issue
Block a user