Штатный отчёт Graphify
Clustering без модели; исходные выводы инструмента.
# Graph Report - voice (2026-10-08) ## Corpus Check - cluster-only mode — file stats not available ## Summary - 1334 nodes · 4102 edges · 38 communities (31 shown, 7 thin omitted) - Extraction: 90% EXTRACTED · 10% INFERRED · 0% AMBIGUOUS · INFERRED: 397 edges (avg confidence: 0.5) - Token cost: 0 input · 0 output ## Community Hubs (Navigation) - Community 0 - Community 1 - Community 2 - Community 3 - Community 4 - Community 5 - Community 6 - Community 7 - Community 8 - Community 9 - Community 10 - Community 11 - Community 12 - Community 13 - Community 14 - Community 15 - Community 16 - Community 17 - Community 18 - Community 19 - Community 20 - Community 21 - Community 22 - Community 23 - Community 24 - Community 25 - Community 26 - Community 27 - Community 28 - Community 29 - Community 30 - Community 31 - Community 32 - Community 33 - Community 34 - Community 35 ## God Nodes (most connected - your core abstractions) 1. `FileModeSettings` - 77 edges 2. `FileJobStore` - 63 edges 3. `DiagnosticsRunner` - 40 edges 4. `FileJobWorkerService` - 38 edges 5. `create_app()` - 37 edges 6. `StagedFileJobService` - 33 edges 7. `diarize_http_json()` - 29 edges 8. `ModelTransportTests` - 28 edges 9. `prepare_staged_job()` - 26 edges 10. `Segmenter` - 25 edges ## Surprising Connections (you probably didn't know these) - `DiarizationHelpersTest` --uses--> `MediaChunk` [INFERRED] tests/test_diarization.py → src/webui/file_mode.py - `DiarizationHelpersTest` --uses--> `TimedTranscriptBuilder` [INFERRED] tests/test_diarization.py → src/webui/file_mode.py - `FileModeMessageTest` --uses--> `PyannoteDiarizationService` [INFERRED] tests/test_diarization.py → src/pyannote_diarization_server.py - `FileModeMessageTest` --uses--> `PyannoteSettings` [INFERRED] tests/test_diarization.py → src/pyannote_diarization_server.py - `FileModeMessageTest` --uses--> `FileJobStore` [INFERRED] tests/test_diarization.py → src/webui/file_mode.py ## Import Cycles - None detected. ## Communities (38 total, 7 thin omitted) ### Community 0 - "Community 0" Cohesion: 0.06 Nodes (41): model_http_session(), _asset_version(), _bool_query(), _build_groups(), _check(), _compact_body(), _derive_url(), diagnostics_http_handler() (+33 more) ### Community 1 - "Community 1" Cohesion: 0.06 Nodes (100): pageMode(), activateSession(), appendProcessLog(), applySnapshot(), applyStatePayload(), basePath(), blankView(), bootstrapSession() (+92 more) ### Community 2 - "Community 2" Cohesion: 0.06 Nodes (55): public_bench_cases(), FileModeSettings, parse_optional_bool(), FileJobLockClient, FileJobLockDenied, FileJobLockLease, job_lock_enabled(), _json_or_empty() (+47 more) ### Community 3 - "Community 3" Cohesion: 0.06 Nodes (46): apply_bench_config(), _base_config(), BenchResultStore, build_bench_result(), _case_id(), _config_id(), _current_diarization_transport(), diarization_upload_path_for_state() (+38 more) ### Community 4 - "Community 4" Cohesion: 0.07 Nodes (98): activateSession(), activeJobs(), applyPageMode(), applyPayloadToJob(), applySnapshotToJob(), basePath(), blankDetailView(), bootstrapSession() (+90 more) ### Community 5 - "Community 5" Cohesion: 0.05 Nodes (17): _clean_optional_text(), _diar_done_signal_payload(), _diar_text_done_payload(), _diar_text_done_signal_payload(), _diarization_wait_details(), FileJobWorkerService, _clear(), _normalize_diarization_runtime_label() (+9 more) ### Community 6 - "Community 6" Cohesion: 0.06 Nodes (16): SafeInstrument, Hypothesis, Phrase, Worker, health(), msg(), Broker, header() (+8 more) ### Community 7 - "Community 7" Cohesion: 0.06 Nodes (35): attribute_words(), attributed_words_payload(), AttributedWord, build_speaker_turns(), _coerce_float(), _compact_error_text(), diarization_backend_ready(), _diarization_form_fields() (+27 more) ### Community 8 - "Community 8" Cohesion: 0.10 Nodes (8): DiarizationAudioArtifact, FileJobStore, _job_snapshot(), FileJobStoreStateTest, _fake_prepare_diarization_audio_artifact(), StagedPrepareJobTest, _fake_normalize(), _fake_prepare_diar_audio() ### Community 9 - "Community 9" Cohesion: 0.09 Nodes (31): _apply_speaker_mapping(), _chunk_ranges(), _clip_segment(), _copy_wav_segment(), create_app(), diarize(), health(), _empty_cuda_cache() (+23 more) ### Community 10 - "Community 10" Cohesion: 0.11 Nodes (10): main(), word_error(), main(), run(), pack(), token(), unpack(), Decoder (+2 more) ### Community 11 - "Community 11" Cohesion: 0.11 Nodes (6): Stream, StreamingBridge, result(), Segmenter, BridgeTests, VadTests ### Community 12 - "Community 12" Cohesion: 0.12 Nodes (22): create_app(), diarize(), health(), _download_file(), _duration_from_segments(), _ensure_embedding_model(), _ensure_segmentation_model(), _env() (+14 more) ### Community 13 - "Community 13" Cohesion: 0.12 Nodes (27): _audio_codec_name(), _compact_error_text(), _decode_transcribe_json_candidate(), _ensure_nonempty_artifact(), extract_transcribe_text(), guess_media_content_type(), _iter_audio_frames(), iter_normalized_wav_chunk_files() (+19 more) ### Community 14 - "Community 14" Cohesion: 0.10 Nodes (11): main(), noises(), read_audio(), main(), download_model_file(), ensure_model_path(), get_speech_timestamps(), _maybe_visualize() (+3 more) ### Community 15 - "Community 15" Cohesion: 0.25 Nodes (13): job_lock_message(), acquire(), _clean_payload(), create_app(), _env_float(), FileJobLockService, health(), heartbeat() (+5 more) ### Community 16 - "Community 16" Cohesion: 0.13 Nodes (9): configure(), _default_diarization_health_url(), _env_bool(), _env_float(), _env_int(), _env_json_string_map(), load_file_mode_settings(), _env_int() (+1 more) ### Community 17 - "Community 17" Cohesion: 0.14 Nodes (7): configure_logging(), _env(), _env_bool(), main(), _main_async(), resample_audio(), parse_wire_packet() ### Community 18 - "Community 18" Cohesion: 0.19 Nodes (4): appendBytes(), findCrlf(), NatsWsClient, trimNatsError() ### Community 19 - "Community 19" Cohesion: 0.22 Nodes (15): _coerce_progress_value(), configure_logging(), _device_progress_label(), _env(), _env_float(), _env_int(), _env_optional_float(), load_settings() (+7 more) ### Community 20 - "Community 20" Cohesion: 0.20 Nodes (5): healthcheck_url(), main(), probe_health(), _DummyResponse, PyannoteHealthcheckTest ### Community 21 - "Community 21" Cohesion: 0.16 Nodes (4): _missing_audio_track_message(), FileModeMessageTest, _fake_copy(), _fake_run() ### Community 22 - "Community 22" Cohesion: 0.23 Nodes (5): PyannoteProgressHook, PyannoteProgressPublisher, PyannoteSettings, _subject(), PyannoteProgressTest ### Community 23 - "Community 23" Cohesion: 0.27 Nodes (9): _annotation_segments(), _apply_pipeline_request_overrides(), _audio_input(), _default_pyannote_pipeline_import(), _effective_runtime_options(), _override_targets(), PyannoteProgressContext, PyannoteRuntimeOptions (+1 more) ### Community 24 - "Community 24" Cohesion: 0.30 Nodes (14): basePath(), configSummary(), formatRtf(), formatSeconds(), init(), latestForCase(), load(), meta() (+6 more) ### Community 25 - "Community 25" Cohesion: 0.34 Nodes (13): appendBrowserNatsCheck(), basePath(), checkBrowserNats(), checkClass(), formatLatency(), meta(), natsClientOptions(), render() (+5 more) ### Community 27 - "Community 27" Cohesion: 0.17 Nodes (3): _compact_error_text(), _friendly_load_error(), _FakeNatsClient ### Community 31 - "Community 31" Cohesion: 0.20 Nodes (6): create_app(), diarize(), health(), _health_payload(), _optional_float(), _optional_positive_int() ### Community 32 - "Community 32" Cohesion: 0.36 Nodes (7): drop_pyannote_base_target(), has_build_targets(), has_pyannote_base_target(), OTEL_RESOURCE_ATTRIBUTES, PYANNOTE_BASE_TAG, REGISTRY_HOST, build-images.sh script ### Community 33 - "Community 33" Cohesion: 0.25 Nodes (4): _apply_pipeline_runtime_overrides(), _import_pyannote_pipeline_class(), _pipeline_requires_hf_token(), _validate_pipeline_access() ### Community 34 - "Community 34" Cohesion: 0.73 Nodes (5): add_deploy_key(), load_b64_key(), load_plain_key(), deploy.sh script, start_key_agent() ## Knowledge Gaps - **3 isolated node(s):** `REGISTRY_HOST`, `PYANNOTE_BASE_TAG`, `OTEL_RESOURCE_ATTRIBUTES` These have ≤1 connection - possible missing edges. (Counts symbols only; 189 node(s) total have ≤1 connection when file, concept and rationale nodes are included.) - **7 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ - **Why does `run_webui()` connect `Community 2` to `Community 10`?** _High betweenness centrality (0.001) - this node is a cross-community bridge._ - **Are the 5 inferred relationships involving `FileJobWorkerService` (e.g. with `FileJobStore` and `FileModeSettings`) actually correct?** _`FileJobWorkerService` has 5 INFERRED edges - model-reasoned connections that need verification._ - **What connects `REGISTRY_HOST`, `PYANNOTE_BASE_TAG`, `OTEL_RESOURCE_ATTRIBUTES` to the rest of the system?** _3 weakly-connected nodes found - possible documentation gaps or missing edges._ - **Should `Community 0` be split into smaller, more focused modules?** _Cohesion score 0.05688215880411571 - nodes in this community are weakly interconnected._ - **Why does `create_app()` connect `Community 2` to `Community 0`, `Community 3`, `Community 5`, `Community 8`, `Community 16`?** _High betweenness centrality (0.001) - this node is a cross-community bridge._ - **Should `Community 1` be split into smaller, more focused modules?** _Cohesion score 0.061541448262473306 - nodes in this community are weakly interconnected._ - **Should `Community 2` be split into smaller, more focused modules?** _Cohesion score 0.05898989898989899 - nodes in this community are weakly interconnected._