2025-09-13 06:50:52 +03:00
2025-09-13 06:48:55 +03:00
2025-09-13 06:48:55 +03:00
2025-09-13 06:48:55 +03:00
hi
2025-09-13 06:50:52 +03:00

AI-Powered Support System

A hybrid AI-powered customer support system that combines OpenAI's GPT-4 for complex queries with local LLM (Ollama) for simple queries. The system includes sentiment analysis, real-time chat, and a knowledge base for efficient customer support.

Features

  • Hybrid AI System: Combines OpenAI's GPT-4 for complex queries with local LLM (Ollama) for simple queries
  • Intelligent Routing: Automatically routes queries to the appropriate AI model based on complexity
  • Sentiment Analysis: Analyzes customer sentiment and escalates to human agents when needed
  • Real-time Chat: WebSocket-based real-time communication with typing indicators and read receipts
  • Knowledge Base: FAQ system with automatic suggestions based on conversation context
  • User Authentication: JWT-based authentication with role-based access control
  • Admin Dashboard: Analytics and management interface for administrators
  • Conversation History: Search and review past conversations
  • Scalable Architecture: Built with Go, PostgreSQL, and Redis for high performance

Technology Stack

Backend

  • Go: Programming language
  • Gin: Web framework
  • PostgreSQL: Primary database
  • Redis: Caching and session management
  • JWT: Authentication
  • GORM: ORM for database operations
  • Logrus: Structured logging
  • Viper: Configuration management

AI Integration

  • OpenAI API: For complex queries
  • Ollama: For local LLM integration
  • Sentiment Analysis: For analyzing customer sentiment

Frontend (To be implemented)

  • React/Vue.js: Frontend framework
  • WebSocket: Real-time communication
  • Material-UI/Ant Design: UI components

Deployment

  • Docker: Containerization
  • Docker Compose: Local development
  • Kubernetes: Production deployment
  • CI/CD: Automated testing and deployment

Project Structure

support/
├── backend/                 # Backend Go application
│   ├── cmd/                # Application entry point
│   │   └── main.go        # Main application file
│   ├── internal/          # Internal application packages
│   │   ├── ai/            # AI service
│   │   ├── auth/          # Authentication service
│   │   ├── conversation/  # Conversation service
│   │   ├── database/      # Database connection and migrations
│   │   ├── handlers/      # HTTP handlers
│   │   ├── knowledge/     # Knowledge base service
│   │   ├── models/        # Data models
│   │   └── routes/        # Route definitions
│   ├── pkg/               # Public library packages
│   │   ├── config/        # Configuration management
│   │   └── logger/        # Logging utilities
│   ├── go.mod             # Go module file
│   ├── go.sum             # Go module checksums
│   └── Dockerfile         # Docker configuration for backend
├── frontend/              # Frontend React/Vue.js application (to be implemented)
├── docs/                  # Documentation
├── deployment/            # Kubernetes deployment configurations (to be implemented)
├── docker-compose.yml     # Docker Compose configuration
├── .gitignore             # Git ignore file
└── README.md              # This file

Getting Started

Prerequisites

  • Go 1.21 or higher
  • Docker and Docker Compose
  • PostgreSQL (if not using Docker)
  • Redis (if not using Docker)
  • OpenAI API key (for GPT-4 integration)

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/support.git
    cd support
    
  2. Set up environment variables:

    cp backend/.env.example backend/.env
    

    Edit the .env file with your configuration, including your OpenAI API key.

  3. Start the services using Docker Compose:

    docker-compose up -d
    
  4. Wait for all services to start up. You can check the logs with:

    docker-compose logs -f
    

Development

Backend Development

  1. Navigate to the backend directory:

    cd backend
    
  2. Install dependencies:

    go mod download
    
  3. Run the application:

    go run cmd/main.go
    

The backend API will be available at http://localhost:8080.

Frontend Development (To be implemented)

  1. Navigate to the frontend directory:

    cd frontend
    
  2. Install dependencies:

    npm install
    
  3. Run the development server:

    npm run dev
    

The frontend will be available at http://localhost:3000.

API Documentation

Authentication Endpoints

  • POST /api/v1/public/login - User login
  • POST /api/v1/public/register - User registration

User Endpoints

  • GET /api/v1/user/profile - Get user profile
  • PUT /api/v1/user/profile - Update user profile
  • PUT /api/v1/user/change-password - Change password

Admin Endpoints

  • GET /api/v1/admin/users - List all users
  • GET /api/v1/admin/users/:id - Get user by ID
  • PUT /api/v1/admin/users/:id - Update user
  • DELETE /api/v1/admin/users/:id - Delete user

Conversation Endpoints

  • GET /api/v1/conversations - List conversations
  • POST /api/v1/conversations - Create new conversation
  • GET /api/v1/conversations/:id - Get conversation by ID
  • PUT /api/v1/conversations/:id - Update conversation
  • DELETE /api/v1/conversations/:id - Delete conversation
  • GET /api/v1/conversations/:id/stats - Get conversation statistics

Message Endpoints

  • GET /api/v1/conversations/:id/messages - Get messages in a conversation
  • POST /api/v1/conversations/:id/messages - Send a message
  • PUT /api/v1/conversations/:id/messages/:messageId - Update a message
  • DELETE /api/v1/conversations/:id/messages/:messageId - Delete a message
  • POST /api/v1/conversations/:id/ai - Send message with AI response

Knowledge Base Endpoints

  • GET /api/v1/knowledge - Get knowledge base entries
  • GET /api/v1/knowledge/search - Search knowledge base
  • GET /api/v1/knowledge/categories - Get knowledge categories
  • GET /api/v1/knowledge/tags - Get knowledge tags
  • GET /api/v1/knowledge/popular - Get popular knowledge entries
  • GET /api/v1/knowledge/recent - Get recent knowledge entries
  • GET /api/v1/knowledge/best-match - Find best match for a query
  • GET /api/v1/knowledge/stats - Get knowledge base statistics
  • GET /api/v1/knowledge/:id - Get knowledge base entry by ID
  • POST /api/v1/knowledge/:id/rate - Rate knowledge base entry

Admin Knowledge Base Endpoints

  • POST /api/v1/admin/knowledge - Create knowledge base entry
  • PUT /api/v1/admin/knowledge/:id - Update knowledge base entry
  • DELETE /api/v1/admin/knowledge/:id - Delete knowledge base entry

AI Endpoints

  • POST /api/v1/ai/query - Query AI service
  • POST /api/v1/ai/analyze-complexity - Analyze complexity of a prompt
  • GET /api/v1/ai/models - Get available AI models
  • POST /api/v1/ai/openai - Query OpenAI directly
  • POST /api/v1/ai/ollama - Query Ollama directly

Testing

Backend Testing

  1. Navigate to the backend directory:

    cd backend
    
  2. Run tests:

    go test ./...
    

Frontend Testing (To be implemented)

  1. Navigate to the frontend directory:

    cd frontend
    
  2. Run tests:

    npm test
    

Deployment

Docker Deployment

  1. Build the Docker image:

    docker build -t support-backend ./backend
    
  2. Run the container:

    docker run -p 8080:8080 support-backend
    

Docker Compose Deployment

  1. Start all services:

    docker-compose up -d
    
  2. Stop all services:

    docker-compose down
    

Kubernetes Deployment (To be implemented)

  1. Apply the Kubernetes configurations:
    kubectl apply -f deployment/
    
Description
AI support with a lot of perks
Readme 36 MiB
Languages
Go 97.5%
Makefile 2%
Dockerfile 0.5%