Curso introductorio de Microsoft sobre agentes de IA: Metacognición (pensar por uno mismo) en agentes de IA

breve

¡Bienvenido al curso sobre Metacognición en el Agente IA! Este capítulo está diseñado para principiantes interesados en cómo los Agentes de IA piensan sobre sus propios procesos de pensamiento. Al final de este curso, entenderás los conceptos clave y tendrás ejemplos prácticos de aplicación de la metacognición en el diseño de Agentes de IA.

 

objetivo de aprendizaje

Al finalizar este curso, serás capaz de:

  1. Comprender el significado del bucle de razonamiento en la definición de Agente.
  2. Utilizar técnicas de planificación y evaluación para ayudar a autocalibrar al Agente.
  3. Cree su propio Agente que pueda manipular código para realizar tareas.

 

Introducción a la metacognición

La metacognición se refiere a los procesos cognitivos de orden superior que implican pensar sobre el propio pensamiento. Para un agente de IA, esto significa ser capaz de evaluar y ajustar sus acciones basándose en la autoconciencia y las experiencias pasadas. La metacognición, o "pensar sobre el pensamiento", es un concepto importante en el desarrollo de sistemas de IA basados en agentes. Consiste en que un sistema de IA tome conciencia de sus propios procesos internos y sea capaz de controlar, regular y ajustar su comportamiento en consecuencia. Algo parecido a lo que hacemos nosotros cuando analizamos una situación o examinamos un problema. Esta autoconciencia puede ayudar a los sistemas de IA a tomar mejores decisiones, reconocer errores y mejorar su rendimiento con el tiempo, lo que de nuevo enlaza con el test de Turing y el debate sobre si la IA sustituirá a los humanos.

En el contexto de los sistemas de IA basados en agentes, la metacognición puede ayudar a abordar varios retos, como:

  • Transparencia: garantizar que el sistema de IA pueda explicar su razonamiento y sus decisiones.
  • Razonamiento: mejorar la capacidad de los sistemas de IA para sintetizar información y tomar decisiones racionales.
  • Adaptabilidad: Permite al sistema de IA adaptarse a nuevos entornos y situaciones cambiantes.
  • Percepción: mejorar la precisión con la que los sistemas de IA reconocen e interpretan los datos de su entorno.

¿Qué es la metacognición?

La metacognición, o "pensar sobre el pensamiento", es un proceso cognitivo de orden superior que implica la autoconciencia y la autorregulación de los procesos cognitivos. En IA, la metacognición permite a los agentes evaluar y adaptar sus estrategias y acciones para mejorar la resolución de problemas y la toma de decisiones. Comprender la metacognición permite diseñar agentes de IA que no sólo son más inteligentes, sino también más adaptables y eficientes. En la metacognición real, la IA razona explícitamente sobre su propio razonamiento.

Por ejemplo: "Doy prioridad a los vuelos más baratos porque ...... puede que haya perdido mi vuelo directo, así que déjeme volver a comprobarlo". . Rastrea cómo o por qué eligió una ruta concreta.

  • Obsérvese que cometió el error de basarse demasiado en la última preferencia del usuario, por lo que modificó no sólo la recomendación final, sino también su estrategia de toma de decisiones.
  • modelo de diagnóstico, por ejemplo: "Cada vez que veo que los usuarios mencionan 'demasiado concurridas', no sólo debería eliminar ciertas atracciones, sino que también debería reflexionar sobre el hecho de que si siempre clasifico por popularidad, mi método de selección de 'atracciones populares' es es erróneo".

 

La importancia de la metacognición en los agentes de IA

La metacognición desempeña un papel crucial en el diseño de agentes de IA por las siguientes razones:

微软 AI Agent 入门课程:AI Agent 中的元认知(自我思考)
  • Autorreflexión: los agentes pueden evaluar su propio rendimiento e identificar áreas de mejora.
  • Adaptabilidad: el Agente puede modificar su estrategia en función de la experiencia pasada y de las circunstancias cambiantes.
  • Corrección de errores: el Agente puede detectar y corregir errores de forma autónoma para obtener resultados más precisos.
  • Gestión de recursos: los agentes pueden optimizar el uso de recursos, como el tiempo y la potencia de cálculo, planificando y evaluando sus acciones.

 

Componentes de un agente de IA

Antes de profundizar en el proceso metacognitivo, es crucial comprender los componentes básicos de un Agente de IA. un Agente de IA se compone típicamente de las siguientes partes:

  • Persona: Personalidad y características de un Agente que definen su forma de interactuar con el usuario.
  • Herramientas: Funciones y capacidades que puede realizar un Agente.
  • Habilidades: Los conocimientos y la experiencia que posee el Agente.

Estos componentes trabajan juntos para crear una "unidad especializada" capaz de realizar tareas específicas.

ejemplo típicoConsidere un agente de viajes, un servicio que no sólo planifica sus vacaciones, sino que también ajusta su recorrido basándose en datos en tiempo real y en la experiencia de viajes anteriores de los clientes.

Ejemplo: Metacognición en los servicios de agencias de viajes

Supongamos que está diseñando un servicio de Agente de Viajes potenciado por IA. Este agente, "Agente de Viajes", ayuda a los usuarios a planificar sus vacaciones. Para incorporar la metacognición, el Agente de Viajes necesita evaluar y adaptar sus acciones basándose en la autoconciencia y las experiencias pasadas. He aquí cómo funciona la metacognición:

tarea actual

La tarea actual es ayudar al usuario a planificar un viaje a París.

Pasos para cumplir el mandato

  1. Recopilación de las preferencias de los usuariosPregunta al usuario por sus fechas de viaje, presupuesto, intereses (por ejemplo, museos, comida, compras) y cualquier requisito específico.
  2. recuperarBúsqueda de opciones de vuelo, alojamiento, atracciones y restaurantes que se ajusten a las preferencias del usuario.
  3. Generar recomendaciones: Ofrece itinerarios personalizados con detalles de vuelos, reservas de hotel y actividades sugeridas.
  4. Ajustes en función de los comentarios: Pida a los usuarios su opinión sobre las sugerencias y realice los ajustes necesarios.

Recursos necesarios

  • Acceso a bases de datos de reservas de vuelos y hoteles.
  • Información sobre atracciones y restaurantes en París.
  • Datos de respuesta del usuario procedentes de interacciones anteriores.

Experiencia y autorreflexión

La agencia de viajes utiliza la metacognición para evaluar su rendimiento y aprender de experiencias pasadas. Ejemplo:

  1. Analizar las opiniones de los usuarios: Travel Agent revisa los comentarios de los usuarios para determinar qué sugerencias fueron aceptadas y cuáles no. Ajustará sus futuras recomendaciones en consecuencia.
  2. flexibilidadEl Agente de Viajes evitará en el futuro recomendar atracciones turísticas populares durante las horas punta si el usuario ha mencionado previamente que no le gustan los lugares abarrotados.
  3. Corrección de erroresSi el agente de viajes ha cometido un error en una reserva anterior, como recomendar un hotel que estaba completo, aprenderá a comprobar la disponibilidad con más rigor antes de hacer una recomendación.

Ejemplo de promotor real

Este es un ejemplo simplificado de lo que podría ser el código de Travel Agent combinado con la metacognición:

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)

Por qué es importante la metacognición

  • autorreflexiónEl agente puede analizar su rendimiento e identificar áreas de mejora.
  • flexibilidadEl agente puede modificar la política en función de la información recibida y de las condiciones cambiantes.
  • Corrección de erroresEl agente puede detectar y corregir errores de forma autónoma.
  • Gestión de recursosEl agente puede optimizar el uso de recursos como el tiempo y la potencia de cálculo.

Al incorporar la metacognición, la agencia de viajes puede ofrecer consejos de viaje más personalizados y precisos para mejorar la experiencia general del usuario.

 

2. Planificación en Agente

La planificación es un componente clave del comportamiento de los agentes de IA. Consiste en esbozar los pasos necesarios para alcanzar un objetivo, teniendo en cuenta el estado actual, los recursos y los posibles obstáculos.

Elementos de planificación

  • tarea actual: Definición clara del mandato.
  • Pasos para cumplir el mandatoDesglose las tareas en pasos manejables.
  • Recursos necesarios: Identificar los recursos necesarios.
  • experienciasUtilizar la experiencia pasada para orientar la planificación.

ejemplo típicoA continuación se indican los pasos que debe seguir la agencia de viajes para ayudar al usuario a planificar su viaje de forma eficaz:

Pasos para la agencia de viajes

  1. Recopilación de las preferencias de los usuarios
    • Pida a los usuarios detalles sobre sus fechas de viaje, presupuesto, intereses y cualquier requisito específico.
    • EJEMPLO: "¿Cuándo tiene previsto viajar?" "¿Cuál es su presupuesto? "¿Qué actividades le gustan cuando está de vacaciones?"
  2. recuperar
    • Búsqueda de opciones de viaje relevantes en función de las preferencias del usuario.
    • navegación programada: Encuentra vuelos disponibles que se ajusten al presupuesto del usuario y a sus fechas de viaje preferidas.
    • estancia enEncuentre hoteles o propiedades de alquiler que se ajusten a las preferencias del usuario en cuanto a ubicación, precio y servicios.
    • Atracciones y restaurantesIdentificar atracciones, actividades y opciones gastronómicas populares que coincidan con los intereses de los usuarios.
  3. Generar recomendaciones
    • Recopilar la información obtenida en un itinerario personalizado.
    • Proporcionar detalles sobre opciones de vuelo, reservas de hotel y actividades sugeridas garantiza que las sugerencias se adapten a las preferencias del usuario.
  4. Mostrar al usuario el itinerario
    • Los itinerarios sugeridos se comparten con los usuarios para su revisión.
    • Ejemplo: "Este es un itinerario sugerido para su viaje a París. Incluye detalles del vuelo, reservas de hotel y una lista de actividades y restaurantes recomendados. Dígame qué le parece".
  5. Recoger opiniones
    • Pedir a los usuarios su opinión sobre los trayectos propuestos.
    • EJEMPLO: "¿Le gustan las opciones de vuelo?" "¿Se adapta el hotel a sus necesidades?" "¿Desea añadir o eliminar alguna actividad?".
  6. Ajustes en función de los comentarios
    • Modificar el itinerario en función de los comentarios de los usuarios.
    • Realice los cambios necesarios en las sugerencias de vuelos, alojamiento y actividades para que se ajusten mejor a las preferencias de los usuarios.
  7. Confirmación final
    • Mostrar el itinerario actualizado al usuario para su confirmación final.
    • EJEMPLO: "He hecho algunos ajustes basándome en sus comentarios. Aquí está el itinerario actualizado. ¿Le parece todo bien?"
  8. Reserva y confirmación de reservas
    • Una vez que el usuario apruebe el itinerario, proceda a reservar los vuelos, el alojamiento y las actividades previstas.
    • Envía los datos de confirmación al usuario.
  9. Apoyo permanente
    • Ayudar al usuario con cualquier cambio u otras solicitudes en cualquier momento antes y durante el viaje.
    • EJEMPLO: "Si necesita más ayuda durante su viaje, no dude en ponerse en contacto conmigo".

Ejemplo de interacción

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. Sistema RAG modificado

En primer lugar, entendamos RAG La diferencia entre herramientas y carga precontextualizada.

微软 AI Agent 入门课程:AI Agent 中的元认知(自我思考)

Generación de aumento de la recuperación (RAG)

El GAR combina un sistema de recuperación con un modelo generativo. Cuando se realiza una consulta, el sistema de recuperación obtiene documentos o datos pertinentes de fuentes externas y utiliza esta información recuperada para aumentar las entradas del modelo generativo. Esto ayuda al modelo a generar respuestas más precisas y contextualizadas.

En un sistema GAR, un organismo inteligente (Agente) recupera información pertinente de una base de conocimientos y la utiliza para generar una respuesta o acción adecuada.

Método GAR modificado

Un enfoque GAR correctivo se centra en el uso de técnicas GAR para corregir errores y mejorar la precisión de una Inteligencia Artificial (Agente). Esto incluye:

  1. Tecnología CueUtiliza indicaciones específicas para guiar al Agente en la recuperación de información relevante.
  2. artefactoImplementar algoritmos y mecanismos que permitan a los agentes inteligentes (agentes) evaluar la pertinencia de la información recuperada y generar respuestas precisas.
  3. valoración: Evalúa continuamente el rendimiento de un organismo inteligente (Agente) y realiza ajustes para mejorar su precisión y eficacia.

Ejemplo: GAR modificada en Inteligencia de Búsqueda (Agente)

Consideremos una Inteligencia de Búsqueda (Agente) que recupera información de la web para responder a una consulta del usuario. Los métodos RAG modificados pueden incluir:

  1. Tecnología CueFormulación de consultas de búsqueda basadas en la información introducida por el usuario.
  2. artefacto: Utiliza algoritmos de procesamiento del lenguaje natural y aprendizaje automático para clasificar y filtrar los resultados de las búsquedas.
  3. valoración: Analizar los comentarios de los usuarios para identificar y corregir imprecisiones en la información recuperada.

GAR modificada en Inteligencia Viajera (Agente)

La RAG correctiva (Retrieval Augmented Generation) mejora la capacidad de la IA para recuperar y generar información al tiempo que corrige cualquier imprecisión. Veamos cómo Travel Agent utiliza un enfoque RAG modificado para ofrecer recomendaciones de viaje más precisas y pertinentes.

Esto incluye:

  • Tecnología Cue: Utilice indicaciones específicas para guiar al Agente en la recuperación de información relevante.
  • Herramientas: Implementar algoritmos y mecanismos que permitan a los agentes inteligentes (agentes) evaluar la pertinencia de la información recuperada y generar respuestas precisas.
  • Evaluación: Evaluar continuamente el rendimiento de las inteligencias (Agentes) y realizar ajustes para mejorar su precisión y eficacia.

Pasos para implantar la GAR modificada en la agencia de viajes

  1. Interacción inicial con el usuario
    • La agencia de viajes recoge las preferencias iniciales del usuario, como destino, fechas de viaje, presupuesto e intereses.
    • Por ejemplo:
      preferences = {
      "destination": "Paris",
      "dates": "2025-04-01 to 2025-04-10",
      "budget": "moderate",
      "interests": ["museums", "cuisine"]
      }
      
  2. recuperación de información
    • El Agente de Viajes recupera información sobre vuelos, alojamiento, atracciones y restaurantes en función de las preferencias del usuario.
    • Por ejemplo:
      flights = search_flights(preferences)
      hotels = search_hotels(preferences)
      attractions = search_attractions(preferences)
      
  3. Generar recomendaciones iniciales
    • El Agente de Viajes utiliza la información obtenida para generar un itinerario personalizado.
    • Por ejemplo:
      itinerary = create_itinerary(flights, hotels, attractions)
      print("Suggested Itinerary:", itinerary)
      
  4. Recoger las opiniones de los usuarios
    • El Agente de Viajes pide al usuario su opinión sobre la recomendación inicial.
    • Por ejemplo:
      feedback = {
      "liked": ["Louvre Museum"],
      "disliked": ["Eiffel Tower (too crowded)"]
      }
      
  5. Proceso RAG modificado
    • Tecnología Cue: Travel Agent desarrolla nuevas consultas de búsqueda basadas en los comentarios de los usuarios.
      • Por ejemplo:
        if "disliked" in feedback:
        preferences["avoid"] = feedback["disliked"]
        
    • artefacto: Travel Agent utiliza algoritmos para clasificar y filtrar los nuevos resultados de búsqueda y destacar la relevancia en función de los comentarios de los usuarios.
      • Por ejemplo:
        new_attractions = search_attractions(preferences)
        new_itinerary = create_itinerary(flights, hotels, new_attractions)
        print("Updated Itinerary:", new_itinerary)
        
    • valoración: La agencia de viajes evalúa continuamente la pertinencia y precisión de sus recomendaciones analizando los comentarios de los usuarios y realizando los ajustes necesarios.
      • Por ejemplo:
        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)
        

ejemplo práctico

Este es un ejemplo de código Python simplificado en el que Travel Agent utiliza un enfoque RAG modificado:

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)

carga precontextualizada

La carga precontexto consiste en cargar en el modelo la información contextual o de fondo pertinente antes de procesar la consulta. De este modo, el modelo tiene acceso a esta información desde el principio, lo que puede ayudarle a generar respuestas más informadas sin tener que recuperar datos adicionales durante el procesamiento.

A continuación se muestra un ejemplo simplificado de una implementación en Python de la carga previa al contexto en una aplicación de Agencia de Viajes:

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"))

instrucciones

  1. Inicialización (__init__ método)::TravelAgent class viene precargado con un diccionario que contiene información sobre destinos populares como París, Tokio, Nueva York y Sydney. El diccionario incluye información detallada sobre el país, la moneda, el idioma y las principales atracciones de cada destino.
  2. Recuperar información (get_destination_info método): Cuando un usuario consulta un destino específico, elget_destination_info obtiene la información relevante del diccionario de contexto precargado.

Al precargar el contexto, las aplicaciones de las agencias de viajes pueden responder rápidamente a las consultas de los usuarios sin tener que recuperar esta información de una fuente externa en tiempo real. Esto hace que la aplicación sea más eficiente y reactiva.

Utilizar un plan orientado a objetivos antes de la iteración

Utilizar un plan orientado a objetivos implica tener en mente un objetivo claro o un resultado deseado desde el principio. Al definir este objetivo de antemano, el modelo puede utilizarlo como principio rector a lo largo del proceso de iteración. Esto ayuda a garantizar que cada iteración esté más cerca de lograr el resultado deseado, lo que hace que el proceso sea más eficiente y centrado.

He aquí un ejemplo que muestra cómo utilizar la planificación de viajes por objetivos en Python para Travel Agent antes de la iteración:

toma

Una agencia de viajes quiere planificar vacaciones a medida para sus clientes. El objetivo es crear un itinerario de viaje basado en las preferencias y el presupuesto del cliente para maximizar su satisfacción.

mover

  1. Definir las preferencias y los presupuestos de los clientes.
  2. Dirija el plan inicial en función de estas preferencias.
  3. Iterar para optimizar los planes y maximizar la satisfacción del cliente.

Código Python

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)

Código Descripción

  1. Inicialización (__init__ método)::TravelAgent Las clases se inicializan utilizando una lista de destinos potenciales, cada uno con atributos como nombre, coste y tipo de actividad.
  2. Programa de orientación (bootstrap_plan método)Este método crea un plan de viaje inicial basado en las preferencias y el presupuesto del cliente. Recorre la lista de destinos y los añade al plan si coinciden con las preferencias del cliente y se ajustan a su presupuesto.
  3. Coincidencia de preferencias (match_preferences método)Este método comprueba si el destino coincide con las preferencias del cliente.
  4. Plan de iteración (iterate_plan método)Este método optimiza el plan inicial intentando sustituir cada destino del plan por otro que se ajuste mejor, teniendo en cuenta las preferencias del cliente y las limitaciones presupuestarias.
  5. Cálculo de costes (calculate_cost método)Este método calcula el coste total del programa actual, incluidos los posibles nuevos destinos.

Ejemplo de uso

  • plan inicialAgente de viajes: el agente de viajes crea un plan inicial basado en las preferencias del cliente en cuanto a visitas turísticas y en un presupuesto de 2.000 dólares.
  • Plan de optimizaciónPrograma iterativo para agentes de viajes, optimizado en función de las preferencias y los presupuestos de los clientes.

Mediante el uso de objetivos claros (por ejemplo, maximizar la satisfacción del cliente) para guiar el plan y la iteración para optimizar el plan, Travel Agent crea itinerarios de viaje personalizados y optimizados para los clientes. Este enfoque garantiza que los planes de viaje se ajusten a las preferencias y presupuestos de los clientes desde el principio y se mejoren con cada iteración.

Reordenación y puntuación con grandes modelos lingüísticos (LLM)

Los grandes modelos lingüísticos (LLM) pueden utilizarse para reordenar y puntuar los documentos recuperados o las respuestas generadas evaluando su pertinencia y calidad. Su funcionamiento es el siguiente:

Recuperado: La etapa inicial de recuperación obtiene un conjunto de documentos candidatos o respuestas basadas en la consulta.

Reordenación: LLM evalúa estos candidatos y los reordena según su relevancia y calidad. Este paso garantiza que la información más relevante y de mayor calidad se presente en primer lugar.

Valoración: LLM asigna puntuaciones a cada objeto candidato, reflejando su relevancia y calidad. Esto ayuda a seleccionar la mejor respuesta o documento para el usuario.

Al utilizar LLM para reordenar y puntuar, el sistema puede proporcionar información más precisa y contextualmente relevante, mejorando así la experiencia general del usuario.

He aquí un ejemplo de cómo una agencia de viajes puede utilizar un modelo de lenguaje amplio (LLM) para reordenar y clasificar destinos en función de las preferencias del usuario en Python:

Escenarios - viajes basados en las preferencias

Las agencias de viajes quieren recomendar a sus clientes los mejores destinos en función de sus preferencias. LLM ayudará a reordenar y clasificar los destinos para garantizar que se presentan las opciones más relevantes.

Pasos:

  1. Recoger las preferencias de los usuarios.
  2. Recuperar una lista de posibles destinos de viaje.
  3. Utilice LLM para reordenar y clasificar los destinos en función de las preferencias del usuario.

He aquí cómo actualizar el ejemplo anterior para utilizar el servicio Azure OpenAI:

solicitar

  1. Necesitas tener una suscripción a Azure.
  2. Cree un recurso Azure OpenAI y obtenga su clave API.

Ejemplo de código Python

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)

Explicación de código - Preference Booker

  1. inicialización::TravelAgent La clase se inicializa con una lista de posibles destinos de viaje, cada uno con atributos como nombre y descripción.
  2. Obtener asesoramiento (get_recommendations (Métodos)Este método genera solicitudes para el servicio Azure OpenAI en función de las preferencias del usuario y envía una solicitud HTTP POST a la API Azure OpenAI para reordenar y puntuar los destinos.
  3. Generar un aviso (generate_prompt (Métodos)Este método crea una indicación para Azure OpenAI que incluye las preferencias del usuario y una lista de destinos. La indicación indica al modelo que reordene y puntúe los destinos en función de las preferencias proporcionadas.
  4. Llamadas a la API::requests Biblioteca para realizar solicitudes HTTP POST a los puntos finales de la API Azure OpenAI. La respuesta contiene los destinos reordenados y puntuados.
  5. Ejemplo de usoAgencias de viajes: las agencias de viajes recopilan las preferencias de los usuarios (por ejemplo, su interés por las visitas turísticas y el multiculturalismo) y utilizan el servicio Azure OpenAI para obtener sugerencias de recalificación y clasificación de destinos turísticos.

garantizan que your_azure_openai_api_key Sustitúyala por su clave de API Azure OpenAI real y sustituya el campo https://your-endpoint.com/... Sustitúyalo por la URL del punto final real de su implementación de Azure OpenAI.

Al aprovechar LLM para reordenar y puntuar, las agencias de viajes pueden ofrecer a sus clientes un asesoramiento de viaje más personalizado y relevante, mejorando así su experiencia global.

{Dominio de la tecnología Crítica aguda: El ejemplo de código anterior demuestra claramente cómo se puede reordenar y puntuar el contenido utilizando un gran modelo de lenguaje. Al construir el TravelAgent y combinadas con los servicios de Azure OpenAI, pueden ofrecer recomendaciones de viaje personalizadas basadas en las preferencias del usuario. Este enfoque no solo mejora la precisión de las recomendaciones, sino también la experiencia del usuario.}

RAG: Técnicas y herramientas de incitación

La Generación Aumentada de Recuperación (GAR) puede ser tanto una técnica de estímulo como una herramienta en el desarrollo de agentes de IA. Entender la diferencia entre ambas puede ayudarte a hacer un uso más eficaz de la GAR en tus proyectos.

El GAR como técnica de incitación

¿De qué se trata?

  • Como técnica de incitación, la GAR implica la formulación de consultas o incitaciones específicas para guiar la recuperación de información relevante a partir de un gran corpus o base de datos. A continuación, esta información se utiliza para generar respuestas o acciones.

Cómo funciona:

  1. Consejos para el desarrolloCreación de peticiones o consultas bien estructuradas en función de la tarea o de la información introducida por el usuario.
  2. recuperar: Utiliza indicaciones para buscar datos relevantes a partir de bases de conocimientos o conjuntos de datos preexistentes.
  3. Generar una respuesta: Combina la información recuperada con modelos generativos de IA para producir una respuesta completa y coherente.

Ejemplo de agencia de viajes::

  • Entrada del usuario: "Quiero visitar los museos de París".
  • Cue: "Encuentra los mejores museos de París".
  • Información recuperada: información detallada sobre el Museo del Louvre, el Museo de Orsay, etc.
  • Respuesta generada "Estos son algunos de los mejores museos de París: el Museo del Louvre, el Museo de Orsay y el Centro Pompidou".

RAG como herramienta

¿De qué se trata?

  • Como herramienta, RAG es un sistema integrado que automatiza el proceso de recuperación y generación, facilitando a los desarrolladores la implantación de funciones complejas de IA sin tener que crear manualmente indicaciones para cada consulta.

Cómo funciona:

  1. integrado (como en circuito integrado)El Agente de Inteligencia Artificial puede automatizar las tareas de recuperación y generación de datos mediante la integración de RAG en su arquitectura.
  2. automáticoLa herramienta gestiona todo el proceso, desde la recepción de la entrada del usuario hasta la generación de la respuesta final, sin necesidad de proporcionar indicaciones explícitas para cada paso.
  3. eficaciaMejora el rendimiento de los agentes simplificando el proceso de recuperación y generación para obtener respuestas más rápidas y precisas.

Ejemplo de agencia de viajes::

  • Entrada del usuario: "Quiero visitar los museos de París".
  • Herramienta RAG: recupera automáticamente información sobre el museo y genera una respuesta.
  • Respuesta generada "Estos son algunos de los mejores museos de París: el Museo del Louvre, el Museo de Orsay y el Centro Pompidou".

{Comentario del crítico tecnológico: La distinción entre describir la GAR como técnica de sugerencia y como herramienta es importante. Como técnica de insinuación, la GAR subraya la importancia de formular las consultas manualmente; como herramienta, la GAR hace hincapié en la automatización y la integración. Ambos enfoques tienen sus ventajas y pueden elegirse con flexibilidad en función de las necesidades específicas.}

comparaciones

perspectivaTecnología Cueartefacto
Manual vs AutomáticoElabore manualmente indicaciones para cada consulta.Automatice el proceso de recuperación y generación.
contenciónProporciona más control sobre el proceso de recuperación.Recuperación y generación simplificadas y automatizadas.
destrezaPermite personalizar los avisos en función de las necesidades.Aplicación a gran escala más eficiente.
sofisticaciónEs necesario crear y ajustar consejos.Integración más sencilla en la arquitectura del Agente AI.

Ejemplo práctico

Ejemplo de técnicas de señalización:

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)

Ejemplo de herramienta:

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)

VEREDICTO: Las diferencias entre las técnicas de sugerencia y las herramientas quedan claramente demostradas mediante la comparación de tablas y ejemplos concretos de código. La formulación manual de sugerencias otorga más flexibilidad y control, mientras que las herramientas aumentan la eficacia mediante la automatización. Esto permite a los desarrolladores tomar decisiones más informadas en función de las necesidades y recursos del proyecto.

Evaluar la pertinencia

La evaluación de la relevancia es un aspecto clave del rendimiento del Agente de IA. Garantiza que la información recuperada y generada por el Agente sea apropiada, precisa y útil para el usuario. Exploremos cómo evaluar la relevancia en el Agente de IA, incluyendo ejemplos prácticos y consejos.

Conceptos clave para evaluar la pertinencia

  1. conocimiento de la situación::
    • El Agente debe comprender el contexto de la consulta del usuario para recuperar y generar información relevante.
    • Ejemplo: Si un usuario pregunta por "los mejores restaurantes de París", el Agente debe tener en cuenta las preferencias del usuario, como el tipo de cocina y el presupuesto.
  2. precisión::
    • La información facilitada por el Agente debe ser objetivamente correcta y estar actualizada.
    • Ejemplo: sugiera restaurantes que estén abiertos y tengan buenas críticas, en lugar de opciones anticuadas o cerradas.
  3. intención del usuario::
    • El Agente debe inferir la intención de la consulta del usuario para proporcionarle la información más relevante.
    • Ejemplo: si un usuario pregunta por "hoteles económicos", el agente debe dar prioridad a las opciones asequibles.
  4. bucle de retroalimentación::
    • La recopilación y el análisis continuos de las opiniones de los usuarios ayudan a Agent a mejorar su proceso de evaluación de la pertinencia.
    • Ejemplo: combinar las valoraciones de los usuarios y los comentarios sobre recomendaciones anteriores para mejorar las respuestas futuras.

Consejos prácticos para evaluar la pertinencia

  1. puntuación de relevancia::
    • A cada elemento de búsqueda se le asigna una puntuación de relevancia en función de su adecuación a la consulta y las preferencias del usuario.
    • Ejemplo:
      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. Filtrado y clasificación::
    • Filtra los elementos irrelevantes y ordena los restantes en función de su puntuación de relevancia.
    • Ejemplo:
      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. Procesamiento del lenguaje natural (PLN)::
    • Utilizar técnicas de PNL para comprender las consultas de los usuarios y recuperar la información pertinente.
    • Ejemplo:
      def process_query(query):
      # 使用 NLP 从用户的查询中提取关键信息
      processed_query = nlp(query)
      return processed_query
      
  4. Integración de los comentarios de los usuarios::
    • Recoger las opiniones de los usuarios sobre el asesoramiento proporcionado y utilizarlas para ajustar futuras evaluaciones de pertinencia.
    • Ejemplo:
      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
      

Ejemplo: Evaluación de la pertinencia en una agencia de viajes

A continuación se muestra un ejemplo práctico de cómo Travel Agent evalúa la relevancia de las recomendaciones de viaje:

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)

Búsqueda intencionada

La búsqueda intencionada implica comprender e interpretar el propósito o el objetivo subyacente a la consulta de un usuario para recuperar y generar la información más pertinente y útil. Este enfoque va más allá de la simple búsqueda de palabras clave y se centra en comprender las necesidades y el contexto reales del usuario.

Conceptos clave de la búsqueda intencionada

  1. Comprender la intención del usuario::
    • La intención del usuario puede clasificarse en tres tipos principales: informativa, de navegación y transaccional.
      • Intención informativa: Usuarios que buscan información sobre un tema determinado (por ejemplo, "¿Cuáles son los mejores museos de París?"). .
      • Intención de navegaciónEl usuario desea navegar a un sitio o página web específicos (por ejemplo, "sitio web oficial del Museo del Louvre").
      • Intención transaccionalEl usuario pretende realizar una transacción, como reservar un vuelo o efectuar una compra (por ejemplo, "Reservar un vuelo a París").
  2. conocimiento de la situación::
    • Analizar el contexto de la consulta de un usuario ayuda a identificar con precisión su intención. Para ello hay que tener en cuenta las interacciones anteriores, las preferencias del usuario y los detalles específicos de la consulta actual.
  3. Procesamiento del lenguaje natural (PLN)::
    • Las técnicas de PLN se emplean para comprender e interpretar las consultas en lenguaje natural realizadas por los usuarios. Esto incluye tareas como el reconocimiento de entidades, el análisis de sentimientos y el análisis sintáctico de consultas.
  4. personalizado::
    • La personalización de los resultados de búsqueda en función del historial, las preferencias y los comentarios de los usuarios puede mejorar la pertinencia de la información recuperada.

Ejemplo práctico: búsqueda intencionada en una agencia de viajes

Veamos la agencia de viajes como ejemplo de cómo aplicar la búsqueda intencionada.

  1. Recopilación de las preferencias de los usuarios
    class Travel_Agent:
    def __init__(self):
    self.user_preferences = {}
    def gather_preferences(self, preferences):
    self.user_preferences = preferences
    
  2. Comprender la intención del usuario
    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. conocimiento de la situación
    def analyze_context(query, user_history):
    # 将当前查询与用户历史记录相结合以理解情境
    context = {
    "current_query": query,
    "user_history": user_history
    }
    return context
    
  4. Búsqueda y resultados personalizados
    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. Ejemplo de uso
    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. Generar código como herramienta

Las inteligencias generadoras de código (Agentes) utilizan modelos de IA para escribir y ejecutar código, resolver problemas complejos y automatizar tareas.

inteligencia generadora de código

Las inteligencias generadoras de código escriben y ejecutan código utilizando modelos generativos de IA. Estas inteligencias pueden resolver problemas complejos, automatizar tareas y aportar información valiosa generando y ejecutando código en diversos lenguajes de programación.

aplicación práctica

  1. Generación automática de códigoGeneración de fragmentos de código para tareas específicas, como el análisis de datos, el rastreo web o el aprendizaje automático.
  2. SQL como RAGUtilizar consultas SQL para recuperar y manipular datos de una base de datos.
  3. Resolución de problemasCreación y ejecución de código para resolver un problema específico, como la optimización de un algoritmo o el análisis de datos.

Ejemplo: inteligencias generadoras de códigos para el análisis de datos

Supongamos que estás diseñando una inteligencia generadora de código. Así es como podría funcionar:

  1. mandatos: Analizar conjuntos de datos para identificar tendencias y patrones.
  2. mover::
    • Cargue el conjunto de datos en la herramienta de análisis de datos.
    • Genere consultas SQL para filtrar y agregar datos.
    • Ejecutar la consulta y recuperar los resultados.
    • Utilice los resultados para generar visualizaciones y perspectivas.
  3. Recursos necesariosAcceso a conjuntos de datos, herramientas de análisis de datos y funciones SQL.
  4. experienciasUtilizar los análisis anteriores para mejorar la precisión y pertinencia de los análisis futuros.

Ejemplo: Inteligencia en la generación de códigos para agencias de viajes

En este ejemplo, diseñaremos una inteligencia generadora de código, Agente de Viajes, que ayude a los usuarios a planificar un viaje generando y ejecutando código. La inteligencia puede realizar tareas como buscar opciones de viaje, filtrar resultados y compilar itinerarios mediante IA generativa.

Visión general de la inteligencia de generación de código

  1. Recopilación de las preferencias de los usuariosRecopilación de datos del usuario, como destino, fechas de viaje, presupuesto e intereses.
  2. Generar código para obtener los datosGenerar fragmentos de código para recuperar datos sobre vuelos, hoteles y atracciones.
  3. Ejecutar el código generadoEjecuta el código generado para obtener información en tiempo real.
  4. Generar un viajeRecopilar los datos adquiridos en un plan de viaje personalizado.
  5. Ajustes en función de los comentarios: Recibir comentarios de los usuarios y regenerar el código cuando sea necesario para optimizar los resultados.

paso a paso

  1. Recopilación de las preferencias de los usuarios
    class Travel_Agent:
    def __init__(self):
    self.user_preferences = {}
    def gather_preferences(self, preferences):
    self.user_preferences = preferences
    
  2. Generar código para obtener los datos
    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. Ejecutar el código generado
    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. Generar un viaje
    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. Ajustes en función de los comentarios
    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)
    

Utilizar la percepción y el razonamiento medioambientales

Según el esquema de la tabla, el proceso de generación de consultas puede mejorarse explotando el conocimiento del contexto y el razonamiento.

A continuación se ofrece un ejemplo de cómo conseguirlo:

  1. Comprender las pautasEl sistema comprenderá el esquema de la tabla y utilizará esta información para determinar la base de la generación de consultas.
  2. Ajustes en función de los comentariosEl sistema ajustará las preferencias de los usuarios en función de la información y los razonamientos sobre los campos del esquema que deben actualizarse.
  3. Generación y ejecución de consultasEl sistema generará y ejecutará consultas para obtener datos actualizados de vuelos y hoteles en función de las nuevas preferencias.

A continuación se muestra un ejemplo de código Python actualizado que incorpora estos conceptos:

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)

Descripción - Reservas basadas en comentarios

  1. Percepción de patrones::schema El diccionario define cómo deben ajustarse las preferencias en respuesta a la información recibida. Incluye favorites responder cantando avoid etc., y los ajustes correspondientes.
  2. Ajuste de las preferencias (adjust_based_on_feedback método)Este método ajusta las preferencias en función de los comentarios y patrones de los usuarios.
  3. Ajustes basados en el medio ambiente (adjust_based_on_environment método)Este método se adapta al modo y a la respuesta.
  4. Generación y ejecución de consultasEl sistema genera código para obtener datos actualizados de vuelos y hoteles en función de las preferencias ajustadas y simula la ejecución de estas consultas.
  5. Generar un viajeEl sistema crea itinerarios actualizados a partir de nuevos datos sobre vuelos, hoteles y atracciones.

Si el sistema es consciente del contexto y razona basándose en patrones, puede generar consultas más precisas y pertinentes, lo que se traduce en mejores consejos de viaje y una experiencia de usuario más personalizada.

Uso de SQL como técnica de generación de aumento de la recuperación (RAG)

SQL (lenguaje de consulta estructurado) es una potente herramienta para interactuar con bases de datos. Cuando se utiliza como parte de un enfoque de Generación Aumentada de Recuperación (RAG), SQL puede recuperar datos relevantes de una base de datos para informar y generar una respuesta o acción en una inteligencia artificial. Exploremos cómo utilizar SQL como técnica RAG en el contexto de una agencia de viajes.

Conceptos clave

  1. Interacción con bases de datos::
    • SQL se utiliza para consultar bases de datos, recuperar información relevante y manipular datos.
    • Ejemplo: Obtener detalles de vuelos, información sobre hoteles y atracciones de una base de datos de viajes.
  2. Integración con RAG::
    • Genere consultas SQL basadas en las entradas y preferencias del usuario.
    • A continuación, los datos recuperados se utilizan para generar recomendaciones o acciones personalizadas.
  3. Generación dinámica de consultas::
    • Las inteligencias de IA generan consultas SQL dinámicas basadas en el contexto y los requisitos del usuario.
    • Ejemplo: Personalizar una consulta SQL para filtrar los resultados por presupuesto, fecha e interés.

aparato

  • Generación automática de códigoGenerar fragmentos de código para tareas específicas.
  • SQL como RAG: Utiliza consultas SQL para manipular datos.
  • Resolución de problemas: Crea y ejecuta código para resolver el problema.

ejemplo típicoCuerpo de Inteligencia de Análisis de Datos:

  1. mandatos: Analiza conjuntos de datos para buscar tendencias.
  2. mover::
    • Carga el conjunto de datos.
    • Generar consultas SQL para filtrar datos.
    • Ejecutar la consulta y recuperar los resultados.
    • Genere visualizaciones y perspectivas.
  3. recursos (como mano de obra o turismo): Acceso a conjuntos de datos, funciones SQL.
  4. experienciasUtilizar los resultados anteriores para mejorar los análisis futuros.

Ejemplo práctico: Uso de SQL en la agencia de viajes

  1. Recopilación de las preferencias de los usuarios
    class Travel_Agent:
    def __init__(self):
    self.user_preferences = {}
    def gather_preferences(self, preferences):
    self.user_preferences = preferences
    
  2. Generación de consultas SQL
    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. Ejecución de consultas SQL
    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. Generar recomendaciones
    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)
    

Ejemplo de consulta SQL

  1. Consulta de vuelos
    SELECT * FROM flights WHERE destination='Paris' AND dates='2025-04-01 to 2025-04-04-10' AND budget='moderate';
    
  2. Consulta de hotel
    SELECT * FROM hotels WHERE destination='Paris' AND budget='moderate';
    
  3. Consulta sobre atracciones
    SELECT * FROM attractions WHERE destination='Paris' AND interests='museums, cuisine';
    

Al aprovechar SQL como parte de la tecnología Retrieval Augmented Generation (RAG), las inteligencias de IA como Travel Agent pueden recuperar y aprovechar dinámicamente los datos relevantes para ofrecer recomendaciones precisas y personalizadas.

Ejemplos de metacognición

Para demostrar la aplicación de la metacognición, creemos una inteligencia sencilla que resuelva problemas cuando seReflexionar sobre su proceso de toma de decisiones. En este ejemplo, construiremos un sistema en el que un organismo inteligente intente optimizar la elección de un hotel y, a continuación, evalúe su propio razonamiento y ajuste su estrategia cuando se equivoque o haga una elección subóptima.

Lo simularemos con un ejemplo básico en el que la inteligencia elige un hotel basándose en una combinación de precio y calidad, pero "reflexiona" sobre su decisión y la ajusta en consecuencia.

¿Cómo explica esto la metacognición?

  1. Toma de decisiones inicialIntelligentsia: Intelligentsia elegirá el hotel más barato sin tener en cuenta las implicaciones de calidad.
  2. Reflexión y evaluación: Tras realizar una primera elección, el organismo inteligente utilizará los comentarios de los usuarios para comprobar si el hotel es una "mala" elección. Si considera que la calidad del hotel es demasiado baja, reflexionará sobre su razonamiento.
  3. alinear la estrategiaLa inteligencia ajusta su estrategia en función de sus reflexiones, pasando de "más barato" a "mayor calidad", mejorando así su proceso de toma de decisiones en futuras iteraciones.

A continuación se muestran algunos ejemplos:

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']}")

capacidad cognitiva del metabolismo corporal inteligente (IBM)

La clave aquí es la capacidad de las inteligencias:

  • Evaluar sus procesos previos de selección y toma de decisiones.
  • Adaptar sus estrategias basándose en esa reflexión, es decir, la aplicación práctica de la metacognición.

Se trata de una forma sencilla de metacognición en la que el sistema es capaz de adaptar su proceso de razonamiento en respuesta a la retroalimentación interna.

 

llegar a un veredicto

La metacognición es una poderosa herramienta que puede mejorar significativamente las capacidades de las inteligencias artificiales. Al incorporar procesos metacognitivos, se pueden diseñar inteligencias más inteligentes, adaptables y eficientes. Utilice otros recursos para explorar más a fondo el fascinante mundo de la metacognición en las inteligencias de IA.

© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...