chore: initialize fullstack starter and team guidelines

This commit is contained in:
2026-10-15 13:05:10 +08:00
commit 768c1c3ce9
37 changed files with 388 additions and 0 deletions
View File
View File
+7
View File
@@ -0,0 +1,7 @@
from fastapi import APIRouter
from app.schemas.chat import ChatRequest, ChatResponse
router = APIRouter(tags=["chat"])
@router.post("/chat", response_model=ChatResponse)
def chat(payload: ChatRequest) -> ChatResponse:
# TODO: retrieval -> context assembly -> LLM -> evidence/source checks
return ChatResponse(answer=f"已收到问题:{payload.question}。当前为基础壳子,尚未接入知识检索或大语言模型。", status="stub", sources=[])
+5
View File
@@ -0,0 +1,5 @@
from fastapi import APIRouter
router = APIRouter(tags=["health"])
@router.get("/health")
def health():
return {"status": "ok", "service": "nalati-rag-api"}
+15
View File
@@ -0,0 +1,15 @@
from fastapi import APIRouter, Depends
from sqlalchemy import select
from sqlalchemy.orm import Session
from app.db.session import get_db
from app.models.knowledge import KnowledgeItem
from app.schemas.knowledge import KnowledgeCreate, KnowledgeRead
router = APIRouter(tags=["knowledge"])
@router.get("/knowledge", response_model=list[KnowledgeRead])
def list_knowledge(db: Session = Depends(get_db)):
return list(db.scalars(select(KnowledgeItem).order_by(KnowledgeItem.id.desc())).all())
@router.post("/knowledge", response_model=KnowledgeRead, status_code=201)
def create_knowledge(payload: KnowledgeCreate, db: Session = Depends(get_db)):
item = KnowledgeItem(title=payload.title, category=payload.category, content=payload.content, source_url=str(payload.source_url) if payload.source_url else None, verification_status="pending")
db.add(item); db.commit(); db.refresh(item)
return item