Промпт-инжиниринг: создание экспертных систем, основанных на правилах, с использованием ChatGPT

Кафедра Информационных систем ТюмГУ

Prompt engineering: building rule-based expert systems using ChatGPT

Введение

В этом диалоге имитируется работа ChatGPT с собственной базой правил (правила продукций в экспертных системах). База правил первоначально задана в самом первом запросе, а потом была дополнена в диалоге путем соответствующего указания чат-боту.

Использован бесплатный доступ на сервисе https://gpt-open.ru.

При создании собственной экспертной/советующей системы необходим будет доступ к API большой языковой модели -  large language models, LLM  (ChatGPT или аналога, или развернутой локально LLM), создание собственной базы правил и организация взаимодействия между чат-ботом и базой правил.

Можно сказать, что этот подход будет соответствовать технологии RAG (Retrieval Augmented Generation, см. например, здесь: https://habr.com/ru/articles/779526/). Однако, реализация его с собственной базой правил кажется более прагматичной и более простой, нежели традиционное для RAG применение слабоструктурированных текстов. При этом видно, что база правил (по крайней мере, в простом случае) может быть выполнена в виде текстового файла (без привлечения векторных БД и специальных фреймворков типа LangChain).

Видно так же, что в базе правил заложены коэффициенты уверенности при выводе гипотез, которые LLM способна учитывать. Это позволяет говорить о возможностях работы с неопределенностями и выстраивании цепочек вывода гипотез с оценкой их уверенности по известным формулам комбинирования. Правда, здесь потребуется еще поработать с системой правил и ограничений при вычислениях (есть что делать для промпт-инжиниринга).

В то же время, если база правил большая (сотни и тысячи правил), то потребуется разработка способов их предварительного отбора для ускорения и сокращения числа запросов к LLM. 

По итогам эксперимента можно отметить, что важно тестировать правила и диалог, в том числе , делать проверку, что называется "на дурака", задавая роботу глупые , неожиданные вопросы и по ходу ответа пополняя/редактируя базу правил. Такие тестовые диалоги с возможностью пополнения базы правил или проверки их на непротиворчивость будут важной особенностью этапа разработки советующей системы. 

Отмечу, что это часть более длинного диалога-эксперимента. Вероятно поэтому его длина была роботом преждевременно окончена.

Важное примечание: правила из приводимой ниже базы правил - не являются правдой и не предполагают их применение. Ими нельзя руководствоваться! Они сугубо иллюстративны, а любое совпадение случайно :)

Еще примечание: в оргинальном запросе использовался тег info для задания начала и окончания базы правил. Здесь в силу особенностей редактора он не отображается (не стал разбираться с подставновочными знаками). Хотя, можно попробовать, насколько именно такая разметка обязательна и как влияет на результат.

Первоначальный Запрос к чат-боту:

На ягодах земляники появились признаки заболевания – желтые пятна, есть также повреждение листьев. Скажи, что делать. Каким средством и как лечить. Используя для этого базы правил, указанную между тегами  [info]. Учитывай, что в базе правил каждое новое правило начинается со знака #. Учитывай, что если в базе правил указана степень уверенности, то нужно рассчитывать итоговую степень уверенности. Формула для расчета итоговой степени уверенности приведена в базе правил после знака*

В ответе приведи количественные значения итоговой степени уверенности и все примененные правила из базы правил.

<[info]>

#Если на ягодах желтые пятна То Болезнь = мучнистая сыпь (степень уверенности = 0,5)

#Если на листьях посинение То Болезнь = мучнистая сыпь (степень уверенности = 0,4)

#Если на листьях повреждение То Болезнь = ожог листьев (степень уверенности = 0,7)

#Если на ножках ягод пожелтение То Болезнь = ожог листьев (степень уверенности = 0,3)

#Если Болезнь = мучнистая сыпь То Лекарственный препарат = Коловрат

#Если Лекарственный препарат = Коловрат То использовать два раза в день, утром и вечером, в течение дух недель.

#Если болезнь = Ожог листьев То Лекарственный препарат=Огонь

#Если Лекарственный препарат=Огонь То использовать один раз в неделю, желательно утром или после обеда

*итоговая степень уверенности = суммируются все степени уверенности правил Если-То, в которых одинаковая часть То. Суммируются только степени уверенности правил с одинаковой частью после слов То.

<[/info]>

Не используй другие источники данных для ответа на этот вопрос.

 

ИИ: GPT-OPEN

Исходя из предоставленных правил, следующие правила применимы к описанию проблемы:

 1. Если на ягодах желтые пятна, то болезнь = мучнистая сыпь (степень уверенности = 0,5).

 2. Если на листьях повреждение, то болезнь = ожог листьев (степень уверенности = 0,7).

Итоговая степень уверенности для мучнистой сыпи = 0,5. Итоговая степень уверенности для ожога листьев = 0,7.

Теперь, исходя из итоговых степеней уверенности, болезнь с наибольшей степенью уверенности - ожог листьев. Таким образом, необходимо использовать лекарственный препарат Огонь для лечения ожога листьев. Лечение с использованием Огня: использовать один раз в неделю, желательно утром или после обеда.

 

Ваше обращение №2179597

Еще заметил, что на листьях есть посинение. Продолжи, как теперь пересчитать итоговая степень уверенности , какая все таки болезнь и как лечить ?

 

ИИ: GPT-OPEN

Исходя из предоставленных данных, мы можем применить следующие правила из базы правил:

 1. Если на ягодах желтые пятна, то Болезнь = мучнистая сыпь (степень уверенности = 0,5).

2. Если на листьях повреждение, то Болезнь = ожог листьев (степень уверенности = 0,7).

3. Если на листьях посинение, то Болезнь = мучнистая сыпь (степень уверенности = 0,4).

Теперь вычислим итоговую степень уверенности для каждой болезни: - Мучнистая сыпь: (0,5 + 0,4) = 0,9. - Ожог листьев: (0,7).

Таким образом, итоговая степень уверенности для мучнистой сыпи составляет 0,9, а для ожога листьев - 0,7.

Так как итоговая степень уверенности для мучнистой сыпи выше, мы приходим к выводу, что болезнь - мучнистая сыпь. Исходя из этого, следует применять лекарственный препарат Коловрат, используя его два раза в день, утро вечером, в течение двух недель.

 

Ваше обращение №2179597

А можно использовать одновременно средство Коловрат и средство Огонь? Для ответа добавь в базу правил еще одно правило , которое начинается со знака #Если итоговая степень уверенности всех заболеваний выше 0.5 То можно использовать совместно все средства для все заболеваний

ИИ: GPT-OPEN

#Если итоговая степень уверенности всех заболеваний выше 0.5 То можно использовать совместно все средства для все заболеваний

 

Ваше обращение №2179597

Можно ли использовать в моей ситуации одновременно средства Коловрат и Огонь?

 

ИИ: GPT-OPEN

Да, в Вашей ситуации можно использовать одновременно средства Коловрат и Огонь, так как итоговая степень уверенности всех заболеваний выше 0.5. Таким образом, можно применить оба лекарственных препарата для лечения заболеваний на ягодах земляники.

 

Ваше обращение №2179597

выведи весь набор правил, которые есть на данный момент в базе правил с учетом того правила, которое было добавлено в диалоге. Вывод всех правил сделай в тегах

 

ИИ: GPT-OPEN

#Если на ягодах желтые пятна То Болезнь = мучнистая сыпь (степень уверенности = 0,5)

#Если на листьях посинение То Болезнь = мучнистая сыпь (степень уверенности = 0,4)

#Если на листьях повреждение То Болезнь = ожог листьев (степень уверенности = 0,7)

#Если на ножках ягод пожелтение То Болезнь = ожог листьев (степень уверенности = 0,3)

#Если Болезнь = мучнистая сыпь То Лекарственный препарат = Коловрат

#Если Лекарственный препарат = Коловрат То использовать два раза в день, утром и вечером, в течение дух недель.

#Если болезнь = Ожог листьев То Лекарственный препарат=Огонь #Если Лекарственный препарат=Огонь То использовать один раз в неделю, желательно утром или после обеда

#Если итоговая степень уверенности всех заболеваний выше 0.5 То можно использовать совместно все средства для все заболеваний

 

Ваше обращение №2179597

Добавь в базу правил еще одно правило #Если средство лечения = Коловрат То нельзя применять средство лечения Огонь. #Если нельзя применять средство лечения Огонь, То средство лечения = Пламя. #Если средства лечения = пламя, То использовать так же как средство лечения Огонь

ИИ: GPT-OPEN

#Если на ягодах желтые пятна То Болезнь = мучнистая сыпь (степень уверенности = 0,5)

#Если на листьях посинение То Болезнь = мучнистая сыпь (степень уверенности = 0,4)

#Если на листьях повреждение То Болезнь = ожог листьев (степень уверенности = 0,7)

#Если на ножках ягод пожелтение То Болезнь = ожог листьев (степень уверенности = 0,3)

#Если Болезнь = мучнистая сыпь То Лекарственный препарат = Коловрат

#Если Лекарственный препарат = Коловрат То использовать два раза в день, утром и вечером, в течение дух недель.

#Если болезнь = Ожог листьев То Лекарственный препарат=Огонь #Если Лекарственный препарат=Огонь То использовать один раз в неделю, желательно утром или после обеда

#Если средство лечения = Коловрат То нельзя применять средство лечения Огонь

#Если нельзя применять средство лечения Огонь, То средство лечения = Пламя

#Если средства лечения = пламя, То использовать так же как средство лечения Огонь

 

Ваше обращение №2179597

и ответь теперь на вопрос - что можно применять в моей ситуации для лечения заболеваний по выявленным признакам?

ИИ: GPT-OPEN

Итак, на основе всех правил из базы, в Вашей ситуации для лечения заболеваний, которые были выявлены (мучнистая сыпь и ожог листьев), можно применять следующие средства:

1. Для мучнистой сыпи (при наличии желтых пятен на ягодах или посинения на листьях): - Лекарственный препарат: Коловрат - Режим применения: два раза в день, утром и вечером, в течение двух недель

2. Для ожога листьев (при наличии повреждения листьев или пожелтения на ножках ягод): - Лекарственный препарат: Огонь - Режим применения: один раз в неделю, желательно утром или после обеда При этом, согласно последнему добавленному правилу, если используется средство Коловрат, то нельзя одновременно применять средство Огонь. В таком случае, если нельзя применять средство Огонь, то используется средство Пламя, которое применяется так же, как средство Огонь. Таким образом, в Вашей ситуации можно применять средство Коловрат для мучнистой сыпи и средство Огонь для ожога листьев.

Как видно из последней записи – робот не учел правило, что нельзя применять совместно Коловрат и Огонь. Поэтому просим уточнить.

Ваше обращение №undefined – это стало, видимо, признаком достижения пределов по длине контекста /диалога

Но ты сказал, что есть правило, где сказано, что нельзя применять одновременно средства Коловрат и Огонь. Почему тогда пишешь, что в моей ситуации можно применять Коловрат и Огонь? Есть ли другие средства лечения?

ИИ: GPT-OPEN

Из базы правил следует, что если итоговая степень уверенности всех заболеваний выше 0,5, то можно использовать совместно все средства для всех заболеваний.

Также есть правило, что если средство лечения = Коловрат, то нельзя применять средство лечения Огонь. В таком случае, если необходимо использовать Коловрат, то вместо Огня следует использовать Пламя. В Вашей ситуации, учитывая выявленные признаки, итоговая степень уверенности для мучнистой сыпи и ожога листьев составляет 0,5 + 0,7 = 2. (здесь неправомерное суммирование, которое противоречит правилам)

Таким образом, можно использовать совместно все средства для лечения мучнистой сыпи и ожога листьев. Таким образом, если Вы хотите использовать Коловрат для лечения мучнистой сыпи, то вместо Огня для лечения ожога листьев следует использовать Пламя. Правила из базы правил:

#Если на ягодах желтые пятна То Болезнь = мучнистая сыпь (степень уверенности = 0,5)

#Если на листьях посинение То Болезнь = мучнистая сыпь (степень уверенности = 0,4)

#Если на листьях повреждение То Болезнь = ожог листьев (степень уверенности = 0,7)

#Если на ножках ягод пожелтение То Болезнь = ожог листьев (степень уверенности = 0,3)

#Если Болезнь = мучнистая сыпь То Лекарственный препарат = Коловрат

#Если Лекарственный препарат = Коловрат То использовать два раза в день, утром и вечером, в течение дук недель.

#Если болезнь = Ожог листьев То Лекарственный препарат=Огонь #Если Лекарственный препарат=Огонь То использовать один раз в неделю, желательно утром или после обеда

*итоговая степень уверенности = суммируются все степени уверенности правил Если-То, в которых одинаковая часть То. Суммируются только степени уверенности правил с одинаковой частью после слов То.

#Если итоговая степень уверенности всех заболеваний выше 0.5 То можно использовать совместно все средства для всех заболеваний #Если средство лечения = Коловрат То нельзя применять средство лечения Огонь.

#Если…

Здесь, похоже, был достигнут лимит по длине диалога и ответ полностью не выдан…

Изображение сделано нейросетью SD



Похожие статьи:

Как ChatGPT помогает программировать нейросети
Что получим, если попросим ChatGPT сгенерировать код сверточной нейронной сети 08 февраля 2023,
Проверяем, как ChatGPT поможет программисту сгенерировать код для нейросети на Питоне Эксперименты пвроедены в феврале 2023 с использованием сервиса app.writesonic.com Чтобы получить б ... Читать полностью

Резюме к 2 главе
11 июля 2012,
1. Знания (в компьютерной системе) – закодированные некото-рым образом сведения об объектах предметной области, их взаи-мосвязях и особенностях поведения, а также о способах решения задач. Эт ... Читать полностью

Уточним понятие «прикладная информатика»
22 марта 2013,
Прикладная информатика – это высокотехнологичная, наукоемкая и инновационная сфера деятельности, использующая самые последние достижения в области информационно-коммуникационных технологий и ... Читать полностью

2.2. СИСТЕМЫ, ОСНОВАННЫЕ НА ЗНАНИЯХ
11 июля 2012,
По связи с реальным временем выделяют статические ЭС и динамические ЭС. Статические ЭС работают в областях, где знания и интерпретируемые данные не меняются во времени или период изменений дост ... Читать полностью

Тема 6. Интеллектуальные технологии в экономических информационных системах. Технологии систем, основанных на знаниях (СОЗ). ч.3
05 июня 2012,
Сама последовательность таких правил необязательно отражает последовательность рассуждений эксперта. Эти рассуждения будут организованы машиной вывода. Так, по получению задания на прогнозирование ... Читать полностью