Spaces:
Sleeping
Sleeping
File size: 855 Bytes
ce45eb0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | """Context pack result types."""
from __future__ import annotations
from dataclasses import dataclass, field
from typing import Dict, List
from .item import ContextItem
@dataclass
class PackedItem:
item: ContextItem
final_score: float
breakdown: Dict[str, float]
@dataclass
class ContextPack:
items: List[PackedItem] = field(default_factory=list)
selected_experts: List[str] = field(default_factory=list)
routing_reason: str = ""
tokens: int = 0
dropped: List[Dict] = field(default_factory=list)
def to_prompt(self) -> str:
lines = ["Relevant context:", ""]
for i, p in enumerate(self.items, 1):
lines.append(f"{i}. [{p.item.expert}] {p.item.content}")
return "\n".join(lines)
@property
def citations(self) -> List[str]:
return [p.item.id for p in self.items]
|