Senior
Exercice de codage en direct : concevez un graphe d'états LangGraph pour un système d'analyse d'incidents sur des équipements industriels avec recherche parallèle dans des documents et SQL
sobes.tech IA
Réponse de l'IA
Для системы анализа инцидентов на промышленном оборудовании с параллельным поиском по документам и 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;
}
}
Такой граф позволяет чётко контролировать состояние системы и параллельно выполнять поиск по разным источникам.