netflix/chat-interface/vite.config.js
michael 236d1ddbd8 Initial commit: Netflix GraphRAG marketing chatbot
Full-stack application combining LlamaIndex vector search with Neo4j
knowledge graph (GraphRAG) for answering queries about Netflix marketing
materials. Flask/Hypercorn backend with custom ReAct agent, React frontend.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 10:28:33 -06:00

124 lines
4 KiB
JavaScript

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path from 'path'
export default defineConfig(({ mode }) => {
const baseUrl = mode === 'production' ? '/netflix_v2/' : '/';
// Create a replace plugin to ensure all '/netflix_back' gets replaced with the full URL
const replaceBackendUrl = {
name: 'replace-backend-url',
transform(src, id) {
if (id.endsWith('.js') || id.endsWith('.jsx')) {
return {
code: src.replace(/['"]\/netflix_back['"]/g, '"https://ai-sandbox.oliver.solutions/netflix_back_v2"'),
map: null
};
}
}
};
return {
plugins: [react(), replaceBackendUrl],
base: baseUrl,
server: {
port: 5173,
proxy: {
// New MongoDB conversation endpoints
'/conversations': {
target: 'https://ai-sandbox.oliver.solutions/netflix_back_v2',
changeOrigin: true,
secure: true,
timeout: 300000 // 5 minutes timeout
},
'/conversations/new': {
target: 'https://ai-sandbox.oliver.solutions/netflix_back_v2',
changeOrigin: true,
secure: true,
timeout: 300000 // 5 minutes timeout
},
// Original endpoints
'/chat': {
target: 'https://ai-sandbox.oliver.solutions/netflix_back_v2',
changeOrigin: true,
secure: true,
timeout: 300000 // 5 minutes timeout
},
'/status': {
target: 'https://ai-sandbox.oliver.solutions/netflix_back_v2',
changeOrigin: true,
secure: true,
timeout: 300000 // 5 minutes timeout
},
'/initialize': {
target: 'https://ai-sandbox.oliver.solutions/netflix_back_v2',
changeOrigin: true,
secure: true,
timeout: 300000 // 5 minutes timeout
},
'/reset': {
target: 'https://ai-sandbox.oliver.solutions/netflix_back_v2',
changeOrigin: true,
secure: true,
timeout: 300000 // 5 minutes timeout
},
'/download-brief': {
target: 'https://ai-sandbox.oliver.solutions/netflix_back_v2',
changeOrigin: true,
secure: true,
timeout: 300000 // 5 minutes timeout
},
'/init-chunked-upload': {
target: 'https://ai-sandbox.oliver.solutions/netflix_back_v2',
changeOrigin: true,
secure: true,
timeout: 300000 // 5 minutes timeout
},
'/upload-chunk': {
target: 'https://ai-sandbox.oliver.solutions/netflix_back_v2',
changeOrigin: true,
secure: true,
timeout: 300000 // 5 minutes timeout
},
'/finalize-upload': {
target: 'https://ai-sandbox.oliver.solutions/netflix_back_v2',
changeOrigin: true,
secure: true,
timeout: 300000 // 5 minutes timeout
},
'/upload-small-file': {
target: 'https://ai-sandbox.oliver.solutions/netflix_back_v2',
changeOrigin: true,
secure: true,
timeout: 300000 // 5 minutes timeout
},
'/initialize-from-uploads': {
target: 'https://ai-sandbox.oliver.solutions/netflix_back_v2',
changeOrigin: true,
secure: true,
timeout: 300000 // 5 minutes timeout
},
'/images': {
target: 'https://ai-sandbox.oliver.solutions/netflix_back_v2',
changeOrigin: true,
secure: true,
timeout: 300000 // 5 minutes timeout
},
'/list-images': {
target: 'https://ai-sandbox.oliver.solutions/netflix_back_v2',
changeOrigin: true,
secure: true,
timeout: 300000 // 5 minutes timeout
},
'/capture-screenshot': {
target: 'https://ai-sandbox.oliver.solutions/netflix_back_v2',
changeOrigin: true,
secure: true,
timeout: 300000 // 5 minutes timeout
}
}
}
};
})