PutuAPI / app /api /v1 /responses.py
suzmen's picture
Upload 64 files
2af6ef5 verified
"""PhantomAPI — POST /v1/responses."""
from fastapi import APIRouter, Depends
from app.dependencies import verify_api_key
from app.schemas.responses import ResponsesRequest
from app.services.chat import process_responses_api
router = APIRouter()
@router.post("/responses", dependencies=[Depends(verify_api_key)])
async def responses(payload: ResponsesRequest):
"""Modern Responses API endpoint for newer n8n versions."""
data = payload.model_dump()
input_data = data.get("input", "")
# Normalise input to messages list
if isinstance(input_data, str):
messages = [{"role": "user", "content": input_data}]
elif isinstance(input_data, list):
messages = input_data
else:
messages = []
# Inject system instructions
instructions = data.get("instructions", "")
if instructions:
messages.insert(0, {"role": "system", "content": instructions})
return process_responses_api(messages, data["model"], data.get("tools"))