# Frontend Application This directory contains the Next.js frontend application for the txt2kg project. ## Structure - **app/**: Next.js 15 app directory with pages and API routes - API routes for LLM providers (Ollama, vLLM, NVIDIA API) - Triple extraction and graph query endpoints - Settings and health check endpoints - **components/**: React 19 components - Graph visualization (Three.js WebGPU) - PyGraphistry integration for GPU-accelerated rendering - RAG query interface - Document upload and processing - **contexts/**: React context providers for state management - **hooks/**: Custom React hooks - **lib/**: Utility functions and shared logic - LLM service (Ollama, vLLM, NVIDIA API integration) - Graph database services (ArangoDB, Neo4j) - Pinecone vector database integration - RAG service for knowledge graph querying - **public/**: Static assets - **types/**: TypeScript type definitions for graph data structures ## Technology Stack - **Next.js 15**: React framework with App Router - **React 19**: Latest React with improved concurrent features - **TypeScript**: Type-safe development - **Tailwind CSS**: Utility-first styling - **Three.js**: WebGL/WebGPU 3D graph visualization - **D3.js**: Data-driven visualizations - **LangChain**: LLM orchestration and chaining ## Development To start the development server: ```bash cd frontend npm install npm run dev ``` Or use the start script from project root: ```bash ./start.sh --dev-frontend ``` The development server will run on http://localhost:3000 ## Building for Production ```bash cd frontend npm run build npm start ``` Or use Docker (recommended): ```bash # From project root ./start.sh ``` The production app will run on http://localhost:3001 ## Environment Variables Required environment variables are configured in docker-compose files: - `ARANGODB_URL`: ArangoDB connection URL - `OLLAMA_BASE_URL`: Ollama API endpoint - `VLLM_BASE_URL`: vLLM API endpoint (optional) - `NVIDIA_API_KEY`: NVIDIA API key (optional) - `PINECONE_HOST`: Local Pinecone host (optional) - `SENTENCE_TRANSFORMER_URL`: Embeddings service URL (optional) ## Features - **Knowledge Graph Extraction**: Extract triples from text using LLMs - **Graph Visualization**: Interactive 3D visualization with Three.js WebGPU - **RAG Queries**: Query knowledge graphs with retrieval-augmented generation - **Multiple LLM Providers**: Support for Ollama, vLLM, and NVIDIA API - **GPU-Accelerated Rendering**: Optional PyGraphistry integration for large graphs - **Vector Search**: Pinecone integration for semantic search