graph-operations
How to Install
Claude Code:
git clone --depth 1 https://github.com/Alex1980Alex/1C-Framework.git && cp 1C-Framework/.claude/skills/graph-operations ~/.claude/skills/graph-operations -r---
name: graph-operations
description: "Graph Operations — графы знаний, сущности и связи. ИСПОЛЬЗУЙ когда строишь граф знаний, ищешь по графу (LightRAG/GraphRAG), извлекаешь сущности, настраиваешь entity extraction, выбираешь режим поиска. Триггеры: 'граф знаний', 'сущности', 'связи', 'entities', 'LightRAG', 'GraphRAG', 'graph traversal', 'entity extraction', 'knowledge graph'. НЕ для векторного поиска (→ search-pipeline-debug)."
---
# Graph Operations
## Когда использовать
- "граф знаний", "сущности", "связи", "entities"
- "LightRAG", "GraphRAG", "graph traversal"
- Построение графа, поиск по графу, entity extraction
## Режимы поиска по графу
| Режим | Стоимость | Латентность | Когда |
|-------|-----------|------------|-------|
| **LightRAG** | ~100 tokens | <500ms | Простые/средние вопросы (default) |
| **GraphRAG Local** | ~2000 tokens | 2-5s | Сложные вопросы с контекстом |
| **GraphRAG Global** | ~5000 tokens | 5-10s | Тематические обзоры, map-reduce |
| **Auto** | varies | varies | Классификатор → LightRAG или Full |
## LightRAG (Phase 38)
Поиск по embeddings сущностей/связей в Qdrant `graph_embeddings` collection:
- 6694 точек (3166 entities + 3528 relations)
- Entity text: `"EntityName (TYPE): key=val"`
- Relation text: `"Source -[TYPE]-> Target: key=val"`
- Auto-select: simple/moderate → LightRAG, complex/thematic → Full GraphRAG
## Операции
```python
# Построение графа из чанков
builder = GraphBuilder(extractor, graph_store, concurrency=5)
stats = await builder.build_from_chunks(chunks)
# Построение entity embeddings
entity_builder = EntityEmbeddingBuilder(embedding_engine, lightrag_settings)
await entity_builder.build(graph_store)
# Поиск соседей
neighbors = await graph_store.get_neighbors(entity_id, depth=2)
# Поиск пути
path = await graph_store.find_path(source_id, target_id, max_depth=5)
```
## Конфиг
```env
GRAPHRAG__COMMUNITY_DETECTION_ENABLED=true
GRAPHRAG__LEIDEN_RESOLUTION=1.0
GRAPHRAG__LOCAL_SEARCH_DEPTH=1
GRAPHRAG__GLOBAL_SEARCH_MAX_COMMUNITIES=20
LIGHTRAG__ENABLED=true
LIGHTRAG__ENTITY_TOP_K=10
LIGHTRAG__RELATION_TOP_K=10
LIGHTRAG__AUTO_SELECT_ENABLED=true
GRAPHSTORE__PROVIDER=networkx # networkx|neo4j
```
## Incremental Graph Update (Phase 61)
Инкрементальное обновление графа без полной перестройки:
| Компонент | Класс | Назначение |
|-----------|-------|-----------|
| **Change Detector** | `GraphChangeDetector` | Сравнивает entities/relations с предыдущей версией |
| **Incremental Updater** | `IncrementalGraphUpdater` | Добавляет/удаляет/обновляет только изменения |
**Pipeline:** Re-extract entities → Change Detector (diff) → Incremental Updater (apply delta)
Экономит **80-95% времени** при обновлении документа (только изменённые entity/relation).
## Диагностика
| Симптом | Причина | Решение |
|---------|---------|---------|
| Пустой граф | Entity extraction без результатов | Проверить LLM prompt + token limits |
| LightRAG fallback на vector | Нет entity embeddings | Запустить `entity_builder.build(graph_store)` |
| Дубли сущностей | Dedup key mismatch | Ключ: `name.lower().strip() + entity_type` |
| NetworkX медленный | >10K entities | Использовать `set_batch_mode(True)` + `flush()` |
## Файлы
- Base: `src/pdf_framework/graph_store/base.py`
- NetworkX: `src/pdf_framework/graph_store/providers/networkx_store.py`
- Neo4j: `src/pdf_framework/graph_store/providers/neo4j_store.py`
- Builder: `src/pdf_framework/graph_store/construction/builder.py`
- Entity embeddings: `src/pdf_framework/graph_store/entity_embeddings.py`
- Change Detector: `src/pdf_framework/graph_store/change_detector.py`
- Incremental Updater: `src/pdf_framework/graph_store/incremental.py`
- Strategies: `src/pdf_framework/search/strategies/graph_search.py`, `graphrag_light.py`, `graphrag_global.py`, `graphrag_auto.py`
- Extractor: `src/pdf_framework/processing/extractors/entity_extractor.py`
Details
| Category | AI/ML → llm |
| Source | Alex1980Alex/1C-Framework |
| SKILL.md | View on GitHub → |
| Repo Stars | N/A |
| Est. per Skill | N/A (shared across 100 skills from this repo) |
| Difficulty | Intermediate |
| Risk Level | Safe |
Related Skills
doc-to-cache
--- name: doc-to-cache description: "Конвертирует сырую документацию (MD/TXT файлы) из docs/document
pdf-knowledge
--- name: pdf-knowledge description: "PDF Vector & Graph Framework: pdfframework, QuickRAG, граф зна
tenacity-retry
--- name: tenacity-retry description: "Retry с tenacity: декораторы, backoff, jitter, async. Триггер
graph-operations
--- name: graph-operations description: "Graph Operations — графы знаний, сущности и связи. ИСПОЛЬЗУ
Works Well With
Skills from the same repository — often designed to work together
edt-mcp
--- name: edt-mcp description: "EDT-MCP — 70 MCP-инструментов 1C:EDT (метаданные/BSL/отладка/тесты/ф
audit-docs
--- name: audit-docs description: "Аудит кода vs документации vs скиллов. Сканирует кодовую базу, из
deployment
--- name: deployment description: "Deployment — развёртывание PDF Framework в production. ИСПОЛЬЗУЙ