from praisonaiagents.rag import RAG, Citation
from typing import List, Dict, Any
class NumberedCitationFormatter:
"""Format citations with numbered references."""
def format(
self,
results: List[Dict[str, Any]],
start_id: int = 1,
) -> List[Citation]:
citations = []
for i, result in enumerate(results):
citation = Citation(
id=f"[{start_id + i}]",
source=result.get("metadata", {}).get("filename", "Unknown"),
text=result.get("text", "")[:500],
score=result.get("score", 0.0),
metadata=result.get("metadata", {}),
)
citations.append(citation)
return citations
# Use custom formatter
rag = RAG(
knowledge=knowledge,
citation_formatter=NumberedCitationFormatter(),
)