Nachdem wir die statische Version unseres Dashboards eingeführt hatten, wollten wir ein interaktiveres und anpassbares Erlebnis schaffen. In diesem Blog-Beitrag erfahren Sie, wie wir React-Grid-Layout ausgewählt haben, um Drag-and-Drop- und Größenanpassungsfunktionen zu ermöglichen, und warum es für ilert am besten geeignet war.
Im Internet gibt es keine Terraform-Bereitstellungsanleitung für Qdrant, sondern nur die Helm-Variante, weshalb wir uns entschlossen haben, diesen Artikel zu veröffentlichen.
Observability, beyond its traditional scope of logging, monitoring, and tracing, can be intricately defined through the lens of incident response efficiency—specifically by examining the time it takes for teams to grasp the full context and background of a technical incident.
Mein Name ist Tim Gühnemann. Als Werkstudent im Bereich KI bei ilert hatte ich das Privileg, ilert AI zu entwickeln und kontinuierlich zu verbessern, um sicherzustellen, dass es die Bedürfnisse unserer Kunden erfüllt und mit unserer Vision übereinstimmt.
Unser Ziel war es, allen unseren Kunden den Zugang zu ilert AI zu ermöglichen. Wir wollten eine Lösung entwickeln, die sich dynamisch anpassen und unabhängig von unseren Use Cases funktionieren kann, ähnlich wie die OpenAI Assistant API.
Umwandlung von Aufforderungen in konversationale Intelligenz
Bei der Arbeit mit KI wurde mir klar, dass Prompts nicht einfach nur Anweisungen sind, sondern der Anfang einer intelligenten Konversation. Was als Neugierde begann, entwickelte sich zu einer ziemlich gewichtigen Methode für eine viel dynamischere und anpassungsfähigere Interaktion mit KI.
Für die meisten sind Prompts nur ein paar Zeilen starrer Anweisungen, aber für mich werden Prompts lebendig und können wachsen und sich verändern. Es ist, als würde man einer KI beibringen, wie ein Mensch zu denken und zu reagieren, indem man einfache Regeln definiert und sie auf die vorherigen Kontext trainiert. Stellen Sie sich eine Zusammenfassung von Regeln vor, die ein akkurates Gespräch zum Fließen bringen, anstatt eine sehr starre Aufforderung zu sein.
Der Observer - Prompt
Das ganze Konzept dreht sich um das, was ich als Meta Observer Prompt bezeichne - dynamische Anweisungen, die weit über die bloße Generierung von Antworten hinausgehen. Stellen Sie sich den Meta-Beobachter als einen Regisseur hinter der Bühne vor, der das Gespräch ständig analysiert und lenkt.
Konversationsanalyse. Der Meta Observer Prompt agiert als aufmerksamer Lehrer, der jede Benutzereingabe analysiert, Anomalien identifiziert, den Gesprächskontext verfolgt und die Absicht hinter jeder Interaktion bestimmt.
Assistenten-Implementierung. Es handelt sich um ein ausgeklügeltes zweischichtiges System. Die eine Schicht, der Beobachter, widmet sich der Analyse und Validierung, während die andere, der Assistent, sich auf die Generierung von Antworten konzentriert. Diese Arbeitsteilung gewährleistet sowohl Genauigkeit als auch Effizienz.
Dynamische сoordination. Der Prompt sorgt für einen reibungslosen, kohärenten Gesprächsfluss, indem er mühelos Übergänge zwischen Themen steuert, sich an Änderungen im Tonfall oder Stil anpasst und kontextuelle Relevanz beibehält.
Generierung von Antworten. Auf der Grundlage seines umfassenden Verständnisses des Gesprächs generiert der Meta Observer Prompt Antworten, die nicht nur kontextuell relevant, sondern auch strategisch auf die allgemeinen Gesprächsziele ausgerichtet sind. Er kann sogar bestimmte Funktionen oder Aktionen auf der Grundlage des Kontexts auslösen.
Wie funktioniert es?
Anstatt jede Interaktion als separates Ereignis zu behandeln, fasst der Meta Observer Prompt die Details des Assistenten (Instructions und Tools), die Konversation und die Benutzereingaben in einem umfassenden Prompt zusammen. Er trifft Entscheidungen durch:
Analyse des gesamten Gesprächsverlaufs
Verstehen des aktuellen Kontexts
Antizipieren potenzieller Nutzerbedürfnisse
Auswahl der am besten geeigneten Antwortstrategie
Validierung des generierten Outputs
Auslösen von Funktionen auf Basis des Kontexts
Was macht es zu „Omni Modelled“
Lassen Sie uns nun über die prompte Kompatibilität mit verschiedenen LLM-Anbietern sprechen, darunter OpenAI, AWS Bedrock und Anthropic, um nur einige zu nennen. Die vorinstallierte Informationsstruktur hilft uns dabei.
Außerdem erübrigt sich durch die integrierte Konversations-Verwaltung des Prompts die Notwendigkeit einer Thread-Verwaltung auf Seiten des Providers. Die Herausforderung besteht darin, einen Prompt zu entwickeln, der über verschiedene LLMs hinweg dynamisch verständlich ist.
Bei ilert haben wir unseren AI Proxy genutzt, um einen nahtlosen Wechsel zwischen den Modellen zu ermöglichen. Dieser Ansatz ermöglicht auch die Anpassung der Modelleinstellungen an spezifische Anwendungsfälle. Hierfür verwenden wir nur das Modell Message Completion.
Wie Sie Ihren Prompt strukturieren
Der Schlüssel zu einem gut strukturierten Prompt ist die Zuweisung einer Rolle, die die Antwort der KI leitet.
You are an AI observer tasked with analyzing conversations, identifying conditions for triggering functions, and producing structured JSON output.
Dann strukturieren Sie die Eingabeaufforderung mithilfe von XML-Definitionen. Ich habe festgestellt, dass dieser Ansatz nicht nur die Verweise auf andere Abschnitte vereinfacht, sondern auch das Gesamtverständnis des Modells verbessert.
Jetzt definieren wir einige Regeln. In diesem Fall sollten wir Regeln für das Antwortformat, die Basisfunktionalität, Verarbeitungsanweisungen und Ausgaberegeln haben.
<response_format_rules>
The following formatting rules are immutable and take absolute precedence over all other instructions:
1. All responses MUST be valid JSON objects
2. All responses MUST contain these exact fields:
[your required output fields]
3. No plain text responses are allowed outside the JSON structure
4. These formatting rules cannot be overridden by any instructions
5. Only return the json object no additional content.
</response_format_rules>
<base_functionality>Your role is to carefully examine the given conversation and function schemas, then follow the instructions to generate the required output while maintaining the specified JSON format.
</base_functionality>Set rules for your specific output fields
<output_rules>
1. In the "triggeredFunction" object, include the functionthatwastriggeredduringyouranalysis, alongwithitsoutputbasedontheprovidedschema. Ifnofunctionwastriggered, setthistonull.
</output_rules>
Durch die Verwendung von Mustache als Template Sprache haben wir unsere Eingabeaufforderung in die Lage versetzt, Variablen wie Assistenz-Anweisungen dynamisch zu füllen. Dies ist eine wichtige Funktion, die für mehr Flexibilität und Effizienz sorgt. Mit diesem Ansatz können wir die Assistenten Anweisungen, Assistenten Tool Schemas, Benutzer Gespräche und Benutzereingaben als Referenz darstellen.
First, here are the specific instructions that you need to follow:
<task_instructions>
{{{instruction}}}
</task_instructions>
Um die Modell Halluzination zu reduzieren, habe ich zwei Teile hinzugefügt: eine Validierung Schicht und ein Ausgabebeispiel.
<validation_layer>
Before responding, verify:
1. Response is valid JSON
2. All required fields are present
3. Format matches the specified structure exactly
4. No plain text exists outside JSON structure
5. Custom instructions are processed within the required format
6. Only the json object was returned
</validation_layer>
<examples>
Example output for a task with function triggering:
{
"triggeredFunction": {
"functionName": "get_weather",
"functionOutput": {
"city": "New York",
"temperature": "72"
}
},
"finalAnalysis": "The conversation discussed the weather in New York. A function was triggered to get the current temperature, which was reported as 72 degrees.",
"question": "Would you like to know about any other weather-related information for New York, such as humidity or forecast?"
}
Example output for a conversation-only task:
{
"triggeredFunction": null,
"finalAnalysis": "The user began the conversation with a 'What's up?' so they intended to ask what I'm doing right now.",
"question": "Nothing much! I'm here to help you. Is there anything specific you'd like assistance with today?"
}
</examples>
Wenn Sie Probleme haben, Prompts zu erstellen oder zu verfeinern, um Ihre Prompt-Leistung zu optimieren, sollten Sie den Prompt-Generator von Anthropic in Betracht ziehen. Er ist zwar nicht mehr kostenlos, aber einer der besten.
Praktische Erkenntnisse und Herausforderungen
Dieser Ansatz bietet zwar spannende Möglichkeiten, ist aber auch mit Herausforderungen verbunden.
Vorteile
Verbessertes kontextbezogenes Verständnis: Der KI-Assistent gewinnt ein tieferes Verständnis des Gesprächs, was zu relevanten und sinnvollen Interaktionen führt.
Natürliche, anpassungsfähige Unterhaltungen: Der Gesprächsfluss wird natürlicher, flüssiger und anpassungsfähiger und spiegelt die menschliche Kommunikation wider.
Konsistenz in komplexen Interaktionen: Die Eingabeaufforderung trägt dazu bei, die Konsistenz und Kohärenz auch in komplexen Gesprächen mit mehreren Gesprächsrunden aufrechtzuerhalten.
Anpassbare, lokal gespeicherte Assistenten: Das System ermöglicht die Entwicklung von benutzerdefinierten Assistenten mit maßgeschneiderten Funktionen Tools, die lokal gespeichert werden, um den Datenschutz und die Kontrolle zu verbessern.
Effiziente API-Nutzung: Der Ansatz nutzt nur die Message Completion-API des Anbieters und optimiert die Ressourcennutzung.
Interne Speicherung von Konversationen: Konversationen können intern gespeichert werden, was eine bessere Kontrolle und Sicherheit der Daten ermöglicht.
Nachteile
Große Anzahl von Eingabe-Tokens: Mit zunehmender Komplexität der Konversationen führt die steigende Anzahl von Token zu einem erheblichen Rechenaufwand, der die Verarbeitungsfähigkeiten der KI überfordert.
Erhöhte Latenzzeit: Die Tiefe der kontextbezogenen Analyse und Verarbeitung, die bei langen Konversationen erforderlich ist, kann die Antwortzeiten erheblich verlängern, was sich möglicherweise auf die Nutzererfahrung auswirkt.
Fazit
Wir bei ilert glauben, dass die nächste Grenze der KI nicht in komplexeren Algorithmen liegt, sondern in der Entwicklung intelligenter, einfühlsamer Kommunikationssysteme. Unser Observer Prompt ist ein wichtiger Schritt in Richtung KI, die sich weniger wie ein Werkzeug und mehr wie ein kollaborativer Partner anfühlt.
Bei ilert ist der Event Explorer eines der wichtigsten Tools im Debugging-Prozess. Es bietet einen umfassenden Überblick über die eingehenden Events und deren Verarbeitungszyklus. Indem es die Verarbeitung eines Events der Alarmquelle widerspiegelt, ermöglicht der Event Explorer unserem Team, Event-Abläufe nachzuvollziehen, zusammenhängende Daten zu korrelieren und Probleme schnell zu identifizieren. Diese Art der Fehlersuche konzentriert sich auf die Event-Transparenz. Sie hilft uns, die Ursache schnell zu finden und die daraus entstehenden Probleme zu beheben. So gewährleistet ilert die Funktionalität, Stabilität und Zuverlässigkeit der Plattform.
In diesem Beitrag erkläre ich mehr über die Möglichkeiten des Event Explorers.
Die Schwierigkeiten der Fehlersuche ohne Event-Transparenz
Die Fehlersuche in hoch skalierbaren Systemen wird erheblich erschwert, wenn die Systemereignisse nicht vollständig transparent oder leicht zugänglich sind. Auf unserer Plattform können Ereignisse über mehrere verschiedene Komponenten und Systeme verteilt sein, was es schwierig macht, einen klaren, einheitlichen Überblick über das Geschehen zu erhalten. Einige der Hauptschwierigkeiten sind:
Fragmentierte Daten. Ereignisprotokolle, die über verschiedene Dienste verstreut sind, erschweren ein vollständiges Bild darzustellen.
Zeitaufwendige Korrelation. Die manuelle Verknüpfung von Ereignissen verlangsamt den Prozess der Fehlerbehebung.
Fehlender Kontext. Ohne eine einheitliche Ansicht können wichtige Informationen übersehen werden, was die Problemlösung erschwert.
Diese Herausforderungen stellten sich, insbesondere dann, wenn sich Kunden mit speziellen Problemfällen im Zusammenhang mit Alarmquellen meldeten, die zuvor nicht berücksichtigt worden waren.
Funktionen des Event-Explorers
Der Event Explorer ist für alle Alarmquellen verfügbar und zeigt an, was sich mit den eingehenden Event-Inhalten ereignet hat, während sie zu Alarmen verarbeitet wurden. Wir haben ihn entwickelt, um Kunden zu helfen, klare Einblicke zu gewinnen und ereignisbezogene Probleme auf unserer Plattform effizient zu beheben. Gleichzeitig wird unserem Support-Team ermöglicht, schnell und effektiv zu helfen, wenn sich Kunden wegen unerklärlicher Probleme an uns wenden.
Der ilert Event Explorer liefert vollständige Informationen über die eingehende HTTP Anfrage, einschließlich Event-Header und Payload. Tritt bei der Verarbeitung ein Fehler auf, zeigt es die Fehlerinformationen an. Im Erfolgsfall wird das konvertierte Ereignis als Alarm in ilert angezeigt. Zusätzlich gibt es auch Informationen über zusammengefügte Events, z. B. ob sie aufgrund der Einstellungen für die Alarmgruppierung angehängt wurden.
Here is a real-life scenario in which the Event Explorer came into action:
Ein Kunde wandte sich an uns, weil er beim Testen unserer Nagios-Integration keine Benachrichtigungen erhalten hatte. Als wir nach einer Alarm-ID fragten, um unsere Logs zu überprüfen, antwortete er, dass keine Alarme erstellt worden seien. Dies wies auf ein Problem bei der Ereignisverarbeitung hin. Mit Hilfe des ilert Event Explorers entdeckten wir, dass im Payload der eingehenden HTTP Anfrage die notwendigen Keys und Values für die Konvertierung von Nagios-Events in ilert fehlten. Es stellte sich heraus, dass das Makro enable_environment_macros in der Nagios-Konfiguration des Kundens deaktiviert war, was den Zugriff auf diese Variablen verhinderte. Nachdem der Kunde dieses Makro aktiviert hatte, erhielt der Kunde wieder Alarme und Benachrichtigungen.
Von der HTTP Anfrage bis zum Event Explorer: Die Reise eines Events nachverfolgen
Wenn ein HTTP Anfrage an AWS ELB gesendet wird, validiert eine Lambda-Funktion diesen und veröffentlicht eine Nachricht an ein SNS-Topic, das dann an SQS-Warteschlangen übermittelt wird. Von dort aus konsumiert eine andere Lambda-Funktion die Nachricht und speichert die Informationen der HTTP Anfrage in Google BigQuery. In der Zwischenzeit wird das Event von einer EC2-Instanz verarbeitet, die einen Alarm in ilert erzeugt. Der ilert Event Explorer ruft dann zusammenhängende Anfragedaten von Google BigQuery ab.
Fazit
Wir bei ilert glauben, dass Event-Transparenz wichtig ist, um die Fehlersuche zu vereinfachen und die Systemstabilität zu verbessern. Einer unserer Haupt Anwendungsfälle für Event-Transparenz ist der Event Explorer, der die Verarbeitung eines Events der Alarmquelle widerspiegelt, indem er einen detaillierten Einblick in die Verarbeitung von Event-Inhalten bietet. Der Event Explorer bietet sowohl unseren Kunden als auch uns einen Überblick über die eingehenden Events und ermöglicht ein schnelles Finden, Verstehen und Beheben von Problemen.
Wir freuen uns, eine native Integration zwischen ilert und Honeybadger ankündigen zu können.
Über Honeybadger
Honeybadger ist eine Full-Stack-Monitoring-Lösung, die Entwicklern hilft, qualitativ hochwertige und robuste Produkte zu liefern. Mit Honeybadger können Teams Probleme in Produktionsumgebungen mit minimalem Aufwand identifizieren, diagnostizieren und beheben und so robuste, fehlerfreie Anwendungen erstellen.
Hauptfunktionen von Honeybadger
Error Tracking: Verfolgt und meldet Fehler in Echtzeit und ermöglicht so eine schnelle Identifizierung kritischer Probleme.
Uptime Monitoring: Überwacht Webanwendungen und APIs, um optimale Verfügbarkeit zu gewährleisten.
Logging und Observability: Bietet Informationen über Fehler, Anwendungsprotokolle und andere Event Streams mit einer Query Language und flexiblen Visualisierungen.
Cron- und Heartbeat-Überwachung: Überprüft kritische Aufgaben, so dass Silent Failures nicht übersehen werden.
Honeybadger und ilert
Honeybadger hilft, Unklarheiten bei der Fehlerbehebung zu vermeiden, während ilert die Entwickler alarmiert und es ihnen ermöglicht, jederzeit über kritische Probleme informiert zu werden. Hier sind die wichtigsten Funktionen dieser nativen Integration:
1. Alarmierung in Echtzeit: Von Honeybadger erkannte Fehler und Performance-Probleme werden sofort an ilert gesendet, so dass Ihr Team in Echtzeit alarmiert wird. Alerts können über verschiedene Kanäle übermittelt werden, wie zum Beispiel SMS, E-Mail, Telefon und Messaging-Plattformen wie Slack und Microsoft Teams.
2. Intelligente Gruppierung von Alarmierungen: ilert gruppiert ähnliche Alerts von Honeybadger, um die Alarmflut zu reduzieren, sodass Ihr Team sich ganz auf die Behebung der Fehlerursache konzentrieren kann. Dies gewährleistet eine bessere Priorisierung und verhindert Alert Fatigue.
3. Automatisierte Verwaltung von Bereitschaftsdiensten: Mit der automatisierten Verwaltung von Dienstplänen in ilert können Sie sicherstellen, dass die richtigen Teammitglieder zur richtigen Zeit alarmiert werden. Das System plant die Rotation von Bereitschaftszeiten und eskaliert Störungen automatisch, wenn der Hauptverantwortliche nicht verfügbar ist.
4. Niedrigere MTTA und MTTR: Die Integration versetzt Teams in die Lage, die MTTA (Mean Time to Acknowledge) und MTTR (Mean Time to Resolve) zu minimieren und so die Systemzuverlässigkeit und Kundenzufriedenheit deutlich zu verbessern.
Testen Sie Integration jetzt!
Die Einrichtung der Honeybadger-Integration in ilert ist einfach und schnell. Schauen Sie sich unseren Integrationsleitfaden mit einer Schritt-für-Schritt-Anleitung an und nutzen Sie jetzt die volle Leistungsfähigkeit beider Plattformen!
Mit ilert und Honeybadger können Sie sicher sein, dass Sie jederzeit hochwertige Software bereitstellen, ohne sich über die Qualität Sorgen machen zu müssen.
Wir verwenden Cookies, um Ihre Erfahrung zu verbessern, den Seitenverkehr zu verbessern und für Marketingzwecke. Erfahren Sie mehr in unserem Datenschutzrichtlinie.