
Техники GenAI в Spring AI
nectar92 1 час назад Техники GenAI в Spring AI Средний 25 мин 2.7K Блог компании Т-Банк Kotlin * Java * Искусственный интеллект Туториал Один сервис — генератор хайку. Четыре проблемы. Четыре техники.Путешествие от...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. nectar92 1 час назад Техники GenAI в Spring AI Средний 25 мин 2. 7K Блог компании Т-Банк Kotlin * Java * Искусственный интеллект Туториал Один сервис — генератор хайку. Путешествие от chatClient.
call() до полноценного AI-приложения и вызова Anthropic APIПривет, Хабр! Я Руслан Масгутов, архитектор в Т-Банке. Архитекторы не ограничиваются проектированием компонентов и связей между ними — важно глубоко понимать, как работают используемые технологии, и знать о готовых решениях, чтобы не разрабатывать то, что уже реализовано.
Технические детали
В статье рассмотрим ряд техник GenAI, реализованных в модуле Spring AI, и ответим на вопрос: является ли ChatClient лишь тонкой оберткой над API провайдеров LLM или предоставляет функциональные возможности, которые имеет смысл применять в реальных проектах. В качестве примера будем итеративно разрабатывать приложение, интегрированное с Anthropic, и разбирать возникающие по ходу проблемы. Пролог: три строчки, которые рождают хайкуВсе начинается невинно.
Мы Spring-разработчики, слышали о LLM, использовали ChatGPT для быстрого получения ответов, знаем о возможности использовать LLM прямо из приложения и наконец решили попробовать сами. Задача простая и красивая: сервис, который генерирует хайку/хокку (японское стихотворение) по команде пользователя. Пользователь пишет «добавь строку про осень» — модель дописывает стихотворение.
Подключаем spring-ai-anthropic-spring-boot-starter, прописываем API-ключ, и пишем первый сервис. @RestController @RequestMapping("/api/haiku class HaikuController(private val haikuService: HaikuService) { @PostMapping fun generate(@Valid @RequestBody request: HaikuRequest): HaikuResponse = HaikuResponse(haiku = haikuService. prompt)) } @Service class HaikuService(chatClientBuilder: ChatClient.
Отраслевые последствия
Builder) { private val chatClient: ChatClient = chatClientBuilder. build() fun generate(prompt: String): String = chatClient . : error("ChatClient returned null content for prompt: $prompt } Выполняем первый запрос:curl --location --request POST 'localhost:8080/api/haiku' \ --header 'Content-Type: application/json' \ --data-raw '{ "prompt": "Напиши стих про позднюю зиму" }' Получаем ответ:{ "haiku": "# Февральское\n\nФевраль устал.
Он дышит тяжело,\nСугробы осели, потемнели,\nИ солнце — робкое, несмелое —\nВсё дольше держит нас в тепло. \n\nКапель ещё не слышно, но уже\nВ воздухе что-то тонкое дрожит,\nИ ворон на берёзе не спешит —\nСидит и щурится в тиши. \n\nЗима стоит на шатком рубеже,\nЦепляется за ночи и метели,\nНо дни — длиннее.
Птицы ошалели\nИ что-то вспомнили в душе. Но что-то уже — март. Но что-то уже — талость.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





