Для системы анализа инцидентов на промышленном оборудовании с параллельным поиском по документам и SQL можно спроектировать граф состояний LangGraph следующим образом:
Задача на live coding: спроектируй граф состояний LangGraph для системы анализа инцидентов на промышленном оборудовании с параллельным поиском по документам и SQL
Для системы анализа инцидентов на промышленном оборудовании с параллельным поиском по документам и SQL можно спроектировать граф состояний LangGraph следующим образом:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для системы анализа инцидентов на промышленном оборудовании с параллельным поиском по документам и SQL можно спроектировать граф состояний LangGraph следующим образом:
- Состояния:
-
Idle— ожидание новых данных или запроса -
DataIngestion— получение и подготовка данных инцидентов -
Preprocessing— очистка и нормализация данных -
ParallelSearch— параллельный запуск поисков:DocSearch— поиск по документамSQLSearch— поиск по базе данных
-
MergeResults— объединение результатов поиска -
Analysis— анализ объединённых данных, выявление закономерностей -
AlertGeneration— генерация предупреждений или отчетов -
Completed— завершение обработки
- Переходы:
Idle→DataIngestionпри поступлении новых данныхDataIngestion→Preprocessingпосле загрузкиPreprocessing→ParallelSearch- В
ParallelSearchодновременно запускаютсяDocSearchиSQLSearch - После завершения обеих поисков — переход в
MergeResults MergeResults→AnalysisAnalysis→AlertGenerationпри обнаружении инцидентовAlertGeneration→CompletedCompleted→Idle
- Пример кода на Java (упрощённый):
enum State { IDLE, DATA_INGESTION, PREPROCESSING, DOC_SEARCH, SQL_SEARCH, MERGE_RESULTS, ANALYSIS, ALERT_GENERATION, COMPLETED }
class LangGraph {
private State currentState = State.IDLE;
void onNewData() {
currentState = State.DATA_INGESTION;
// загрузка данных
currentState = State.PREPROCESSING;
// очистка
currentState = State.DOC_SEARCH;
// параллельно запускаем SQL_SEARCH
// после завершения обоих
currentState = State.MERGE_RESULTS;
// объединение
currentState = State.ANALYSIS;
// анализ
currentState = State.ALERT_GENERATION;
// генерация
currentState = State.COMPLETED;
currentState = State.IDLE;
}
}
Такой граф позволяет чётко контролировать состояние системы и параллельно выполнять поиск по разным источникам.