Новый раг
This commit is contained in:
29
app/modules/rag/indexing/code/edges/document_builder.py
Normal file
29
app/modules/rag/indexing/code/edges/document_builder.py
Normal file
@@ -0,0 +1,29 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from app.modules.rag.contracts import EvidenceLink, EvidenceType, RagDocument, RagLayer, RagSource, RagSpan
|
||||
from app.modules.rag.indexing.code.edges.extractor import PyEdge
|
||||
|
||||
|
||||
class EdgeDocumentBuilder:
|
||||
def build(self, source: RagSource, edge: PyEdge) -> RagDocument:
|
||||
dst = edge.dst_ref or edge.dst_symbol_id or "unknown"
|
||||
return RagDocument(
|
||||
layer=RagLayer.CODE_DEPENDENCY_GRAPH,
|
||||
lang="python",
|
||||
source=source,
|
||||
title=f"{edge.src_qname}:{edge.edge_type}",
|
||||
text=f"{edge.src_qname} {edge.edge_type} {dst}",
|
||||
span=RagSpan(edge.start_line, edge.end_line),
|
||||
metadata={
|
||||
"edge_id": edge.edge_id,
|
||||
"edge_type": edge.edge_type,
|
||||
"src_symbol_id": edge.src_symbol_id,
|
||||
"src_qname": edge.src_qname,
|
||||
"dst_symbol_id": edge.dst_symbol_id,
|
||||
"dst_ref": edge.dst_ref,
|
||||
"resolution": edge.resolution,
|
||||
"lang_payload": edge.metadata,
|
||||
"artifact_type": "CODE",
|
||||
},
|
||||
links=[EvidenceLink(type=EvidenceType.EDGE, target_id=edge.edge_id, path=source.path, start_line=edge.start_line, end_line=edge.end_line)],
|
||||
)
|
||||
Reference in New Issue
Block a user