Initial curated Unraid-AppOps-Gateway source from 3bd6f6fee310125bfbb4d4650389a817f498724d
This commit is contained in:
commit
1dfbca08a1
528 files changed
+131054
No files matched your search
@@ -0,0 +1,41 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
from sqlmodel import Session
|
||||
|
||||
from ..core.security import operator_auth
|
||||
from ..db.session import get_session
|
||||
from ..services import knowledge_service
|
||||
|
||||
|
||||
router = APIRouter(prefix="/api/ai/rag", dependencies=[Depends(operator_auth)])
|
||||
|
||||
|
||||
class RagQueryRequest(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
question: str = Field(min_length=2, max_length=500)
|
||||
limit: int = Field(default=6, ge=1, le=10)
|
||||
|
||||
|
||||
@router.get("/status")
|
||||
def status(session: Session = Depends(get_session)):
|
||||
return knowledge_service.index_status(session)
|
||||
|
||||
|
||||
@router.post("/reindex")
|
||||
def reindex(session: Session = Depends(get_session)):
|
||||
return knowledge_service.rebuild_index(session)
|
||||
|
||||
|
||||
@router.post("/query")
|
||||
def query(payload: RagQueryRequest, session: Session = Depends(get_session)):
|
||||
try:
|
||||
return knowledge_service.query(session, payload.question, limit=payload.limit)
|
||||
except ValueError as exc:
|
||||
raise HTTPException(status_code=422, detail=str(exc)) from exc
|
||||
|
||||
|
||||
@router.get("/evaluate")
|
||||
def evaluate(session: Session = Depends(get_session)):
|
||||
return knowledge_service.evaluate_retrieval(session)
|
||||
Reference in new issue
Block a user