| from pydantic import BaseModel |
| from datetime import datetime |
| from typing import List, Optional, Dict, Any |
|
|
| class CodeCitation(BaseModel): |
| file_path: str |
| start_line: int |
| end_line: int |
| code_snippet: str |
|
|
| class MessageCreate(BaseModel): |
| content: str |
|
|
| class MessageResponse(BaseModel): |
| id: int |
| role: str |
| content: str |
| citations: Optional[List[CodeCitation]] = None |
| created_at: datetime |
| |
| class Config: |
| from_attributes = True |
|
|
| class ConversationResponse(BaseModel): |
| id: int |
| repository_id: int |
| title: str |
| messages: List[MessageResponse] |
| created_at: datetime |
| |
| class Config: |
| from_attributes = True |
|
|
| class QueryRequest(BaseModel): |
| question: str |
| conversation_id: Optional[int] = None |
|
|
| class QueryResponse(BaseModel): |
| answer_id: str |
| natural_language_answer: str |
| citations: List[CodeCitation] |
| conversation_id: int |
|
|