didi-lot2-backend/backend/services/orchestration-layer/README.md
2026-07-10 03:39:53 -07:00

8.8 KiB

Orchestration Layer

Business logic services for the DIDI platform. Contains the analysis engine and parameters management API.

Services

Agent V3

Analysis pipeline engine. Processes content through multiple detection components and generates risk verdicts.

  • Port: 24803
  • Container: didi-agent-v3
  • Access: Via Kong at /agent-v3/*

didiFramework

CRUD API for detection parameters. Manages techniques, dimensions, weights, and prompts.

  • Port: 3005
  • Container: didi-framework
  • Database: PostgreSQL cluster (bos_parammgmt schema)

Architecture

┌─────────────────────────────────────────────────────────────────────────┐
│                        ORCHESTRATION LAYER                               │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  ┌─────────────────────────────┐    ┌─────────────────────────────┐     │
│  │        Agent V3             │    │      didiFramework          │     │
│  │        Port 24803           │    │       Port 3005             │     │
│  ├─────────────────────────────┤    ├─────────────────────────────┤     │
│  │                             │    │                             │     │
│  │  Pipeline Components:       │    │  CRUD Endpoints:            │     │
│  │  - Techniques Detection     │    │  - /api/techniques          │     │
│  │  - AI Content Detection     │    │  - /api/dimensions          │     │
│  │  - Claims Verification      │    │  - /api/subdimensions       │     │
│  │  - Domain Analysis          │    │  - /api/indicators          │     │
│  │  - Verdict Aggregation      │    │  - /api/weights             │     │
│  │                             │    │  - /api/prompts             │     │
│  │  APIs:                      │    │  - /api/sync-redis          │     │
│  │  - /api/v3/pipeline/*       │    │  - /api/history             │     │
│  │  - /api/v3/techniques/*     │    │                             │     │
│  │  - /api/v3/ai-tampered/*    │    │                             │     │
│  │  - /api/v3/claims/*         │    │                             │     │
│  │  - /api/v3/history/*        │    │                             │     │
│  │                             │    │                             │     │
│  └──────────────┬──────────────┘    └──────────────┬──────────────┘     │
│                 │                                   │                    │
│                 ▼                                   ▼                    │
│  ┌─────────────────────────────────────────────────────────────────┐    │
│  │                         Redis Cache                              │    │
│  │  - Session state                                                 │    │
│  │  - Framework parameters (synced)                                 │    │
│  │  - Analysis results (temporary)                                  │    │
│  └─────────────────────────────────────────────────────────────────┘    │
│                 │                                   │                    │
│                 ▼                                   ▼                    │
│  ┌─────────────────────────────────────────────────────────────────┐    │
│  │                    PostgreSQL Cluster                            │    │
│  │  10.11.50.167:5000                                               │    │
│  │  - bos_parammgmt: Detection parameters                          │    │
│  │  - bos_analysis: Analysis results                                │    │
│  └─────────────────────────────────────────────────────────────────┘    │
│                                                                          │
└─────────────────────────────────────────────────────────────────────────┘

Directory Structure

orchestration-layer/
├── agent-v3/                   # Analysis engine
│   ├── docker-compose.yml
│   ├── src/
│   │   ├── api/                # Route handlers
│   │   ├── components/         # Analysis components
│   │   │   ├── techniques/     # Manipulation detection
│   │   │   ├── ai-tampered/    # AI content detection
│   │   │   ├── claims/         # Claim verification
│   │   │   └── pipeline/       # Orchestration
│   │   ├── config/             # Configuration
│   │   └── core/               # Core utilities
│   └── scripts/                # Build/deploy scripts
├── didiFramework/              # Parameters API
│   ├── docker-compose.yml
│   ├── src/
│   │   ├── routes/             # API endpoints
│   │   ├── config/             # Database config
│   │   ├── types/              # TypeScript types
│   │   └── utils/              # Utilities
│   ├── sql/                    # SQL scripts
│   └── scripts/                # Utilities
└── docs/                       # Documentation

Quick Start

Start Both Services

# Start didiFramework
cd didiFramework
docker compose up -d

# Start Agent V3
cd ../agent-v3
docker compose up -d

Check Status

docker ps | grep -E "framework|agent-v3"

View Logs

docker logs -f didi-framework
docker logs -f didi-agent-v3

API Overview

Agent V3 Endpoints

Analysis Pipeline:

  • POST /api/v3/pipeline/analyze - Analyze text
  • POST /api/v3/pipeline/analyze-url - Analyze URL
  • POST /api/v3/pipeline/analyze-media - Analyze media
  • GET /api/v3/pipeline/:sessionId/status - Check status
  • GET /api/v3/pipeline/:sessionId/result - Get result

Individual Components:

  • POST /api/v3/techniques/analyze - Techniques only
  • POST /api/v3/ai-tampered/analyze - AI detection only
  • POST /api/v3/claims/analyze - Claims only

History:

  • GET /api/v3/history - List analyses
  • GET /api/v3/history/:sessionId - Analysis details
  • DELETE /api/v3/history/:sessionId - Delete analysis

didiFramework Endpoints

Parameters:

  • GET/POST/PUT/DELETE /api/techniques
  • GET/POST/PUT/DELETE /api/dimensions
  • GET/POST/PUT/DELETE /api/subdimensions
  • GET/POST/PUT/DELETE /api/indicators

Weights:

  • GET/PUT /api/weights/component
  • GET/PUT /api/weights/multipliers
  • GET/PUT /api/weights/scenarios

Sync:

  • POST /api/sync-redis - Sync all params to Redis
  • GET /api/sync-redis/status - Check sync status

History (proxy):

  • GET /api/history - Analysis history
  • GET /api/history/:sessionId - Analysis details

Data Flow

  1. Request arrives at Kong (/agent-v3/*)
  2. Kong routes to Agent V3 (port 24803)
  3. Agent V3 loads parameters from Redis (synced from didiFramework)
  4. Analysis components process content
  5. Results saved to Redis (temporary) and PostgreSQL (permanent)
  6. Response returned through Kong

Configuration

Agent V3

Environment variables in docker-compose.yml:

  • REDIS_HOST, REDIS_PORT, REDIS_PASSWORD
  • PG_HOST, PG_PORT, PG_DATABASE, PG_USER, PG_PASSWORD
  • LLM provider API keys

didiFramework

Environment variables:

  • DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD
  • REDIS_HOST, REDIS_PORT, REDIS_PASSWORD

Dependencies

Both services depend on:

  • PostgreSQL cluster (10.11.50.167:5000)
  • Redis (didi-cache)
  • Network: didi-staging_didi-staging