/** * AI 어시스턴트 API 프록시 * - /api/ai/v1/* 요청을 AI 서비스(기본 3100 포트)로 전달 * - VEXPLOR와 같은 서비스로 쓰려면: 프론트(9771) → 백엔드(8080) → 여기서 3100으로 프록시 */ import { createProxyMiddleware } from "http-proxy-middleware"; import type { RequestHandler } from "express"; const AI_SERVICE_URL = process.env.AI_ASSISTANT_SERVICE_URL || "http://127.0.0.1:3100"; const aiAssistantProxy: RequestHandler = createProxyMiddleware({ target: AI_SERVICE_URL, changeOrigin: true, pathRewrite: { "^/api/ai/v1": "/api/v1" }, // 대상 서비스 미기동 시 502 등 에러 처리 (v3 타입에 없을 수 있음) onError: (_err, _req, res) => { if (!res.headersSent) { res.status(502).json({ success: false, error: { code: "AI_SERVICE_UNAVAILABLE", message: "AI 어시스턴트 서비스를 사용할 수 없습니다. AI 서비스(기본 3100 포트)를 기동한 뒤 다시 시도하세요.", }, }); } }, } as Parameters[0]); export default aiAssistantProxy;