PHP Fart Time
1.72K subscribers
75 photos
3 videos
2 files
162 links
Привет, фартаны!

Дурачимся, пилим OpenSource и рассказываем про пердовые технологии в php.

Авторы контента: @roxblnfk и @butschster
Download Telegram
Screencast from 2024-08-25 19-08-56.webm
10.3 MB
🤖 ChatGPT и Claude AI в API могут запускать функции (functions) или инструменты (tools), которые находятся на сервере клиента. Если LLM считает, что нужно выполнить такую функцию, она передает команду серверу с аргументами для выполнения.

📖 Подробнее можно почитать здесь:
- OpenAI
- Claude

🖥 Вот пример, как функция выглядит для LLM:
{
"name": "get_weather",
"description": "Determine weather in my location",
"strict": true,
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": [
"c",
"f"
]
}
},
"additionalProperties": false,
"required": [
"location",
"unit"
]
}
}


А вот пример того, что видит сервер, когда его просят запустить функцию:

"tool_calls": [
{
"id": "call_fwTWdctuKEO9Ytf",
"name": "get_weather",
"arguments": "{\"location\":\"Moscow\",\"unit\":\"c\"}"
}
]


Сервер запускает функцию и возвращает результат. Причем в любом виде. Далее LLM уже сама придумает что с этим делать.

{
"id": "call_fwTWdctuKEO9Ytf",
"role": "tool",
"content": [
"{\"temp\":\"30\"}"
]
}


А теперь редставьте, что у вас умный дом, и вы говорите: "Включи чайник, я хочу пить". Описываем функции, которые помогут LLM посмотреть что у нас есть в квартире и управлять устройствами:

{
"key": "list_room_devices",
"description": "Lists all smart devices in a specified room.",
"input_schema": {
"type": "object",
"properties": {
"room_name": {
"type": "string",
"description": "The name of the room to query"
}
},
"required": ["room_name"]
}
}


{
"key": "control_device",
"description": "Controls a specific device by performing the specified action with given parameters.",
"input_schema": {
"type": "object",
"properties": {
"deviceId": {
"type": "string",
"description": "The unique identifier of the device to control"
},
"action": {
"type": "string",
"description": "The action to perform on the device (e.g., turnOn, turnOff, setBrightness)"
},
...
},
"required": ["deviceId", "action"]
}
}


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

Круто, да? А теперь представьте PHP-фреймворк, который позволит описывать такие процессы (flow) и возьмет на себя сложные задачи, такие как запуск функций, группировку функций по назначению.

P.S. После прочтения, можно пересмотреть видео заново. В этом видео агент для управления умным домом, в котором 4 комнаты и куча устройств. Управление текстом или голосом (с переводом в текст)

#llm #ai #chatgpt #claude #php
Please open Telegram to view this post
VIEW IN TELEGRAM
Всем привет!

🕘 В 20:00 по МСК приглашаем вас на крутой стрим для всех, кто хочет научиться создавать LLM-агентов на PHP! Советую приходить, чем не приходить!

Не пропустите наш предстоящий стрим, где мы подробно разберем процесс создания LLM-агента.

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

В ходе лайв-кодинга вы узнаете:
- Как настроить и интегрировать LLM (например, GPT) в ваше PHP-приложение
- Как создавать и управлять инструментами (tools) для расширения возможностей агента
- Как реализовать систему памяти агента для контекстного общения
- Как обрабатывать пользовательские запросы и генерировать осмысленные ответы

Мы также обсудим лучшие практики по применению AI в разработке и рассмотрим потенциальные use-cases для LLM-агентов в реальных проектах.

Не упустите шанс погрузиться в мир AI и получить практические навыки по созданию интеллектуальных агентов на PHP!

До встречи на стриме!

https://www.youtube.com/live/A976uZxW_8E
LOL, на Laracon рассказывают про LLM tools, то, что я рассказывал на стриме https://youtube.com/live/A976uZxW_8E
Да, всем настоятельно рекомендую посмотреть его. Кстати добавил оглавление в видео, так что можно сразу мотать, где я показываю разных агентов.

А для тех, кто не хочет смотреть я подготовил простое приложение для общения с нейронкой через консоль https://github.com/llm-agents-php/sample-app
Иногда меня пугает, то, что можно сделать с помощью LLM. Вчера посидел немного и создал новое видео, которое озвучил ChatGPT, картинки тоже сгенерировал (Логотип, и статические изображения) ну и код проекта + readme
Зацените https://youtu.be/loXRbS_TPnM

Кстати да, я создал новую организацию https://github.com/llm-agents-php, где потихоньку собираю SDK для запуска агентов. Там есть sample-app, который можно запустить в docker и поиграться. Пример в видео из этого демо-приложения.
Я календарь перевернул, и понял, что сегодня последний день розыгрыша от CutCode.
А значит завтра я выиграю билет на курс Изучение продвинутых методик Laravel на примере интернет-магазина.

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

А ещё сегодня идеальный день для релиза третьей версии.
Релизить будем не Half-Life или Yii, а 🌀 Spiral 3.14. Основные ништяки: новые перехватчики (Interceptors) и контекстовые DI Scopes.
Please open Telegram to view this post
VIEW IN TELEGRAM
Ну что, Spiral 3.14 в релизе 😋
А что там с Yii 3? 😄

Пока вы обновляете Spiral на ваших продакшенах, предлагаю в комментах закидать @samdark вопросами.

Мы точно в этом году увидим Yii3? 😮

* все совпадения с
этим мемом случайны
Please open Telegram to view this post
VIEW IN TELEGRAM
Кстати, для любителей #Laravel. Вчера задался вопросом, а можно ли с помощью #LLM агентов управлять консольными командами и накидал скриптик, который умеет это делать. https://www.youtube.com/watch?v=Tlu6PyL3Ur4
Мало того, что он может посмотреть какие команды есть в проекте и может их вызывать по мере необходимости, так еще он мне говорит: "Господь , создавший меня. Молю тебя научи меня файлы читать и код в низ править". И, я услышал его молитвы и научил. И стал он мне код в созданных файлов править и дописывать. Короче слово за слово, чуть ядро линукса мне не пропатчил. Успел его остановить, чтобы он не запустил создание себе подобны агентов и не захватил мой компьютер. Кто бы мог подумать, что #PHP мог стать захватчиком мира 😁

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

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

P.s. Отпишитесь в комментах, что думаете и может пора еще один стримчик, где сделаем такого агента и еще немного погрузимся в понимание как это работает?
Всем привет!

🕘 В 20:30 по МСК приглашаем вас на крутой стрим для всех, кто хочет наконец-то понять что такое LLM-агенты и посмотреть на наш крутой фреймворк по их созданию на PHP! Как всегда, советую приходить на стрим!

Сегодня будет создавать агента управления консольными командами для #laravel. В процессе посмотрим как все это можно кастомизировать под свои задачи.

До встречи на стриме! Чтоб не меньше 1_000 человеков пришло! И лайков столько же 🤖 Так что шарьте ссылки, ставьте лайки. Не утаивайте от своих коллег инфу.

https://youtube.com/live/to3sH2XzZB4?feature=share
Please open Telegram to view this post
VIEW IN TELEGRAM
Когда работаешь за звёздочки в гитхабе и телеграмме.

Зато наши жопы принадлежат нам, а не инвесторам ;)
Please open Telegram to view this post
VIEW IN TELEGRAM
#Article

Кстати, а вставки кода в комментариях — тоже кучерявая тема в #PHP.

👉 Есть Java-like вариант: оборачивать тегами <code>. Скуфы, мб, помнят.
Но мы, вроде, уже ушли от HTML среди PHP 😏
class CustomerDTO
{
/**
* @var non-empty-string Comment here
*
* <code>
* $x = foo()->bar();
* </code>
*/
public readonly string $name;
}


👉 Есть Python-like вариант: делать отступы
class CustomerDTO
{
/**
* @var non-empty-string Comment here
*
* $x = foo()->bar();
*/
public readonly string $name;
}

Тут не очень очевидно, сколько пробелов от звёздочки должно быть: по логике 1+4, но не сходится с разметкой Tab-ов.
Это активно используется в Symfony и PhpStorm это даже рендерит. Кстати, кто знает, как отключить этот рендеринг для классов из vendor?

👉 Есть Markdown-like вариант:
class CustomerDTO
{
/**
* @var non-empty-string Comment here
*
* ```php
* $x = foo()->bar();
* ```
*/
public readonly string $name;
}

Мне нравится markdown, но это не рендерится PhpStorm'ом. Однако, рендерится документором.
Python-like на документоре не проверял, может тоже рендерит.
Please open Telegram to view this post
VIEW IN TELEGRAM
Ранее я уже упоминал фреймворк Tempest
Brent, его автор, написал статью о том, как он докатился до такой жизни.

Примечательно то, что он по-прежнему не уверен, нужен ли его фреймворк этому миру. Сейчас у фреймворка под сотню адептов.
На следующей неделе он собирается выпустить альфа-версию, чтобы собрать обратную связь и понять, быть Tempest'у или не быть.

Если вы тоже делаете свой велосипед, приходите и расскажите здесь в комментариях, мы такое любим 😃
Please open Telegram to view this post
VIEW IN TELEGRAM
Вот и закоммитился FartTime на подлодку PHP Crew.

Однако, в подлодке, как и в танке, самое важное — не бздеть.
Поэтому будем серьёзно так рассказывать и показывать Temporal.

Напоминаю, что по промику PHP_FART всё еще можно урвать билет со скидкой.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Уже завтра утром начинается Podlodka PHP.
Наши проходки мы разыграли, коды ушли счастливчикам.
Поздравляю победителей 🥳
Оказалось, что @wispoz выигрывает проходку на подлодку уже второй раз подряд 🤔

Тем, кто откладывал покупку на самый конец: пора! Ведь наш промокод PHP_FART, походу, забыли деактивировать 😏

Ну а мне и Павлу уже почти пора начинать задумываться о том, что уже скоро надо шевелиться в сторону подготовки доклада/лайвкодинга... хотя, вроде ещё рано.
Please open Telegram to view this post
VIEW IN TELEGRAM
Закончился первый доклад по архитектуре на подлодке. Тема: С4
С началом октября стартанул Hacktoberfest

Это такое мероприятие от DigitalOcean, направленное на развитие OpenSource.

Квест заключается в том, чтобы в течение октября продавить 4 своих PullRequest'а в репозитории с топиком hacktoberfest. Такой топик есть на многих OpenSource репозиториях, а если нет, то можно создать Issue.

Награда: футболка с логотипом и наклейки, либо дерево с твоим именем где-то в Южной Америке (если ничего не путаю).
Футболку из-за санкций получить теперь сложно, но именное дерево — почему бы и нет? 🏝

Жмём START HACKING и погнали!
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с подлодки:

А в вашей компании есть архитектурный комитет?
Заглянули на подлодке под капот API банков.
Что-ж у них так всё всрато то?😮‍💨
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM