Wprowadzenie
Stale rosnąca złożoność nowoczesnych systemów oprogramowania doprowadziła do wzrostu częstotliwości i wagi incydentów, czyniąc proaktywne badanie i rozwiązywanie incydentów krytycznym aspektem DevOps. Sztuczna inteligencja (AI) i uczenie maszynowe (ML) okazały się potężnymi narzędziami usprawniającymi potoki DevOps, umożliwiając automatyzację i orkiestrację opartą na sztucznej inteligencji w celu wykrywania i rozwiązywania incydentów, zanim będą miały one wpływ na działalność biznesową. W tym artykule zbadamy, jak wdrożyć potoki DevOps oparte na sztucznej inteligencji przy użyciu DSPy i LangChain, ze szczególnym naciskiem na proaktywne badanie i rozwiązywanie incydentów przy użyciu modeli AIOps i RAG oraz integrację z AWS DevOps Agent w celu automatycznego badania incydentów.
Przegląd DSPy i LangChain
DSPy to biblioteka języka Python, która zapewnia prosty i wydajny sposób tworzenia i wdrażania potoków DevOps opartych na sztucznej inteligencji. Umożliwia programistom integrowanie różnych modeli sztucznej inteligencji i uczenia maszynowego, w tym przetwarzania języka naturalnego (NLP), wizji komputerowej i analiz predykcyjnych, z potokami DevOps. Z kolei LangChain to biblioteka Pythona, która umożliwia programistom budowanie i wdrażanie wielkoskalowych modeli sztucznej inteligencji przy użyciu modułowej i skalowalnej architektury.
Wdrażanie potoków DevOps opartych na sztucznej inteligencji za pomocą DSPy i LangChain
Aby wdrożyć potoki DevOps oparte na sztucznej inteligencji za pomocą DSPy i LangChain, musimy wykonać następujące kroki:
- Zbieranie danych: Zbieraj odpowiednie dane z różnych źródeł, takich jak dzienniki, metryki i pliki konfiguracyjne.
- Wstępne przetwarzanie danych: Wstępne przetwarzanie zebranych danych w celu przygotowania ich do analizy i modelowania.
- Trenowanie modeli: trenuj modele AI i ML przy użyciu wstępnie przetworzonych danych do wykrywania i przewidywania incydentów.
- Wdrożenie modelu: Wdróż wyszkolone modele w potoku DevOps przy użyciu DSPy i LangChain.
- Badanie incydentów: Skorzystaj z wdrożonych modeli, aby zbadać incydenty i zidentyfikować pierwotne przyczyny.
- Rozwiązywanie incydentów: Wykorzystaj wnioski uzyskane w wyniku badania incydentów, aby proaktywnie rozwiązywać incydenty.
Przykład kodu: Implementacja prostego modelu RAG za pomocą DSPy i LangChain
Oto prosty przykład kodu demonstrujący, jak zaimplementować model RAG (analiza przyczyn źródłowych) przy użyciu DSPy i LangChain:
importuj dspy
z langchain import LLMCain
# Załaduj wstępnie przetworzone dane
dane = pd.read_csv("dane.csv")
# Zdefiniuj model RAG
rag_model = dspy.RAGModel(
input_features=["poziom_logowania", "komunikat_błędu"],
Output_features=["główna_przyczyna"]
)
# Trenuj model RAG
rag_model.train(dane)
# Wdróż model RAG
llm_chain = LLMCain(
model="davinci:002",
maksymalna długość = 2048
)
rag_model.deploy(llm_chain)
# Użyj wdrożonego modelu RAG do badania incydentów
incydent_data = pd.DataFrame({
„log_level”: [„BŁĄD”],
„error_message”: [„Coś poszło nie tak”]
})
root_cause = rag_model.predict(incident_data)
drukuj (przyczyna_główna)
Ten przykład kodu demonstruje, jak zaimplementować prosty model RAG przy użyciu DSPy i LangChain. Model RAG przyjmuje poziom dziennika i komunikat o błędzie jako cechy wejściowe i przewiduje pierwotną przyczynę incydentu.
Top 5-10 najczęściej używanych poleceń/fragmentów
Oto 5–10 najczęściej używanych poleceń/fragmentów dla DSPy i LangChain:
dspy.RAGModel(cechy_wejściowe, cechy_wyjściowe): Zdefiniuj model RAG z określonymi cechami wejściowymi i wyjściowymi.dspy.RAGModel.train(data): Trenuj model RAG przy użyciu dostarczonych danych.dspy.RAGModel.deploy(llm_chain): Wdróż wyszkolony model RAG przy użyciu LangChain LLMChain.llm_chain = LLMChain(model, max_length): Utwórz łańcuch LangChain LLMChain z określonym modelem i maksymalną długością.rag_model.predict(data): Użyj wdrożonego modelu RAG, aby przewidzieć pierwotną przyczynę incydentu.dspy.DataPreprocessor(input_data): Zdefiniuj potok wstępnego przetwarzania danych przy użyciu DSPy.dspy.ModelTrainer(model, dane): Trenuj model AI lub ML przy użyciu DSPy.dspy.ModelDeployer(model, llm_chain): Wdróż wytrenowany model przy użyciu DSPy i LangChain.langchain.LLMChain.predict(input_data): Użyj LangChain LLMChain do przewidywania wyników modelu.dspy.RAGModel.evaluate(data): Ocena wydajności modelu RAG przy użyciu DSPy.
Wizualizacja
Oto przykład wizualizacji przy użyciu Chart.js:
{
"typ": "pasek",
„dane”: {
„etykiety”: [„Incydent typu A”, „Incydent typu B”, „Incydent typu C”],
„zestawy danych”: [
{
"label": "Przyczyna główna A",
„dane”: [10, 15, 7],
"backgroundColor": "rgba(255, 99, 132, 0.2)",
"borderColor": "rgba(255, 99, 132, 1)",
„Szerokość obramowania”: 1
},
{
"label": "Przyczyna główna B",
„dane”: [8, 12, 9],
"backgroundColor": "rgba(54, 162, 235, 0.2)",
"borderColor": "rgba(54, 162, 235, 1)",
„Szerokość obramowania”: 1
},
{
"label": "Przyczyna podstawowa C",
„dane”: [14, 18, 11],
"backgroundColor": "rgba(255, 206, 86, 0.2)",
"borderColor": "rgba(255, 206, 86, 1)",
„Szerokość obramowania”: 1
}
]
},
„opcje”: {
"tytuł": {
"wyświetlacz": prawda,
"text": "Analiza pierwotnej przyczyny"
},
„skale”: {
„Osie y”: [
{
„tyknięcia”: {
„beginAtZero”: prawda
}
}
]
}
}
}
Ta wizualizacja przedstawia rozkład głównych przyczyn różnych typów zdarzeń.
Wniosek
W tym artykule zbadaliśmy, jak wdrożyć potoki DevOps oparte na sztucznej inteligencji przy użyciu DSPy i LangChain, ze szczególnym naciskiem na proaktywne badanie i rozwiązywanie incydentów przy użyciu modeli AIOps i RAG oraz integrację z AWS DevOps Agent w celu automatycznego badania incydentów. Zademonstrowaliśmy prosty przykład kodu, który implementuje model RAG przy użyciu DSPy i LangChain i udostępniliśmy listę 5–10 najczęściej używanych poleceń/fragmentów dla DSPy i LangChain. Zamieściliśmy także przykładową wizualizację przy użyciu Chart.js. Wykonując kroki opisane w tym artykule, programiści mogą tworzyć i wdrażać potoki DevOps oparte na sztucznej inteligencji, które aktywnie wykrywają i rozwiązują incydenty, poprawiając ogólną wydajność i niezawodność ich systemów oprogramowania.