Spaces:
Paused
Paused
Download apps/api/app/models/models.py from mohammed978/teteffd: direct link, hf CLI and curl.
- Browser
- Download file 3.38 kB
-
https://huggingface.co/spaces/mohammed978/teteffd/resolve/main/apps/api/app/models/models.py
- Command line
-
hf download hf://spaces/mohammed978/teteffd/apps/api/app/models/models.py
-
curl -L -o models.py https://huggingface.co/spaces/mohammed978/teteffd/resolve/main/apps/api/app/models/models.py
3.38 kB
| """Model management and system prompt schemas.""" | |
| from __future__ import annotations | |
| from datetime import datetime | |
| from typing import Literal | |
| from pydantic import BaseModel, Field, field_validator | |
| Provider = Literal[ | |
| "groq", "openai", "anthropic", "gemini", "deepseek", "qwen", "ollama", "custom" | |
| ] | |
| class ModelCreate(BaseModel): | |
| name: str = Field(min_length=1, max_length=128) | |
| provider: Provider | |
| endpoint: str | None = None | |
| apiKey: str | None = None | |
| temperature: float = Field(default=0.7, ge=0.0, le=2.0) | |
| maxTokens: int = Field(default=4096, ge=1, le=200_000) | |
| topP: float = Field(default=1.0, ge=0.0, le=1.0) | |
| systemPromptId: str | None = None | |
| enabled: bool = True | |
| description: str | None = None | |
| displayName: str | None = None | |
| avatar: str | None = None | |
| tags: list[str] = Field(default_factory=list) | |
| class ModelUpdate(BaseModel): | |
| name: str | None = None | |
| endpoint: str | None = None | |
| apiKey: str | None = None | |
| temperature: float | None = Field(default=None, ge=0.0, le=2.0) | |
| maxTokens: int | None = Field(default=None, ge=1, le=200_000) | |
| topP: float | None = Field(default=None, ge=0.0, le=1.0) | |
| systemPromptId: str | None = None | |
| enabled: bool | None = None | |
| description: str | None = None | |
| displayName: str | None = None | |
| avatar: str | None = None | |
| tags: list[str] | None = None | |
| class ModelOut(BaseModel): | |
| """Public-facing model representation. NEVER includes apiKey.""" | |
| id: str | |
| name: str | |
| provider: Provider | |
| endpoint: str | None = None | |
| temperature: float | |
| maxTokens: int | |
| topP: float | |
| systemPromptId: str | None = None | |
| systemPromptName: str | None = None | |
| enabled: bool | |
| description: str | None = None | |
| displayName: str | None = None | |
| avatar: str | None = None | |
| tags: list[str] | |
| createdAt: datetime | |
| updatedAt: datetime | |
| hasApiKey: bool = False | |
| class SystemPromptCreate(BaseModel): | |
| name: str = Field(min_length=1, max_length=128) | |
| content: str = Field(min_length=1, max_length=200_000) | |
| description: str | None = None | |
| tags: list[str] = Field(default_factory=list) | |
| active: bool = True | |
| class SystemPromptUpdate(BaseModel): | |
| name: str | None = None | |
| content: str | None = None | |
| description: str | None = None | |
| tags: list[str] | None = None | |
| active: bool | None = None | |
| changelog: str | None = None | |
| class SystemPromptVersion(BaseModel): | |
| version: int | |
| content: str | |
| changelog: str | None = None | |
| createdAt: datetime | |
| class SystemPromptOut(BaseModel): | |
| id: str | |
| name: str | |
| description: str | None = None | |
| tags: list[str] | |
| active: bool | |
| currentVersion: int | |
| versions: list[SystemPromptVersion] = Field(default_factory=list) | |
| createdAt: datetime | |
| updatedAt: datetime | |
| class SystemPromptSummary(BaseModel): | |
| """Minimal info for non-admin users (content is NEVER sent).""" | |
| id: str | |
| name: str | |
| description: str | None = None | |
| class ProviderKeyCreate(BaseModel): | |
| provider: Provider | |
| apiKey: str = Field(min_length=1) | |
| endpoint: str | None = None | |
| class ProviderKeyOut(BaseModel): | |
| id: str | |
| provider: Provider | |
| endpoint: str | None = None | |
| status: str = "pending" | |
| hasApiKey: bool = True | |
| lastSyncAt: datetime | None = None | |
| modelsImported: int = 0 | |
| createdAt: datetime | |
| updatedAt: datetime | |