Erstellung von dynamischen Omnimodell-KI-Assistenten mit intelligentem Prompting
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 function that was triggered during your analysis, along with its output based on the provided schema. If no function was triggered, set this to null.
</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.