A modern, responsive chatbot interface built with React and TypeScript. This application provides an intuitive chat experience with agent selection, knowledge base integration, and source document management.
- Multi-Agent Support: Select and switch between different AI agents
- Knowledge Base Integration: Upload and manage knowledge base documents
- Source Panel: View and manage source documents and references
- Real-time Chat: Interactive chat interface with message formatting
- Settings Management: Configure API endpoints and application settings
- Responsive Design: Modern UI that works across desktop and mobile devices
- Docker Support: Easy deployment with Docker and Docker Compose
- Frontend: React 19.1.0 with TypeScript
- Routing: React Router DOM
- Styling: CSS with custom animations
- Markdown: markdown-it for rich text rendering
- Testing: Jest and React Testing Library
- Containerization: Docker
- Node.js 16+
- npm or yarn
- Docker (optional)
- Clone the repository:
git clone <repository-url>
cd react-chatbot-ui
- Install dependencies:
npm install
- Start the development server:
npm start
- Open http://localhost:3000 to view the application.
- Build and run with Docker Compose:
docker-compose up --build
- Or build manually:
docker build -t react-chatbot-ui .
docker run -p 3000:3000 react-chatbot-ui
- Agent Selection: Choose your preferred AI agent from the agent selector
- Knowledge Base: Upload documents to enhance the chatbot's knowledge
- Chat Interface: Start chatting with the selected agent
- Source Management: View and manage reference documents in the source panel
- Settings: Configure API endpoints and application preferences
npm start
- Runs the app in development modenpm test
- Launches the test runnernpm run build
- Builds the app for productionnpm run eject
- Ejects from Create React App (one-way operation)
src/
├── components/ # Reusable UI components
│ ├── AgentSelector.tsx
│ ├── ChatPanel.tsx
│ ├── UploadModal.tsx
│ ├── Settings.tsx
│ └── SourcePanel.tsx
├── hooks/ # Custom React hooks
├── pages/ # Page components
├── styles/ # CSS and animations
└── App.tsx # Main application component
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License.