| from pydantic import BaseModel, Field | |
| class Chunk(BaseModel): | |
| id: str | |
| repo_id: str | |
| path: str | |
| language: str | |
| symbol: str = "file" | |
| kind: str = "text" | |
| start_line: int = 1 | |
| end_line: int = 1 | |
| content: str | |
| class Source(BaseModel): | |
| path: str | |
| start_line: int | |
| end_line: int | |
| symbol: str | |
| kind: str | |
| score: float = 0.0 | |
| class QueryRequest(BaseModel): | |
| question: str = Field(min_length=2) | |
| top_k: int = 8 | |
| class QueryResponse(BaseModel): | |
| answer: str | |
| sources: list[Source] | |
| retrieved_chunks: list[Chunk] = [] | |
| class RepoSummary(BaseModel): | |
| repo_id: str | |
| name: str | |
| files_indexed: int | |
| chunks_indexed: int | |
| languages: dict[str, int] | |
| architecture: dict[str, list[str] | str] | |