feat: admin panelini ve kurulum dokumanlarini genislet

This commit is contained in:
2026-03-22 04:46:02 +03:00
parent 5f4c19a18d
commit 37da564a5f
14 changed files with 728 additions and 49 deletions

View File

@@ -3,9 +3,10 @@ from pydantic import BaseModel
from sqlalchemy.orm import Session
from app.admin.services import AdminService
from app.db import get_session
from app.config import get_settings as get_app_settings
from app.db import SecretORM, get_session
from app.llm.ollama_client import OllamaClient
from app.models import MemoryRecord, OllamaStatus, RuntimeSettings, TelegramStatus, UserRecord
from app.models import AutomationRecord, MemoryRecord, OllamaStatus, RuntimeSettings, TelegramStatus, UserProfileRecord, UserRecord
router = APIRouter(prefix="/admin", tags=["admin"])
@@ -25,7 +26,7 @@ def get_dashboard(service: AdminService = Depends(get_admin_service)):
@router.get("/settings", response_model=RuntimeSettings)
def get_settings(service: AdminService = Depends(get_admin_service)):
def get_runtime_settings(service: AdminService = Depends(get_admin_service)):
return service.get_runtime_settings()
@@ -44,6 +45,16 @@ def post_user(payload: UserRecord, service: AdminService = Depends(get_admin_ser
return service.save_user(payload)
@router.get("/profiles", response_model=list[UserProfileRecord])
def get_profiles(service: AdminService = Depends(get_admin_service)):
return service.list_user_profiles()
@router.get("/automations", response_model=list[AutomationRecord])
def get_automations(service: AdminService = Depends(get_admin_service)):
return service.list_automations()
@router.get("/memory", response_model=list[MemoryRecord])
def get_memory(service: AdminService = Depends(get_admin_service)):
return service.list_memory()
@@ -66,11 +77,18 @@ def post_secret(payload: SecretPayload, service: AdminService = Depends(get_admi
return {"status": "ok"}
@router.get("/integrations/llm", response_model=OllamaStatus)
@router.get("/integrations/ollama", response_model=OllamaStatus)
async def get_ollama_status(service: AdminService = Depends(get_admin_service)):
async def get_llm_status(service: AdminService = Depends(get_admin_service)):
runtime = service.get_runtime_settings()
client = OllamaClient(runtime.ollama_base_url)
return await client.status(runtime.default_model)
settings = get_app_settings()
secret = service.session.get(SecretORM, "zai_api_key") if runtime.model_provider == "zai" else None
client = OllamaClient(
base_url=runtime.local_base_url if runtime.model_provider == "local" else settings.zai_base_url,
provider=runtime.model_provider,
api_key=secret.value if secret else settings.zai_api_key,
)
return await client.status(runtime.local_model if runtime.model_provider == "local" else runtime.zai_model)
@router.get("/integrations/telegram", response_model=TelegramStatus)