From Talk to Action: How LLMs Can Act in the Real World

Dataiku
14 Nov 202352:10

Summary

TLDRВ этом видео представлены концепция и использование автономных агентов на основе больших языковых моделей (LLMs). Автор проиллюстрировал, как агенты могут преодолевать ограничения LLMs и применяться для решения реальных задач, таких как обработка запросов клиентов. Были представлены примеры и демонстрации, включая использование Python и инструментов машинного обучения для создания и улучшения стабильности агентов. Видео также обсуждает важность тестирования и адаптации агентов для их успешного развертывания в реальном мире.

Takeaways

  • 🤖 Автономные агенты - это фундаментальный аспект больших языковых моделей, которые могут взаимодействовать с реальным миром.
  • 📈 LLMs (большие языковые модели) удивительны тем, что они не только генерируют текст, но и выполняют широкий спектр задач обработки текста.
  • 🚀 Агенты могут использовать внешние инструменты, что позволяет им преодолеть ограничения, с которыми сталкиваются LLMs.
  • 🔧 Метод 'react' - это конкретный пример реализации агента, который использует структурированный подход для выполнения задач.
  • 🔄 Процесс работы агента включает в себя цикл из трех частей: анализ текущей ситуации, выбор инструмента и наблюдение за результатами использования инструмента.
  • 🛠️ Создание агента требует определения инструментов и написание Python-функций для выполнения различных действий.
  • 📚 Примеры использования агентов включают обслуживание клиентов интернет-провайдера и генерацию ответов на основе документации.
  • 🔒 Для обеспечения надежности агентов необходимо внимательно тестировать и улучшать их, а также ограничивать доступ к инструментам в соответствии с контекстом.
  • 🔄 Использование инструментов, таких как LMQL и функционирование OpenAI, помогает снизить риски форматных и существенных ошибок у агентов.
  • 🔄 Многоагентный подход может быть полезным для решения сложных задач, где различные агенты могут иметь специальные навыки и использоваться другими агентами для выполнения задач.

Q & A

  • Какие возможности автономных агентов в контексте больших языковых моделей?

    -Автономные агенты позволяют большим языковым моделям (LLMs) преодолевать свои ограничения, такие как невозможность взаимодействия с реальным миром. Агенты могут использовать инструменты и принимать решения, основываясь на текстовых запросах, что позволяет им выполнять действия от имени пользователя.

  • Какие примеры использования автономных агентов были приведены в презентации?

    -Два примера использования автономных агентов: обработка запросов клиентов интернет-провайдера (например, сброс пароля, диагностика интернет-соединения) и создание ответов на основе набора документов (например, генерация ответов по вопросам на основе текста документации).

  • Какие ограничения имеют большие языковые модели (LLMs)?

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

  • Какие основные компоненты включает в себя метод реализации агента, описанный в презентации?

    -Метод реализации агента включает в себя написание промпта с тремя элементами: запросом пользователя, описанием доступных инструментов и структурой текста для генерации. Агент работает в цикле, анализируя ситуацию, выбирая инструмент и параметры, а затем做着 observation.

  • Какие инструменты можно использовать для увеличения надежности автономных агентов?

    -Для увеличения надежности автономных агентов можно использовать мощные модели (например, GPT-3.5 или GPT-4), проводить комплексные и реалистичные тесты, использовать фреймворки для ограничения текстовой генерации (например, LMQL) и функциональность function calling, а также адаптировать набор доступных инструментов в соответствии с контекстом.

  • Какие функции были объявлены в рамках презентации для улучшения взаимодействия с автономными агентами?

    -В рамках презентации были объявлены функции для получения текущей погоды и времени. Это было продемонстрировано с помощью функции function calling, которая позволяет модели выполнять несколько функций одновременно в ответ на запрос.

  • Какие ресурсы были предложены для помощи в реализации агентов на основе LLMs?

    -Были предложены ресурсы, такие как LLM starter kit, демонстрирующий использование LMS с примерами и подробной документацией, а также блог-пост о реализации агентов. Для клиентов Datadog предоставляется возможность получения помощи от менеджеров или автора презентации.

  • Какие преимущества имеет использование Python-библиотек, таких как LChain, для реализации агентов?

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

  • Какие аспекты проекта можно повторно использовать для собственных случаев использования?

    -Большая часть Python-кода из проекта можно повторно использовать, заменив инструменты на собственные. Также можно использовать визуальные рецепты для выполнения расчетов без написания кода.

  • Как обрабатывать многоэтапные или сложные запросы с помощью автономных агентов?

    -Для обработки многоэтапных или сложных запросов автономные агенты могут использовать серию инструментов и определить последовательность действий на основе контекста и предыдущих действий. Это может включать отмену и перепланирование мероприятий или выполнение последовательности вопросов и ответов.

  • Какие инструменты можно использовать для мониторинга и анализа работы автономных агентов?

    -Для мониторинга и анализа работы автономных агентов можно использовать инструменты, такие как MLFlow, для отслеживания экспериментов и показателей эффективности, а также для визуализации траектории агента и оценки используемых инструментов.

Outlines

00:00

🤖 Введение в генеративные AI и автономные агенты

В этом разделе представлен обзор генеративных AI и автономных агентов, а также их применение в реальном мире. Рассматриваются возможности и ограничения больших языковых моделей (LLMs), а также способы преодоления этих ограничений с помощью агентов. Основная цель презентации - убедить аудиторию в важности и эффективности автономных агентов.

05:01

🛠️ Как автономные агенты преодолевают ограничения LLMs

Раздел описывает, как автономные агенты могут использовать инструменты для преодоления ограничений LLMs. Приводятся примеры использования агентов в службе поддержки клиентов интернет-провайдера, а также метод реакции (react) для обработки запросов и выполнения действий. Основное внимание уделяется структуре текста, генерируемого агентом, и способам обработки результатов действий.

10:03

🌐 Примеры использования агентов в веб-приложениях

В этом разделе представлены примеры использования агентов в веб-приложениях для решения различных задач. Описывается создание фиктивного веб-приложения на основе питон-функций, которые отвечают за различные инструменты, и демонстрация работы агента в контексте этих инструментов. Рассматриваются также другие примеры использования агентов, включая генерацию ответов на основе документов и использование семантических поисков.

15:05

🔧 Улучшение надежности и безопасности автономных агентов

Раздел посвящен методам улучшения надежности и безопасности автономных агентов. Обсуждаются проблемы форматирования и существенных ошибок, а также способы их предотвращения. Рассматриваются инструменты и подходы, такие как использование мощных моделей, тестирование, определение ограничений для текста, адаптация набора инструментов в соответствии с контекстом и включение человека в цикл для проверки действий агента.

20:06

📋 Ресурсы и рекомендации для создания автономных агентов

В заключительном разделе предлагаются ключевые сообщения и рекомендации по созданию автономных агентов. Подчеркивается низкий порог входа для создания первого агента благодаря общедоступным инструментам и библиотекам, таким как L chain. Представлены ресурсы, такие как демонстрационный проект, руководство по агентам и блоговые статьи, а также контактная информация для получения помощи от команды разработчиков.

25:10

💬 Ответы на вопросы и обсуждение возможностей

В этом разделе авторы отвечают на вопросы аудитории, касающиеся использования пакетов и инструментов, остановки генерации текста, многоагентных фреймворков, мониторинга производительности, подготовки документов для ретривал генерации, а также возможностей использования платформы для анализа запросов и категоризации данных. Обсуждаются также последние разработки Open AI и их влияние на будущее реализации агентов.

Mindmap

Keywords

💡автономные агенты

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

💡генеративные AI

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

💡большие языковые модели (LLMs)

Большие языковые модели (LLMs) - это сложные искусственные нейронные сети, способные обрабатывать и генерировать текст на основе анализа больших объемов текстовых данных. Они используются для выполнения различных задач, таких как текстовая классификация, генерация текста и взаимодействие с агентами. Однако они имеют свои ограничения, такие как невозможность знать о последних событиях или информации, которая не была включена в их обучение.

💡zero shot в контексте

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

💡few shot в контексте

Few shot в контексте - это метод обучения искусственного интеллекта, при котором модель предоставляется несколькими примерами в prompt для выполнения задачи. Это помогает улучшить результаты по сравнению с zero shot в контексте, так как модель получает дополнительную информацию для обучения.

💡реактивный метод

Реактивный метод - это подход к программированию и проектированию систем, при котором агент реагирует на изменения в окружающей среде,而不是主动寻求 действия. В видео реактивный метод используется для описания того, как агенты могут выполнять задачи на основе входящих запросов, анализа ситуации и выбора соответствующего инструмента для выполнения.

💡цикл обработки

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

💡функция вызова

Функция вызова - это механизм, позволяющий определить предварительно конфигурированные функции, которые могут быть вызваны моделью в процессе генерации текста. В видео используется для описания нового функционала OpenAI, который позволяет вызывать несколько функций одновременно, упрощая взаимодействие с агентами.

💡LML

LML (Language Model Library) - это библиотека, предназначенная для работы с языковыми моделями и агентами. Она позволяет упростить процесс создания и развертывания агентов, облегчая разработку и поддержку приложений на основе LLMs.

💡расширенная генерация

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

💡минимум

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

💡робастность

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

Highlights

Introduction to the concept of autonomous agents and their potential to overcome limitations of large language models (LLMs).

Explanation of why agents are needed and the limitations of LLMs that they can help address.

Demonstration of how agents work through two practical demos.

Discussion on making agents more robust, an essential consideration for real-life deployment.

The capability of LLMs in text generation and performing a wide range of text processing tasks.

The concept of zero-shot in-context learning and few-shot in-context learning.

Limitations of LLMs, such as ignorance of recent events, difficulty with certain tasks, and lack of real-world impact.

The idea of using tools to overcome LLM limitations, similar to how humans use tools to overcome their own limitations.

A concrete example of implementing an agent in a customer service scenario for an internet provider.

The method called 'react' for implementing an agent and its simple yet effective nature.

The importance of structuring the prompt correctly to achieve the desired outcome with an agent.

The potential for agents to be used in a variety of real-life use cases and their adaptability.

The use of frameworks like lmql and features like function calling to reduce the risk of format errors in agents.

Strategies for mitigating the risks of substantial errors in agent actions.

The low barrier to entry for building the first agent and the availability of resources for getting started.

The potential for multi-agent frameworks and the benefits of having specialized agents working in tandem.

The use of platforms like Datadog for performance monitoring and analytics of agent deployments.

The simplicity of preparing documents for retrieval-augmented generation with modern tools.

The availability of guides and resources for implementing the examples shown in the presentation.

The impact of recent developments from OpenAI on the implementation of agents and functions.

Transcripts

play00:11

all right hi guys welcome today's to

play00:14

today's generative AI boot camp session

play00:16

from talk to action how large language

play00:18

models can act in the real world we'll

play00:20

give everyone a couple of seconds to

play00:22

kind of trickle in um just a few

play00:25

housekeeping notes uh you're welcome to

play00:27

use the chat function but please leave

play00:29

your questions in the question mark

play00:31

section on the right at the end of the

play00:33

today's session there will be a short

play00:35

Q&A um Vivian I'm going to go ahead and

play00:38

pass it over to

play00:40

you thank you Joy and good morning good

play00:43

afternoon everyone I'm Vian I'm director

play00:46

of AI Consulting at theu and today I'm

play00:49

delighted to talk to you

play00:51

about let me just share my

play00:56

screen okay it's

play00:58

coming

play01:03

yeah so I'm delighted to talk to you

play01:04

today about the notion of autonomous

play01:06

agents so in my opinion it's the most

play01:10

fascinating topic when it comes to large

play01:12

language models and my personal

play01:14

objective for this presentation today is

play01:16

to convince you or at least some of you

play01:19

that it's indeed the

play01:21

case so I will start by explaining why

play01:24

we need agents in the first place and

play01:27

what limitations of llms this agents can

play01:30

help

play01:31

overcome then I will show you how agents

play01:35

actually work and I will illustrate this

play01:37

with two

play01:39

demos and I will finally talk about

play01:41

making agents more robust uh which is an

play01:45

essential consideration for deploying

play01:47

these agents in real life and then we

play01:49

can have a Q&A session based on the

play01:52

question that you can start adding in

play01:54

the Q&A

play01:56

section okay let's start with the basics

play01:59

so so we can probably all agree that

play02:02

llms are very impressive so first they

play02:05

are excellent at text generation so if

play02:09

you provide a prompt like this one they

play02:12

can suggest a coherent and credible text

play02:15

that expands on this on this prompt so

play02:18

it can look like this for example but so

play02:21

far it's not really a surprise because

play02:23

that's exactly what they have been

play02:25

trained for but what is a bit more

play02:28

intriguing is that you can do more than

play02:30

Simple Text generation you can actually

play02:33

perform a wide range of text processing

play02:36

tasks and the trick here is to write a

play02:38

prompt such that the expected answer is

play02:43

exactly the most logical continuation of

play02:45

the prompt so for example here imagine

play02:49

that you want to perform a

play02:51

text classification task uh and in which

play02:55

you want to detect the sentiment of a

play02:58

product review you can just describe the

play03:01

task and the input text in the prompt

play03:04

and then you are most likely to get a a

play03:08

relevant answer so here we would call

play03:10

this zero shot in context learning in

play03:12

context because we add all the necessary

play03:16

information in directly in the

play03:18

prompt and you can also add a few

play03:20

examples in the prompt and this helps

play03:23

get better performance and in this case

play03:25

we talk about few shot in context

play03:27

learning so all this is very useful for

play03:31

plenty of real life use

play03:33

cases but at the same time llms also

play03:36

suffer from some significant

play03:40

limitations and I'm I'm sure that you

play03:42

have already experienced some of these

play03:45

limitations by interacting with

play03:48

jgpt so first llms can know at most what

play03:52

they have been shown during their

play03:53

training so their training is mostly

play03:56

based on internet

play03:57

content um up to to certain date this

play04:01

means that llms like the one powering

play04:04

chpt for example are very likely to

play04:07

ignore recent events or non-public

play04:12

information then llms are quite bad at

play04:15

certain tasks which don't seem very

play04:18

difficult for us but for example if you

play04:20

simply ask CH GPT to add two big numbers

play04:23

it will probably fail and you can also

play04:26

ask jgpt to for example provide 10 words

play04:29

with exactly 15 letters and it's likely

play04:32

to fail for at least some of these words

play04:35

and finally and maybe it's the most

play04:37

obvious

play04:39

limitation you can send some text to an

play04:41

llm and you can get some text in return

play04:44

and this can be nice and can be useful

play04:47

but it does not have any impact on the

play04:49

real world so ideally would like AI

play04:52

assistants not only to take part in

play04:55

conversations but also to take actions

play04:58

on our behalf in in the real

play05:01

world so how can we overcome these

play05:04

limitations so actually we can do

play05:07

exactly as we do um we as human beings

play05:10

when we Face our own

play05:12

limitations and what we do we use tools

play05:16

so for example if I don't have a very

play05:18

good memory I can use a pen and a

play05:19

scratch pad if I don't see very well I

play05:22

can use a pair of glasses if I don't

play05:25

know something I can use Wikipedia or I

play05:28

can use an internet search engine and it

play05:31

can be the same for llms we can give

play05:34

them access to external tools and let

play05:38

them decide whether and how they will

play05:40

use these

play05:41

tools and in this situation the llm is

play05:45

referred to as an

play05:48

agent so let me give you a more concrete

play05:51

example so let's imagine that you're in

play05:53

charge of the customer service of an

play05:55

internet provider so you have plenty of

play05:58

customers sending requests and questions

play06:02

for example there is something wrong

play06:04

with my internet connection can you

play06:06

please help me or I forgot my password

play06:09

or I'd like to sign up to a certain

play06:13

option so you have all these requests

play06:15

from customers and at the same time you

play06:19

know technically how to reset a password

play06:21

how to activate an option for customer

play06:24

how to perform some diagnostics for an

play06:26

internet connection

play06:27

problem so you have all these tools at

play06:31

your disposal but here the challenge is

play06:34

not to actually perform this VI actions

play06:37

but to be able to properly interpret the

play06:39

requests of the customers which are

play06:41

expressed in natural language and

play06:44

English and you also need to plan the

play06:47

right sequence of

play06:48

actions so how can we do this um the

play06:52

answer is that it's actually quite

play06:55

simple um I'm I'm going to show you now

play06:58

one of the methods to implement an agent

play07:01

and this method is called

play07:04

react let's see how it works so imagine

play07:08

that we want to handle the the request

play07:10

of a customer so for example here a

play07:13

customer sends us a message uh I have a

play07:16

problem with my internet connection can

play07:18

you please solve this what we do is that

play07:22

we first write a prompt which includes

play07:25

three

play07:26

elements so of course we'll include the

play07:28

request of the customer a and

play07:31

blue but we also include a description

play07:35

of the various tools that the llm can

play07:39

use and we will instruct the llm to

play07:42

follow certain structure for the text it

play07:44

will generate so the structure is the

play07:47

loop with three parts at each iteration

play07:51

of the loop the first part is a thought

play07:55

which is an analysis of the current

play07:57

situation the second part is the choice

play08:00

of a tool and the choice of the

play08:02

parameters to use the tool and the last

play08:06

part is an observation which is the

play08:09

result of the use of the

play08:11

tool so we write this prompt and then we

play08:15

ask the lln the only thing that it can

play08:18

really do which is generating the

play08:21

continuation a completion of the

play08:24

promp so that's what we do and if we

play08:27

have done our job well and if our prompt

play08:30

is Well

play08:32

written then the text generated will

play08:34

follow the prescribed format so we'll

play08:37

have first a

play08:38

thought then we'll have an action

play08:42

requested by the

play08:43

llm so here it would be uh run

play08:48

Diagnostics um and then the llm will

play08:51

generate the word observation and here

play08:54

we know that we need to

play08:56

stop um because otherwise the LM will

play08:59

keep going and it will simply

play09:01

hallucinate the result of the action of

play09:04

course the llm cannot know the outcome

play09:07

of this action because it's not

play09:09

connected to our it

play09:10

system so it cannot know what would be

play09:14

the result here of certain diagnos of

play09:16

certain

play09:17

Diagnostics so we stop the text

play09:21

generation and now we can pass the

play09:24

purple

play09:25

segment um and we can identify the

play09:28

action that was requested so here when

play09:31

Diagnostics we can identify the input

play09:34

parameters of this action so here the

play09:36

input parameter would be the ID of the

play09:38

customer which is

play09:41

1223 and then we can perform this action

play09:45

independently from the llm using our own

play09:48

internal API of our of our it

play09:52

system and once we get the result of

play09:55

this action like this we can append it

play10:00

to all the text generated so far and we

play10:03

can send all this the green part the

play10:06

blue part the purple parts we can send

play10:09

this again to the

play10:10

llm and then the llm will just keep

play10:13

going so again it will generate a

play10:16

thought an action it will write

play10:19

observation and here again we stop the

play10:21

text generation we extract the requested

play10:25

action we identify the parameter of this

play10:27

action we per from the action outside of

play10:30

the llm we get a result and then we

play10:35

append it to all the texts generated so

play10:37

far and we do this again and again until

play10:40

we get an answer for our question and

play10:43

that's it so you see it's quite

play10:46

simple and the crazy thing that just

play10:49

doing this works pretty

play10:52

well and here there

play10:56

are when you look at this method there

play10:58

are important things to note so the

play11:01

first one is that all the details

play11:04

specific to your use

play11:05

case um in particular everything related

play11:09

to the tools that you make available to

play11:11

the agent all these details are included

play11:14

in the prompt they are not in the model

play11:16

they are in the prompt this means this

play11:19

mean that you don't need an llm that was

play11:22

specifically trained to implement this

play11:24

method or to implement your specific

play11:27

toolbox

play11:29

you just need a model that is powerful

play11:31

enough to accomplish this task so you

play11:33

can use a another the Shelf model you

play11:35

don't need to train or to fune

play11:38

anything and then um what is also

play11:42

interesting that the method is quite

play11:44

generic so you see that all the logic

play11:47

the template for your prompt um the way

play11:51

you interupt the text generation the way

play11:53

you part the message all this does not

play11:56

depend on your um on your tools on your

play12:01

specific on the specific details of your

play12:03

use case so it mean that you can reuse

play12:06

all this logic from one use case to

play12:07

another you don't need to develop it

play12:10

again every time and actually there are

play12:13

some implementation that you can

play12:15

directly use in popular python libraries

play12:19

like Lun chain so you don't even need to

play12:22

code this so at the end of the day the

play12:24

only thing that you need to specify for

play12:27

your uh on your case on your case is the

play12:32

definition of the tools and now we're

play12:35

going to to see how it works so how do

play12:39

we specify these tools so we need three

play12:44

things first we need a name and a

play12:47

description to explain in the initial

play12:50

prompt what tools are available to the

play12:54

LM the name is also used during the the

play12:58

loop

play12:59

uh to identify the actions that are

play13:02

requested by the

play13:03

LM and finally you need some code to

play13:07

perform the corresponding action when

play13:08

requested by the

play13:10

LM but in fact if you are able to write

play13:13

a python function to perform this action

play13:16

in fact you already have a name a

play13:18

description and the right code so for

play13:21

the name you can just reuse the name of

play13:24

the

play13:26

function um for the descript ion you can

play13:29

take the documentation of your function

play13:32

and um of course you can directly and

play13:36

the function itself can be the code that

play13:38

is triggered by the

play13:40

llm so at the end of the day the only

play13:43

thing you need to implement an agent is

play13:45

to be able to write python functions for

play13:48

all the actions that need to be

play13:50

performed by the llm so it's not

play13:53

difficult at

play13:54

all okay let's now see an agent in

play13:58

action with

play13:59

demo uh so I

play14:01

created um let me show you I created in

play14:04

datu several python functions that

play14:07

correspond to uh the various tools of

play14:11

the internet provider in this example so

play14:13

all this is a fictitious use case but

play14:16

basically here you can see that I

play14:19

defined some functions so there is one

play14:21

to reset pass the password of the

play14:24

customer want to schedule the visit by

play14:27

technician you can

play14:29

run some Diagnostics on an internet

play14:31

connection you can sign up to an option

play14:35

Etc um and now I can show you a web app

play14:39

that implements an agent on the basis of

play14:41

these tools so it looks like this on the

play14:45

left you can see the code on the right

play14:47

you can see the resulting web app and um

play14:52

I won't go I won't go through the code

play14:54

in detail but the only thing that you

play14:56

need to remember that it's generic so

play14:59

here this is not specific to this to the

play15:03

particular collection of tools that I

play15:04

make available to the agent

play15:06

here um so if you had to to change the

play15:10

tools you could just reuse the same the

play15:13

same

play15:14

code so now here let me try an examples

play15:18

I will say that here I have a problem

play15:20

with my internet

play15:26

connection do something

play15:30

see the results that we

play15:32

get okay should take a few seconds yeah

play15:36

so here you can see that the the agent

play15:40

uh chose a few actions so first it

play15:43

decided to run some Diagnostics on the

play15:45

internet connection it got the answer

play15:48

here and based on this outcome of the

play15:51

first action it decided as the second

play15:54

action to organize the visit by

play15:57

technician and then it understood that

play16:00

it was enough that there were there were

play16:02

no actions anymore that were necessary

play16:05

and then it drafted the following

play16:08

message let me show you another example

play16:11

so now imagine that we have organized

play16:13

this visits with the technician and

play16:16

now um for example we can can say okay

play16:21

I'm not

play16:26

available anym

play16:29

uh for the

play16:30

visit by technician on

play16:37

Monday and we please rky

play16:43

go okay let's see how it

play16:48

goes so again we see that the sequence

play16:51

of actions that were determined by the

play16:54

agent is quite logical so first it

play16:57

cancels the appoint

play16:59

M uh it gets the confirmation of the

play17:03

consolation and then it knows that it it

play17:06

needs to schedule a new

play17:10

appointment and that's what it does and

play17:12

then it know that it's uh that it's over

play17:15

and it can draft this answer which is

play17:17

relevant given the

play17:19

context so in in this example it's

play17:21

interesting

play17:22

because in uh in the way we Define the

play17:26

function we don't have a function to

play17:27

reschedule an existing meeting we have

play17:31

just given a series of tools and two of

play17:33

these tools are uh how to cancel an

play17:36

appointment and how to plan another

play17:40

appointment but we never had explicitly

play17:43

to explain to the agent that

play17:46

rescheduling corresponds to cancelling

play17:48

and to plan a new meeting uh that's what

play17:52

the the model was able to to understand

play17:54

by

play17:56

itself okay uh now let

play18:01

me let me show you another

play18:04

example of for completely different use

play18:07

case so here we imagine that we have a

play18:10

collection of documents and we want to

play18:13

be able to generate answers based on

play18:16

these

play18:17

documents so the standard approach for

play18:19

this is called retrial augmented

play18:22

generation and this is not uh based on

play18:25

an

play18:26

agent and I would will show you it works

play18:29

how it works uh and then I will show you

play18:32

an alternative so it works as follows so

play18:36

when you receive a question you don't

play18:38

directly send it to the llm like this

play18:41

you first perform a semantic

play18:45

search to retrieve the relevant

play18:47

paragraphs in your collection of

play18:50

documents and then once you have these

play18:52

chunks these paragraphs from your

play18:54

initial collection documents you add

play18:57

these chunks along with the with the

play19:00

question in a prompt that you sent to an

play19:04

llm so basically your prompt is

play19:06

something like given the following facts

play19:09

and then you put the relevant

play19:11

paragraphs answer the following question

play19:13

and then you put your

play19:15

question so it works to a certain extent

play19:18

but there are two problems with this

play19:21

approach the first one is that the user

play19:25

question might not be the right query

play19:27

for the semantic search

play19:28

so imagine that you are in the context

play19:30

of a conversation and there are already

play19:33

sever messages and the last message of

play19:36

the user can be something like tell me

play19:39

more and in this case it won't be very

play19:42

useful to do a semantic search based on

play19:45

this sentence uh because of course you

play19:47

need to take into account all the

play19:48

previous context of the conversation

play19:51

just tell me more is not very

play19:53

meaningful and then depending on the

play19:56

question you might need to perform

play19:59

either zero one or maybe several

play20:03

searches so for example that can be

play20:06

basic questions like if the user asks

play20:09

how are how are you you don't need to do

play20:11

a semantic search to answer this

play20:14

question there can be some multihub

play20:17

questions so questions um for which

play20:21

actually you need to perform several

play20:23

queries sequentially so imagine imagine

play20:27

this question what are the main actors

play20:29

of the latest movie of Martin's sces

play20:32

first maybe you need to find what movie

play20:36

it is and then you can ask about the

play20:39

actors so here you would need to ask

play20:40

these questions

play20:42

sequentially and sometimes

play20:44

also um you can have in fact several

play20:48

questions in just one question so in

play20:51

this case for example what are the

play20:52

populations of Belgium and the

play20:54

Netherlands maybe you want to ask two

play20:56

questions in parallel

play20:59

and as you have probably guessed by now

play21:02

a good

play21:03

alternative uh for for this approach is

play21:06

to use an agent to which uh you give the

play21:10

conversation history as an input and

play21:14

then you make available to this agent a

play21:18

single tool which is which is a Ral tool

play21:21

which converts a query into a collection

play21:23

of chunks and then you let the agent

play21:26

define whether to use the

play21:28

documents or not and you let the agent

play21:32

choose the search query it wants to

play21:35

use so let me show you how it works in

play21:40

that

play21:42

I okay so here I have a a collection of

play21:47

documents like this so there

play21:50

are uh several documents that are all

play21:53

related to biodiversity there is a

play21:55

report like this and then there is a

play21:58

Wikipedia page like this and then two

play22:01

other Wikipedia pages but in other other

play22:04

formats just just for the

play22:07

fun okay and then here you do something

play22:13

which is not necessarily very

play22:16

important um to to explain detail but

play22:20

basically what you do here that you do a

play22:22

pre-processing of the documents to be

play22:24

able to do some semantic search and then

play22:27

once you have done

play22:28

this

play22:30

then you can use it in the context of

play22:33

this web app so here for example if I

play22:36

ask a question which is very specific to

play22:38

the collection of

play22:40

documents for

play22:42

example what does

play22:45

itbs

play22:48

104

play22:51

this here I can get an answer including

play22:53

with

play22:54

the with the relevant extracts of my

play22:57

documents

play22:58

but then if I say for example can

play23:02

you provide more

play23:06

details like

play23:10

this yeah so here it understood that uh

play23:15

given the context of the whole

play23:18

conversation uh you should not do a

play23:20

semantic search with can you provide

play23:22

more details but most likely it did

play23:25

semantic search based on ipbs so look at

play23:28

tring the logs to see what were the

play23:31

queries so the first query here was let

play23:35

me check okay

play23:37

so for the first question it used the

play23:41

Search tool which is the only tool

play23:43

available here and it read this query

play23:46

and for the second

play23:47

tool it rephrase the question of the

play23:51

user and ask for this semantic search

play23:55

and then it was able to find a relevant

play23:57

answer and to provide provide the

play23:59

corresponding

play24:02

sources okay so that's um yeah so that's

play24:06

another way to to use an

play24:10

agent okay so all this looks uh very

play24:13

good and hopefully you already have some

play24:16

ideas about how you can use agents in

play24:18

your

play24:19

organization but we should also be

play24:21

mindful that agents can make mistakes

play24:25

and that these mistakes can be quite

play24:27

consequential

play24:28

because by Design we allow the agent to

play24:32

perform some actions

play24:34

autonomously so we should then be very

play24:37

cautious and we should make significant

play24:40

efforts to make sure that these agents

play24:42

are as robust as

play24:44

possible so here we want to avoid both

play24:48

format errors and substantial

play24:52

errors format errors can be the

play24:54

situations where the llm deviates from

play24:58

the expected structure you know with the

play25:00

loop with the thoughts the actions the

play25:03

observations and format errors can be

play25:05

also situation in which the llm simply

play25:09

invent a tool that does not

play25:13

exist um and if you have these format

play25:15

erors um it can prevent the agent from

play25:19

giving an

play25:20

answer and there can be also substantial

play25:24

errors so here maybe the llm can

play25:27

perfectly comply with the expected

play25:29

format but the actions taken will not be

play25:33

adequate given the

play25:35

context so how can we minimize the risk

play25:38

of Errors so first and it works for both

play25:43

format errors and substantial errors

play25:46

it's important to use models that are

play25:48

powerful enough for example GPT 3.5 or

play25:52

GPT

play25:54

4 at the end of the day um

play25:58

leveraging virus tools being able to

play26:01

determine the right course of action

play26:03

it's it's quite demanding from a

play26:05

cognitive perspective so it makes sense

play26:08

that uh the performance for these agents

play26:11

is quite dependent on the on how

play26:14

powerful the models

play26:15

are so of course it's also important to

play26:19

perform tests that are as comprehensive

play26:21

and realistic as

play26:23

possible and now if we focus on form

play26:26

materials so we can use various

play26:29

technical tricks to constrain the text

play26:32

generation and I will say a bit more

play26:35

about this in a

play26:37

minute then when it comes to Mi

play26:39

mitigating the risks of substantial

play26:43

errors so um so it can involve for

play26:47

example iterating on all the

play26:50

texts uh defining the tools so you have

play26:55

first the description that are in in the

play26:58

prompts but you have also the results

play27:01

return by the tools and the messages

play27:04

which are sent to the LM so all these

play27:06

texts are read by the llm so you might

play27:09

need to tweet them to make sure that

play27:11

they are well understood by the

play27:15

llm okay you can also um restrict on the

play27:20

Fly the tools that are provided to the

play27:23

agent and for this you need to take into

play27:26

account the context

play27:28

and I will also say a little bit more

play27:30

about this later and finally you can uh

play27:35

either put a human in the loop and make

play27:37

sure that there is someone to validate

play27:39

the actions suggested by the

play27:41

llm or if you have try to implement your

play27:45

your agent and you have performed all

play27:49

your tests and then you realize that

play27:51

certain tools are not well understood by

play27:54

by the agents then at the end of the day

play27:57

you can see simply remove these tools if

play27:59

they are too um too risky to

play28:05

use okay so I'd like to show how we

play28:08

can um use some high level Frameworks to

play28:13

reduce the risk of format erors so one

play28:16

of these Frameworks is called

play28:20

lmql and it's a great tool to Define

play28:23

constraints on the text generated by an

play28:26

LNM so in a nutshell um without giving

play28:30

you too many deta details when you use

play28:32

lmql sorry you write queries that

play28:36

specify what the prompt and the text

play28:38

generated will look like so that's the

play28:41

green and purple Parts

play28:43

here and the purple Parts in Brackets

play28:47

are actually the parts that are

play28:49

generated by the

play28:52

LM you can also select a model and this

play28:55

is the yellow part and you can can

play28:57

Define the constraints to apply to the

play29:00

text generated by the llm and this is

play29:03

what is in Orange on the

play29:06

left and this is very useful because it

play29:09

gives fine brain control over the text

play29:12

generated by the

play29:13

LM and in the case of

play29:16

Agents uh it's very useful because you

play29:19

can make sure that you don't deviate

play29:21

from the expected formats so the query

play29:24

that you see on the screen would be

play29:27

enough to implement an agent and you can

play29:29

see that it's at the same time very

play29:32

concise and very easy to read and here

play29:35

we have a guarantee that um the the text

play29:39

generated by the llm will precisely

play29:42

follow the structure that we

play29:46

expect okay another cool trick is the

play29:49

use of um recent feature um announced by

play29:55

openai in June and it's called function

play29:57

calling so it's specific to certain open

play30:00

a models like GPT 3.5 turbo or

play30:05

gp4 and the idea that when you send the

play30:08

compleation query to open AI you can

play30:12

Beyond providing the prompt you can also

play30:14

optionally specify one of one of several

play30:18

functions and for each function you

play30:20

describe the purpose of the function in

play30:23

natural language in text and the format

play30:26

of its input

play30:28

for example if you if you look at this

play30:30

example we Define a function to get the

play30:34

current weather and we specify that we

play30:37

expect two

play30:39

inputs um a

play30:41

location and the measurement unit here

play30:45

whether it's Celsius degrees or

play30:47

Fahrenheit

play30:49

degrees and if you have specify this

play30:51

function then the open API can answer

play30:55

with a call of this function

play30:57

and in this case it will provide the

play31:00

inputs for this function so that's what

play31:02

you see on the right and it's very it's

play31:05

clearly very useful for agents and with

play31:08

this we are not 100% sure that the the

play31:12

expected format will be complied with

play31:14

but it's much more likely that if than

play31:17

if you don't use this

play31:22

feature okay so what I've shown you

play31:25

before so using Frameworks like lmql or

play31:29

a feature like function cing this is

play31:32

helpful for format errors but now I can

play31:34

tell you more about a way to reduce

play31:38

substantial errors so the idea here is

play31:41

to adapt on the Fly the set of tools

play31:44

made available to an agent and to do so

play31:48

we take advantage we we do this on the

play31:50

basis of the context so for example if

play31:53

you know that the request form comes

play31:56

from a certain customer

play31:59

instead of giving the agent a very

play32:02

generic toolbox you can give the the

play32:06

agent a restricted toolbox that can only

play32:09

impact the the account of this specific

play32:14

customer uh so maybe the agent will make

play32:18

some mistakes so it's it's still

play32:20

possible but we know for sure that at

play32:22

least there won't be any side effects um

play32:26

that will affect any other

play32:28

customer another example would be to not

play32:32

include tools corresponding to services

play32:35

that are not available for certain

play32:37

customer for example services to which

play32:39

this customer is not

play32:40

eligible so the idea that in general you

play32:44

should not give the agent more

play32:46

flexibility that it needs to process the

play32:48

current

play32:49

request okay so that's all I wanted to

play32:52

say about making agents more

play32:55

robust so before we move on to the Q&A

play32:58

part of the webinar like to share with

play33:01

you some key

play33:02

messages so first the barrier to build

play33:07

the first agent is quite low and there

play33:09

are two main reasons for this so the

play33:12

first one is that the overall mechanism

play33:15

for an agent is generic and on top of

play33:19

this it has already been implemented in

play33:21

software libraries like L

play33:23

chain and the second reason is that you

play33:26

can use of the Shelf model like GPT 3.5

play33:29

GPT 4 and you don't need any kind of

play33:32

fine tuning you just need to define the

play33:35

tools for your

play33:37

agent and even this is not very

play33:40

complicated so my invitation for you

play33:43

would be to build an agent today or

play33:46

tomorrow maybe and it's not unrealistic

play33:49

to imagine that you can have a first

play33:51

working prototype in literally a few

play33:55

hours

play33:57

having said that even if it's easy to

play34:00

create a first prototype you shouldn't

play34:03

underestimate the efforts to deploy your

play34:06

agent in real

play34:07

life you will need some time to test it

play34:10

to improve it um yeah you need to to

play34:14

make sign significant effort before you

play34:17

are confident that you can actually put

play34:20

it in front of real

play34:22

users and to help you with your agent

play34:26

use cases that I has shared several uh

play34:29

resources online so there is a section

play34:33

on agents in our llm guide book the demo

play34:37

that I showed you is available online so

play34:39

you can download it you can reuse it for

play34:42

your own use cases and we also recently

play34:45

recently published a blog post on how to

play34:47

implement agents in that

play34:50

t and finally I'd like to say that if

play34:53

you're dataq customer and if you have a

play34:56

very concrete use case in mind we might

play34:59

be able to help so don't hesitate to

play35:02

contact us you can can contact either

play35:05

your customer access manager or you can

play35:07

contact me with the email on the slide

play35:10

and we'll be very happy to discuss uh

play35:13

and see how we can

play35:15

collaborate so thank you very much for

play35:17

your attention and I welcome your

play35:20

questions thank you Vivian for uh for

play35:22

that presentation uh as always uh I

play35:25

learned a lot listening to it hi

play35:27

everyone my name is Kurt I'm a colleague

play35:29

of Vivian and joy and I'll just be

play35:31

reading off some of the questions for

play35:33

for Vivian so Vivian currently the uh uh

play35:36

the most highly upvoted uh question is

play35:39

about the the packages that were being

play35:41

used uh in some of the different uh code

play35:43

that we saw specifically about Lang

play35:45

chain was that in there somewhere and uh

play35:47

but also more generally what were uh

play35:49

were the packages that you were

play35:51

using I think that L chain is a very

play35:54

very good tool to to put type agents

play35:58

because you you almost don't need to do

play36:01

anything you can just Define your tools

play36:03

and then you can use various um types of

play36:07

Agents so I would say that's a very good

play36:09

starting point then if you need to do

play36:12

some adjustments sometimes it's a bit

play36:14

difficult because you don't have all the

play36:15

flexibility sometimes you need to look

play36:18

look at the code of long chain so it

play36:20

might be a bit difficult but at least

play36:22

for your initial prototype L chain is a

play36:25

very good option

play36:27

cool very clear uh the next question uh

play36:30

is about the react example that you gave

play36:32

at the uh the beginning of the

play36:33

presentation you mentioned that you are

play36:36

stopping text generation at the uh uh

play36:38

the observation so it doesn't start

play36:40

generating that itself um how did you do

play36:42

that yeah actually it's quite simple let

play36:45

me just find the right slide which is

play36:50

this one so actually in the for example

play36:54

if you use the open API there is a

play36:57

parameter when you send a text

play37:00

completion query you can specify certain

play37:03

stop wordss so here what you would do is

play37:06

that you would say um stop

play37:10

equal um observation column and then if

play37:14

you do this then the when you send the

play37:17

prompt uh the open a API will stop

play37:20

generating text as soon as it has

play37:22

generated observation

play37:24

col okay very clear

play37:27

um and then the uh the next question uh

play37:29

that we have is about a multi-agent

play37:32

framework is it possible and beneficial

play37:34

um or is it better just to stick with

play37:36

one uh one agent which has access to

play37:39

chains yeah that's a very nice question

play37:43

um actually you can imagine that

play37:49

um um you can imagine that um you can

play37:54

create an agent and then you can use it

play37:58

as a tool by another agent so you can

play38:01

imagine to have various agents which

play38:04

have uh very some specific skills and

play38:08

that are good at certain things and then

play38:10

you can have an agent which is a kind of

play38:13

orchestrator which can select which

play38:15

agent to

play38:16

call a bit like in a team of human

play38:19

beings you know there is a that can be a

play38:21

manager and that can be various

play38:23

resources and each has um

play38:27

specialty it can make sense in

play38:29

particular

play38:30

if you know that you have a limited size

play38:35

for the context window for the prompt so

play38:37

you it would be sometimes can be

play38:40

difficult to include everything so it

play38:42

can be difficult to imagine to have a a

play38:44

generate agent which has access to a

play38:47

very very wide library of tools so it

play38:49

can be better to First detect what

play38:52

problem we want to address and then to

play38:55

send it to the right agents so it it can

play38:57

make a lot of sense to indeed Define um

play39:00

multi multiple spe specialized agents

play39:04

okay yeah there are very interesting

play39:06

papers about this about that okay that's

play39:08

great um I'm sure our audience might be

play39:10

interested in some of those papers so I

play39:11

think we we'll see if we can get some

play39:13

links for the uh for the followup um we

play39:15

did get a couple more questions just now

play39:17

which is great so uh to the audience

play39:18

please do continue to uh to submit them

play39:21

um one of the questions is about scaling

play39:24

up these uh these deployments and are

play39:26

there particular tools or Frameworks

play39:28

that you would like to remend for

play39:29

recommend for performance

play39:35

monitoring

play39:39

um yeah what what I can show you is um

play39:44

actually in in the coup how we can do

play39:48

this

play39:49

so here we implement the

play39:52

agent um in this demo it's here in this

play39:56

part

play39:57

part and what we do is that we use ml

play39:59

flow to perform some experiment tracking

play40:03

so we keep we keep track of everything

play40:05

that happens every time there is a new

play40:07

iteration of the of the loop every time

play40:10

we use a tool we track everything and

play40:12

then we can follow this in experiment in

play40:17

the experiment tracking part of the co

play40:20

so that's what we do

play40:23

here so here we can have various

play40:25

indicators like the number of tools that

play40:27

are used for example for each

play40:31

um um here for each query and then we

play40:36

can also for a

play40:38

certain uh trajectory of an agent we can

play40:41

look at all the details like uh what

play40:45

were the value steps and how the Valu

play40:46

tools were used so that's something that

play40:50

that IQ users can use out of out of the

play40:53

box so it's already something that is

play40:55

useful

play40:57

um and then I'm actually I'm not sure if

play41:02

there are some specific

play41:04

um packages that are useful for

play41:08

monitoring agents it's possible it

play41:11

change it so much but uh I would say

play41:13

it's a very good starting point to use

play41:15

experiment tracking or if you if you if

play41:18

if you're not a data user you can use ml

play41:20

flow and now there are certain there are

play41:23

new features of ml flow that are

play41:25

dedicated to to to

play41:28

LMS very clear okay um the next question

play41:32

that we have is about the uh retrieval

play41:35

uh augmented Generation Um and

play41:37

specifically what's the level of effort

play41:39

required to prepare your own documents

play41:41

to be used uh so specifically um how

play41:44

hard is it to do that Vector

play41:45

vectorization step um and uh I guess you

play41:48

may want to add in there maybe there's

play41:50

pre-processing as well OCR uh which may

play41:52

be required even before vectorization

play41:55

yeah so so actually it's um it's quite

play41:59

simple today because there are very good

play42:02

tools available so for example you can

play42:05

use tools like long chain and other

play42:09

tools or L index or

play42:11

unstructured to uh to perform the

play42:14

valious steps to prepare to do all this

play42:17

preprocessing so there are VAR steps

play42:19

first you need to extract the text from

play42:23

the

play42:24

documents then you need to split the

play42:27

documents in small

play42:29

paragraphs then you need to vectorize

play42:32

this chunks so you need to find a vector

play42:36

representation of these uh chunks that

play42:39

correspond to their

play42:41

meanings and then you need to index it

play42:44

so that you can easily do a sematic

play42:46

search so what you can see on the screen

play42:49

here is two ways to do this in

play42:53

the um so for example here we just use

play42:56

long

play42:57

chain to do everything to do

play43:01

the uh the vectorization the the

play43:04

indexing so since we use long chain it's

play43:07

actually quite simple so yeah it's a few

play43:10

dozen lines of code

play43:12

and it could be even simpler because

play43:15

here for example we try to make sure

play43:17

that if we have

play43:18

already done uh the indexing from some

play43:22

documents and if we want to do it with

play43:25

an updating of collection of documents

play43:26

we don't do twice the indexing for the

play43:30

document that we have already indexed

play43:31

like something like this but if we so it

play43:35

can be even simpler than this so it's

play43:38

quite straightforward to do

play43:40

it and if you use that I it's simpler

play43:43

because you don't even need code you

play43:45

just need what we call Visual

play43:47

recipes um which don't need a single

play43:50

line of code so here for example you

play43:52

just do the text extraction from the Val

play43:56

documents uh then you get

play43:59

here um a table with the with the

play44:02

content of the document and then based

play44:04

on this you

play44:06

can directly do the the splitting and

play44:09

the vectorization in just one step just

play44:12

with a few parameters that you need to

play44:14

specify and then you can you can use

play44:16

this to do your viral search so actually

play44:20

this is very nowadays it's very simple

play44:23

to do this um pre-processing Step for

play44:26

rment in

play44:28

generation okay very clear um next the

play44:32

next question that we have up is uh

play44:34

given all these examples that we've seen

play44:36

uh do we have any guides that uh people

play44:38

can follow along to implement these

play44:40

examples themselves and I know we're in

play44:42

the llm starter kit yeah yeah sure so

play44:46

this uh this project it's a public demo

play44:49

of um of using that LMS with

play44:52

theu and it's pretty extensively

play44:56

documented so you have a lot of

play44:58

explanations for the various parts of of

play45:00

the

play45:01

flow and you can download the the

play45:06

project so you need to to use the for

play45:10

base uh and then you can import it on

play45:12

your instance you you have here

play45:15

the the specifications of the code

play45:18

environments Etc so you have all the

play45:19

technical prequisites and based on this

play45:22

you should be able to to to use the demo

play45:26

I showed you um for your information

play45:30

also and it's um what we have

play45:36

here so we also have this guide

play45:39

book uh that presents all the Notions

play45:44

interesting to to understand the

play45:47

project and yeah based on this you

play45:50

should be able

play45:51

to yeah to implement these use cases

play45:54

very easily so basically here if you

play45:57

want to do the same but with your own uh

play46:00

with your own tools you would just need

play46:03

to to go to the library and just to to

play46:07

replace these tools by your own

play46:10

tools and then in the code which is

play46:14

here uh you just need to replace these

play46:17

tools by Yeah by your

play46:20

own here you replace these tools by your

play46:23

new tools and it will work if you don't

play46:26

use data it's fine because with the link

play46:31

that was in the latest slide

play46:34

um show

play46:37

you so here you will end up here and

play46:43

then you will be able to to look at the

play46:45

python

play46:46

recipes and you will be able to recycle

play46:49

maybe 90% of the of the Python code so

play46:52

even if you don't use that I you will be

play46:54

able to to to start from there that's

play46:58

great thank you uh so we received a

play47:01

question in the uh in the chat um and so

play47:03

I think it's referring back to the um uh

play47:05

the customer support use case uh that

play47:07

you showed so having done you know that

play47:09

uh that automated generation of

play47:11

responses I think the question is

play47:13

actually about can we do basic analytics

play47:15

then on the um on the nature of

play47:16

questions we've received and so on um

play47:19

and I think that's probably one of the

play47:21

the advantages of using a platform like

play47:22

uh like da I is probably can uh do you

play47:25

want to do you want to talk about that

play47:26

with you yeah sure so of course you can

play47:27

log all the requests and then I would

play47:30

say it's a different use case it's a use

play47:32

case of being able to classify the

play47:35

questions in various categories either

play47:38

categories that you have predetermined

play47:40

or categories that you want to generate

play47:42

on on the Fly and it's something yeah so

play47:46

you can use

play47:47

um either um you can find un model for

play47:51

this categorization or you can just use

play47:53

an llm for this as well and actually

play47:56

that's more or less what we do in other

play47:58

parts of this um sample

play48:02

project so for example

play48:06

here that's exactly what we do so we

play48:08

have product review so it's it's

play48:10

different so here we are talking about

play48:11

product reviews but you can imagine that

play48:13

this could be your uh customer

play48:16

requests and here we have product

play48:18

categories and we want to be able to

play48:20

classify

play48:21

this um these product reviews and these

play48:25

categories so so you could do the same

play48:26

with your customer requests and then

play48:29

with the various categories that you

play48:30

have defined and then you can just use

play48:33

an llm it will be quite straightforward

play48:35

you could just Define here the LM that

play48:38

you want you can Define the vales

play48:40

classes you can provide some examples uh

play48:43

and it would be better in terms of

play48:45

performance and then if you do this then

play48:47

it will

play48:48

be easy to get a a data set like this

play48:53

with your predictions and even maybe

play48:56

some explanations about your predictions

play48:59

so yeah it's it's quite straightforward

play49:01

to to do this very cool um we got a qu

play49:05

another question in the chat uh this one

play49:07

is uh more uh about recent developments

play49:09

and specifically open AI uh Dev day um

play49:13

and whether their announcements

play49:15

regarding agents and functions uh will

play49:17

change how this might be implemented in

play49:18

the future um I don't know Vivian if

play49:20

you've had a chance to look at that in

play49:21

enough detail but if you have um I think

play49:24

the audience would would be interested

play49:26

on on your take um how will that uh you

play49:28

know is open AI replacing Lang chain in

play49:30

some way with uh with some of these

play49:33

capabilities um yeah so it doesn't

play49:38

change a lot compared to what has

play49:40

already been announced in June with this

play49:42

new function calling feature so I would

play49:44

say that the specific feature that was

play49:48

um announced on Monday was um um an

play49:54

incremental Improvement so the idea is

play49:56

that instead of giving the possibility

play50:00

to the model to call one function it can

play50:03

call um several functions at the same

play50:06

time so for example if you have a

play50:08

question so in the example that I showed

play50:11

you we have something like

play50:15

um something to get the weather and you

play50:17

can imagine something else for example I

play50:20

don't know get get the time for example

play50:24

and if you ask in in a single question

play50:26

if you ask for the time and the weather

play50:29

at the same time now it's possible to do

play50:31

both action at the same time so I'm not

play50:34

sure it Chang changing a lot in any case

play50:38

I think that it will still be useful to

play50:40

have um L chain as a wrapper around this

play50:45

because any

play50:46

case the function calling feature of

play50:49

open AI just is responsible all just to

play50:53

call one tool or just one iteration so

play50:57

any case you still need all the

play50:59

orchestration all the react Loop you

play51:01

still need this and it's not provided

play51:06

in with with

play51:08

open well very clear uh thank you for

play51:11

the uh uh for the hot take on uh open a

play51:14

latest uh uh developments so that's it

play51:18

uh that's everything that we have for uh

play51:19

for the questions um so I think at this

play51:22

point uh uh we can thank you uh Vivian

play51:24

for for the presentation um and of

play51:27

course thank you to uh to all the

play51:28

attendees for uh for tuning in um as Joy

play51:31

said at the uh the outset we'll be uh

play51:33

sharing the content uh and uh some of

play51:35

the links uh afterward um and thank you

play51:38

of course to everyone who uh who asked a

play51:39

question these were uh these were great

play51:41

questions so thanks to uh thanks to

play51:43

everyone and just for your information I

play51:46

put at the at the bottom of the de of

play51:50

the slide I put the link to the deck so

play51:52

you can just copy paste it if you want

play51:54

to retrieve the the slides okay perfect

play51:58

that's great thank you so much for uh

play51:59

for that Vivian and once again thank you

play52:01

for uh for the presentation thank you

play52:03

very much bye

play52:08

everyone

Rate This

5.0 / 5 (0 votes)

Related Tags
AIавтономные агентыGPTприменениетехнологииразработкаинновацииискусственный интеллектAI-консультированиеобработка текста
Do you need a summary in English?