Вводный курс Microsoft по агентам ИИ: метакогниция (мышление для себя) в агентах ИИ
краткое содержание
Добро пожаловать в курс по метапознанию в ИИ-агенте! Эта глава предназначена для новичков, интересующихся тем, как агенты ИИ думают о своих собственных мыслительных процессах. К концу курса вы поймете ключевые концепции и получите практические примеры применения метапознания при разработке AI Agent.
цель обучения
По завершении этого курса вы сможете:
- Поймите значение цикла рассуждений в определении агента.
- Используйте методы планирования и оценки для самокалибровки агента.
- Создайте собственного агента, который может манипулировать кодом для выполнения задач.
Введение в метапознание
Метапознание относится к когнитивным процессам высшего порядка, которые включают в себя размышления о собственном мышлении. Для агента ИИ это означает способность оценивать и корректировать свои действия на основе самосознания и прошлого опыта. Метапознание, или "мышление о мышлении", является важной концепцией при разработке систем ИИ на основе агентов. Она подразумевает осознание системой ИИ своих внутренних процессов и способность контролировать, регулировать и корректировать свое поведение в соответствии с ними. Примерно так же, как это делаем мы, когда рассматриваем ситуацию или изучаем проблему. Такое самосознание может помочь системам ИИ принимать более правильные решения, распознавать ошибки и улучшать свою работу с течением времени, что опять же связано с тестом Тьюринга и спорами о том, заменит ли ИИ человека.
В контексте систем ИИ, основанных на агентах, метапознание может помочь решить несколько задач, таких как:
- Прозрачность: обеспечение того, чтобы система ИИ могла объяснить свои рассуждения и решения.
- Разум: повышение способности систем ИИ к синтезу информации и принятию рациональных решений.
- Адаптивность: позволяет системе ИИ приспосабливаться к новым условиям и меняющимся ситуациям.
- Восприятие: повышение точности, с которой системы ИИ распознают и интерпретируют данные из окружающей среды.
Что такое метапознание?
Метапознание, или "мышление о мышлении", - это когнитивный процесс высшего порядка, включающий в себя самоосознание и саморегуляцию когнитивных процессов. В ИИ метапознание позволяет агентам оценивать и адаптировать свои стратегии и действия, чтобы улучшить решение проблем и принятие решений. Понимая метапознание, вы сможете разрабатывать ИИ-агенты, которые будут не только умнее, но и более адаптивными и эффективными, а при настоящем метапознании вы увидите, как ИИ явно рассуждает о своих собственных рассуждениях.
Например, "Я отдаю предпочтение более дешевым рейсам, потому что ...... я мог пропустить свой прямой рейс, так что давайте я перепроверю". . Отследить, как и почему он выбрал тот или иной маршрут.
- Обратите внимание, что он совершил ошибку, слишком сильно полагаясь на последнее предпочтение пользователя, поэтому он изменил не только окончательную рекомендацию, но и стратегию принятия решений.
- диагностическая модель, например, "Всякий раз, когда я вижу, что пользователи упоминают "слишком много народу", мне следует не только удалить определенные достопримечательности, но и задуматься о том, что если я всегда ранжирую достопримечательности по популярности, то мой метод отбора "популярных достопримечательностей" является ошибочным". несовершенен".
Важность метапознания для агентов искусственного интеллекта
Метапознание играет важнейшую роль в разработке агентов ИИ по следующим причинам:

- Самоанализ: агенты могут оценить свою работу и определить области для улучшения.
- Адаптивность: агент может изменять свою стратегию в зависимости от прошлого опыта и меняющихся обстоятельств.
- Исправление ошибок: агент может автономно обнаруживать и исправлять ошибки для получения более точных результатов.
- Управление ресурсами: агенты могут оптимизировать использование ресурсов, таких как время и вычислительная мощность, путем планирования и оценки своих действий.
Компоненты агента искусственного интеллекта
Прежде чем углубиться в метакогнитивный процесс, важно понять основные компоненты агента ИИ. Агент ИИ обычно состоит из следующих частей:
- Персона (Persona): личность и характеристики агента, определяющие его взаимодействие с пользователем.
- Инструменты: функции и возможности, которые может выполнять агент.
- Навыки: знания и опыт, которыми обладает агент.
Эти компоненты работают вместе, создавая "специализированный блок", который может выполнять определенные задачи.
типичный пример: Подумайте о Travel Agent - агентском сервисе, который не только планирует ваш отпуск, но и корректирует его маршрут на основе данных в режиме реального времени и опыта предыдущих поездок клиентов.
Пример: Метакогниция в услугах туристических агентов
Предположим, вы разрабатываете сервис туристического агента на базе искусственного интеллекта. Этот агент, "Travel Agent", помогает пользователям планировать свой отпуск. Чтобы включить метакогницию, "Турагент" должен оценивать и адаптировать свои действия на основе самосознания и прошлого опыта. Вот как работает метапознание:
текущая задача
Текущая задача - помочь пользователю спланировать поездку в Париж.
Шаги по выполнению мандата
- Сбор данных о предпочтениях пользователей: Задайте пользователю даты поездки, бюджет, интересы (например, музеи, еда, шопинг) и любые особые требования.
- получить: Поиск вариантов перелета, размещения, достопримечательностей и ресторанов, соответствующих предпочтениям пользователя.
- Создание рекомендаций: Предлагает индивидуальные маршруты с подробной информацией о перелете, бронировании отелей и предлагаемых мероприятиях.
- Корректировки на основе отзывов: Попросите пользователей высказать свое мнение по поводу предложений и внесите необходимые изменения.
Требования к ресурсам
- Доступ к базам данных бронирования авиабилетов и отелей.
- Информация о достопримечательностях и ресторанах Парижа.
- Данные об отзывах пользователей, полученные в ходе предыдущих взаимодействий.
Опыт и самоанализ
Travel Agent использует метакогницию для оценки своей работы и извлечения уроков из прошлого опыта. Пример:
- Анализ отзывов пользователей: Travel Agent просматривает отзывы пользователей, чтобы определить, какие предложения были приняты, а какие нет. В соответствии с этим он корректирует свои будущие рекомендации.
- гибкость: Travel Agent в будущем не будет рекомендовать популярные туристические достопримечательности в часы пик, если пользователь ранее упоминал, что ему не нравятся многолюдные места.
- Исправление ошибок: Если турагент допустил ошибку при прошлом бронировании, например, порекомендовал отель, который был переполнен, он научится более тщательно проверять наличие свободных мест, прежде чем давать рекомендацию.
Пример реального разработчика
Это упрощенный пример того, как может выглядеть код Travel Agent в сочетании с метапознанием:
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)
Почему метапознание имеет значение
- самоанализАгент может анализировать свою работу и выявлять области для улучшения.
- гибкостьАгент может изменять политику на основе обратной связи и изменяющихся условий.
- Исправление ошибок: Агент может обнаруживать и исправлять ошибки автономно.
- Управление ресурсамиАгент может оптимизировать использование ресурсов, таких как время и вычислительная мощность.
Используя метапознание, Travel Agent может предоставлять более персонализированные и точные советы по путешествиям, чтобы улучшить общее впечатление пользователя.
2. Планирование в агенте
Планирование - ключевой компонент поведения агента ИИ. Оно включает в себя планирование шагов, необходимых для достижения цели, с учетом текущего состояния, ресурсов и возможных препятствий.
Элементы планирования
- текущая задача: Четкое определение мандата.
- Шаги по выполнению мандата: Разбейте задачи на управляемые шаги.
- Требования к ресурсам: Определите необходимые ресурсы.
- опыт: Используйте прошлый опыт для планирования.
типичный пример: Ниже перечислены шаги, которые необходимо предпринять турагенту, чтобы помочь пользователю эффективно спланировать свое путешествие:
Шаги для турагента
- Сбор данных о предпочтениях пользователей
- Попросите пользователей подробно описать даты поездки, бюджет, интересы и любые особые требования.
- ПРИМЕР: "Когда вы планируете путешествовать?" "Каков ваш бюджет?" "Какие занятия вам нравятся во время отпуска?"
- получить
- Поиск подходящих вариантов путешествий на основе предпочтений пользователя.
- запланированное плавание: Найдите доступные рейсы, которые соответствуют бюджету пользователя и предпочтительным датам поездки.
- оставаться в: Найдите отели или объекты аренды, которые соответствуют предпочтениям пользователя по расположению, цене и удобствам.
- Достопримечательности и рестораны: Выявление популярных достопримечательностей, мероприятий и ресторанов, соответствующих интересам пользователей.
- Создание рекомендаций
- Скомпонуйте полученную информацию в индивидуальный маршрут.
- Предоставление подробной информации о вариантах перелета, бронировании отелей и предлагаемых мероприятиях гарантирует, что предложения будут соответствовать предпочтениям пользователя.
- Покажите пользователю маршрут
- Предложенные маршруты предоставляются пользователям для ознакомления.
- Пример: "Это предлагаемый маршрут вашей поездки в Париж. Он включает в себя информацию о перелете, бронирование отелей, а также список рекомендуемых мероприятий и ресторанов. Пожалуйста, дайте мне знать, что вы думаете!"
- Сбор отзывов
- Попросите пользователей высказать свое мнение о предлагаемых поездках.
- ПРИМЕР: "Вам нравятся варианты перелета?" "Подходит ли вам отель?" "Хотите ли вы добавить или исключить какие-либо мероприятия?"
- Корректировки на основе отзывов
- Вносите изменения в маршрут на основе отзывов пользователей.
- Вносить необходимые изменения в предложения по перелетам, размещению и мероприятиям, чтобы они лучше соответствовали предпочтениям пользователей.
- Окончательное подтверждение
- Покажите обновленный маршрут пользователю для окончательного подтверждения.
- ПРИМЕР: "Я внесла коррективы, основываясь на ваших отзывах. Вот обновленный маршрут. Все хорошо?"
- Бронирование и подтверждение брони
- Как только пользователь одобрит маршрут, переходите к бронированию авиабилетов, жилья и любых заранее запланированных мероприятий.
- Отправляет пользователю данные для подтверждения.
- Обеспечение постоянной поддержки
- Помогайте пользователю с любыми изменениями или другими запросами в любое время до и во время поездки.
- ПРИМЕР: "Если вам понадобится дополнительная помощь во время поездки, пожалуйста, обращайтесь ко мне!"
Пример взаимодействия
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. Модифицированная система RAG
Во-первых, давайте разберемся. RAG Разница между инструментами и предконтекстной загрузкой.

Поколение дополнения поиска (RAG)
RAG объединяет поисковую систему и генеративную модель. Когда поступает запрос, поисковая система получает соответствующие документы или данные из внешних источников и использует полученную информацию для дополнения входных данных генеративной модели. Это помогает модели генерировать более точные и контекстуализированные ответы.
В системе RAG интеллектуальный орган (агент) извлекает необходимую информацию из базы знаний и использует ее для создания соответствующего ответа или действия.
Модифицированный метод RAG
Корректирующий подход RAG направлен на использование методов RAG для исправления ошибок и повышения точности работы искусственного интеллекта (агента). К ним относятся:
- Технология изготовления кия: Используйте специальные подсказки, чтобы направить агента на поиск нужной информации.
- артефакт: Реализация алгоритмов и механизмов, позволяющих интеллектуальным агентам (агентам) оценивать релевантность полученной информации и генерировать точные ответы.
- оценка: Постоянно оценивает работу интеллектуального органа (агента) и вносит коррективы для повышения точности и эффективности его работы.
Пример: модифицированный RAG в поисковой разведке (агент)
Рассмотрим поисковый интеллект (агент), который извлекает информацию из Интернета, чтобы ответить на запрос пользователя. Модифицированные методы RAG могут включать:
- Технология изготовления кия: Формирование поисковых запросов на основе данных пользователя.
- артефакт: Используйте алгоритмы обработки естественного языка и машинного обучения для ранжирования и фильтрации результатов поиска.
- оценка: Анализ отзывов пользователей для выявления и исправления неточностей в полученной информации.
Модифицированный RAG в путешествии интеллекта (агента)
Корректирующий RAG (Retrieval Augmented Generation) расширяет возможности ИИ по получению и генерации информации, исправляя при этом любые неточности. Давайте посмотрим, как Travel Agent использует модифицированный подход RAG для предоставления более точных и релевантных рекомендаций по путешествиям.
Сюда входят:
- Технология кия: Используйте специальные подсказки, чтобы направить агента на поиск нужной информации.
- Инструменты: Реализация алгоритмов и механизмов, позволяющих интеллектуальным агентам (агентам) оценивать релевантность полученной информации и генерировать точные ответы.
- Оценка: Постоянно оценивайте работу интеллектов (агентов) и вносите коррективы для повышения их точности и эффективности.
Шаги по внедрению модифицированного RAG в турагентстве
- Первоначальное взаимодействие с пользователем
- Турагент собирает первоначальные предпочтения пользователя, такие как направление, даты поездки, бюджет и интересы.
- Пример:
preferences = { "destination": "Paris", "dates": "2025-04-01 to 2025-04-10", "budget": "moderate", "interests": ["museums", "cuisine"] }
- поиск информации
- Travel Agent получает информацию о перелетах, проживании, достопримечательностях и ресторанах, основываясь на предпочтениях пользователя.
- Пример:
flights = search_flights(preferences) hotels = search_hotels(preferences) attractions = search_attractions(preferences)
- Разработка первоначальных рекомендаций
- Travel Agent использует полученную информацию для создания индивидуального маршрута.
- Пример:
itinerary = create_itinerary(flights, hotels, attractions) print("Suggested Itinerary:", itinerary)
- Сбор отзывов пользователей
- Travel Agent просит пользователя оставить отзыв о первоначальной рекомендации.
- Пример:
feedback = { "liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"] }
- Модифицированный процесс RAG
- Технология изготовления кия: Travel Agent разрабатывает новые поисковые запросы на основе отзывов пользователей.
- Пример:
if "disliked" in feedback: preferences["avoid"] = feedback["disliked"]
- Пример:
- артефакт: Travel Agent использует алгоритмы для ранжирования и фильтрации новых результатов поиска и подчеркивает релевантность на основе отзывов пользователей.
- Пример:
new_attractions = search_attractions(preferences) new_itinerary = create_itinerary(flights, hotels, new_attractions) print("Updated Itinerary:", new_itinerary)
- Пример:
- оценка: Travel Agent постоянно оценивает актуальность и точность своих рекомендаций, анализируя отзывы пользователей и внося необходимые коррективы.
- Пример:
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)
- Пример:
- Технология изготовления кия: Travel Agent разрабатывает новые поисковые запросы на основе отзывов пользователей.
практический пример
Это упрощенный пример кода на Python, в котором Travel Agent использует модифицированный подход RAG:
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)
предварительная контекстная загрузка
Предварительная загрузка контекста подразумевает загрузку в модель соответствующей контекстной или фоновой информации до обработки запроса. Это означает, что модель имеет доступ к этой информации с самого начала, что может помочь ей генерировать более обоснованные ответы без необходимости получения дополнительных данных в процессе обработки.
Ниже приведен упрощенный пример Python-реализации предконтекстной загрузки в приложении Travel Agent:
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"))
инструкции
- Инициализация (
__init__
метод)::TravelAgent
класс предварительно загружен словарем, содержащим информацию о таких популярных направлениях, как Париж, Токио, Нью-Йорк и Сидней. Словарь содержит подробную информацию о стране, валюте, языке и основных достопримечательностях каждого направления. - Получение информации (
get_destination_info
метод): Когда пользователь запрашивает конкретное место назначения, тоget_destination_info
Метод получает соответствующую информацию из предварительно загруженного контекстного словаря.
Благодаря предварительной загрузке контекста приложения для турагентов могут быстро отвечать на запросы пользователей, не получая эту информацию из внешнего источника в режиме реального времени. Это делает приложение более эффективным и отзывчивым.
Используйте план, ориентированный на достижение цели, до начала итераций
Использование плана, ориентированного на достижение цели, предполагает четкое определение цели или желаемого результата с самого начала. Заранее определив эту цель, модель может использовать ее в качестве руководящего принципа на протяжении всего процесса итераций. Это помогает гарантировать, что каждая итерация будет приближаться к достижению желаемого результата, что делает процесс более эффективным и целенаправленным.
Вот пример, показывающий, как использовать планирование путешествий с учетом целей в Python для Travel Agent до итерации:
взять
Туристическое агентство хочет планировать индивидуальный отдых для своих клиентов. Цель - создать маршрут путешествия, основанный на предпочтениях и бюджете клиента, чтобы максимально удовлетворить его.
перейти
- Определите предпочтения и бюджеты клиентов.
- Определите первоначальный план в соответствии с этими предпочтениями.
- Итерации для оптимизации планов с целью максимального удовлетворения потребностей клиентов.
Код 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)
Описание кода
- Инициализация (
__init__
метод)::TravelAgent
Класс инициализируется с помощью списка потенциальных пунктов назначения, каждый из которых имеет такие атрибуты, как название, стоимость и тип активности. - Ориентационная программа (
bootstrap_plan
метод): Этот метод создает первоначальный план путешествия на основе предпочтений и бюджета клиента. Он просматривает список пунктов назначения и добавляет их в план, если они соответствуют предпочтениям клиента и укладываются в бюджет. - Соответствие предпочтений (
match_preferences
метод): Этот метод проверяет, соответствует ли пункт назначения предпочтениям клиента. - План итераций (
iterate_plan
метод): Этот метод оптимизирует первоначальный план, пытаясь заменить каждый пункт назначения в плане на более подходящий, принимая во внимание предпочтения клиентов и бюджетные ограничения. - Расчет затрат (
calculate_cost
метод): Этот метод позволяет рассчитать общую стоимость текущей программы, включая потенциальные новые направления.
Образец использования
- первоначальный план: Турагент создает первоначальный план, основываясь на предпочтениях клиента относительно достопримечательностей и бюджете в 2 000 долларов.
- План оптимизации: Итеративная программа для турагентов, оптимизированная под предпочтения и бюджеты клиентов.
Используя четкие цели (например, максимальное удовлетворение потребностей клиента) для составления плана и итерации для его оптимизации, Travel Agent создает индивидуальные и оптимизированные маршруты для клиентов. Такой подход гарантирует, что планы путешествий с самого начала соответствуют предпочтениям и бюджету клиента и улучшаются с каждой итерацией.
Упорядочивание и подсчет баллов с помощью большой языковой модели (LLM)
Большие языковые модели (LLM) могут быть использованы для упорядочивания и оценки найденных документов или сгенерированных ответов, оценивая их релевантность и качество. Они работают следующим образом:
Извлечено: На этапе первоначального поиска на основе запроса получается набор документов-кандидатов или ответов.
Переоформление: LLM оценивает этих кандидатов и упорядочивает их в соответствии с их релевантностью и качеством. Этот шаг гарантирует, что наиболее релевантная и качественная информация будет представлена первой.
Рейтинг: LLM присваивает баллы каждому объекту-кандидату, отражающие его релевантность и качество. Это помогает выбрать лучший ответ или документ для пользователя.
Используя LLM для переупорядочивания и оценки, система может предоставлять более точную и контекстуально релевантную информацию, тем самым улучшая общий пользовательский опыт.
Вот пример того, как туристическое агентство может использовать большую языковую модель (LLM) для упорядочивания и оценки мест назначения на основе предпочтений пользователя на языке Python:
Сценарии - путешествия, основанные на предпочтениях
Турагенты хотят рекомендовать своим клиентам лучшие направления, основываясь на их предпочтениях. LLM поможет изменить порядок и рейтинг направлений, чтобы обеспечить представление наиболее релевантных вариантов.
Шаги:
- Собирайте информацию о предпочтениях пользователей.
- Получите список потенциальных мест для путешествий.
- Используйте LLM для изменения порядка и рейтинга пунктов назначения в зависимости от предпочтений пользователя.
Вот как обновить предыдущий пример, чтобы использовать службу Azure OpenAI:
запрос
- Вам необходимо иметь подписку Azure.
- Создайте ресурс Azure OpenAI и получите ключ API.
Пример кода 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)
Пояснение к коду - Букер предпочтений
- инициализация::
TravelAgent
Класс инициализируется с помощью списка потенциальных туристических направлений, каждое из которых имеет такие атрибуты, как название и описание. - Получение консультаций (
get_recommendations
(Методы): Этот метод генерирует подсказки для службы Azure OpenAI на основе предпочтений пользователя и отправляет HTTP POST-запрос к Azure OpenAI API для повторного упорядочивания и оценки направлений. - Создайте подсказку (
generate_prompt
(Методы): Этот метод создает подсказку для Azure OpenAI, которая включает предпочтения пользователя и список пунктов назначения. Подсказка направляет модель на переупорядочивание и оценку пунктов назначения на основе предоставленных предпочтений. - Вызовы API::
requests
Библиотека для выполнения HTTP POST-запросов к конечным точкам Azure OpenAI API. Ответ содержит переупорядоченные и оцененные пункты назначения. - Образец использованияТуристические агенты собирают предпочтения пользователей (например, интерес к достопримечательностям и мультикультурализму) и используют сервис Azure OpenAI для получения предложений по изменению рейтинга и оценки мест путешествия.
гарантия того, что your_azure_openai_api_key
Замените его своим настоящим ключом Azure OpenAI API и замените https://your-endpoint.com/...
Замените на фактический URL конечной точки вашего развертывания Azure OpenAI.
Используя LLM для повторной сортировки и оценки, туристические агентства могут предоставлять своим клиентам более персонализированные и актуальные советы по путешествиям, что улучшает их общее впечатление.
{Technology Domain Critics Sharp: Приведенный выше пример кода наглядно демонстрирует, как контент можно переупорядочить и оценить с помощью большой языковой модели. Это достигается путем построения TravelAgent
классы и в сочетании с сервисами Azure OpenAI могут эффективно предоставлять персонализированные рекомендации по путешествиям на основе предпочтений пользователя. Такой подход не только повышает точность рекомендаций, но и улучшает пользовательский опыт}.
RAG: Техники и инструменты подсказки
Retrieval Augmented Generation (RAG) может быть как техникой подсказки, так и инструментом при разработке агентов искусственного интеллекта. Понимание разницы между ними поможет вам более эффективно использовать RAG в своих проектах.
RAG как техника подсказки
Что это такое?
- Как техника подсказок, RAG подразумевает формулирование определенных запросов или подсказок, чтобы направить поиск релевантной информации из большого корпуса или базы данных. Затем эта информация используется для создания ответов или действий.
Как это работает:
- Советы по разработке: Создание хорошо структурированных подсказок или запросов на основе поставленной задачи или данных пользователя.
- получить: Используйте подсказки для поиска нужных данных из уже существующих баз знаний или наборов данных.
- Генерирование ответа: Объедините полученную информацию с генеративными моделями ИИ, чтобы создать всеобъемлющий и последовательный ответ.
Пример турагента::
- Пользователь вводит: "Я хочу посетить музеи в Париже".
- Куплет: "Найдите лучшие музеи Парижа".
- Полученная информация: подробная информация о музее Лувр, музее д'Орсэ и др.
- Сгенерированный ответ "Вот некоторые из лучших музеев Парижа: Лувр, Музей д'Орсэ и Центр Помпиду".
RAG как инструмент
Что это такое?
- Как инструмент, RAG представляет собой интегрированную систему, которая автоматизирует процесс поиска и генерации информации, облегчая разработчикам реализацию сложной функциональности ИИ без необходимости вручную создавать подсказки для каждого запроса.
Как это работает:
- интегрированный (как в интегральной схеме): Встраивание RAG в архитектуру агента ИИ позволяет ему автоматизировать задачи поиска и генерации.
- автоматический: Инструмент управляет всем процессом, от получения пользовательских данных до создания окончательного ответа, без необходимости давать явные подсказки на каждом этапе.
- эффективность: Повышение эффективности работы агента за счет упрощения процесса поиска и генерации информации для получения более быстрых и точных ответов.
Пример турагента::
- Пользователь вводит: "Я хочу посетить музеи в Париже".
- RAG Tool: автоматический поиск информации о музее и генерирование ответа.
- Сгенерированный ответ "Вот некоторые из лучших музеев Парижа: Лувр, Музей д'Орсэ и Центр Помпиду".
{Комментарий технического критика: Различие между описанием RAG как техники подсказок и как инструмента очень важно. Как техника подсказок, RAG подчеркивает важность ручного формулирования запросов; как инструмент, RAG делает акцент на автоматизации и интеграции. Оба подхода имеют свои преимущества и могут быть гибко выбраны в зависимости от конкретных потребностей}.
сравнения
перспектива | Технология изготовления кия | артефакт |
---|---|---|
Ручной и автоматический | Вручную разработайте подсказки для каждого запроса. | Автоматизируйте процесс поиска и создания информации. |
защитная оболочка | Обеспечивает больший контроль над процессом поиска. | Упрощенный и автоматизированный поиск и генерация. |
ловкость | Позволяет настраивать подсказки в соответствии с конкретными потребностями. | Более эффективное крупномасштабное внедрение. |
изысканность | Советы необходимо создавать и корректировать. | Более простая интеграция в архитектуру AI Agent. |
Практический пример
Пример техники подсказки:
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)
Пример инструмента:
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)
ВЕРДИКТ: Различия между методами и инструментами создания подсказок наглядно продемонстрированы в сравнительных таблицах и конкретных примерах кода. Ручная формулировка подсказок обеспечивает большую гибкость и контроль, в то время как инструменты повышают эффективность за счет автоматизации. Это позволяет разработчикам делать более обоснованный выбор в зависимости от потребностей и ресурсов проекта.
Оценка актуальности
Оценка релевантности - ключевой аспект работы агента ИИ. Она гарантирует, что информация, полученная и сгенерированная агентом, будет уместной, точной и полезной для пользователя. Давайте рассмотрим, как оценивать релевантность в AI Agent, включая практические примеры и советы.
Ключевые понятия для оценки актуальности
- ситуационная осведомленность::
- Агент должен понимать контекст запроса пользователя, чтобы получать и генерировать релевантную информацию.
- Пример: если пользователь запрашивает "лучшие рестораны Парижа", агент должен учесть предпочтения пользователя, такие как тип кухни и бюджет.
- точность::
- Информация, предоставляемая агентом, должна быть фактологически верной и актуальной.
- Пример: предлагайте рестораны, которые открыты в настоящее время и имеют хорошие отзывы, а не устаревшие или закрытые варианты.
- намерение пользователя::
- Агент должен угадать намерения пользователя, чтобы предоставить наиболее релевантную информацию.
- Пример: если пользователь запрашивает "бюджетные отели", агент должен отдать предпочтение доступным вариантам.
- петля обратной связи::
- Постоянный сбор и анализ отзывов пользователей помогает "Агенту" совершенствовать процесс оценки релевантности.
- Пример: объединение оценок пользователей и отзывов о предыдущих рекомендациях для улучшения будущих ответов.
Практические советы по оценке актуальности
- оценка релевантности::
- Каждому элементу поиска присваивается балл релевантности в зависимости от того, насколько он соответствует запросу и предпочтениям пользователя.
- Пример:
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
- Фильтрация и сортировка::
- Отфильтруйте нерелевантные элементы и проранжируйте оставшиеся на основе их оценок релевантности.
- Пример:
def filter_and_rank(items, query): ranked_items = sorted(items, key=lambda item: relevance_score(item, query), reverse=True) return ranked_items[:10] # 返回前 10 个相关项目
- Обработка естественного языка (NLP)::
- Используйте методы NLP для понимания запросов пользователей и получения релевантной информации.
- Пример:
def process_query(query): # 使用 NLP 从用户的查询中提取关键信息 processed_query = nlp(query) return processed_query
- Интеграция отзывов пользователей::
- Собирайте отзывы пользователей о предоставленных рекомендациях и используйте их для корректировки будущих оценок актуальности.
- Пример:
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
Пример: оценка релевантности в туристическом агентстве
Ниже приведен практический пример того, как Travel Agent оценивает релевантность рекомендаций по путешествиям:
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)
Преднамеренный поиск
Преднамеренный поиск подразумевает понимание и интерпретацию цели, стоящей за запросом пользователя, для получения и генерации наиболее релевантной и полезной информации. Этот подход выходит за рамки простого подбора ключевых слов и фокусируется на понимании реальных потребностей и контекста пользователя.
Ключевые понятия преднамеренного поиска
- Понимание намерений пользователя::
- Намерения пользователей можно разделить на три основных типа: информационные, навигационные и транзакционные.
- Информационное намерение: Пользователи, ищущие информацию по определенной теме (например, "Какие лучшие музеи в Париже?"). .
- Навигационное намерение: Пользователь хочет перейти на конкретный сайт или страницу (например, "Официальный сайт музея Лувр").
- Транзакционное намерение: Пользователь стремится совершить операцию, например, забронировать рейс или сделать покупку (например, "Забронировать рейс в Париж").
- Намерения пользователей можно разделить на три основных типа: информационные, навигационные и транзакционные.
- ситуационная осведомленность::
- Анализ контекста запроса пользователя помогает точно определить его намерения. При этом учитываются предыдущие взаимодействия, предпочтения пользователя и конкретные детали текущего запроса.
- Обработка естественного языка (NLP)::
- Методы НЛП используются для понимания и интерпретации запросов на естественном языке, поступающих от пользователей. Сюда входят такие задачи, как распознавание сущностей, анализ настроения и разбор запросов.
- персонализированный::
- Персонализация результатов поиска на основе истории пользователя, его предпочтений и отзывов может повысить релевантность найденной информации.
Практический пример: преднамеренный поиск в туристическом агентстве
Давайте рассмотрим Travel Agent в качестве примера того, как добиться намеренного поиска.
- Сбор данных о предпочтениях пользователей
class Travel_Agent: def __init__(self): self.user_preferences = {} def gather_preferences(self, preferences): self.user_preferences = preferences
- Понимание намерений пользователя
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"
- ситуационная осведомленность
def analyze_context(query, user_history): # 将当前查询与用户历史记录相结合以理解情境 context = { "current_query": query, "user_history": user_history } return context
- Поиск и персонализированные результаты
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 个个性化结果
- Образец использования
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. Генерация кода как инструмент
Интеллекты, генерирующие код (Agents), используют модели ИИ для написания и выполнения кода, решения сложных проблем и автоматизации задач.
Интеллект, генерирующий код
Интеллекты, генерирующие код, пишут и выполняют его с помощью генеративных моделей ИИ. Эти интеллекты могут решать сложные проблемы, автоматизировать задачи и получать ценные сведения, генерируя и выполняя код на различных языках программирования.
практическое применение
- Автоматизированная генерация кода: Генерируйте фрагменты кода для конкретных задач, таких как анализ данных, просмотр веб-страниц или машинное обучение.
- SQL как RAGИспользование SQL-запросов для получения данных из базы данных и манипулирования ими.
- Решение проблем: Создание и выполнение кода для решения конкретной задачи, например, оптимизации алгоритма или анализа данных.
Пример: кодирование интеллекта для анализа данных
Предположим, вы разрабатываете интеллект, генерирующий код. Вот как он может работать:
- мандаты: Анализ массивов данных для выявления тенденций и закономерностей.
- перейти::
- Загрузите набор данных в инструмент анализа данных.
- Создавайте SQL-запросы для фильтрации и агрегирования данных.
- Выполните запрос и получите результаты.
- Используйте результаты для создания визуализаций и аналитических материалов.
- Требования к ресурсам: Доступ к наборам данных, инструментам анализа данных и функциям SQL.
- опыт: Используйте результаты прошлых анализов для повышения точности и актуальности будущих анализов.
Пример: Интеллектуальная генерация кода для туристических агентов
В этом примере мы разработаем генерирующий код интеллект Travel Agent, который поможет пользователю спланировать путешествие, генерируя и выполняя код. Интеллект может решать такие задачи, как поиск вариантов путешествий, фильтрация результатов и составление маршрутов с помощью генеративного ИИ.
Обзор интеллекта генерации кода
- Сбор данных о предпочтениях пользователей: Сбор пользовательских данных, таких как пункт назначения, даты поездки, бюджет и интересы.
- Создайте код для получения данных: Генерируйте фрагменты кода для получения данных о рейсах, отелях и достопримечательностях.
- Выполните сгенерированный код: Запустите сгенерированный код, чтобы получить информацию в реальном времени.
- Создать поездку: Составьте из полученных данных индивидуальный план путешествия.
- Корректировки на основе отзывов: Получение обратной связи от пользователей и регенерация кода при необходимости для оптимизации результатов.
шаг за шагом
- Сбор данных о предпочтениях пользователей
class Travel_Agent: def __init__(self): self.user_preferences = {} def gather_preferences(self, preferences): self.user_preferences = preferences
- Создайте код для получения данных
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
- Выполните сгенерированный код
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)
- Создать поездку
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)
- Корректировки на основе отзывов
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)
Использование экологического восприятия и рассуждений
В соответствии со схемой таблицы, процесс создания запросов может быть улучшен за счет использования контекстной осведомленности и рассуждений.
Ниже приведен пример того, как этого можно добиться:
- Понимание узоров: Система понимает схему таблицы и использует эту информацию для определения основы для формирования запроса.
- Корректировки на основе отзывов: Система будет корректировать предпочтения пользователей на основе обратной связи и информации о полях в схеме, которые необходимо обновить.
- Создание и выполнение запросов: Система будет генерировать и выполнять запросы для получения обновленных данных о рейсах и отелях на основе новых предпочтений.
Ниже приведен обновленный пример кода на Python, в котором учтены эти концепции:
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)
Описание - Бронирование на основе отзывов
- Восприятие образов::
schema
Словарь определяет, как следует корректировать предпочтения в ответ на обратную связь. Он включает в себяfavorites
ответить пениемavoid
и т. д., и соответствующие корректировки. - Корректировка предпочтений (
adjust_based_on_feedback
метод): Этот метод настраивает предпочтения на основе отзывов и моделей поведения пользователей. - Экологически обоснованные корректировки (
adjust_based_on_environment
метод): Этот метод настраивается в соответствии с режимом и обратной связью. - Создание и выполнение запросов: Система генерирует код для получения обновленных данных о рейсах и отелях на основе скорректированных предпочтений и имитирует выполнение этих запросов.
- Создать поездку: Система создает обновленные маршруты на основе новых данных о рейсах, отелях и достопримечательностях.
Благодаря тому, что система учитывает контекст и рассуждает на основе шаблонов, она может генерировать более точные и релевантные запросы, что позволяет получить более точные рекомендации по путешествиям и более персонализированный пользовательский опыт.
Использование SQL в качестве техники расширения поиска (RAG)
SQL (Structured Query Language) - это мощный инструмент для взаимодействия с базами данных. При использовании в рамках подхода Retrieval Augmented Generation (RAG) SQL может извлекать релевантные данные из базы данных, чтобы информировать и генерировать ответ или действие в искусственном интеллекте. Давайте рассмотрим, как использовать SQL в качестве техники RAG в контексте туристического агентства.
Ключевые понятия
- Взаимодействие с базами данных::
- SQL используется для запросов к базам данных, получения необходимой информации и манипулирования данными.
- Пример: получение сведений о рейсах, информации об отелях и достопримечательностях из туристической базы данных.
- Интеграция с RAG::
- Генерируйте SQL-запросы на основе пользовательских данных и предпочтений.
- Полученные данные затем используются для создания персональных рекомендаций или действий.
- Динамическое формирование запросов::
- Интеллектуальный искусственный интеллект генерирует динамические SQL-запросы на основе контекста и требований пользователя.
- Пример: Настройте SQL-запрос для фильтрации результатов по бюджету, дате и процентам.
прибор
- Автоматизированная генерация кода: Генерируйте фрагменты кода для конкретных задач.
- SQL как RAG: Используйте SQL-запросы для работы с данными.
- Решение проблем: Создайте и выполните код для решения проблемы.
типичный пример: Аналитика данных Орган разведки:
- мандаты: Анализируйте массивы данных для поиска тенденций.
- перейти::
- Загрузите набор данных.
- Создавайте SQL-запросы для фильтрации данных.
- Выполните запрос и получите результаты.
- Создание визуализаций и аналитических материалов.
- ресурс (например, рабочая сила или туризм)Доступ к набору данных, функции SQL.
- опыт: Используйте прошлые результаты для улучшения будущих анализов.
Практический пример: использование SQL в Travel Agent
- Сбор данных о предпочтениях пользователей
class Travel_Agent: def __init__(self): self.user_preferences = {} def gather_preferences(self, preferences): self.user_preferences = preferences
- Создание 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
- Выполнение 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
- Создание рекомендаций
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)
Образец SQL-запроса
- Запрос на полет
SELECT * FROM flights WHERE destination='Paris' AND dates='2025-04-01 to 2025-04-04-10' AND budget='moderate';
- Запрос отеля
SELECT * FROM hotels WHERE destination='Paris' AND budget='moderate';
- Запрос о достопримечательностях
SELECT * FROM attractions WHERE destination='Paris' AND interests='museums, cuisine';
Используя SQL в качестве части технологии Retrieval Augmented Generation (RAG), такие искусственные интеллекты, как Travel Agent, могут динамически извлекать и использовать соответствующие данные для предоставления точных и персонализированных рекомендаций.
Примеры метапознания
Чтобы продемонстрировать реализацию метапознания, давайте создадим простой интеллект, который решает проблемы, когда онОсмысление процесса принятия решений. В этом примере мы построим систему, в которой разумное тело пытается оптимизировать выбор отеля, а затем оценивает свои рассуждения и корректирует свою стратегию, когда ошибается или делает неоптимальный выбор.
Мы смоделируем это на базовом примере, где интеллект выбирает отель, основываясь на сочетании цены и качества, но при этом "размышляет" над своим решением и вносит соответствующие коррективы.
Как в этом случае учитывается метапознание:
- Принятие первоначальных решений: Intelligentsia выберет самый дешевый отель, невзирая на качество.
- Размышление и оценка: Сделав первоначальный выбор, "умное тело" будет использовать отзывы пользователей, чтобы проверить, является ли отель "плохим" выбором. Если он обнаружит, что качество отеля слишком низкое, он пересмотрит свои рассуждения.
- согласовать стратегию: Интеллект корректирует свою стратегию на основе своих размышлений, переключаясь с "самого дешевого" на "самое качественное", тем самым улучшая процесс принятия решений в будущих итерациях.
Примеры приведены ниже:
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']}")
когнитивные способности интеллектуального метаболизма тела (IBM)
Ключевым моментом здесь являются способности интеллекта:
- Оцените их предыдущий выбор и процесс принятия решений.
- Адаптация своих стратегий на основе этих размышлений, т.е. практическое применение метапознания.
Это простая форма метапознания, при которой система способна адаптировать свой процесс рассуждения в ответ на внутреннюю обратную связь.
вынести вердикт
Метакогниция - это мощный инструмент, который может значительно расширить возможности искусственного интеллекта. Включив метакогнитивные процессы, вы сможете разработать более умные, адаптивные и эффективные интеллекты. Используйте другие ресурсы для дальнейшего изучения увлекательного мира метакогниции в ИИ-интеллектах.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...