eoc-customer-support-assistant
1.5K
EOC Customer Support Assistant is an AI-powered NestJS service for automating and orchestrating customer support workflows. It integrates with Chatwoot and GitHub, leverages AWS Bedrock AI models for intelligent conversation routing and knowledge management, and uses Redis and Qdrant for operational context storage and vector search capabilities.
The application follows a modular NestJS architecture:
src/
├── modules/
│ ├── chatwoot/ # Chatwoot webhook ingestion and conversation orchestration
│ ├── github-webhook/ # GitHub webhook processing and KB embedding sync
│ ├── health/ # Liveness/readiness probes
│ ├── ai/ # AI service for Bedrock integration
│ ├── memory/ # Episodic and permanent memory management
│ └── app/ # Core application module
├── integrations/
│ ├── redis/ # Redis client and caching
│ ├── bedrock/ # AWS Bedrock AI integration
│ ├── qdrant/ # Qdrant vector database client
│ ├── bullmq/ # Job queue processing
│ └── chatwoot/ # Chatwoot API client
├── core/
│ ├── config/ # Typed configuration and environment validation
│ ├── guards/ # Authentication and authorization guards
│ ├── http/ # HTTP filters and interceptors
│ └── logger/ # Application logging
└── scripts/
└── vector-seed/ # Knowledge base seeding scripts
/api (configurable via APP_BASE_PATH environment variable)GET /api/health/liveGET /api/health/ready# Install dependencies
npm install
# Copy environment template
cp .env.example .env
# Configure environment variables
# Edit .env with your credentials and deployment-specific values
# Development mode with hot reload
npm run start:dev
# Production build
npm run build
# Production mode
npm run start:prod
Send a POST request to /api/chatwoot/webhook with a valid Chatwoot payload. The service will:
curl http://localhost:3000/api/health/live
# Lint code
npm run lint
# Build application
npm run build
# Run unit tests
npm run test
# Run end-to-end tests
npm run test:e2e
# Check code formatting
npm run format:check
src/**/*.spec.tstest/app.e2e-spec.tsdocker build -t eoc-customer-support-assistant .
docker compose up --build
docker run -p 3000:3000 --env-file .env eoc-customer-support-assistant
Use docker-compose.yml for local development or simple deployments.
Use the Helm chart in charts/eoc-customer-support-assistant/ for Kubernetes deployments:
helm install eoc-customer-support-assistant ./charts/eoc-customer-support-assistant
Adapt environment variables and secrets for your cloud provider (AWS, GCP, Azure). Use secret management services for sensitive credentials.
See .env.example for the complete variable matrix. Core configuration categories:
NODE_ENV: Application environment (development, production, test)PORT: Server port (default: 3000)APP_BASE_PATH: API base path (default: /api)LOG_LEVEL: Logging level (debug, info, warn, error)CORS_ORIGINS: Allowed CORS origins (comma-separated)BODY_LIMIT: Maximum request body sizeREQUEST_TIMEOUT_MS: Request timeout in millisecondsTRUST_PROXY: Enable when behind a reverse proxyRATE_LIMIT_TTL_MS: Rate limit time windowRATE_LIMIT_LIMIT: Maximum requests per windowREDIS_HOST: Redis server hostnameREDIS_PORT: Redis server portREDIS_PASSWORD: Redis authentication passwordREDIS_DB: Redis database numberBEDROCK_AWS_REGION: AWS region for BedrockBEDROCK_AWS_ACCESS_KEY_ID: AWS access keyBEDROCK_AWS_SECRET_ACCESS_KEY: AWS secret keyQDRANT_URL: Qdrant server URLQDRANT_API_KEY: Qdrant API key (if authentication enabled)QDRANT_USE_HTTPS: Use HTTPS for Qdrant connectionCHATWOOT_BASE_URL: Chatwoot instance URLCHATWOOT_AGENT_BOT_ACCESS_TOKEN: Bot access tokenCHATWOOT_USER_ACCESS_TOKEN: User access tokenCHATWOOT_WEBHOOK_SECRET: Webhook signature secretCHATWOOT_ACCOUNT_ID: Chatwoot account IDGITHUB_WEBHOOK_SECRET: GitHub webhook signature secretVECTOR_SEED_REPO_OWNER: GitHub repository ownerVECTOR_SEED_REPO_NAME: GitHub repository nameVECTOR_SEED_BRANCH: Branch to syncVECTOR_SEED_COLLECTION_NAME: Qdrant collection nameThis is a private enterprise application. Internal contributions should follow these guidelines:
devnpm run testnpm run lintCopyright (c) Radiant Logic, Inc. All rights reserved.
This software is proprietary and confidential. Unauthorized copying, distribution, or use of this software, via any medium, is strictly prohibited. This software is provided "AS IS" without warranty of any kind.
Content type
Image
Digest
sha256:375b9a7cf…
Size
218.4 MB
Last updated
4 days ago
docker pull radiantone/eoc-customer-support-assistant:pr-21-1982262