25 lines
672 B
Python
25 lines
672 B
Python
"""自然语言查询 API(R4/R20)。"""
|
||
|
||
from __future__ import annotations
|
||
|
||
from fastapi import APIRouter, Depends
|
||
from sqlalchemy.orm import Session
|
||
|
||
from app.api.schemas import NLQRequest, NLQResponse
|
||
from app.db import get_session
|
||
from app.nlq import service as nlq
|
||
|
||
router = APIRouter(prefix="/nlq", tags=["nlq"])
|
||
|
||
|
||
@router.post("", response_model=NLQResponse)
|
||
def ask(req: NLQRequest, session: Session = Depends(get_session)) -> NLQResponse:
|
||
ans = nlq.ask(req.question, session=session)
|
||
return NLQResponse(
|
||
question=ans.question,
|
||
answer=ans.answer,
|
||
provider=ans.provider,
|
||
model=ans.model,
|
||
egress=ans.egress,
|
||
)
|