AI Personal Learning
und praktische Anleitung
讯飞绘镜

Microsoft Einführungskurs für KI-Agenten: Metakognition (Selbstständiges Denken) in KI-Agenten

kurz

Willkommen zum Kurs über Metakognition in KI-Agenten! Dieses Kapitel ist für Anfänger gedacht, die sich dafür interessieren, wie KI-Agenten über ihre eigenen Denkprozesse nachdenken. Am Ende dieses Kurses werden Sie die Schlüsselkonzepte verstehen und praktische Beispiele für die Anwendung von Metakognition im KI-Agenten-Design haben.

 

Lernziel

Nach Abschluss dieses Kurses werden Sie in der Lage sein:

  1. Verstehen Sie die Bedeutung der Argumentationsschleife in der Agentendefinition.
  2. Nutzen Sie Planungs- und Bewertungstechniken, um den Agenten selbst zu kalibrieren.
  3. Erstellen Sie Ihren eigenen Agenten, der Code manipulieren kann, um Aufgaben zu erfüllen.

 

Einführung in die Metakognition

Metakognition bezieht sich auf kognitive Prozesse höherer Ordnung, die das Nachdenken über das eigene Denken beinhalten. Für einen KI-Agenten bedeutet dies, dass er in der Lage ist, seine Handlungen auf der Grundlage seiner Selbstwahrnehmung und früherer Erfahrungen zu bewerten und anzupassen. Metakognition oder "Denken über das Denken" ist ein wichtiges Konzept bei der Entwicklung von agentenbasierten KI-Systemen. Es geht darum, dass sich ein KI-System seiner eigenen internen Prozesse bewusst wird und in der Lage ist, sein Verhalten zu überwachen, zu regulieren und entsprechend anzupassen. Ähnlich wie wir es tun, wenn wir uns eine Situation ansehen oder ein Problem untersuchen. Diese Selbsterkenntnis kann KI-Systemen helfen, bessere Entscheidungen zu treffen, Fehler zu erkennen und ihre Leistung im Laufe der Zeit zu verbessern - was wiederum eine Verbindung zum Turing-Test und der Debatte darüber herstellt, ob KI den Menschen ersetzen wird.


Im Zusammenhang mit agentenbasierten KI-Systemen kann die Metakognition dazu beitragen, verschiedene Herausforderungen zu bewältigen, wie z. B.:

  • Transparenz: Sicherstellung, dass das KI-System seine Überlegungen und Entscheidungen erklären kann.
  • Reasoning: Verbesserung der Fähigkeit von KI-Systemen, Informationen zu synthetisieren und rationale Entscheidungen zu treffen.
  • Anpassungsfähigkeit: Ermöglicht es dem KI-System, sich an neue Umgebungen und veränderte Situationen anzupassen.
  • Wahrnehmung: Verbesserung der Genauigkeit, mit der KI-Systeme Daten aus ihrer Umgebung erkennen und interpretieren.

Was ist Metakognition?

Metakognition oder "Denken über das Denken" ist ein kognitiver Prozess höherer Ordnung, der die Selbstwahrnehmung und Selbstregulierung kognitiver Prozesse umfasst. In der KI ermöglicht die Metakognition den Agenten, ihre Strategien und Handlungen zu bewerten und anzupassen, um die Problemlösung und Entscheidungsfindung zu verbessern. Wenn Sie Metakognition verstehen, können Sie KI-Agenten entwickeln, die nicht nur intelligenter, sondern auch anpassungsfähiger und effizienter sind, und bei echter Metakognition werden Sie sehen, dass die KI explizit über ihre eigenen Überlegungen nachdenkt.

Zum Beispiel: "Ich bevorzuge billigere Flüge, weil ich meinen Direktflug verpasst haben könnte (......), also überprüfe ich das noch einmal. . Verfolgen Sie, wie oder warum eine bestimmte Route gewählt wurde.

  • Man beachte, dass es den Fehler gemacht hat, sich zu sehr auf die letzte Nutzerpräferenz zu verlassen, so dass es nicht nur die endgültige Empfehlung, sondern auch seine Entscheidungsstrategie geändert hat.
  • diagnostischen Modells, z. B.: "Immer wenn ich sehe, dass Benutzer 'zu voll' erwähnen, sollte ich nicht nur bestimmte Attraktionen entfernen, sondern auch über die Tatsache nachdenken, dass meine Methode der Auswahl 'beliebter Attraktionen' fehlerhaft ist, wenn ich immer nach Beliebtheit rangiere. mangelhaft ist."

 

Die Bedeutung der Metakognition bei KI-Agenten

Metakognition spielt bei der Entwicklung von KI-Agenten aus folgenden Gründen eine entscheidende Rolle:

微软 AI Agent 入门课程:AI Agent 中的元认知-1

  • Selbstreflexion: Die Agenten können ihre eigene Leistung bewerten und Bereiche mit Verbesserungspotenzial ermitteln.
  • Anpassungsfähigkeit: Der Agent kann seine Strategie auf der Grundlage früherer Erfahrungen und veränderter Umstände ändern.
  • Fehlerkorrektur: Der Agent kann selbstständig Fehler erkennen und korrigieren, um genauere Ergebnisse zu erzielen.
  • Ressourcenmanagement: Agenten können die Nutzung von Ressourcen wie Zeit und Rechenleistung optimieren, indem sie ihre Aktionen planen und auswerten.

 

Komponenten eines AI-Agenten

Bevor wir uns mit dem metakognitiven Prozess befassen, ist es wichtig, die grundlegenden Komponenten eines KI-Agenten zu verstehen. Ein KI-Agent besteht in der Regel aus den folgenden Teilen:

  • Persona: Die Persönlichkeit und die Eigenschaften eines Agenten, die die Art und Weise bestimmen, wie er mit dem Benutzer interagiert.
  • Tools: Funktionen und Fähigkeiten, die ein Agent ausführen kann.
  • Fähigkeiten: Das Wissen und die Erfahrung, über die der Agent verfügt.

Diese Komponenten arbeiten zusammen, um eine "spezialisierte Einheit" zu bilden, die bestimmte Aufgaben erfüllen kann.

typisches BeispielBetrachten Sie ein Reisebüro, einen Agenturservice, der nicht nur Ihren Urlaub plant, sondern auch den Weg dorthin auf der Grundlage von Echtzeitdaten und Erfahrungen mit früheren Kundenreisen anpasst.

Beispiel: Metakognition bei Reisebürodienstleistungen

Angenommen, Sie entwickeln einen KI-gestützten Reisebürodienst. Dieser Agent, "Travel Agent", hilft den Nutzern bei der Planung ihres Urlaubs. Um Metakognition einzubauen, muss das Reisebüro seine Handlungen auf der Grundlage von Selbsterkenntnis und früheren Erfahrungen bewerten und anpassen. So funktioniert Metakognition:

aktuelle Aufgabe

Die aktuelle Aufgabe besteht darin, dem Benutzer bei der Planung einer Reise nach Paris zu helfen.

Schritte zur Erfüllung des Mandats

  1. Sammeln von BenutzerpräferenzenFragen Sie den Benutzer nach seinen Reisedaten, seinem Budget, seinen Interessen (z. B. Museen, Essen, Einkaufen) und seinen besonderen Wünschen.
  2. abrufen.Suche nach Flugoptionen, Unterkünften, Attraktionen und Restaurants, die den Vorlieben des Nutzers entsprechen.
  3. Erarbeitung von EmpfehlungenBietet personalisierte Reiserouten mit Flugdaten, Hotelbuchungen und Vorschlägen für Aktivitäten.
  4. Anpassungen aufgrund von RückmeldungenBitten Sie die Nutzer um Feedback zu den Vorschlägen und nehmen Sie die notwendigen Anpassungen vor.

Anforderungen an die Ressourcen

  • Zugang zu Flug- und Hotelbuchungsdatenbanken.
  • Informationen über Sehenswürdigkeiten und Restaurants in Paris.
  • Benutzer-Feedback-Daten aus früheren Interaktionen.

Erfahrung und Selbstreflexion

Das Reisebüro nutzt die Metakognition, um seine Leistung zu bewerten und aus früheren Erfahrungen zu lernen. Beispiel:

  1. Analyse des NutzerfeedbacksDas Reisebüro prüft das Feedback der Nutzer, um festzustellen, welche Vorschläge angenommen wurden und welche nicht. Es wird seine zukünftigen Empfehlungen entsprechend anpassen.
  2. Flexibilität: Das Reisebüro wird in Zukunft vermeiden, beliebte Touristenattraktionen während der Hauptverkehrszeiten zu empfehlen, wenn der Nutzer zuvor angegeben hat, dass er überfüllte Orte nicht mag.
  3. Berichtigung von FehlernWenn das Reisebüro bei einer früheren Buchung einen Fehler gemacht hat, z. B. ein Hotel empfohlen hat, das ausgebucht war, wird es lernen, die Verfügbarkeit strenger zu prüfen, bevor es eine Empfehlung ausspricht.

Beispiel für einen echten Entwickler

Dies ist ein vereinfachtes Beispiel dafür, wie der Code des Reisebüros in Verbindung mit Metakognition aussehen könnte:

class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
# Search for flights, hotels, and attractions based on preferences
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
itinerary = create_itinerary(flights, hotels, attractions)
return itinerary
def adjust_based_on_feedback(self, feedback):
self.experience_data.append(feedback)
# Analyze feedback and adjust future recommendations
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
# Example usage
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
travel_agent.adjust_based_on_feedback(feedback)

Warum Metakognition wichtig ist

  • SelbstreflexionDie Agentur kann ihre Leistung analysieren und Bereiche mit Verbesserungsbedarf ermitteln.
  • FlexibilitätDer Agent kann die Richtlinie auf der Grundlage von Rückmeldungen und veränderten Bedingungen ändern.
  • Berichtigung von FehlernAgent kann Fehler selbständig erkennen und korrigieren.
  • Verwaltung der RessourcenDer Agent kann die Nutzung von Ressourcen wie Zeit und Rechenleistung optimieren.

Durch die Einbeziehung der Metakognition kann das Reisebüro persönlichere und präzisere Reisetipps geben, um das Gesamterlebnis des Nutzers zu verbessern.

 

2. die Planung in Agent

Planung ist eine Schlüsselkomponente des Verhaltens von KI-Agenten. Sie beinhaltet die Festlegung der Schritte, die zum Erreichen eines Ziels erforderlich sind, wobei der aktuelle Zustand, die Ressourcen und mögliche Hindernisse berücksichtigt werden.

Elemente der Planung

  • aktuelle AufgabeKlare Definition des Mandats.
  • Schritte zur Erfüllung des MandatsAufteilung der Aufgaben in überschaubare Schritte.
  • Anforderungen an die RessourcenIdentifizieren Sie die notwendigen Ressourcen.
  • Erfahrungen: Nutzen Sie die Erfahrungen aus der Vergangenheit für Ihre Planung.

typisches BeispielIm Folgenden sind die Schritte aufgeführt, die ein Reisebüro unternehmen muss, um den Benutzer bei der Planung seiner Reise effektiv zu unterstützen:

Schritte für Reisebüros

  1. Sammeln von Benutzerpräferenzen
    • Fragen Sie die Nutzer nach Details zu ihren Reisedaten, ihrem Budget, ihren Interessen und besonderen Anforderungen.
    • BEISPIEL: "Wann planen Sie zu reisen?" "Wie groß ist Ihr Budget?" "Welche Aktivitäten genießen Sie im Urlaub?"
  2. abrufen.
    • Suche nach relevanten Reiseoptionen auf der Grundlage der Benutzerpräferenzen.
    • planmäßige AbfahrtenSuche nach verfügbaren Flügen, die dem Budget und den bevorzugten Reisedaten des Benutzers entsprechen.
    • Aufenthalt inSuche nach Hotels oder Mietobjekten, die den Präferenzen des Nutzers hinsichtlich Lage, Preis und Ausstattung entsprechen.
    • Attraktionen und RestaurantsIdentifizieren Sie beliebte Attraktionen, Aktivitäten und gastronomische Angebote, die den Interessen der Nutzer entsprechen.
  3. Erarbeitung von Empfehlungen
    • Stellen Sie die abgerufenen Informationen zu einer personalisierten Reiseroute zusammen.
    • Die Angabe von Details zu Flugoptionen, Hotelbuchungen und vorgeschlagenen Aktivitäten gewährleistet, dass die Vorschläge auf die Präferenzen des Nutzers zugeschnitten sind.
  4. Dem Benutzer die Reiseroute anzeigen
    • Vorgeschlagene Reiserouten werden den Nutzern zur Überprüfung vorgelegt.
    • Beispiel: "Dies ist eine vorgeschlagene Reiseroute für Ihre Reise nach Paris. Er enthält Flugdaten, Hotelreservierungen und eine Liste mit empfohlenen Aktivitäten und Restaurants. Bitte lassen Sie mich wissen, was Sie davon halten!"
  5. Sammeln von Feedback
    • Bitten Sie die Nutzer um Feedback zu den vorgeschlagenen Fahrten.
    • BEISPIEL: "Gefallen Ihnen die Flugoptionen?" "Entspricht das Hotel Ihren Bedürfnissen?" "Möchten Sie Aktivitäten hinzufügen oder streichen?"
  6. Anpassungen aufgrund von Rückmeldungen
    • Ändern Sie die Reiseroute auf der Grundlage des Benutzerfeedbacks.
    • Nehmen Sie notwendige Änderungen an Flug-, Unterkunfts- und Aktivitätsvorschlägen vor, um sie besser an die Präferenzen der Nutzer anzupassen.
  7. Endgültige Bestätigung
    • Zeigen Sie dem Benutzer die aktualisierte Reiseroute zur endgültigen Bestätigung.
    • BEISPIEL: "Ich habe aufgrund Ihres Feedbacks Änderungen vorgenommen. Hier ist die aktualisierte Reiseroute. Sieht alles gut aus?"
  8. Buchung und Bestätigung von Buchungen
    • Sobald der Benutzer die Reiseroute genehmigt hat, können Sie Flüge, Unterkünfte und alle geplanten Aktivitäten buchen.
    • Sendet Bestätigungsdetails an den Benutzer.
  9. Bereitstellung von laufender Unterstützung
    • Unterstützung des Nutzers bei eventuellen Änderungen oder anderen Wünschen vor und während der Reise.
    • BEISPIEL: "Wenn Sie während Ihrer Reise weitere Unterstützung benötigen, können Sie sich gerne an mich wenden!"

Beispiel für Interaktion

class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
itinerary = create_itinerary(flights, hotels, attractions)
return itinerary
def adjust_based_on_feedback(self, feedback):
self.experience_data.append(feedback)
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
# Example usage within a booing request
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
travel_agent.adjust_based_on_feedback(feedback)

 

3. geändertes RAG-System

Erstens: Verstehen wir RAG Der Unterschied zwischen Tools und vorkontextualisiertem Laden.

微软 AI Agent 入门课程:AI Agent 中的元认知-2

Retrieval Augmentation Generation (RAG)

RAG kombiniert ein Retrievalsystem mit einem generativen Modell. Wenn eine Anfrage gestellt wird, erhält das Retrievalsystem relevante Dokumente oder Daten aus externen Quellen und verwendet diese abgerufenen Informationen, um die Eingaben für das generative Modell zu erweitern. Dies hilft dem Modell, genauere und kontextbezogenere Antworten zu generieren.

In einem RAG-System ruft ein intelligenter Körper (Agent) relevante Informationen aus einer Wissensbasis ab und verwendet sie, um eine angemessene Reaktion oder Aktion zu erzeugen.

Modifizierte RAG-Methode

Ein korrigierender RAG-Ansatz konzentriert sich auf die Verwendung von RAG-Techniken zur Korrektur von Fehlern und zur Verbesserung der Genauigkeit einer KI-Intelligenz (Agent). Dies beinhaltet:

  1. Queue-Technologie: Verwenden Sie spezifische Aufforderungen, um den Agenten bei der Suche nach relevanten Informationen zu unterstützen.
  2. ArtefaktImplementierung von Algorithmen und Mechanismen, die es intelligenten Agenten ermöglichen, die Relevanz der abgerufenen Informationen zu bewerten und präzise Antworten zu geben.
  3. BewertungAgent: Bewertet fortlaufend die Leistung eines intelligenten Organs (Agenten) und nimmt Anpassungen vor, um seine Genauigkeit und Effizienz zu verbessern.

Beispiel: Geänderte RAG in Search Intelligence (Agent)

Betrachten wir eine Suchintelligenz (Agent), die Informationen aus dem Internet abruft, um eine Benutzeranfrage zu beantworten. Zu den modifizierten RAG-Methoden können gehören:

  1. Queue-TechnologieSuchanfragen auf der Grundlage von Benutzereingaben formulieren.
  2. ArtefaktVerwendung von Algorithmen zur Verarbeitung natürlicher Sprache und maschinellem Lernen, um Suchergebnisse zu bewerten und zu filtern.
  3. BewertungAnalyse des Benutzerfeedbacks, um Ungenauigkeiten in den abgerufenen Informationen zu erkennen und zu korrigieren.

Geänderte RAG in Travelling Intelligence (Agent)

Corrective RAG (Retrieval Augmented Generation) verbessert die Fähigkeit der KI, Informationen abzurufen und zu generieren und dabei Ungenauigkeiten zu korrigieren. Werfen wir einen Blick darauf, wie Travel Agent einen modifizierten RAG-Ansatz verwendet, um genauere und relevantere Reiseempfehlungen zu geben.

Dazu gehören:

  • Stichwort Technik: Verwenden Sie spezifische Eingabeaufforderungen, um den Agenten zum Abrufen relevanter Informationen zu führen.
  • Werkzeuge: Implementierung von Algorithmen und Mechanismen, die es intelligenten Agenten ermöglichen, die Relevanz der abgerufenen Informationen zu bewerten und präzise Antworten zu geben.
  • Bewertung: Die Leistung der Intelligenzen (Agenten) kontinuierlich bewerten und Anpassungen vornehmen, um ihre Genauigkeit und Effizienz zu verbessern.

Schritte zur Implementierung der modifizierten RAG im Reisebüro

  1. Erste Benutzerinteraktion
    • Das Reisebüro sammelt die ersten Präferenzen des Nutzers, wie Reiseziel, Reisedaten, Budget und Interessen.
    • Beispiel:
      preferences = {
      "destination": "Paris",
      "dates": "2025-04-01 to 2025-04-10",
      "budget": "moderate",
      "interests": ["museums", "cuisine"]
      }
      
  2. Informationsabfrage
    • Das Reisebüro ruft Informationen zu Flügen, Unterkünften, Sehenswürdigkeiten und Restaurants auf der Grundlage der Benutzerpräferenzen ab.
    • Beispiel:
      flights = search_flights(preferences)
      hotels = search_hotels(preferences)
      attractions = search_attractions(preferences)
      
  3. Erste Empfehlungen generieren
    • Das Reisebüro verwendet die abgerufenen Informationen, um eine personalisierte Reiseroute zu erstellen.
    • Beispiel:
      itinerary = create_itinerary(flights, hotels, attractions)
      print("Suggested Itinerary:", itinerary)
      
  4. Sammeln von Nutzerfeedback
    • Das Reisebüro bittet den Nutzer um ein Feedback zur ersten Empfehlung.
    • Beispiel:
      feedback = {
      "liked": ["Louvre Museum"],
      "disliked": ["Eiffel Tower (too crowded)"]
      }
      
  5. Geänderter RAG-Prozess
    • Queue-Technologie: Travel Agent entwickelt neue Suchanfragen auf der Grundlage von Nutzerfeedback.
      • Beispiel:
        if "disliked" in feedback:
        preferences["avoid"] = feedback["disliked"]
        
    • Artefakt: Travel Agent verwendet Algorithmen, um neue Suchergebnisse zu ordnen und zu filtern und die Relevanz auf der Grundlage von Nutzerfeedback hervorzuheben.
      • Beispiel:
        new_attractions = search_attractions(preferences)
        new_itinerary = create_itinerary(flights, hotels, new_attractions)
        print("Updated Itinerary:", new_itinerary)
        
    • Bewertung: Travel Agent bewertet kontinuierlich die Relevanz und Genauigkeit seiner Empfehlungen, indem es das Feedback der Nutzer analysiert und gegebenenfalls Anpassungen vornimmt.
      • Beispiel:
        def adjust_preferences(preferences, feedback):
        if "liked" in feedback:
        preferences["favorites"] = feedback["liked"]
        if "disliked" in feedback:
        preferences["avoid"] = feedback["disliked"]
        return preferences
        preferences = adjust_preferences(preferences, feedback)
        

praktisches Beispiel

Dies ist ein vereinfachtes Python-Codebeispiel, bei dem Travel Agent einen modifizierten RAG-Ansatz verwendet:

class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
itinerary = create_itinerary(flights, hotels, attractions)
return itinerary
def adjust_based_on_feedback(self, feedback):
self.experience_data.append(feedback)
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
new_itinerary = self.generate_recommendations()
return new_itinerary
# Example usage
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
new_itinerary = travel_agent.adjust_based_on_feedback(feedback)
print("Updated Itinerary:", new_itinerary)

vorkontextualisiertes Laden

Beim Pre-Context Loading werden relevante Kontext- oder Hintergrundinformationen in das Modell geladen, bevor die Abfrage verarbeitet wird. Dies bedeutet, dass das Modell von Anfang an Zugang zu diesen Informationen hat, was ihm helfen kann, fundiertere Antworten zu generieren, ohne während der Verarbeitung zusätzliche Daten abrufen zu müssen.

Es folgt ein vereinfachtes Beispiel für eine Python-Implementierung des Vor-Kontext-Ladens in einer Reisebüro-Anwendung:

class TravelAgent:
def __init__(self):
# Pre-load popular destinations and their information
self.context = {
"Paris": {"country": "France", "currency": "Euro", "language": "French", "attractions": ["Eiffel Tower", "Louvre Museum"]},
"Tokyo": {"country": "Japan", "currency": "Yen", "language": "Japanese", "attractions": ["Tokyo Tower", "Shibuya Crossing"]},
"New York": {"country": "USA", "currency": "Dollar", "language": "English", "attractions": ["Statue of Liberty", "Times Square"]},
"Sydney": {"country": "Australia", "currency": "Dollar", "language": "English", "attractions": ["Sydney Opera House", "Bondi Beach"]}
}
def get_destination_info(self, destination):
# Fetch destination information from pre-loaded context
info = self.context.get(destination)
if info:
return f"{destination}:\nCountry: {info['country']}\nCurrency: {info['currency']}\nLanguage: {info['language']}\nAttractions: {', '.join(info['attractions'])}"
else:
return f"Sorry, we don't have information on {destination}."
# Example usage
travel_agent = TravelAgent()
print(travel_agent.get_destination_info("Paris"))
print(travel_agent.get_destination_info("Tokyo"))

Anweisungen

  1. Initialisierung (__init__ Methode)::TravelAgent class ist mit einem Wörterbuch vorinstalliert, das Informationen über beliebte Reiseziele wie Paris, Tokio, New York und Sydney enthält. Das Wörterbuch enthält detaillierte Informationen über das Land, die Währung, die Sprache und die wichtigsten Sehenswürdigkeiten jedes Reiseziels.
  2. Abrufen von Informationen (get_destination_info Methode)Wenn ein Benutzer ein bestimmtes Ziel abfragt, wird dieget_destination_info Methode holt sich die relevanten Informationen aus dem vorgeladenen Kontext-Wörterbuch.

Durch das Vorladen des Kontexts können Reisebüroanwendungen schnell auf Benutzeranfragen reagieren, ohne diese Informationen in Echtzeit aus einer externen Quelle abrufen zu müssen. Dies macht die Anwendung effizienter und reaktionsschneller.

Verwendung eines zielgerichteten Plans vor der Iteration

Die Verwendung eines zielgerichteten Plans bedeutet, dass man sich von Anfang an ein klares Ziel oder ein gewünschtes Ergebnis vor Augen hält. Indem dieses Ziel im Voraus definiert wird, kann das Modell es während des gesamten Iterationsprozesses als Leitprinzip verwenden. Auf diese Weise wird sichergestellt, dass jede Iteration dem gewünschten Ergebnis näher kommt, was den Prozess effizienter und zielgerichteter macht.

Das folgende Beispiel zeigt, wie eine zielgerichtete Reiseplanung in Python für Travel Agent vor der Iteration verwendet werden kann:

Nehmen Sie

Das Reisebüro möchte für seine Kunden maßgeschneiderte Reisen planen. Ziel ist es, eine Reiseroute zu erstellen, die auf den Vorlieben und dem Budget des Kunden basiert, um die Kundenzufriedenheit zu maximieren.

umziehen

  1. Definieren Sie Kundenpräferenzen und Budgets.
  2. Lenken Sie den ursprünglichen Plan nach diesen Präferenzen.
  3. Iteration zur Optimierung der Pläne, um die Kundenzufriedenheit zu maximieren.

Python-Code

class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def bootstrap_plan(self, preferences, budget):
plan = []
total_cost = 0
for destination in self.destinations:
if total_cost + destination['cost'] <= budget and self.match_preferences(destination, preferences):
plan.append(destination)
total_cost += destination['cost']
return plan
def match_preferences(self, destination, preferences):
for key, value in preferences.items():
if destination.get(key) != value:
return False
return True
def iterate_plan(self, plan, preferences, budget):
for i in range(len(plan)):
for destination in self.destinations:
if destination not in plan and self.match_preferences(destination, preferences) and self.calculate_cost(plan, destination) <= budget:
plan[i] = destination
break
return plan
def calculate_cost(self, plan, new_destination):
return sum(destination['cost'] for destination in plan) + new_destination['cost']
# Example usage
destinations = [
{"name": "Paris", "cost": 1000, "activity": "sightseeing"},
{"name": "Tokyo", "cost": 1200, "activity": "shopping"},
{"name": "New York", "cost": 900, "activity": "sightseeing"},
{"name": "Sydney", "cost": 1100, "activity": "beach"},
]
preferences = {"activity": "sightseeing"}
budget = 2000
travel_agent = TravelAgent(destinations)
initial_plan = travel_agent.bootstrap_plan(preferences, budget)
print("Initial Plan:", initial_plan)
refined_plan = travel_agent.iterate_plan(initial_plan, preferences, budget)
print("Refined Plan:", refined_plan)

Code Beschreibung

  1. Initialisierung (__init__ Methode)::TravelAgent Die Klassen werden mit einer Liste potenzieller Ziele initialisiert, die jeweils Attribute wie Name, Kosten und Aktivitätsart enthalten.
  2. Orientierungsprogramm (bootstrap_plan Methode)Diese Methode erstellt einen ersten Reiseplan auf der Grundlage der Präferenzen und des Budgets des Kunden. Sie geht die Liste der Reiseziele durch und fügt sie dem Plan hinzu, wenn sie den Präferenzen des Kunden entsprechen und in das Budget passen.
  3. Übereinstimmende Präferenzen (match_preferences Methode)Diese Methode prüft, ob das Ziel mit den Präferenzen des Kunden übereinstimmt.
  4. Iterationsplan (iterate_plan Methode)Bei dieser Methode wird der ursprüngliche Plan optimiert, indem versucht wird, jedes Ziel im Plan durch ein besser geeignetes zu ersetzen, wobei Kundenpräferenzen und Budgetbeschränkungen berücksichtigt werden.
  5. Berechnung der Kosten (calculate_cost Methode)Diese Methode berechnet die Gesamtkosten des aktuellen Programms, einschließlich möglicher neuer Ziele.

Beispielhafte Verwendung

  • erster PlanReisebüro: Das Reisebüro erstellt einen ersten Plan, der auf den Vorlieben des Kunden für Besichtigungen und einem Budget von 2.000 Dollar basiert.
  • Optimierungsplan: Ein iteratives Programm für Reisebüros, das auf die Vorlieben und das Budget der Kunden abgestimmt ist.

Durch die Verwendung klarer Ziele (z. B. Maximierung der Kundenzufriedenheit) als Richtschnur für den Plan und die iterative Optimierung des Plans erstellt Travel Agent maßgeschneiderte und optimierte Reiserouten für Kunden. Dieser Ansatz stellt sicher, dass die Reisepläne von Anfang an auf die Präferenzen und Budgets der Kunden abgestimmt sind und mit jeder Iteration verbessert werden.

Neuordnung und Scoring mit großen Sprachmodellen (LLM)

Große Sprachmodelle (LLMs) können verwendet werden, um die abgerufenen Dokumente oder generierten Antworten neu zu ordnen und zu bewerten, indem ihre Relevanz und Qualität beurteilt wird. Sie funktionieren wie folgt:

Zurückgeholt: Bei der ersten Abfrage wird auf der Grundlage der Anfrage eine Reihe von möglichen Dokumenten oder Antworten ermittelt.

Neubestellung: LLM wertet diese Kandidaten aus und ordnet sie nach ihrer Relevanz und Qualität neu an. Dieser Schritt gewährleistet, dass die relevantesten und hochwertigsten Informationen zuerst präsentiert werden.

Bewertung: LLM vergibt für jedes Kandidatenobjekt Punkte, die dessen Relevanz und Qualität widerspiegeln. Dies hilft bei der Auswahl der besten Antwort oder des besten Dokuments für den Benutzer.

Durch den Einsatz von LLM für die Neuordnung und Bewertung kann das System genauere und kontextbezogene Informationen liefern und so die Nutzererfahrung insgesamt verbessern.

Hier ist ein Beispiel dafür, wie ein Reisebüro ein Large Language Model (LLM) verwenden kann, um Reiseziele auf der Grundlage von Benutzerpräferenzen in Python neu zu ordnen und zu bewerten:

Szenarien - präferenzbasiertes Reisen

LLM hilft bei der Neusortierung und Bewertung von Reisezielen, um sicherzustellen, dass die relevantesten Optionen präsentiert werden.

Schritte:

  1. Sammeln Sie Benutzerpräferenzen.
  2. Rufen Sie eine Liste möglicher Reiseziele ab.
  3. Verwenden Sie LLM, um Ziele auf der Grundlage von Benutzerpräferenzen neu zu ordnen und zu bewerten.

So aktualisieren Sie das vorherige Beispiel, um den Azure OpenAI-Service zu nutzen:

Anfrage

  1. Sie müssen ein Azure-Abonnement haben.
  2. Erstellen Sie eine Azure OpenAI-Ressource und erhalten Sie Ihren API-Schlüssel.

Beispiel für Python-Code

import requests
import json
class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def get_recommendations(self, preferences, api_key, endpoint):
# 为 Azure OpenAI 生成提示
prompt = self.generate_prompt(preferences)
# 定义请求的标头和负载
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
}
payload = {
"prompt": prompt,
"max_tokens": 150,
"temperature": 0.7
}
# 调用 Azure OpenAI API 以获取重新排序和评分的目的地
response = requests.post(endpoint, headers=headers, json=payload)
response_data = response.json()
# 提取并返回建议
recommendations = response_data['choices'][0]['text'].strip().split('\n')
return recommendations
def generate_prompt(self, preferences):
prompt = "以下是根据以下用户偏好排名和评分的旅游目的地:\n"
for key, value in preferences.items():
prompt += f"{key}: {value}\n"
prompt += "\n目的地:\n"
for destination in self.destinations:
prompt += f"- {destination['name']}: {destination['description']}\n"
return prompt
# 示例用法
destinations = [
{"name": "Paris", "description": "光之城,以其艺术、时尚和文化而闻名。"},
{"name": "Tokyo", "description": "充满活力的城市,以其现代性和传统寺庙而闻名。"},
{"name": "New York", "description": "不夜城,拥有标志性地标和多元文化。"},
{"name": "Sydney", "description": "美丽的海港城市,以其歌剧院和迷人的海滩而闻名。"},
]
preferences = {"activity": "sightseeing", "culture": "diverse"}
api_key = 'your_azure_openai_api_key'
endpoint = 'https://your-endpoint.com/openai/deployments/your-deployment-name/completions?api-version=2022-12-01'
travel_agent = TravelAgent(destinations)
recommendations = travel_agent.get_recommendations(preferences, api_key, endpoint)
print("推荐目的地:")
for rec in recommendations:
print(rec)

Code-Erläuterung - Präferenzbucher

  1. Initialisierung::TravelAgent Die Klasse wird mit einer Liste potenzieller Reiseziele initialisiert, die jeweils mit Attributen wie Name und Beschreibung versehen sind.
  2. Beratung einholen (get_recommendations (Methoden)Diese Methode generiert Eingabeaufforderungen für den Azure OpenAI-Service auf der Grundlage der Benutzerpräferenzen und sendet eine HTTP-POST-Anfrage an die Azure OpenAI-API zur Neuordnung und Bewertung von Zielen.
  3. Erzeugen Sie eine Eingabeaufforderung (generate_prompt (Methoden)Diese Methode erstellt eine Eingabeaufforderung für Azure OpenAI, die die Präferenzen des Benutzers und eine Liste von Zielen enthält. Der Hinweis weist das Modell an, die Ziele auf der Grundlage der angegebenen Präferenzen neu zu ordnen und zu bewerten.
  4. API-Aufrufe::requests Bibliothek für HTTP POST-Anfragen an Azure OpenAI API Endpunkte. Die Antwort enthält die neu geordneten und bewerteten Ziele.
  5. Beispielhafte VerwendungReisebüros erfassen die Präferenzen der Nutzer (z. B. Interesse an Sehenswürdigkeiten und Multikulturalität) und nutzen den Azure OpenAI Service, um Vorschläge für die Neueinstufung und Bewertung von Reisezielen zu erhalten.

garantieren, dass your_azure_openai_api_key Ersetzen Sie ihn durch Ihren tatsächlichen Azure OpenAI API-Schlüssel und ersetzen Sie die https://your-endpoint.com/... Ersetzen Sie durch die tatsächliche Endpunkt-URL Ihrer Azure OpenAI-Bereitstellung.

Durch den Einsatz von LLM für die Nachbestellung und Bewertung können Reisebüros ihren Kunden eine individuellere und relevantere Reiseberatung bieten und so deren Gesamterlebnis verbessern.

{Technology Domain Critics Sharp: Das obige Codebeispiel zeigt deutlich, wie Inhalte mithilfe eines großen Sprachmodells neu geordnet und bewertet werden können. Dies wird erreicht durch die Konstruktion von TravelAgent Klassen und in Kombination mit Azure OpenAI-Services können personalisierte Reiseempfehlungen auf der Grundlage der Benutzerpräferenzen bereitgestellt werden. Dieser Ansatz verbessert nicht nur die Genauigkeit der Empfehlungen, sondern erhöht auch das Benutzererlebnis.}

RAG: Prompting-Techniken und -Werkzeuge

Retrieval Augmented Generation (RAG) kann sowohl eine Prompting-Technik als auch ein Werkzeug bei der Entwicklung von KI-Agenten sein. Wenn Sie den Unterschied zwischen beiden verstehen, können Sie RAG in Ihren Projekten effektiver nutzen.

RAG als Souffleurtechnik

Was ist das?

  • Als Prompting-Technik beinhaltet RAG die Formulierung spezifischer Abfragen oder Prompts, um den Abruf relevanter Informationen aus einem großen Korpus oder einer Datenbank zu steuern. Diese Informationen werden dann verwendet, um Antworten oder Aktionen zu generieren.

Wie es funktioniert:

  1. Tipps für die EntwicklungErstellen Sie gut strukturierte Eingabeaufforderungen oder Abfragen auf der Grundlage der jeweiligen Aufgabe oder der Benutzereingaben.
  2. abrufen.Suchen Sie mit Hilfe von Eingabeaufforderungen nach relevanten Daten in bereits vorhandenen Wissensdatenbanken oder Datensätzen.
  3. Generierung einer AntwortKombinieren Sie die abgerufenen Informationen mit generativen KI-Modellen, um eine umfassende und kohärente Antwort zu erhalten.

Beispiel Reisebüro::

  • Benutzereingabe: "Ich möchte die Museen in Paris besuchen."
  • Stichwort: "Finden Sie die besten Museen in Paris".
  • Abgerufene Informationen: detaillierte Informationen über das Louvre-Museum, das Musée d'Orsay und mehr.
  • Hier sind einige der wichtigsten Museen in Paris: das Louvre-Museum, das Musée d'Orsay und das Centre Pompidou".

RAG als Instrument

Was ist das?

  • RAG ist ein integriertes System, das den Abfrage- und Generierungsprozess automatisiert und es den Entwicklern erleichtert, komplexe KI-Funktionen zu implementieren, ohne dass sie für jede Abfrage manuell Prompts erstellen müssen.

Wie es funktioniert:

  1. integriert (wie in integrierter Schaltung)Einbettung von RAG in die Architektur eines KI-Agenten ermöglicht die Automatisierung von Such- und Generierungsaufgaben.
  2. automatischDas Tool verwaltet den gesamten Prozess, vom Empfang der Benutzereingaben bis zur Erstellung der endgültigen Antwort, ohne dass für jeden Schritt explizite Aufforderungen erforderlich sind.
  3. EffizienzVerbesserung der Agentenleistung durch Vereinfachung des Abruf- und Generierungsprozesses für schnellere und genauere Antworten.

Beispiel Reisebüro::

  • Benutzereingabe: "Ich möchte die Museen in Paris besuchen."
  • RAG Tool: Ruft automatisch Informationen über das Museum ab und erstellt eine Antwort.
  • Hier sind einige der wichtigsten Museen in Paris: das Louvre-Museum, das Musée d'Orsay und das Centre Pompidou".

{Anmerkung des Technikkritikers: Die Unterscheidung zwischen der Beschreibung von RAG als Hinweistechnik und als Werkzeug ist wichtig. Als Prompting-Technik betont RAG die Bedeutung der manuellen Formulierung von Abfragen, als Werkzeug die Automatisierung und Integration. Beide Ansätze haben ihre Vorteile und können je nach Bedarf flexibel gewählt werden.}

Vergleiche

Perspektive Queue-Technologie Artefakt
Manuell vs. Automatik Entwickeln Sie manuell Prompts für jede Abfrage. Automatisieren Sie den Abruf- und Erstellungsprozess.
Eindämmung Bietet mehr Kontrolle über den Abrufprozess. Vereinfachte und automatisierte Abfrage und Erstellung.
Geschicklichkeit Ermöglicht die Anpassung der Eingabeaufforderungen an spezifische Bedürfnisse. Effizientere Umsetzung in großem Maßstab.
Raffinesse Es müssen Tipps erstellt und angepasst werden. Leichtere Integration in die KI-Agent-Architektur.

Praktisches Beispiel

Beispiel für eine Cueing-Technik:

def search_museums_in_paris():
prompt = "Find top museums in Paris"
search_results = search_web(prompt)
return search_results
museums = search_museums_in_paris()
print("Top Museums in Paris:", museums)

Beispiel für ein Werkzeug:

class Travel_Agent:
def __init__(self):
self.rag_tool = RAGTool()
def get_museums_in_paris(self):
user_input = "I want to visit museums in Paris."
response = self.rag_tool.retrieve_and_generate(user_input)
return response
travel_agent = Travel_Agent()
museums = travel_agent.get_museums_in_paris()
print("Top Museums in Paris:", museums)

FAZIT: Die Unterschiede zwischen Prompting-Techniken und -Werkzeugen werden durch den Vergleich von Tabellen und konkreten Codebeispielen deutlich gemacht. Die manuelle Formulierung von Hinweisen bietet mehr Flexibilität und Kontrolle, während Werkzeuge die Effizienz durch Automatisierung steigern. Dies ermöglicht es den Entwicklern, je nach Projektanforderungen und Ressourcen eine fundiertere Entscheidung zu treffen.

Bewertung der Relevanz

Die Bewertung der Relevanz ist ein wichtiger Aspekt der Leistung von KI-Agenten. Sie stellt sicher, dass die vom Agenten abgerufenen und generierten Informationen für den Benutzer angemessen, genau und nützlich sind. Im Folgenden erfahren Sie, wie Sie die Relevanz von KI-Agenten bewerten können, einschließlich praktischer Beispiele und Tipps.

Schlüsselkonzepte für die Bewertung der Relevanz

  1. Situationsbewusstsein::
    • Der Agent muss den Kontext der Benutzeranfrage verstehen, um relevante Informationen abrufen und generieren zu können.
    • Beispiel: Wenn ein Nutzer nach "den besten Restaurants in Paris" fragt, sollte der Agent die Präferenzen des Nutzers berücksichtigen, z. B. die Art der Küche und das Budget.
  2. Genauigkeit::
    • Die vom Bevollmächtigten bereitgestellten Informationen sollten sachlich richtig und aktuell sein.
    • Beispiel: Schlagen Sie Restaurants vor, die derzeit geöffnet sind und gute Bewertungen haben, und nicht veraltete oder geschlossene Optionen.
  3. Benutzerabsicht::
    • Der Agent sollte die Absicht hinter der Anfrage des Benutzers ableiten, um die relevantesten Informationen zu liefern.
    • Beispiel: Wenn ein Nutzer nach "günstigen Hotels" fragt, sollte der Agent günstige Optionen bevorzugen.
  4. Rückkopplungsschleife::
    • Das kontinuierliche Sammeln und Analysieren von Nutzerfeedback hilft dem Agenten, seinen Relevanzbewertungsprozess zu verbessern.
    • Beispiel: Kombination von Nutzerbewertungen und Feedback zu früheren Empfehlungen zur Verbesserung künftiger Antworten.

Praktische Tipps zur Bewertung der Relevanz

  1. Relevanzbewertung::
    • Jedem Suchbegriff wird eine Relevanzbewertung zugewiesen, die sich danach richtet, wie gut er mit der Suchanfrage und den Präferenzen des Nutzers übereinstimmt.
    • Beispiel:
      def relevance_score(item, query):
      score = 0
      if item['category'] in query['interests']:
      score += 1
      if item['price'] <= query['budget']:
      score += 1
      if item['location'] == query['destination']:
      score += 1
      return score
      
  2. Filtern und Sortieren::
    • Filtern Sie irrelevante Elemente heraus und sortieren Sie die verbleibenden Elemente auf der Grundlage ihrer Relevanzwerte.
    • Beispiel:
      def filter_and_rank(items, query):
      ranked_items = sorted(items, key=lambda item: relevance_score(item, query), reverse=True)
      return ranked_items[:10]  # 返回前 10 个相关项目
      
  3. Natürliche Sprachverarbeitung (NLP)::
    • Verwenden Sie NLP-Techniken, um Benutzeranfragen zu verstehen und relevante Informationen abzurufen.
    • Beispiel:
      def process_query(query):
      # 使用 NLP 从用户的查询中提取关键信息
      processed_query = nlp(query)
      return processed_query
      
  4. Integration von Benutzer-Feedback::
    • Sammeln Sie das Feedback der Nutzer zu den erteilten Ratschlägen und nutzen Sie es, um künftige Relevanzbewertungen anzupassen.
    • Beispiel:
      def adjust_based_on_feedback(feedback, items):
      for item in items:
      if item['name'] in feedback['liked']:
      item['relevance'] += 1
      if item['name'] in feedback['disliked']:
      item['relevance'] -= 1
      return items
      

Beispiel: Bewertung der Relevanz im Reisebüro

Im Folgenden finden Sie ein praktisches Beispiel dafür, wie Travel Agent die Relevanz von Reiseempfehlungen bewertet:

class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
ranked_hotels = self.filter_and_rank(hotels, self.user_preferences)
itinerary = create_itinerary(flights, ranked_hotels, attractions)
return itinerary
def filter_and_rank(self, items, query):
ranked_items = sorted(items, key=lambda item: self.relevance_score(item, query), reverse=True)
return ranked_items[:10]  # 返回前 10 个相关项目
def relevance_score(self, item, query):
score = 0
if item['category'] in query['interests']:
score += 1
if item['price'] <= query['budget']:
score += 1
if item['location'] == query['destination']:
score += 1
return score
def adjust_based_on_feedback(self, feedback, items):
for item in items:
if item['name'] in feedback['liked']:
item['relevance'] += 1
if item['name'] in feedback['disliked']:
item['relevance'] -= 1
return items
# 示例用法
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_items = travel_agent.adjust_based_on_feedback(feedback, itinerary['hotels'])
print("Updated Itinerary with Feedback:", updated_items)

Gezielte Suche

Bei der gezielten Suche geht es darum, den Zweck oder das Ziel hinter der Anfrage eines Nutzers zu verstehen und zu interpretieren, um die relevantesten und nützlichsten Informationen abzurufen und zu generieren. Dieser Ansatz geht über das einfache Abgleichen von Schlüsselwörtern hinaus und konzentriert sich auf das Erfassen der tatsächlichen Bedürfnisse und des Kontexts des Nutzers.

Schlüsselbegriffe der gezielten Suche

  1. Die Absicht des Benutzers verstehen::
    • Die Absichten der Nutzer lassen sich in drei Hauptkategorien einteilen: Informations-, Navigations- und Transaktionsabsichten.
      • Informative IntentionBenutzer, die Informationen zu einem bestimmten Thema suchen (z. B. "Welches sind die besten Museen in Paris?"). .
      • Navigations-AbsichtDer Benutzer möchte zu einer bestimmten Website oder Seite navigieren (z.B. "Louvre Museum official website").
      • Transaktionsbezogene AbsichtDer Nutzer möchte eine Transaktion durchführen, z. B. einen Flug buchen oder einen Kauf tätigen (z. B. "Buchen Sie einen Flug nach Paris").
  2. Situationsbewusstsein::
    • Die Analyse des Kontexts einer Nutzeranfrage hilft dabei, die Absicht des Nutzers genau zu erkennen. Dabei werden frühere Interaktionen, Benutzerpräferenzen und spezifische Details der aktuellen Anfrage berücksichtigt.
  3. Natürliche Sprachverarbeitung (NLP)::
    • NLP-Techniken werden eingesetzt, um von Nutzern gestellte natürlichsprachliche Anfragen zu verstehen und zu interpretieren. Dazu gehören Aufgaben wie Entity Recognition, Sentiment Analysis und Query Parsing.
  4. Personalisierte::
    • Die Personalisierung von Suchergebnissen auf der Grundlage von Benutzerhistorie, Präferenzen und Feedback kann die Relevanz der abgerufenen Informationen verbessern.

Praxisbeispiel: Gezielte Suche im Reisebüro

Betrachten wir das Reisebüro als Beispiel dafür, wie man eine gezielte Suche erreichen kann.

  1. Sammeln von Benutzerpräferenzen
    class Travel_Agent:
    def __init__(self):
    self.user_preferences = {}
    def gather_preferences(self, preferences):
    self.user_preferences = preferences
    
  2. Die Absicht des Benutzers verstehen
    def identify_intent(query):
    if "book" in query or "purchase" in query:
    return "transactional"
    elif "website" in query or "official" in query:
    return "navigational"
    else:
    return "informational"
    
  3. Situationsbewusstsein
    def analyze_context(query, user_history):
    # 将当前查询与用户历史记录相结合以理解情境
    context = {
    "current_query": query,
    "user_history": user_history
    }
    return context
    
  4. Suche und personalisierte Ergebnisse
    def search_with_intent(query, preferences, user_history):
    intent = identify_intent(query)
    context = analyze_context(query, user_history)
    if intent == "informational":
    search_results = search_information(query, preferences)
    elif intent == "navigational":
    search_results = search_navigation(query)
    elif intent == "transactional":
    search_results = search_transaction(query, preferences)
    personalized_results = personalize_results(search_results, user_history)
    return personalized_results
    def search_information(query, preferences):
    # 信息型意图的示例搜索逻辑
    results = search_web(f"best {preferences['interests']} in {preferences['destination']}")
    return results
    def search_navigation(query):
    # 导航型意图的示例搜索逻辑
    results = search_web(query)
    return results
    def search_transaction(query, preferences):
    # 交易型意图的示例搜索逻辑
    results = search_web(f"book {query} to {preferences['destination']}")
    return results
    def personalize_results(results, user_history):
    # 示例个性化逻辑
    personalized = [result for result in results if result not in user_history]
    return personalized[:10]  # 返回前 10 个个性化结果
    
  5. Beispielhafte Verwendung
    travel_agent = Travel_Agent()
    preferences = {
    "destination": "Paris",
    "interests": ["museums", "cuisine"]
    }
    travel_agent.gather_preferences(preferences)
    user_history = ["Louvre Museum website", "Book flight to Paris"]
    query = "best museums in Paris"
    results = search_with_intent(query, preferences, user_history)
    print("Search Results:", results)
    

 

4. die Erzeugung von Code als Werkzeug

Codegenerierende Intelligenzen (Agenten) verwenden KI-Modelle, um Code zu schreiben und auszuführen, komplexe Probleme zu lösen und Aufgaben zu automatisieren.

Code-generierende Intelligenz

Codegenerierende Intelligenzen schreiben und führen Code mithilfe generativer KI-Modelle aus. Diese Intelligenzen können komplexe Probleme lösen, Aufgaben automatisieren und wertvolle Erkenntnisse liefern, indem sie Code in einer Vielzahl von Programmiersprachen erzeugen und ausführen.

praktische Anwendung

  1. Automatisierte Code-GenerierungGenerieren von Codeschnipseln für bestimmte Aufgaben, z. B. Datenanalyse, Web-Crawling oder maschinelles Lernen.
  2. SQL als RAGSQL-Abfragen verwenden, um Daten aus einer Datenbank abzurufen und zu manipulieren.
  3. Lösung von ProblemenErstellen und Ausführen von Code zur Lösung eines bestimmten Problems, z. B. zur Optimierung eines Algorithmus oder zur Analyse von Daten.

Beispiel: Code-generierende Intelligenzen für die Datenanalyse

Nehmen wir an, Sie entwerfen eine Code-generierende Intelligenz. Das könnte folgendermaßen funktionieren:

  1. MandateAnalyse von Datensätzen, um Trends und Muster zu erkennen.
  2. umziehen::
    • Laden Sie den Datensatz in das Datenanalysetool.
    • Generieren Sie SQL-Abfragen zum Filtern und Aggregieren von Daten.
    • Führen Sie die Abfrage aus und rufen Sie die Ergebnisse ab.
    • Nutzen Sie die Ergebnisse, um Visualisierungen und Erkenntnisse zu gewinnen.
  3. Anforderungen an die RessourcenZugang zu Datensätzen, Datenanalysetools und SQL-Funktionen.
  4. ErfahrungenNutzung früherer Analysen, um die Genauigkeit und Relevanz künftiger Analysen zu verbessern.

Beispiel: Intelligente Codegenerierung für Reisebüros

In diesem Beispiel werden wir eine Code-generierende Intelligenz, Travel Agent, entwerfen, die den Benutzer bei der Planung einer Reise unterstützt, indem sie Code generiert und ausführt. Die Intelligenz kann Aufgaben wie das Einholen von Reiseoptionen, das Filtern von Ergebnissen und das Zusammenstellen von Reiserouten mithilfe generativer KI übernehmen.

Übersicht über die Codegenerierungsintelligenz

  1. Sammeln von BenutzerpräferenzenErfassen Sie Benutzereingaben wie Reiseziel, Reisedaten, Budget und Interessen.
  2. Code zum Abrufen der Daten generierenGenerieren von Codeschnipseln zum Abrufen von Daten über Flüge, Hotels und Sehenswürdigkeiten.
  3. Ausführen des generierten CodesAusführen des generierten Codes, um Echtzeitinformationen zu erhalten.
  4. Erzeugen einer ReiseZusammenstellung der erfassten Daten zu einem individuellen Reiseplan.
  5. Anpassungen aufgrund von RückmeldungenFeedback der Benutzer entgegennehmen und den Code gegebenenfalls neu generieren, um die Ergebnisse zu optimieren.

Schritt für Schritt

  1. Sammeln von Benutzerpräferenzen
    class Travel_Agent:
    def __init__(self):
    self.user_preferences = {}
    def gather_preferences(self, preferences):
    self.user_preferences = preferences
    
  2. Code zum Abrufen der Daten generieren
    def generate_code_to_fetch_data(preferences):
    # 示例:生成代码以根据用户偏好搜索航班
    code = f"""
    def search_flights():
    import requests
    response = requests.get('https://api.example.com/flights', params={preferences})
    return response.json()
    """
    return code
    def generate_code_to_fetch_hotels(preferences):
    # 示例:生成代码以搜索酒店
    code = f"""
    def search_hotels():
    import requests
    response = requests.get('https://api.example.com/hotels', params={preferences})
    return response.json()
    """
    return code
    
  3. Ausführen des generierten Codes
    def execute_code(code):
    # 使用 exec 执行生成的代码
    exec(code)
    result = locals()
    return result
    travel_agent = Travel_Agent()
    preferences = {
    "destination": "Paris",
    "dates": "2025-04-01 to 2025-04-10",
    "budget": "moderate",
    "interests": ["museums", "cuisine"]
    }
    travel_agent.gather_preferences(preferences)
    flight_code = generate_code_to_fetch_data(preferences)
    hotel_code = generate_code_to_fetch_hotels(preferences)
    flights = execute_code(flight_code)
    hotels = execute_code(hotel_code)
    print("Flight Options:", flights)
    print("Hotel Options:", hotels)
    
  4. Erzeugen einer Reise
    def generate_itinerary(flights, hotels, attractions):
    itinerary = {
    "flights": flights,
    "hotels": hotels,
    "attractions": attractions
    }
    return itinerary
    attractions = search_attractions(preferences)
    itinerary = generate_itinerary(flights, hotels, attractions)
    print("Suggested Itinerary:", itinerary)
    
  5. Anpassungen aufgrund von Rückmeldungen
    def adjust_based_on_feedback(feedback, preferences):
    # 根据用户反馈调整偏好
    if "liked" in feedback:
    preferences["favorites"] = feedback["liked"]
    if "disliked" in feedback:
    preferences["avoid"] = feedback["disliked"]
    return preferences
    feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
    updated_preferences = adjust_based_on_feedback(feedback, preferences)
    # 使用更新的偏好重新生成并执行代码
    updated_flight_code = generate_code_to_fetch_data(updated_preferences)
    updated_hotel_code = generate_code_to_fetch_hotels(updated_preferences)
    updated_flights = execute_code(updated_flight_code)
    updated_hotels = execute_code(updated_hotel_code)
    updated_itinerary = generate_itinerary(updated_flights, updated_hotels, attractions)
    print("Updated Itinerary:", updated_itinerary)
    

Umweltwahrnehmung und logisches Denken nutzen

Gemäß dem Tabellenschema kann der Abfrageprozess in der Tat durch die Nutzung von Kontextwissen und Schlussfolgerungen verbessert werden.

Nachstehend ein Beispiel, wie dies erreicht werden kann:

  1. Verstehen von MusternDas System versteht das Schema der Tabelle und verwendet diese Information, um die Grundlage für die Abfrage zu bestimmen.
  2. Anpassungen aufgrund von RückmeldungenDas System passt die Benutzerpräferenzen auf der Grundlage des Feedbacks und der Überlegungen zu den Feldern im Schema an, die aktualisiert werden müssen.
  3. Erstellen und Ausführen von AbfragenDas System generiert und führt Abfragen aus, um aktualisierte Flug- und Hoteldaten auf der Grundlage der neuen Präferenzen zu erhalten.

Im Folgenden finden Sie ein aktualisiertes Python-Codebeispiel, das diese Konzepte berücksichtigt:

def adjust_based_on_feedback(feedback, preferences, schema):
# 根据用户反馈调整偏好
if "liked" in feedback:
preferences["favorites"] = feedback["liked"]
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
# 根据模式进行推理以调整其他相关偏好
for field in schema:
if field in preferences:
preferences[field] = adjust_based_on_environment(feedback, field, schema)
return preferences
def adjust_based_on_environment(feedback, field, schema):
# 根据模式和反馈调整偏好的自定义逻辑
if field in feedback["liked"]:
return schema[field]["positive_adjustment"]
elif field in feedback["disliked"]:
return schema[field]["negative_adjustment"]
return schema[field]["default"]
def generate_code_to_fetch_data(preferences):
# 生成代码以根据更新的偏好获取航班数据
return f"fetch_flights(preferences={preferences})"
def generate_code_to_fetch_hotels(preferences):
# 生成代码以根据更新的偏好获取酒店数据
return f"fetch_hotels(preferences={preferences})"
def execute_code(code):
# 模拟代码执行并返回模拟数据
return {"data": f"Executed: {code}"}
def generate_itinerary(flights, hotels, attractions):
# 根据航班、酒店和景点生成行程
return {"flights": flights, "hotels": hotels, "attractions": attractions}
# 示例模式
schema = {
"favorites": {"positive_adjustment": "increase", "negative_adjustment": "decrease", "default": "neutral"},
"avoid": {"positive_adjustment": "decrease", "negative_adjustment": "increase", "default": "neutral"}
}
# 示例用法
preferences = {"favorites": "sightseeing", "avoid": "crowded places"}
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_preferences = adjust_based_on_feedback(feedback, preferences, schema)
# 使用更新的偏好重新生成并执行代码
updated_flight_code = generate_code_to_fetch_data(updated_preferences)
updated_hotel_code = generate_code_to_fetch_hotels(updated_preferences)
updated_flights = execute_code(updated_flight_code)
updated_hotels = execute_code(updated_hotel_code)
updated_itinerary = generate_itinerary(updated_flights, updated_hotels, feedback["liked"])
print("Updated Itinerary:", updated_itinerary)

Beschreibung - Feedback-basierte Buchung

  1. Wahrnehmung von Mustern::schema Das Wörterbuch definiert, wie die Präferenzen als Reaktion auf das Feedback angepasst werden sollten. Es umfasst favorites im Gesang antworten avoid usw. und die entsprechenden Anpassungen.
  2. Anpassung der Präferenzen (adjust_based_on_feedback Methode)Diese Methode passt die Präferenzen auf der Grundlage von Benutzer-Feedback und Mustern an.
  3. Umweltbezogene Anpassungen (adjust_based_on_environment Methode)Diese Methode ist auf den Modus und das Feedback abgestimmt.
  4. Erstellen und Ausführen von AbfragenDas System generiert Code, um aktualisierte Flug- und Hoteldaten auf der Grundlage der angepassten Präferenzen zu erhalten, und simuliert die Ausführung dieser Abfragen.
  5. Erzeugen einer ReiseDas System erstellt aktualisierte Reiserouten auf der Grundlage neuer Flug-, Hotel- und Attraktionsdaten.

Indem das System kontextbewusst wird und auf der Grundlage von Mustern schlussfolgert, kann es genauere und relevantere Abfragen generieren, was zu besseren Reisetipps und einem individuelleren Nutzererlebnis führt.

Verwendung von SQL als Retrieval Augmentation Generation (RAG)-Technik

SQL (Structured Query Language) ist ein leistungsstarkes Werkzeug für die Interaktion mit Datenbanken. Als Teil eines Retrieval Augmented Generation (RAG)-Ansatzes kann SQL relevante Daten aus einer Datenbank abrufen, um eine Antwort oder Aktion in einer KI-Intelligenz zu informieren und zu generieren. Lassen Sie uns untersuchen, wie SQL als RAG-Technik im Kontext eines Reisebüros eingesetzt werden kann.

Wichtige Konzepte

  1. Datenbank-Interaktion::
    • SQL wird verwendet, um Datenbanken abzufragen, relevante Informationen abzurufen und Daten zu manipulieren.
    • Beispiel: Abruf von Flugdaten, Hotelinformationen und Sehenswürdigkeiten aus einer Reisedatenbank.
  2. Integration mit RAG::
    • Generierung von SQL-Abfragen auf der Grundlage von Benutzereingaben und Präferenzen.
    • Die abgerufenen Daten werden dann verwendet, um personalisierte Empfehlungen oder Aktionen zu erstellen.
  3. Dynamische Abfragegenerierung::
    • KI-Intelligenzen generieren dynamische SQL-Abfragen auf der Grundlage von Kontext und Benutzeranforderungen.
    • Beispiel: Passen Sie eine SQL-Abfrage an, um die Ergebnisse nach Budget, Datum und Zinsen zu filtern.

Gerät

  • Automatisierte Code-GenerierungGenerieren von Codeschnipseln für bestimmte Aufgaben.
  • SQL als RAGSQL-Abfragen verwenden, um Daten zu manipulieren.
  • Lösung von ProblemenErstellen und Ausführen von Code, um das Problem zu lösen.

typisches BeispielData Analytics Intelligence Body:

  1. MandateAnalyse von Datensätzen zur Ermittlung von Trends.
  2. umziehen::
    • Laden Sie den Datensatz.
    • Generieren Sie SQL-Abfragen zum Filtern von Daten.
    • Führen Sie die Abfrage aus und rufen Sie die Ergebnisse ab.
    • Erzeugen Sie Visualisierungen und Einblicke.
  3. Ressource (z. B. Arbeitskräfte oder Tourismus)Zugriff auf Datensätze, SQL-Funktionen.
  4. ErfahrungenNutzung früherer Ergebnisse zur Verbesserung künftiger Analysen.

Praktisches Beispiel: Verwendung von SQL im Reisebüro

  1. Sammeln von Benutzerpräferenzen
    class Travel_Agent:
    def __init__(self):
    self.user_preferences = {}
    def gather_preferences(self, preferences):
    self.user_preferences = preferences
    
  2. Erzeugen von SQL-Abfragen
    def generate_sql_query(table, preferences):
    query = f"SELECT * FROM {table} WHERE "
    conditions = []
    for key, value in preferences.items():
    conditions.append(f"{key}='{value}'")
    query += " AND ".join(conditions)
    return query
    
  3. Ausführen von SQL-Abfragen
    import sqlite3
    def execute_sql_query(query, database="travel.db"):
    connection = sqlite3.connect(database)
    cursor = connection.cursor()
    cursor.execute(query)
    results = cursor.fetchall()
    connection.close()
    return results
    
  4. Erarbeitung von Empfehlungen
    def generate_recommendations(preferences):
    flight_query = generate_sql_query("flights", preferences)
    hotel_query = generate_sql_query("hotels", preferences)
    attraction_query = generate_sql_query("attractions", preferences)
    flights = execute_sql_query(flight_query)
    hotels = execute_sql_query(hotel_query)
    attractions = execute_sql_query(attraction_query)
    itinerary = {
    "flights": flights,
    "hotels": hotels,
    "attractions": attractions
    }
    return itinerary
    travel_agent = Travel_Agent()
    preferences = {
    "destination": "Paris",
    "dates": "2025-04-01 to 2025-04-10",
    "budget": "moderate",
    "interests": ["museums", "cuisine"]
    }
    travel_agent.gather_preferences(preferences)
    itinerary = generate_recommendations(preferences)
    print("Suggested Itinerary:", itinerary)
    

Beispiel-SQL-Abfrage

  1. Flug-Anfrage
    SELECT * FROM flights WHERE destination='Paris' AND dates='2025-04-01 to 2025-04-04-10' AND budget='moderate';
    
  2. Hotel-Anfrage
    SELECT * FROM hotels WHERE destination='Paris' AND budget='moderate';
    
  3. Attraktionen Anfrage
    SELECT * FROM attractions WHERE destination='Paris' AND interests='museums, cuisine';
    

Durch die Nutzung von SQL als Teil der Retrieval Augmented Generation (RAG)-Technologie können KI-Intelligenzen wie Travel Agent dynamisch relevante Daten abrufen und nutzen, um genaue und personalisierte Empfehlungen zu geben.

Beispiele für Metakognition

Um die Umsetzung der Metakognition zu demonstrieren, wollen wir eine einfache Intelligenz schaffen, die Probleme löst, wenn sieReflexion des Entscheidungsprozesses. In diesem Beispiel werden wir ein System konstruieren, in dem ein intelligenter Körper versucht, die Wahl eines Hotels zu optimieren, und dann seine eigenen Überlegungen auswertet und seine Strategie anpasst, wenn er falsch liegt oder eine suboptimale Wahl trifft.

Wir werden dies anhand eines einfachen Beispiels simulieren, bei dem die Intelligenz ein Hotel auf der Grundlage einer Kombination aus Preis und Qualität auswählt, aber über ihre Entscheidung "nachdenkt" und sie entsprechend anpasst.

Wie wird dabei die Metakognition berücksichtigt?

  1. Erste EntscheidungsfindungIntelligentsia wählt das billigste Hotel ohne Rücksicht auf die Qualität.
  2. Reflexion und BewertungNach einer ersten Auswahl prüft der intelligente Körper anhand des Nutzerfeedbacks, ob das Hotel eine "schlechte" Wahl ist. Stellt es fest, dass die Qualität des Hotels zu niedrig ist, wird es seine Überlegungen überdenken.
  3. Strategie ausrichtenDie Intelligenz passt ihre Strategie auf der Grundlage ihrer Überlegungen an, indem sie von "billigste" auf "höchste Qualität" umschaltet und so ihren Entscheidungsprozess in zukünftigen Iterationen verbessert.

Beispiele sind unten aufgeführt:

class HotelRecommendationAgent:
def __init__(self):
self.previous_choices = []  # 存储之前选择的酒店
self.corrected_choices = []  # 存储更正后的选择
self.recommendation_strategies = ['cheapest', 'highest_quality']  # 可用策略
def recommend_hotel(self, hotels, strategy):
"""
根据所选策略推荐酒店。
策略可以是“最便宜”或“最高质量”。
"""
if strategy == 'cheapest':
recommended = min(hotels, key=lambda x: x['price'])
elif strategy == 'highest_quality':
recommended = max(hotels, key=lambda x: x['quality'])
else:
recommended = None
self.previous_choices.append((strategy, recommended))
return recommended
def reflect_on_choice(self):
"""
反思上次做出的选择,并决定智能体是否应调整其策略。
智能体会考虑之前的选择是否导致了较差的结果。
"""
if not self.previous_choices:
return "尚未做出选择。"
last_choice_strategy, last_choice = self.previous_choices[-1]
# 假设我们有一些用户反馈告诉我们上次的选择是好是坏
user_feedback = self.get_user_feedback(last_choice)
if user_feedback == "bad":
# 如果之前的选择不令人满意,则调整策略
new_strategy = 'highest_quality' if last_choice_strategy == 'cheapest' else 'cheapest'
self.corrected_choices.append((new_strategy, last_choice))
return f"反思选择。将策略调整为 {new_strategy}。"
else:
return "选择很好。无需调整。"
def get_user_feedback(self, hotel):
"""
模拟基于酒店属性的用户反馈。
为简单起见,假设如果酒店太便宜,则反馈为“差”。
如果酒店质量低于 7,则反馈为“差”。
"""
if hotel['price'] < 100 or hotel['quality'] < 7:
return "bad"
return "good"
# 模拟酒店列表(价格和质量)
hotels = [
{'name': 'Budget Inn', 'price': 80, 'quality': 6},
{'name': 'Comfort Suites', 'price': 120, 'quality': 8},
{'name': 'Luxury Stay', 'price': 200, 'quality': 9}
]
# 创建一个智能体
agent = HotelRecommendationAgent()
# 第 1 步:智能体使用“最便宜”策略推荐酒店
recommended_hotel = agent.recommend_hotel(hotels, 'cheapest')
print(f"推荐酒店(最便宜):{recommended_hotel['name']}")
# 第 2 步:智能体反思选择并在必要时调整策略
reflection_result = agent.reflect_on_choice()
print(reflection_result)
# 第 3 步:智能体再次推荐,这次使用调整后的策略
adjusted_recommendation = agent.recommend_hotel(hotels, 'highest_quality')
print(f"调整后的酒店推荐(最高质量):{adjusted_recommendation['name']}")

kognitive Fähigkeit des intelligenten Körperstoffwechsels (IBM)

Der Schlüssel dazu ist die Fähigkeit der Intelligenzen:

  • Bewerten Sie ihre vorherigen Auswahl- und Entscheidungsprozesse.
  • Anpassung ihrer Strategien auf der Grundlage dieser Überlegungen, d. h. die praktische Anwendung der Metakognition.

Dies ist eine einfache Form der Metakognition, bei der das System in der Lage ist, seinen Denkprozess als Reaktion auf interne Rückmeldungen anzupassen.

 

zu einem Urteil gelangen

Metakognition ist ein leistungsfähiges Werkzeug, das die Fähigkeiten von KI-Intelligenzen erheblich verbessern kann. Durch die Einbeziehung von metakognitiven Prozessen können Sie intelligentere, anpassungsfähigere und effizientere Intelligenzen entwickeln. Nutzen Sie andere Ressourcen, um die faszinierende Welt der Metakognition in KI-Intelligenzen weiter zu erforschen.

Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Microsoft Einführungskurs für KI-Agenten: Metakognition (Selbstständiges Denken) in KI-Agenten
de_DEDeutsch