36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
"""RelationCandidate — candidato de relacion extraido por el LLM."""
|
|
|
|
from dataclasses import dataclass
|
|
|
|
|
|
@dataclass
|
|
class RelationCandidate:
|
|
"""Candidato de relacion entre dos entidades extraido por el LLM.
|
|
|
|
`from_name` y `to_name` contienen los nombres crudos del texto. `from_id`
|
|
y `to_id` se llenan durante la fase de deduplicacion cuando se resuelven
|
|
contra los EntityCandidate finales.
|
|
"""
|
|
|
|
from_name: str
|
|
to_name: str
|
|
from_id: str = ""
|
|
to_id: str = ""
|
|
relation_type: str = ""
|
|
description: str = ""
|
|
confidence: float = 0.0
|
|
source_chunk_index: int = -1
|
|
|
|
def to_dict(self) -> dict:
|
|
"""Serializa el candidato a un diccionario."""
|
|
return {
|
|
"from_name": self.from_name,
|
|
"to_name": self.to_name,
|
|
"from_id": self.from_id,
|
|
"to_id": self.to_id,
|
|
"relation_type": self.relation_type,
|
|
"description": self.description,
|
|
"confidence": self.confidence,
|
|
"source_chunk_index": self.source_chunk_index,
|
|
}
|