Run_code_api / src /apis /routes /chat_route.py
ABAO77's picture
Upload 74 files
6cbca40 verified
raw
history blame
1.46 kB
from fastapi import APIRouter, status, Depends, BackgroundTasks, HTTPException
from fastapi.responses import JSONResponse
from src.utils.logger import logger
from src.agents.role_play.func import create_agents
from pydantic import BaseModel, Field
from typing import List, Dict, Any
from src.agents.role_play.scenarios import get_scenarios, get_scenario_by_id
router = APIRouter(prefix="/ai", tags=["AI"])
class RoleplayRequest(BaseModel):
query: str = Field(..., description="User's query for the AI agent")
session_id: str = Field(
..., description="Session ID for tracking user interactions"
)
scenario: Dict[str, Any] = Field(..., description="The scenario for the roleplay")
@router.get("/scenarios", status_code=status.HTTP_200_OK)
async def list_scenarios():
return JSONResponse(content=get_scenarios())
@router.post("/roleplay", status_code=status.HTTP_200_OK)
async def roleplay(request: RoleplayRequest):
scenario = request.scenario
if not scenario:
raise HTTPException(status_code=400, detail="Scenario not provided")
print("alo", scenario)
print(create_agents(scenario).get_state({"configurable": {"thread_id": request.session_id}}))
response = await create_agents(scenario).ainvoke(
{
"messages": [request.query],
},
{"configurable": {"thread_id": request.session_id}},
)
return JSONResponse(content=response["messages"][-1].content)