Рубрика «java» - 5

Всем привет! Недавно столкнулся с проблемой, что в настоящее время большая часть обучающих материалов по Retrieval‑Augmented Generation (RAG) сосредоточена на Python‑экосистеме (LangChain, LlamaIndex и тому подобное), а пошаговые руководства, которые показывают, как быстро собрать рабочее RAG‑приложение на чистом Java‑стеке, встречаются крайне редко. Эта статья представляет собой простое практическое руководство, где мы разберём весь процесс от настройки окружения до полного примера кода, чтобы даже начинающий Java‑разработчик мог развернуть RAG.

Читать полностью »

Привет! Меня зовут Артур Валиев, и я разработчик небольшого мобильного приложения с названием «Echo Layer».

Читать полностью »

Cказ о том, как мы с Oracle на PostgreSQL переехали - 1

Исходные условия и цель переезда

Привет! Меня зовут Даша Александрова, я Java-разработчик. Хочу поделиться опытом миграции данных из Oracle в PostgreSQL без простоя сервисов.

Причина миграции - импортозамещение.

Читать полностью »

System prompt — это просьба. Guardrails — это принуждение.


1. Введение

Когда я впервые внедрял LLM в production-сервис, схема безопасности выглядела примерно так: написать хороший system prompt, поставить галочку «мы всё предусмотрели» и жить дальше. Жизнь не дала долго наслаждаться этим спокойствием — первый же тест показал, что пользователи довольно быстро находят способы заставить модель «забыть» всё, что мы написали в системном промпте.

Проблема фундаментальная: system prompt — это инструкция, которую LLM старается выполнить, но не обязанЧитать полностью »

За последние несколько лет для вызова внешних API в каждом втором (если не первом) проекте я видел одну и ту же картину:

  • RestTemplate

  • или FeignClient

Причём Feign почти всегда шёл в связке с OpenAPI: сгенерировали клиент, получили интерфейсы и не думаем о реализации. Удобно, красиво, привычно.

Но потом в Spring появился нативный декларативный HttpClient, который работает поверх RestClient / WebClient

И у меня возник вопрос: а можно ли им заменить Feign, не потеряв удобство?

Спойлер: да, можно и будет даже удобнее.

Откуда вообще взялся HttpClient

Идея, на самом деле, очень простая.

Читать полностью »

Одним вечером я решил проверить: что если взять решётку из 10 000 узлов, задать одно правило передачи энергии между соседями — и просто запустить? Никакой теоретической физики из учебника, никакой подготовки. Посмотреть что вырастет само.

Спойлер: за один день появились волновое уравнение, интерференция, фазовый переход, рождение и аннигиляция частиц, и стрела времени. Всё из одного уравнения.

<cut />

Старт: убираем случайность

У меня уже был проект — симуляция квантового поля на тетраэдрах, где узлы случайно осциллировали (Math.random()). Красиво, но мертво. Шум без смысла, без структуры.

Читать полностью »

Если вы когда-нибудь работали с JasperReports в Java-проекте, вы знаете это чувство: всё вроде работает, но каждое изменение в отчёте - это боль. Данные передаются через хрупкие механизмы, бизнес-логика утекает в XML, а субрепорты - единственный способ навести порядок - сами по себе настолько неудобны, что проще не трогать.

За последние пару лет я несколько раз столкнулся с репортингом на JasperReports. Каждый раз одни и те же проблемы: монолитные шаблоны, неочевидный поток данных, ручная синхронизация между Java и JRXML. В какой-то момент я решил это системно исправить - и написал библиотеку jasper-modular, которая решает две ключевые проблемы:Читать полностью »

Всем привет! Хочу рассказать об особенностях использования механизмов retry, которые дает spring для kafka из коробки. У нас java-21, spring-boot-3.2, kafka-3.7, spring-kafka-3.1.x

Сразу должен извиниться за качество скриншотов — они доставались из чатов, т. к. доступа к grafana на нагрузочном стенде у нас не было, кое-где не совпадает время, потому что были разные прогоны, а скрины были не везде полные. Но в целом картинки отражают действительность.

Цель Читать полностью »

Привет!

На днях HR-отдел отклонил мое резюме на позицию джуна. Вместо фидбека я получил ответ «В нашей команде слишком много козерогов, и нашему тарологу не понравился ваш Сатурн». Сначала я хотел возмутиться, но потом подумал. Может звезды не врут? Возможно наш звездный язык программирования определяется в зависимости от расположения планет во время первого запуска IDE.

Я провел фундаментальное исследование, проанализировал натальные карты Гвидо ван Россума, Страуструпа и прочих, и составил первый в мире точный гороскоп языков программирования.

И результат меня поразил.


♈ Овен (21 марта — 19 апреля): C++

Читать полностью »

Работая в Сбере, я столкнулся с тем, что общепринятым инструментом для функционального тестирования в моем трайбе был JMeter. Нравится ли мне это? Вопрос второстепенный. Приходилось работать с тем, что есть. По мере того как разрастались наши компоненты и их функциональность - разрастались и JMeter-тесты. Если кто не сталкивался - вся логика JMeter-тестов описана в файле с расширением .jmxЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js