📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Build & Deploy a Python AI Agent in 20 Minutes

Tech With Tim23:16

Transcription

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

Хорошо. Итак, первое, что я быстро хочу рассмотреть, — это архитектура и различные инструменты, которые мы здесь будем использовать. Как только мы это поймем, мы перейдем к настройке, и я проведу вас через точный учебник. Теперь, если мы хотим что-то развернуть, обычно нам нужно знать, что мы хотим развернуть. Вы можете создать простого ИИ-агента на Python, но один из самых простых способов получить к нему доступ, если вы не находитесь на своем локальном компьютере, — это через что-то вроде веб-сайта. Итак, для этого видео мы создадим простой веб-интерфейс для взаимодействия с нашим ИИ-агентом, точно так же, как у вас был бы для чего-то вроде чат GPT. У нас будет простая чат-бокс, и у нас будет возможность ввести запрос, по сути, отправить сообщение агенту, а затем получить ответ.

Теперь, чтобы сделать это, мы будем использовать различные инструменты. Первый инструмент, который мы будем использовать, — это Fast API. Это позволит нам создать очень простой API, чтобы мы могли общаться с нашим агентом из этого веб-интерфейса или даже из другого интерфейса, если мы захотим создать его в будущем. Нам также нужен агент. Итак, для агента мы будем использовать OpenAI. Это будет наш LLM. Так что у нас будет ключ API OpenAI, который я объясню позже. Мы будем использовать LangChain, и мы будем использовать его в сочетании с LangGraph, который позволяет нам создать очень простой агент, вызывающий инструменты, который может фактически взаимодействовать с миром и выполнять действия. Затем внутри Fast API мы будем использовать очень простой HTML-шаблон и немного кода JavaScript, который вы можете просто скопировать по ссылке в описании, что позволит нам взаимодействовать с нашим серверным API. Итак, то, что фактически обслуживает нашего ИИ-агента, и мы развернем все это с помощью Vercel, который полностью бесплатен, может быть автоматизировано и очень легко настроено.

Хорошо, это инструментарий. Теперь я перейду в редактор кода/IDE. Мы начнем настройку, и оттуда продолжим. Итак, чтобы начать здесь, откройте любой редактор или редактор кода, который вам нравится. И просто создайте и откройте новую папку. В моем случае я просто открыл здесь папку под названием Deploy AI Agent. Теперь, прежде чем мы сможем выполнить всю эту настройку, нам нужно убедиться, что на нашем компьютере установлен Node.js. Вы увидите, почему через секунду. Итак, вы можете скачать его по этой ссылке прямо здесь. А затем мы установим инструмент Vercel CLI. Теперь этот инструмент позволит нам развернуть наше приложение напрямую из командной строки. Так что вам не нужно будет создавать что-то вроде нового репозитория GitHub, если вы не хотите этого делать.

Теперь я предлагаю создать новую учетную запись на Vercel. Я оставлю ссылку на нее в описании. Опять же, это бесплатно. Это очень просто сделать. И затем, как только вы это сделаете, мы перейдем сюда, где написано "Установка Vercel CLI". Измените это на npm, который мы теперь установим, если мы установили Node.js. Мы просто скопируем эту команду, а затем вернемся в наш терминал. Итак, я просто открою его внутри курсора и просто вставлю это. Итак, npm install -g, что означает глобально, а затем Vercel, и это установит для нас инструмент CLI.

Хорошо, это только что было установлено. Теперь, когда мы это сделали, мы просто наберем команду Vercel, чтобы убедиться, что она работает. Если вы используете это впервые, она попросит вас войти и перейти в браузер. Так что войдите в свою учетную запись Vercel, а затем вы можете просто выйти из этой команды. Итак, я просто нажму Ctrl+C, что просто завершит эту команду, потому что я уже вошел в систему и установил этот инструмент в прошлом.

Хорошо, теперь мы вроде как полностью настроены с Vercel. Мы перейдем в каталог, где мы хотим создать наш проект. Итак, в данном случае я нахожусь в этом Deploy AI Agent. Я запущу команду, которая является Vercel init, а затем Fast API. Теперь, когда я это сделаю, он просто создаст для меня шаблонное приложение Fast API в этом проекте Fast API. Я просто скопирую содержимое этого и просто перемещу это в корень этого каталога. Так что я просто удалю эту папку Fast API. Так что, по сути, у меня все это в этой папке Deploy AI Agent. Вам не нужно этого делать, но я просто хочу иметь это в одном каталоге. Я не хочу всех этих вложенных каталогов. Так что я просто вытащил все эти файлы в мой основной каталог Deploy AI Agent.

Хорошо. Итак, отсюда вы увидите, что у нас есть этот файл main.py. Мы можем просто зайти сюда и удалить все на данный момент, потому что мы напишем это с нуля. То же самое с README. Нам это не нужно, так что мы можем просто удалить его.

Идеально. Теперь давайте продолжим остальную часть настройки после краткого слова от сегодняшнего спонсора видео, boot.dev. Это онлайн-платформа обучения, разработанная специально для разработки серверной части, и она подходит к обучению гораздо более интерактивно, чем обычные курсы, основанные на видео. Вместо того, чтобы заставлять вас часами сидеть на лекциях, boot.dev сразу же погружает вас в практическое кодирование. Вы будете работать прямо в браузере, создавая реальные проекты, изучая основы серверной части, такие как API, базы данных и серверная логика, используя Python и Go. Теперь, что отличает ее, так это то, как она заимствует из игрового дизайна. Вы будете продвигаться по уровням, открывать новый контент и поддерживать свой импульс. Платформа наполнена упражнениями и практическими задачами, так что вы напишете много кода, что именно и помогает вам совершенствоваться. Теперь весь основной контент доступен бесплатно. И если вы решите оформить годовой план, вы можете использовать код tech with Tim, чтобы получить 25% скидку на первый год. Я сам недавно проходил его, и, честно говоря, он на удивление затягивает. Спасибо boot.dev. Теперь вернемся к делу.

Хорошо, теперь мы перейдем к нашему файлу requirements.txt, и мы просто добавим различные пакеты Python, которые нам понадобятся здесь для остальной части видео. Итак, мы скажем, что нам нужен Jinja2. Это движок шаблонов, извините, для Fast API, который позволит нам фактически отображать код HTML на экране. У нас будет Langchain, потому что мы будем использовать его для нашего ИИ-агента. У нас также будет Langchain OpenAI, который позволит нам использовать пакет OpenAI. У нас будет LangGraph. А затем у нас будет python-dotenv, который позволит нам загружать переменные среды. Теперь, когда все это установлено, мы готовы к работе, по крайней мере, в requirements.txt. И мы можем закрыть это.

Хорошо. Хорошо, мы создадим новый файл здесь под названием agent.py. И мы сначала напишем ИИ-агента. Затем мы напишем своего рода серверную часть или API, который будет обслуживать ИИ-агента, чтобы мы могли его развернуть. Так что я просто скопирую несколько фрагментов кода здесь. Я объясню их, но я не думаю, что мне слишком ценно писать их построчно. И если вам нужен этот точный код, у меня будет ссылка на репозиторий GitHub ниже, который вы можете проверить, где вы можете просто скопировать весь код.

Хорошо. Итак, я импортирую свои импорты здесь, потому что мы будем создавать агента на Python. Мы импортируем ChatOpenAI, который будет использовать OpenAI LLM. Мы импортируем Tool, потому что мы сделаем его агентом, вызывающим инструменты, который имеет возможность выполнять некоторые действия. А затем мы будем использовать LangGraph, который просто является самым простым готовым агентом, который мы можем импортировать, который автоматически сможет вызывать инструменты.

Теперь, поскольку я говорю об инструментах, я хочу начать с них. Теперь инструмент в нашем контексте — это просто некоторая функция, которую агент сможет вызывать. Это очень просто, но я могу просто скопировать два инструмента, которые выглядят так. И это простые функции, у которых есть строка документации, а также аннотированные параметры, которые объясняют, что они делают. Итак, у нас есть инструмент под названием read_note. Что это делает, очень просто открывает файл и пытается прочитать заметку. Хорошо? Затем у нас есть write_note. Что это делает, открывает файл и пытается добавить некоторый контент в файл. Так что я просто показываю вам два действительно базовых инструмента, где у нас есть агент, который сможет теперь читать заметки и записывать заметки. Так что мы можем как бы хранить некоторую информацию постоянно. Это самый базовый инструмент, который вы можете создать. Вы можете изменить их и создать свои собственные, следуя этому точному формату. Вы декорируете функцию этим декоратором @tool, который мы импортировали здесь. Назовите ее чем-то разумным, потому что LLM будет смотреть на это имя, чтобы узнать, следует ли ее вызывать или нет. Напишите описание того, что делает инструмент, внутри строки документации, как эта. а затем укажите типы параметров, например, что инструмент будет принимать, и что инструмент будет возвращать, а также просто имена параметров, которые имеют смысл, чтобы агент знал, какой из них вызывать и как его вызывать.

Хорошо, теперь, когда мы это сделали, мы можем просто создать простой список инструментов. Итак, мы скажем, что инструменты равны, а затем в списке здесь у нас есть read_note и write_note. Затем мы создадим системное сообщение. Так что мое системное сообщение будет таким. Вы можете изменить его на что угодно. Это просто объясняет агенту, что он на самом деле будет делать. А затем мы инициализируем агента и LLM. Чтобы сделать это, мы напишем эти строки, где мы скажем, что LLM равен ChatOpenAI. Мы укажем модель, которую хотим использовать. В данном случае я просто использую GPT-4. Мы указываем температуру. Чем ниже температура, тем менее случайным будет результат. А затем мы можем создать агента, который объединяет LLM, инструменты и подсказку или системное сообщение. Не путайте это с подсказкой, которую отправит пользователь. Это просто первая подсказка, на которую агент будет смотреть. Так что он понимает, как он должен работать.

Теперь со всем этим у нас есть возможность запустить агента. И способ сделать это — с помощью такой функции. Опять же, вы можете скопировать все это по ссылке в описании, где мы можем просто вызвать эту функцию с некоторым пользовательским вводом. Что она сделает, так это попытается вызвать агента. Когда мы вызываем агента, мы передаем список сообщений, на которые мы хотим, чтобы он ответил. В данном случае у нас есть только одно сообщение. Так что мы говорим, хорошо, сообщение, вы знаете, вот это, где роль — пользователь, а содержимое — все, что мы передали в качестве параметра здесь. А затем мы просто вернем все, что является ответом на это конкретное сообщение, которое мы можем получить, используя этот формат. Если возникнет ошибка, мы вернем ее. Вот и все.

Хорошо, это наш ИИ-агент. И мы можем быстро протестировать его, если захотим, просто вызвав функцию run_agent и передав что-то вроде, вы знаете, "Привет, как дела?".

Хорошо, теперь, чтобы это работало, нам понадобится ключ API OpenAI, и нам придется сохранить его в файле .env. Так что мы создадим файл под названием .env. И мы поместим сюда OpenAI_API_KEY. И мы поместим сюда ключ API OpenAI, который я покажу вам, как получить. Итак, чтобы получить ключ API OpenAI, вам нужно перейти по этой ссылке: platform.openai.com/api-keys. Затем вы можете нажать кнопку "Создать новый секретный ключ". Для этого потребуется, чтобы у вас была привязана кредитная карта. Это будет стоить несколько центов. Это очень недорого. Если вы хотите использовать это, вы также можете использовать локальный LLM. Вы можете заменить это чем угодно, но это просто самый простой способ сделать это. Итак, я собираюсь создать новый секретный ключ. Я просто назову его test или что-то вроде test2, потому что у меня уже есть один под названием test. И я удалю этот ключ позже, чтобы вы не могли его использовать.

Хорошо. Итак, я скопирую это. Я вставлю это в свой файл переменных среды. И теперь я добавлю одну строку кода в начало этого файла, где я скажу: from dotenv import load_dotenv. И я вызову функцию load_dotenv, просто добавив эти две строки. Теперь я загружу переменную среды, которую я определил в этом файле. И теперь мы можем запустить этот код.

Теперь нам нужно будет установить все требования. Итак, мы можем сказать pip install -r requirements.txt. Если вы хотите использовать менеджер зависимостей, пожалуйста, сделайте это. Если вы на Mac или Linux, вы можете попробовать команду pip3. Это должно установить все зависимости в ваш глобальный интерпретатор Python, что не всегда является лучшей практикой, но для этого видео, очень быстро, мы сделаем именно это. А затем мы можем просто запустить этот файл agent.py и посмотреть, работает ли он. Итак, я скажу python agent.py. Опять же, если вы на Mac или Linux, вы измените это на python3. Так что я собираюсь запустить это. И мы надеемся, что получим какой-то ответ. И на самом деле, он дал нам предупреждение о чем-то устаревшем. Нам не нужно беспокоиться об этом. Но мне нужно будет напечатать все, что это было. Потому что, если мы не напечатаем, я не увижу, каким был ответ. Так что я просто напечатаю ответ здесь. Давайте подождем и посмотрим, получим ли мы его. И он должен нам что-то сказать. Он говорит: "Привет, я ассистент". И вы можете видеть, что это действительно работает.

Хорошо. Итак, мы удалим этот print и этот вызов функции. И теперь мы перейдем к написанию API, чтобы мы могли фактически обслуживать этот контент на каком-либо фронтенде, а затем мы сможем его развернуть.

Хорошо. Итак, теперь мы переходим к нашему файлу main.py. Отсюда у нас будет несколько импортов. Опять же, я просто скопирую код, чтобы сделать его немного быстрее. Итак, я скажу: from fastapi import ... , которые нам нужны для настройки API. Я также не хочу, чтобы это было открыто. Я импортирую Jinja2Templates, который позволит мне отображать HTML. Я импортирую BaseModel из Pydantic. Вы увидите, почему нам это нужно через секунду. А затем из моего файла агента, который я написал здесь, я импортирую функцию run_agent, которая позволит мне, ну, запустить агента.

Хорошо. Теперь я инициализирую приложение, а также шаблоны. Итак, я скажу app = FastAPI, и я скажу, что у меня есть эти HTML-шаблоны, которые находятся в этом каталоге под названием templates. Это означает, что я должен создать новый каталог под названием templates, где я буду хранить HTML, который мы будем использовать для фронтенда и который будет отображаться на экране.

Теперь мы очень быстро определим две модели запроса и ответа. Теперь это позволит нам определить тип, который наш API будет принимать при вызове агента. Если вы не знакомы с API, по сути, это сервис, который мы можем предоставить чему-то вроде веб-приложения, где оно может вызывать некоторый маршрут. В данном случае оно может запросить, например, для фронтенда, как это выглядит? Дайте мне этот HTML-код. Или оно может запросить вызов агента. Так что мы просто пишем, по сути, тип запроса и тип ответа, которые произойдут из нашего API для одного из конкретных маршрутов. Это не полный учебник по API, я знаю, что это немного расплывчатое объяснение, но API позволяет нам обслуживать и доставлять контент защищенным способом, где пользователь вызывает какой-то путь, например, вы знаете, /api/agent или что-то в этом роде, а затем получает какой-то ответ, который является тем, что сказал агент.

Хорошо. Итак, теперь мы определим наш домашний маршрут. Итак, этот домашний маршрут — это то, что будет обслуживать HTML-шаблон. Итак, мы просто скажем: app.get('/') async def home(request: Request): return templates.TemplateResponse("index.html", {"request": request}). Теперь это просто отобразит для нас HTML-шаблон под названием index.html. Так что это будет показано на экране. Мы увидим это через секунду, но сначала нам нужно будет фактически написать файл index.html, который мы сделаем через минуту.

Хорошо. Итак, это вроде как домашний маршрут для фактического просмотра веб-сайта. Затем у нас будет другой маршрут. Он будет находиться по адресу app.post('/agent', ...). POST — это HTTP-метод, который мы будем использовать. Мы назовем его /agent. И что это сделает, так это вызовет ИИ-агента с подсказкой. Так что, если кто-то вызовет это, он даст нам ответ, который расскажет нам, что сказал ИИ-агент. Так что, по сути, все, что мы делаем, это вызываем эту функцию run_agent с тем, что было подсказкой, которую пользователь передал в эту функцию. А затем мы получим результат. Вы можете сделать это настолько сложным, насколько захотите, но это единственные два маршрута, которые нам нужны для нашего API. И это почти завершает код.

Хорошо. Теперь единственное, чего нам не хватает, это этот файл index.html. Итак, мы зайдем в этот каталог templates и назовем его index.html. Как это работает внутри языков или, извините, фреймворков, таких как Fast API, это то, что у вас может быть что-то под названием шаблон. Теперь шаблон — это, по сути, просто HTML-файл, написанный в определенном формате. Он очень похож на обычный HTML, который позволяет отображать на экране такие вещи, как переменные. В нашем случае мы не будем использовать какой-либо сложный синтаксис шаблонов. Но я просто скопирую очень тонкий HTML-файл из 85 строк, который, опять же, вы можете найти точно по ссылке в описании, если хотите скопировать его точно. Он имеет небольшую стилизацию CSS. Мы просто определяем заголовок веб-страницы. А затем у нас есть очень простая форма. Форма просто имеет текстовую область и кнопку. А затем у нас есть div, где мы будем отображать ответ. Насколько это возможно просто.

А затем у меня есть немного кода JavaScript. Я увеличу масштаб, чтобы вы могли прочитать все, где, по сути, я получаю форму. Я ищу ввод подсказки пользователя. Я также просто получаю div для ответа, чтобы я мог отобразить код там. Когда форма отправляется, я просто добавлю небольшой индикатор загрузки, чтобы мы могли видеть, что происходит. Я отправлю запрос на наш сервер. Так что к этому маршруту, который мы только что написали, я вызову этот конечный точка /agent с типом POST. Я передам подсказку, предоставленную пользователем, а затем я получу ответ. Теперь, если ответ действителен, я просто помещу этот ответ в div ответа, чтобы пользователь мог его увидеть. Вот и все. Просто позволяя мне иметь некоторый динамический контент на моем сайте. Так что, когда вы нажимаете кнопку, мы отправляем запрос. Этот конечный точка вызывается, который затем идет сюда и вызывает эту функцию, получает ответ от OpenAI, передает его нам и помещает на экран. Это буквально все, что мы делаем.

Теперь единственное, что нам нужно сделать, если мы действительно хотим протестировать и запустить это приложение, это импортировать uvicorn из верхней части этого файла, а затем нам нужно просто вставить эту строку здесь: uvicorn.run(app, host="0.0.0.0", port=8000). И просто вставьте эти точные значения. Когда вы это сделаете, он будет настроен для запуска, и мы сможем перейти сюда и просто запустить код. Так что мы можем сказать python main.py. Опять же, python3, если вы на Mac или Linux. Нажмите Enter, и сервер должен запуститься для нас. Если мы откроем это сейчас, просто скопировав это в наш браузер. Итак, я сделаю это здесь и просто открою его. Мы должны увидеть, что мы что-то получаем. Если по какой-то причине у вас возникнет проблема с этим 0.0.0.0, просто введите localhost:8000. И он должен открыть UI. И мы можем сказать что-то вроде "Привет, мир, можешь сохранить заметку с надписью привет?". А затем просто нажмите "Отправить". И посмотрим, получим ли мы ответ. Хорошо, дайте этому секунду. Он говорит: "Я успешно сохранил вашу заметку с надписью привет". И если мы перейдем сюда, мы увидим, что у нас теперь есть этот файл note, который говорит "привет". Так что агент работает. Мы можем использовать его из браузера. Очень просто. Опять же, нам просто нужно запустить это приложение.

Теперь мы собираемся развернуть это, что, как вы увидите, чрезвычайно быстро. Итак, я просто выйду из этого, нажав Ctrl+C. Это остановит сервер для нас. И я просто удалю эту строку uvicorn, просто закомментировав ее, и просто закомментировав импорт, потому что нам это не понадобится при развертывании. Теперь я могу закрыть все остальное. Так что просто закройте все. И мы перейдем в наш терминал сейчас, и мы запустим команду, которая, по сути, просто развертывает это приложение на Vercel. Чтобы сделать это, мы можем просто набрать Vercel deploy. Теперь, когда мы это сделаем, он спросит нас, хотим ли мы настроить и развернуть это. Мы наберем yes. Затем мы пройдем здесь и выберем команду. Так что в моем случае у меня есть несколько команд. Я просто перейду к своим проектам. Опять же, это бесплатно. Мы не будем связывать это с существующим проектом. Так что мы наберем no. Для имени, что угодно. Так что просто назовите его Deploy AI Agent или что-то в этом роде. Хорошо. В каком каталоге находится код? Вам не нужно ничего вводить, потому что он находится в корневом каталоге. Так что мы нажимаем Enter. Говорит: "Хотите ли вы изменить эти настройки?". Мы наберем nope. Хорошо. Хотите ли вы изменить дополнительные настройки? Мы наберем no или просто N. И тогда он развернет проект для нас и создаст новый файл или создаст несколько новых файлов, извините, которые у нас будут в этом каталоге.

Теперь он даст нам несколько ссылок, чтобы мы могли фактически проверить развертывание. Итак, мы перейдем по этой ссылке inspect, которую он предоставил, и просто откроем ее в нашем браузере. Итак, я просто открою ее, и мы должны увидеть развертывание, и вы можете видеть, что оно выглядит так, как будто оно было успешно развернуто. Так что давайте откроем его, и когда мы просто нажмем на предварительный просмотр, теперь мы можем что-то ввести. Так что, может быть, мы введем что-то вроде "Привет, мир" и посмотрим, работает ли это. И вы можете видеть, что это работает совершенно нормально.

Теперь одна вещь, на которую вы можете захотеть обратить внимание, это то, что мы фактически, когда мы это сделали, развернули этот файл .env, который содержит наши переменные среды. Теперь, хотя вы можете это сделать, возможно, вы можете утечь этот файл переменных среды при этом развертывании из-за того, как Vercel выполняет развертывание. Так что одна вещь, которую мы можем захотеть сделать для будущих развертываний, чтобы убедиться, что мы не утекаем эти значения, — это просто создать новый файл под названием .vercelignore. Хорошо? Хорошо, давайте сделаем это. Внутри этого файла мы просто наберем что-то вроде .env. Это просто говорит Vercel игнорировать этот файл переменных среды. И теперь, когда мы развернем, он не развернет переменную среды в этом файле.

Теперь причина, по которой мы собираемся сделать это, заключается в том, что мы просто вручную добавим переменную среды к развертыванию зашифрованным и безопасным способом. Итак, чтобы правильно добавить переменную, не развертывая этот файл переменных среды, мы просто наберем Vercel env. Я полагаю, это команда. Мы посмотрим, правильная ли она через секунду. А затем мы укажем имя переменной, которую мы хотим, которая является OPENAI_API_KEY. Так что, если мы сделаем это, хорошо, похоже, это правильная команда, и мы нажимаем Enter, мы теперь можем скопировать наш ключ API OpenAI. Может быть, мы хотим использовать другой для развертывания, производства, чего угодно. Так что я вставлю его сюда. А затем я смогу выбрать, где я хочу использовать этот ключ. Так что, хочу ли я использовать его в продакшене, предварительном просмотре, развертывании? Я просто хочу использовать его во всех них. Так что я просто выберу все их, наведя на них курсор, нажав пробел, а затем нажав Enter. И теперь эти переменные добавлены.

Теперь я могу переразвернуть проект. Так что я могу сказать Vercel deploy. Когда я это сделаю снова, он просто автоматически развернет это для меня, а затем я смогу просмотреть это в своей учетной записи, а также просто, посмотрев на ссылки предварительного просмотра здесь. Хорошо, есть также несколько других команд, если вы хотите посмотреть, например, журналы или что-то в этом роде. Итак, мы снова перейдем по ссылке inspect, просто откроем ее, и тогда мы должны увидеть, что у нас есть предварительный просмотр. Так что давайте откроем его здесь, и мы можем сказать, вы знаете, "сохрани мне заметку" или что-то в этом роде. "Сохрани заметку со случайным фактом". Хорошо, давайте отправим это и посмотрим, сработает ли это для нас. Хорошо, дайте этому секунду, потому что иногда это немного медленно. И он говорит, что есть проблема с заметкой. Вы знаете, я не могу найти файловую систему. Она только для чтения.

Хорошо, так что может быть проблема с использованием этих конкретных инструментов с Vercel. Честно говоря, я не пробовал компонент заметки, потому что я думаю, что файловая система для Vercel, особенно на бесплатном уровне, не настроена должным образом. Однако мы могли бы просто изменить инструменты на буквально все, что мы хотели бы, верно? Так что, если мы вернемся к агенту, вы можете просто создать любые инструменты и просто изменить их в этом списке, и тогда агент сможет их использовать. Так что, вы знаете, это был просто простой пример. Вам не обязательно их использовать. Я предполагаю, что никто из вас не хочет их в продакшене в любом случае. Так что вы можете просто изменить инструмент на что-то другое, что, например, получает погоду, вызывает другой API или делает практически все, кроме работы с файловой системой. Тогда это должно сработать. Но я также могу просто сказать: "Привет, как дела?" и использовать его как обычного, вы знаете, чат-бота, как я бы использовал GPT. И вы можете видеть, вы знаете, он дает мне ответ. И в любом случае, вы поняли идею. Я просто пытаюсь дать вам своего рода настройку и основу того, как вы можете максимально быстро развернуть проект ИИ на Python. Это не самый безопасный. Это не самый масштабируемый. Но если вы просто хотите быстро запустить хобби-проект или хотите продемонстрировать его другим людям, я думаю, это довольно полезное руководство/учебник, который, надеюсь, помог вам.

Итак, с учетом сказанного, ребята, я собираюсь завершить видео. Если вам понравилось, обязательно поставьте лайк, подпишитесь, и я увижу вас в следующем.