Senior
Καθήκον ζωντανής κωδικοποίησης: σχεδιάστε ένα γράφημα καταστάσεων LangGraph για ένα σύστημα ανάλυσης συμβάντων σε βιομηχανικό εξοπλισμό με παράλληλη αναζήτηση σε έγγραφα και SQL
sobes.tech AI
Απάντηση από AI
Для системы анализа инцидентов на промышленном оборудовании с параллельным поиском по документам и 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;
}
}
Такой граф позволяет чётко контролировать состояние системы и параллельно выполнять поиск по разным источникам.