Очень интересный подход. Хотя, по моему, ему сложно найти применение. В реальной жизни вызываются сервисы, которые подвязаны на спринг. Было бы интересно сделать такой же тест, но, вместо просто возврата текста, вернуть текст сгенерированный спринговым бином с какой-то @Secured аннотацией. Я думаю, что в реальности проще отдельную виртуалку запустить параллельно.
В принципе, можно было сделать чат интерфейс на langchain4j и несколько тулзов для доступа в БД. И тогда через ИИ ассистента можно всё делать без всей ОРМ
В принципе, как я понимаю, можно tool сделать, который на имплементирует этот протокол и будет работать с другими тулзами. Таким образом Claude будет работать с тулом, который будет делегировать работу другим тулам, а OpenAI будет напрямую с тулами работать.
Мы пользуемся langchain4j и там есть @Tool аннотация, которая ставится на метод. ChatGPT понимает, какие инструменты доступны и вызывает их по необходимости.
Ну, например, есть 100500 адресов, которые нужно провалидировать. Есть кластер из 10 машин, которым нужно очень быстро разбросать адреса, без повторения. Можно и через Rabbit, но если уже есть Кафка, то почему не использовать её, чтобы не плодить инфраструктуру.
Очень интересное, и главное простое решение. Если добавить extension timescaledb, то нет необходимости в управлении партициями. Плюс из коробки добавляются плюшки связанные с агрегациец данных и автоматически обновляемые materialized views
А почему нельзя throw new RuntimeException(e) сделать?
Очень интересный подход. Хотя, по моему, ему сложно найти применение. В реальной жизни вызываются сервисы, которые подвязаны на спринг. Было бы интересно сделать такой же тест, но, вместо просто возврата текста, вернуть текст сгенерированный спринговым бином с какой-то @Secured аннотацией. Я думаю, что в реальности проще отдельную виртуалку запустить параллельно.
ORM знает сам как лочить записи. П окрайней мере JPA
А чкюем плох select for update?
В принципе, можно было сделать чат интерфейс на langchain4j и несколько тулзов для доступа в БД. И тогда через ИИ ассистента можно всё делать без всей ОРМ
По ощущениям более шустро. Различия есть только в нестандартных случаях, таких, например, как отправка сообщений с задержкой.
Вообще-то даже на сайте ActiveMQ стоит рекомендация переходить на Artemis
В принципе, как я понимаю, можно tool сделать, который на имплементирует этот протокол и будет работать с другими тулзами. Таким образом Claude будет работать с тулом, который будет делегировать работу другим тулам, а OpenAI будет напрямую с тулами работать.
Мы пользуемся langchain4j и там есть @Tool аннотация, которая ставится на метод. ChatGPT понимает, какие инструменты доступны и вызывает их по необходимости.
Похоже, что эта статья опоздала лет на 20. SecurityManager RIP
https://snyk.io/blog/securitymanager-removed-java/
Интересно, а как это работает с langchain4j, там уже есть @Tool аннотация.
Наконец-то можно и на православной Jave ИИ пользоваться. Ждём Vector API.
Мы пользуемся langchain4j
И какое решение есть для 3,000,000?
Ну, например, есть 100500 адресов, которые нужно провалидировать. Есть кластер из 10 машин, которым нужно очень быстро разбросать адреса, без повторения. Можно и через Rabbit, но если уже есть Кафка, то почему не использовать её, чтобы не плодить инфраструктуру.
JMS (Artemis, RabbitMQ, etc.) предоставляет очереди из которых читают подписчики и каждое сообщение обрабатывается только одним подписчиком.
Pub-sub это здорово, но что делать, если событие должно обрабатываться только один раз, а нод в кластере много. Как Кафка работает с очередями?
Тут вопрос в том, что более эффективно - создать новый процесс и обработать быстро, или обработать в том же потоке но чуть медленнее
А почему возможности Java для трансформации картинок не используются?
Очень интересное, и главное простое решение. Если добавить extension timescaledb, то нет необходимости в управлении партициями. Плюс из коробки добавляются плюшки связанные с агрегациец данных и автоматически обновляемые materialized views