codenuk_frontend_mine/FRONTEND_AI_INTEGRATION.md
2025-10-17 10:35:11 +05:30

280 lines
7.5 KiB
Markdown

# Frontend AI Analysis Integration
## Overview
This document describes the complete integration of AI analysis functionality into the frontend, including real-time monitoring, progress tracking, and API gateway communication.
## Architecture
```
Frontend → API Gateway → AI Analysis Service → Git Integration Service
↓ ↓ ↓ ↓
Real-time UI → HTTP API → Repository Info → Local File Access
↓ ↓ ↓ ↓
Progress → WebSocket → Analysis → Direct File System
Monitoring → Stream → Processing → Access
```
## Components Implemented
### 1. API Routes (`/app/api/ai/repository/`)
#### `/analyze/route.ts`
- **Purpose**: Start AI analysis for a repository
- **Method**: POST
- **Input**: `{ repository_id, user_id, output_format, max_files }`
- **Output**: Analysis result with stats and report path
#### `/stream/route.ts`
- **Purpose**: Real-time streaming of analysis progress
- **Method**: GET
- **Input**: `repository_id`, `user_id` as query parameters
- **Output**: Server-Sent Events stream with progress updates
#### `/report/[filename]/route.ts`
- **Purpose**: Download analysis reports
- **Method**: GET
- **Input**: Filename as URL parameter
- **Output**: File download with appropriate headers
### 2. React Hooks (`/hooks/useAIAnalysis.ts`)
#### `useAIAnalysis` Hook
- **State Management**: Analysis progress, results, errors
- **Functions**:
- `startAnalysis()`: Initiates analysis with options
- `stopAnalysis()`: Stops ongoing analysis
- `resetAnalysis()`: Resets all state
- **Real-time Updates**: Uses EventSource for streaming updates
### 3. UI Components (`/components/ai/`)
#### `AnalysisMonitor.tsx`
- **Real-time Progress**: Shows analysis progress with percentage
- **Status Indicators**: Loading, error, and completion states
- **Statistics Display**: File counts, quality scores, languages
- **Download Functionality**: Direct report download
#### `AnalysisModal.tsx`
- **Modal Interface**: Full-screen analysis interface
- **Progress Tracking**: Real-time progress updates
- **Error Handling**: User-friendly error messages
- **Result Display**: Comprehensive analysis results
### 4. Integration Points
#### GitHub Repos Page (`/app/github/repos/page.tsx`)
- **AI Analysis Button**: Triggers analysis modal
- **Repository Context**: Passes repository ID and name
- **User Context**: Handles user authentication
- **Modal Integration**: Seamless modal experience
## Real-time Features
### 1. Progress Monitoring
```typescript
interface AnalysisProgress {
current_chunk: number
total_chunks: number
processed_files: number
total_files: number
percentage: number
}
```
### 2. Status Updates
- **Ready**: Analysis not started
- **Analyzing**: In progress with real-time updates
- **Complete**: Analysis finished with results
- **Error**: Analysis failed with error message
### 3. Statistics Display
- **File Metrics**: Total files, lines of code
- **Quality Scores**: Overall code quality rating
- **Language Breakdown**: Programming languages detected
- **Quality Distribution**: High/medium/low quality files
## API Gateway Integration
### 1. Service Communication
All communication flows through the API gateway:
```
Frontend → Next.js API Routes → External Services
```
### 2. Environment Configuration
```env
# Service URLs
GIT_INTEGRATION_SERVICE_URL=http://git-integration:8012
AI_ANALYSIS_SERVICE_URL=http://ai-analysis-service:8022
# Public URLs (for client-side)
NEXT_PUBLIC_GIT_INTEGRATION_SERVICE_URL=http://localhost:8012
NEXT_PUBLIC_AI_ANALYSIS_SERVICE_URL=http://localhost:8022
```
### 3. Error Handling
- **Service Unavailable**: Graceful fallback messages
- **Network Errors**: Retry mechanisms
- **Analysis Failures**: User-friendly error display
## User Experience Flow
### 1. Analysis Initiation
1. User clicks "AI Analysis" button on repository card
2. Modal opens with analysis interface
3. User can start analysis or close modal
### 2. Real-time Progress
1. Analysis starts with progress indicator
2. Real-time updates show:
- Files processed
- Chunks processed
- Percentage complete
3. User can stop analysis if needed
### 3. Results Display
1. Analysis completes with success indicator
2. Statistics displayed:
- Total files and lines
- Quality score
- Language breakdown
- Quality distribution
3. Download button for report
### 4. Error Handling
1. Error messages displayed clearly
2. Retry options provided
3. User can close and try again
## Technical Implementation
### 1. State Management
```typescript
const {
isAnalyzing, // Analysis in progress
progress, // Real-time progress
result, // Analysis results
error, // Error messages
startAnalysis, // Start function
stopAnalysis, // Stop function
resetAnalysis // Reset function
} = useAIAnalysis()
```
### 2. Real-time Updates
```typescript
// EventSource for streaming updates
const eventSource = new EventSource(streamUrl)
eventSource.onmessage = (event) => {
const data = JSON.parse(event.data)
// Update progress, handle completion, etc.
}
```
### 3. File Download
```typescript
const handleDownloadReport = async () => {
const response = await fetch(`/api/ai/repository/report/${filename}`)
const blob = await response.blob()
// Create download link and trigger download
}
```
## Security Considerations
### 1. Authentication
- User ID passed through all requests
- JWT tokens for service authentication
- Repository access validation
### 2. Input Validation
- Repository ID validation
- User ID validation
- File size limits
- Content type validation
### 3. Error Handling
- No sensitive information in error messages
- Graceful degradation on service failures
- User-friendly error display
## Performance Optimizations
### 1. Caching
- Analysis results cached for 24 hours
- File content hashing for change detection
- Redis-based caching system
### 2. Rate Limiting
- 90 requests per minute to Claude API
- Request queuing and throttling
- Progress updates to prevent timeouts
### 3. Content Optimization
- Large files truncated intelligently
- Important code sections preserved
- Token limit compliance
## Deployment Considerations
### 1. Environment Variables
```env
# Required for production
GIT_INTEGRATION_SERVICE_URL=https://git-integration.yourdomain.com
AI_ANALYSIS_SERVICE_URL=https://ai-analysis.yourdomain.com
```
### 2. CORS Configuration
```typescript
// API routes handle CORS
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
```
### 3. Error Monitoring
- Console logging for debugging
- Error tracking for production
- Performance monitoring
## Testing
### 1. Unit Tests
- Hook functionality testing
- Component rendering tests
- API route testing
### 2. Integration Tests
- End-to-end analysis flow
- Real-time update testing
- Error scenario testing
### 3. Performance Tests
- Large repository handling
- Concurrent analysis testing
- Memory usage monitoring
## Future Enhancements
### 1. Advanced Features
- Batch analysis for multiple repositories
- Analysis scheduling
- Custom analysis parameters
### 2. UI Improvements
- Analysis history
- Comparison between repositories
- Advanced filtering and sorting
### 3. Performance
- Background processing
- Queue management
- Resource optimization
This integration provides a complete, production-ready AI analysis system with real-time monitoring, progress tracking, and seamless user experience through the API gateway architecture.