FinSightAI / backend /routers /sessions.py
Aniket2003333333's picture
start
7248d39
Raw
History Blame Contribute Delete
1.32 kB
"""Chat session management endpoints."""
from typing import List, Optional
from fastapi import APIRouter, Depends, HTTPException
from fastapi.responses import PlainTextResponse
from pydantic import BaseModel
router = APIRouter(prefix="/api/sessions")
class CreateSessionRequest(BaseModel):
title: str = "New Chat"
document_ids: Optional[List[str]] = None
def get_chat_store():
from core.bootstrap import get_chat_store as _get
return _get()
@router.get("")
async def list_sessions(store=Depends(get_chat_store)):
sessions = store.list_sessions()
return {"sessions": sessions}
@router.post("")
async def create_session(request: CreateSessionRequest, store=Depends(get_chat_store)):
session = store.create_session(request.title, request.document_ids)
return session
@router.get("/{session_id}/messages")
async def get_messages(session_id: str, store=Depends(get_chat_store)):
messages = store.get_messages(session_id)
return {"messages": messages}
@router.post("/{session_id}/export")
async def export_session(session_id: str, store=Depends(get_chat_store)):
content = store.export_session(session_id)
if not content:
raise HTTPException(status_code=404, detail="Session not found")
return PlainTextResponse(content, media_type="text/plain")