AndesOps-AI / backend /app /schemas /analysis.py
Álvaro Valenzuela Valdes
deploy: v24 final avatar, localization and HF config hotfix
5e52bd7
from datetime import datetime
from pydantic import BaseModel
from typing import List
from app.schemas.company import CompanyProfile
from app.schemas.tender import Tender
class ChatMessage(BaseModel):
role: str
content: str
agent_name: str | None = None
class ChatRequest(BaseModel):
tender: Tender
company_profile: CompanyProfile
message: str
agent: str
model: str
history: List[ChatMessage]
amd_settings: dict | None = None
class RiskItem(BaseModel):
title: str
severity: str
explanation: str
class ActionItem(BaseModel):
task: str
priority: str
owner: str
timeline: str
class QAResponse(BaseModel):
question: str
answer: str
class AnalysisRequest(BaseModel):
tender: Tender
company_profile: CompanyProfile
document_text: str | None = None
models: dict | None = None
tender_details: dict | None = None
amd_settings: dict | None = None
class AnalysisResult(BaseModel):
fit_score: int
decision: str
executive_summary: str
key_requirements: List[str]
risks: List[RiskItem]
compliance_gaps: List[str]
action_plan: List[ActionItem]
proposal_draft: str
report_markdown: str
strategic_roadmap: str | None = None
requirement_responses: List[QAResponse] = []
audit_log: List[str] = []
raw_responses: dict = {}
class AnalysisRecord(BaseModel):
tender_code: str
tender_name: str
analyzed_at: datetime
analysis: AnalysisResult
class SearchRecord(BaseModel):
query: str
results_count: int
searched_at: datetime
is_agile: bool = False