Spaces:
Running
Running
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"]) | |
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 | |
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} | |
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"} | |