Multimodel_Rag / app /api /agent.py
Dhrumil Parikh
deploy GeminiRAG
cdc55f4
Raw
History Blame Contribute Delete
1.38 kB
"""
Agent conversation endpoints.
POST /v1/agent/chat — multi-turn document chat powered by Groq.
Accepts an optional session_id; creates a
new UUID session if not provided. Session
history is stored in Redis (7-day TTL).
DELETE /v1/agent/session/{id} — clear a specific session's history from Redis.
"""
from typing import Optional
from fastapi import APIRouter, Depends
from pydantic import BaseModel
from app.deps import get_current_user
from app.models.db import User
router = APIRouter()
class AgentChatRequest(BaseModel):
message: str
session_id: Optional[str] = None
@router.post("/agent/chat")
async def agent_chat(
req: AgentChatRequest,
current_user: User = Depends(get_current_user),
):
from app.agent.agent import run_agent
return await run_agent(
message=req.message,
user_id=str(current_user.id),
session_id=req.session_id,
)
@router.delete("/agent/session/{session_id}")
async def clear_session(
session_id: str,
current_user: User = Depends(get_current_user),
):
from app.agent.agent import SESSION_KEY_PREFIX, _redis
try:
_redis().delete(f"{SESSION_KEY_PREFIX}{session_id}")
except Exception:
pass
return {"cleared": session_id}