Chuyển tới nội dung chính

Report Generator Tool Index

Mô tả công cụ: generate_pir.py

Script: /tools/report/generate_pir.py

Mục đích: Chuyển đổi raw incident data từ scratchpad.json thành PIR draft có cấu trúc, sử dụng self-hosted LLM và graph traversal để bổ sung context.

Workflow chi tiết

scratchpad.json

▼ load_scratchpad()
Đọc incident_id, target_service, raw logs

▼ find_service_context()
Đọc /services/{target_service}.md → lấy service metadata

▼ fetch_llm_generation()
Gọi OKF_LLM_BASE_URL với prompt tiếng Việt blended
(3 retries với exponential backoff: 2s, 4s, 8s)

├── LLM thành công → serialize frontmatter + AI banner + prose
└── LLM fail → generate_fallback_skeleton() → status: draft + warning banner


Ghi ra /irp/incidents/pending-draft.md

Environment variables

OKF_LLM_BASE_URL=http://self-hosted-llm-cluster.internal:8000/v1
OKF_LLM_MODEL=llama3-70b-instruct-resilience-tuned

Cách chạy

# Chạy với scratchpad mặc định
python tools/report/generate_pir.py

# Chỉ định scratchpad và output cụ thể
python tools/report/generate_pir.py \
--scratchpad irp/ingestion/scratchpad.json \
--output irp/incidents/pending-draft.md

# Dry-run: in ra console, không ghi file
python tools/report/generate_pir.py --dry-run

Graceful degradation

Khi LLM không khả dụng: tool tự động tạo skeleton document với status: draft và banner cảnh báo. CI pipeline exit với warning (non-blocking) — không cản trở incident response workflow. MR được auto-label ai-generation/partial.

X

Graph View