Skip to main content
Glama
risk_models.py3.38 kB
""" Pydantic models for startup risk analysis data structures. Provides type-safe models for risk indicators, categories, and analysis results. """ from pydantic import BaseModel, Field from typing import List, Dict, Any, Optional from enum import Enum class RiskLevel(str, Enum): """Enumeration of risk levels.""" LOW = "low" MEDIUM = "medium" HIGH = "high" CRITICAL = "critical" UNKNOWN = "unknown" class RiskIndicator(BaseModel): """Model for individual risk indicators.""" indicator: str = Field(description="The specific risk indicator") risk_level: RiskLevel = Field(description="Risk level assessment") score: int = Field(description="Risk score from 1-10", ge=1, le=10) description: str = Field(description="Detailed description of the risk") recommendation: str = Field(description="Recommended action to mitigate risk") class RiskCategory(BaseModel): """Model for risk categories containing multiple indicators.""" category_name: str = Field(description="Name of the risk category") overall_risk_level: RiskLevel = Field(description="Overall risk level for this category") category_score: int = Field(description="Average risk score for this category", ge=1, le=10) indicators: List[RiskIndicator] = Field(description="List of risk indicators in this category") summary: str = Field(description="Summary of risks in this category") class StartupRiskAnalysis(BaseModel): """Model for comprehensive startup risk analysis results.""" startup_name: str = Field(description="Name of the startup being analyzed") overall_risk_level: RiskLevel = Field(description="Overall risk level assessment") overall_score: int = Field(description="Overall risk score from 1-10", ge=1, le=10) risk_categories: List[RiskCategory] = Field(description="List of risk categories analyzed") key_concerns: List[str] = Field(description="Top 5 key concerns identified") investment_recommendation: str = Field(description="Investment recommendation based on analysis") confidence_score: float = Field(description="Confidence in the analysis (0.0-1.0)", ge=0.0, le=1.0) analysis_metadata: Optional[Dict[str, Any]] = Field(description="Additional analysis metadata", default=None) class StartupData(BaseModel): """Model for startup input data.""" name: str = Field(description="Startup name") description: str = Field(description="Business description") industry: str = Field(description="Industry/sector") stage: str = Field(description="Development stage (idea, MVP, growth, etc.)") team_size: Optional[int] = Field(description="Number of team members", default=None) founders: Optional[List[str]] = Field(description="List of founder names", default=None) funding_raised: Optional[float] = Field(description="Total funding raised in USD", default=None) revenue: Optional[float] = Field(description="Annual revenue in USD", default=None) customers: Optional[int] = Field(description="Number of customers/users", default=None) market_size: Optional[str] = Field(description="Target market size description", default=None) competitors: Optional[List[str]] = Field(description="List of main competitors", default=None) additional_info: Optional[Dict[str, Any]] = Field(description="Additional relevant information", default=None)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/connectaman/Pitchlense-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server