Способ решения этой проблемы — объединить LLM с внешним инструментом. Вы можете использовать возможности вызова функций модели, чтобы определить функцию для вызова вместе с ее аргументами, а затем вернуть ответ. Ниже приведен простой пример того, как этого можно добиться с помощью API OpenAI. Когда вы передаете это определение функции как часть запроса, оно фактически не выполняет функцию, а просто возвращает JSON объект, содержащий аргументы, необходимые для вызова функции. Вот несколько фрагментов кода, как этого добиться. В частности, объект аргументы содержит важные аргументы, извлеченные моделью и необходимые для выполнения запроса. Затем вы можете вызвать внешний API погоды для получения фактической погоды. Дополнительные заметки о вызове функций с помощью LLM с открытым исходным кодом появятся скоро. Диалоговые агенты: вызов функций можно использовать для создания сложных диалоговых агентов или чат-ботов, которые отвечают на сложные вопросы, вызывая внешние API или внешнюю базу знаний и предоставляя более релевантные и полезные ответы. Понимание естественного языка: он может преобразовывать естественный язык в структурированные данные JSON, извлекать структурированные данные из текста и выполнять такие задачи, как распознавание именованных объектов, анализ настроений и извлечение ключевых слов. Решение математических задач: вызовы функций можно использовать для определения пользовательских функций для решения сложных математических задач, требующих нескольких шагов и различных типов сложных вычислений. Интеграция API: его можно использовать для эффективной интеграции LLM с внешними API для получения данных или выполнения действий на основе входных данных. Это может быть полезно для создания системы контроля качества или творческого помощника. В общем, вызов функций может преобразовать естественный язык в действительные вызовы API.
Важно то, что внедряемая часть кода профилирования одинакова для профилировщиков аналогичных типов, что означает, что нам нужно скопировать и вставить аналогичный код в тысячи мест, если нам нужно что-то изменить, нам нужно обновить то же самое. Код профилировщика в каждом файле и, вероятно, в каждой функции, требующей профилирования, повысит сложность и может стать создать полный беспорядок, впрочем мы можем избежать этого беспорядка, используя аспектно-ориентированное программирование (АОП). Короче говоря, АОП работает по шаблону проектирования прокси, хотя его можно реализовать и с помощью модификации байтового кода. Всякий раз, когда вызывается метод, мы ожидаем, что вызываемый метод будет вызываться напрямую без каких-либо промежуточных шагов, но когда AOP помещается на место, тогда вызов метода перехватывается прокси-методом, а прокси-метод вызывает целевой метод, прокси-метод возвращает результат для вызывающего абонента, как показано на рисунке ниже. Система зависит от других систем, поэтому мы можем быть заинтересованы в профилировании различных компонентов по-разному, например, вызовов базы данных, HTTP-запросов, последующих вызовов служб или некоторых конкретных методов, которые являются критическими или хотели бы увидеть, что происходит в некоторых конкретных методах.
Свои арки с колонками могли они заимствовать у византийцев. Но у арабов арка имеет совсем другое назначение, и, кажется, в этом-то всего больше является особенность мавританской архитектуры; а в архитектуре всего больше отражается народный характер. У византийцев арка несет на себе верхнюю часть здания, у арабов она служит только одним украшением, потому что у них верх здания держится не на арках, а на одних колоннах. Арка у арабов только для красоты, для ласканья глаз. По самой своей подковообразной форме эта арка бессильна что-нибудь держать на себе. У архитекторов арабских, кажется, была только одна цель — придать всему характер легкости и как бы беспрестанно напоминать о кочевом шатре пустынь. В этом именно и состоит величайшая оригинальность мавританской архитектуры, ее коренное отличие от всех других архитектурных стилей. Существенный характер ее — необыкновенная легкость и каприз, пренебрегающий всеми законами и правилами зодчества. Вероятно, отсюда происходит и такая непрочность их зданий. Перед твердыми, простыми, строгими линиями античного зодчества эта миниатюрная капризность мавританских украшении, вся эта филогранная игривость кажутся забавою милых, грациозных детей.
Но он бессильно рассыпается в прах, как только со дна души поднимается меланх
олия. И даже, хотя бы человек был совершенно свободен и обеспечен в своей душевной жизни от меланхолии, все же не подлежит сомнению, что религия душевного здоровья несостоятельна как философское учение, так как те проявления зла, существование которых оно категорически отказывается признать, составляют неотъемлемую принадлежность реальности. В конце концов, именно они дают лучший ключ к познанию смысла жизни и возможно, что, только они одни открывают нам глаза для проникновения в глубину истины. Всякая нормально протекающая жизнь таит в себе ряд моментов столь же горьких, как и те, которыми полна болезненная меланхолия, — моментов, в которых торжествует зло. Ужасные призраки, угнетающие душу безумца, все почерпнуты из материала ежедневных событий жизни. Наша цивилизация основана на безжалостной борьбе, и каждый индивидуум погибает в беспомощных судорогах одинокой агонии. Если вы, читатель, протестуете против этого утверждения, то погодите, очередь дойдет и до вас! Наше воображение с трудом верит в реальность кровожадных чудовищ древних геологических эпох, — они кажутся нам принадлежностью кунсткамеры.