Princeaka's picture
Upload 14 files
220d87f verified
raw
history blame
1.25 kB
from fastapi import APIRouter, Depends, UploadFile, File
from sqlalchemy.orm import Session
from ..database import get_db
from ..schemas import ChatIn, ChatOut, ChatMessageOut
from ..models import ChatMessage
from ..core.security import get_current_user
router = APIRouter(prefix="/api/chat", tags=["Chat"])
@router.get("/history", response_model=list[ChatMessageOut])
def history(db: Session = Depends(get_db), user = Depends(get_current_user)):
rows = db.query(ChatMessage).filter(ChatMessage.user_id == user.id).order_by(ChatMessage.created_at.asc()).all()
return rows
@router.post("", response_model=ChatOut)
def send(payload: ChatIn, db: Session = Depends(get_db), user = Depends(get_current_user)):
um = ChatMessage(user_id=user.id, role="user", content=payload.message)
db.add(um)
reply_text = f"CHB: You said '{payload.message}'"
bm = ChatMessage(user_id=user.id, role="assistant", content=reply_text)
db.add(bm)
db.commit()
return {"reply": reply_text}
@router.post("/upload")
async def upload(file: UploadFile = File(...), user = Depends(get_current_user)):
# stub: accept file and return name; real storage to be implemented
return {"filename": file.filename, "detail":"file received"}