codenuk_backend_mine/services/ai-analysis-service/QUICK_REFERENCE.md
2025-10-17 10:33:14 +05:30

8.7 KiB

AI Analysis Service - Quick Reference Guide

Quick Start

1. Start All Services

cd /path/to/codenuk/backend/codenuk_backend_mine
docker-compose up -d

2. Verify Services are Running

# Check all services
docker-compose ps

# Test individual services
curl http://localhost:8000/health          # API Gateway
curl http://localhost:8022/health          # AI Analysis
curl http://localhost:8012/health          # Git Integration

3. Run Analysis from Frontend

import { useAIAnalysis } from '@/hooks/useAIAnalysis'

const { startAnalysis } = useAIAnalysis()

await startAnalysis(repositoryId, userId, {
  output_format: 'pdf',
  max_files: 100
})

Common API Calls

Analyze Repository

curl -X POST http://localhost:8000/api/ai-analysis/analyze-repository \
  -H "Content-Type: application/json" \
  -d '{
    "repository_id": "550e8400-e29b-41d4-a716-446655440000",
    "user_id": "660e8400-e29b-41d4-a716-446655440001",
    "output_format": "pdf",
    "max_files": 100
  }'

Get Repository Info

curl http://localhost:8000/api/github/repository/550e8400-e29b-41d4-a716-446655440000/ui-view?view_type=tree \
  -H "x-user-id: 660e8400-e29b-41d4-a716-446655440001"

Download Report

curl http://localhost:8000/api/ai-analysis/reports/repo_analysis_550e8400_20241216_143022_analysis.pdf \
  --output analysis_report.pdf

Get Memory Stats

curl http://localhost:8000/api/ai-analysis/memory/stats

Service URLs

Service Direct URL Via Gateway
AI Analysis http://localhost:8022 http://localhost:8000/api/ai-analysis
Git Integration http://localhost:8012 http://localhost:8000/api/github
API Gateway http://localhost:8000 N/A
Frontend http://localhost:3000 N/A

Environment Variables Quick Reference

AI Analysis Service

PORT=8022
ANTHROPIC_API_KEY=sk-ant-api03-...
GIT_INTEGRATION_SERVICE_URL=http://git-integration:8012
REDIS_HOST=redis
REDIS_PORT=6379

API Gateway

PORT=8000
AI_ANALYSIS_URL=http://localhost:8022
GIT_INTEGRATION_URL=http://localhost:8012

Git Integration

PORT=8012
POSTGRES_HOST=postgres
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
PUBLIC_BASE_URL=https://backend.codenuk.com

Troubleshooting Commands

Check Service Logs

# AI Analysis Service
docker logs ai-analysis -f

# API Gateway
docker logs api-gateway -f

# Git Integration
docker logs git-integration -f

# All services
docker-compose logs -f

Restart Service

# Restart specific service
docker-compose restart ai-analysis

# Restart all services
docker-compose restart

Check Service Health

# Using curl
curl http://localhost:8022/health

# Using docker exec
docker exec ai-analysis curl localhost:8022/health

Clear Redis Cache

docker exec redis redis-cli FLUSHDB

Check Database Connection

docker exec postgres psql -U postgres -d git_integration -c "SELECT COUNT(*) FROM all_repositories;"

Common Issues and Fixes

Issue: Service Cannot Connect

# Check if service is running
docker ps | grep ai-analysis

# Check network connectivity
docker network inspect backend-network

# Restart service
docker-compose restart ai-analysis

Issue: Redis Connection Failed

# Check Redis status
docker exec redis redis-cli ping

# Expected output: PONG

Issue: Rate Limit Exceeded

# Edit .env file
CLAUDE_REQUESTS_PER_MINUTE=50  # Reduce from 90

# Restart service
docker-compose restart ai-analysis

Issue: Analysis Timeout

# Reduce max_files in request
{
  "max_files": 50  // Instead of 100
}

File Locations

Reports

/app/reports/repo_analysis_{id}_{timestamp}_analysis.pdf

Repository Storage

/app/git-repos/{owner}__{repo}__{branch}/

Logs

docker logs {service_name}

Configuration

services/ai-analysis-service/.env
services/api-gateway/.env
services/git-integration/.env

Testing Endpoints

Test AI Analysis Service Directly

# Health check
curl http://localhost:8022/health

# Test with direct repository analysis
curl -X POST http://localhost:8022/analyze-repository \
  -H "Content-Type: application/json" \
  -d '{
    "repository_id": "test-id",
    "user_id": "test-user",
    "output_format": "json",
    "max_files": 10
  }'

Test Git Integration Service

# Health check
curl http://localhost:8012/health

# Get repository list
curl http://localhost:8012/api/github/user/test-user-id/repositories \
  -H "x-user-id: test-user-id"

Test Through API Gateway

# Health check
curl http://localhost:8000/health

# Test AI Analysis proxying
curl http://localhost:8000/api/ai-analysis/health

# Test Git Integration proxying
curl http://localhost:8000/api/github/health

Performance Tuning

Optimize for Speed

# Reduce max files
max_files: 50

# Increase rate limit (if you have higher API limits)
CLAUDE_REQUESTS_PER_MINUTE=150

# Enable more aggressive caching
CACHE_TTL_SECONDS=172800  # 48 hours instead of 24

Optimize for Quality

# Analyze more files
max_files: 200

# Reduce content truncation threshold
CONTENT_MAX_TOKENS=16000  # Instead of 8000

Monitoring

Check Analysis Progress

# Watch logs in real-time
docker logs ai-analysis -f | grep "Analyzing file"

Monitor Redis Cache

# Get cache stats
docker exec redis redis-cli INFO stats

# Check cache keys
docker exec redis redis-cli KEYS "analysis:*"

# Get cache hit rate
docker exec redis redis-cli INFO stats | grep keyspace

Monitor Database

# Check repository count
docker exec postgres psql -U postgres -d git_integration \
  -c "SELECT COUNT(*) FROM all_repositories;"

# Check recent analyses
docker exec postgres psql -U postgres -d git_integration \
  -c "SELECT id, repository_name, created_at FROM all_repositories ORDER BY created_at DESC LIMIT 10;"

Development Tips

Run Service Locally (Outside Docker)

# AI Analysis Service
cd services/ai-analysis-service
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
export ANTHROPIC_API_KEY=sk-ant-api03-...
export GIT_INTEGRATION_SERVICE_URL=http://localhost:8012
python server.py

Hot Reload

# Frontend (auto-reloads)
cd fronend/codenuk_frontend_mine
npm run dev

# Backend services (use nodemon)
cd services/api-gateway
npm install -g nodemon
nodemon src/server.js

Debug Mode

# Enable debug logging
export DEBUG=*
export LOG_LEVEL=debug

# Python service
export PYTHONUNBUFFERED=1

Security Checklist

  • Set strong GITHUB_CLIENT_SECRET
  • Set secure POSTGRES_PASSWORD
  • Rotate ANTHROPIC_API_KEY regularly
  • Use HTTPS in production (PUBLIC_BASE_URL)
  • Set CORS_ORIGIN to specific domains in production
  • Enable Redis password in production
  • Set SESSION_SECRET to secure random string
  • Never commit .env files to git

Backup and Restore

Backup PostgreSQL Database

docker exec postgres pg_dump -U postgres git_integration > backup.sql

Restore PostgreSQL Database

docker exec -i postgres psql -U postgres git_integration < backup.sql

Backup Redis Cache

docker exec redis redis-cli BGSAVE
docker cp redis:/data/dump.rdb ./redis-backup.rdb

Useful Docker Commands

# View all containers
docker-compose ps

# Stop all services
docker-compose down

# Restart specific service
docker-compose restart ai-analysis

# View logs
docker-compose logs -f ai-analysis

# Execute command in container
docker exec -it ai-analysis bash

# Remove all containers and volumes
docker-compose down -v

# Rebuild specific service
docker-compose build ai-analysis

# Scale service (if supported)
docker-compose up -d --scale ai-analysis=3

API Response Codes

Code Meaning Action
200 Success Continue
201 Created Resource created successfully
400 Bad Request Check request parameters
401 Unauthorized Authenticate user
403 Forbidden Check permissions
404 Not Found Verify resource ID
429 Rate Limited Wait and retry
500 Server Error Check service logs
502 Bad Gateway Check if service is running
504 Gateway Timeout Increase timeout or reduce load

Contact and Support

For detailed documentation, see:


Version: 1.0.0 Last Updated: December 2024