62 lines
1.8 KiB
Python
62 lines
1.8 KiB
Python
|
|
from fastapi import APIRouter, Depends
|
||
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||
|
|
|
||
|
|
from app.database import get_db
|
||
|
|
from app.models.user import User
|
||
|
|
from app.routers.auth import get_current_user
|
||
|
|
from app.schemas.brain import (
|
||
|
|
BrainEventOut,
|
||
|
|
BrainLearnRunOut,
|
||
|
|
BrainMemoryOut,
|
||
|
|
BrainOverviewOut,
|
||
|
|
BrainTagGroupsOut,
|
||
|
|
)
|
||
|
|
from app.services.brain_service import BrainService
|
||
|
|
|
||
|
|
router = APIRouter(prefix="/api/brain", tags=["知识大脑"])
|
||
|
|
|
||
|
|
|
||
|
|
@router.get("/overview", response_model=BrainOverviewOut)
|
||
|
|
async def get_brain_overview(
|
||
|
|
current_user: User = Depends(get_current_user),
|
||
|
|
db: AsyncSession = Depends(get_db),
|
||
|
|
):
|
||
|
|
service = BrainService(db)
|
||
|
|
return await service.get_overview(current_user.id)
|
||
|
|
|
||
|
|
|
||
|
|
@router.get("/memories", response_model=list[BrainMemoryOut])
|
||
|
|
async def list_brain_memories(
|
||
|
|
current_user: User = Depends(get_current_user),
|
||
|
|
db: AsyncSession = Depends(get_db),
|
||
|
|
):
|
||
|
|
service = BrainService(db)
|
||
|
|
return await service.list_memories(current_user.id)
|
||
|
|
|
||
|
|
|
||
|
|
@router.get("/tags", response_model=BrainTagGroupsOut)
|
||
|
|
async def list_brain_tags(
|
||
|
|
current_user: User = Depends(get_current_user),
|
||
|
|
db: AsyncSession = Depends(get_db),
|
||
|
|
):
|
||
|
|
service = BrainService(db)
|
||
|
|
return await service.list_tags(current_user.id)
|
||
|
|
|
||
|
|
|
||
|
|
@router.get("/events", response_model=list[BrainEventOut])
|
||
|
|
async def list_brain_events(
|
||
|
|
current_user: User = Depends(get_current_user),
|
||
|
|
db: AsyncSession = Depends(get_db),
|
||
|
|
):
|
||
|
|
service = BrainService(db)
|
||
|
|
return await service.list_events(current_user.id)
|
||
|
|
|
||
|
|
|
||
|
|
@router.post("/learn/run", response_model=BrainLearnRunOut)
|
||
|
|
async def run_brain_learning(
|
||
|
|
current_user: User = Depends(get_current_user),
|
||
|
|
db: AsyncSession = Depends(get_db),
|
||
|
|
):
|
||
|
|
service = BrainService(db)
|
||
|
|
return await service.run_learning(current_user.id)
|