- BrainTools - https://www.braintools.ru -
Всем привет, сегодня я расскажу как подключить LLMку через докер в ваш проект под разные задачи: от рабочих до бытовых.
Мы будем использовать Java/Kotlin + Docker + Ollama.
Ollama — это платформа для локального запуска и управления LLM (больших языковых моделей) на своём компьютере. Она нужна, чтобы использовать и тестировать модели вроде GPT или LLaMA без облака, хранить их локально и интегрировать в свои приложения.
Я же сегодня буду вам показывать пример на llama3:8b. В первую очередь Llama 3‑8B оптимизирована для общего текстового интеллекта [1]: от ответов на вопросы до прочих повседневных задач.
Со списком всех возможных моделей можно ознакомиться тут – https://ollama.com/library [2]
Для того, чтобы подключить Ollama в докер нужно выполнить всего пару команд
Запускаем докер контейнер с ollama – docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama в качестве порта можно использовать любые значения
Переходим в контейнер – docker exec -it ollama bash
Скачиваем нужную вам модель(список все моделей выше) – ollama pull llama3:8b
Вместо llama3:8b указываем любую модель под ваши задачи
Результат у вас должен получится следующий:

Для вызова и работы с ollama мы будем использовать любую библиотеку для вызовов http методов, в своем же примере я буду использовать Spring + RestTemplate.
Мы с вами создадим простой запрос для генерации анекдотов. Смех, как известно, продлевает жизнь!
Давайте начнем с создания двух классов DTO для обмена данными:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OllamaRequest {
private String model;
private String prompt;
private Boolean stream;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OllamaResponse {
private String response;
private Boolean done;
}
Затем я предлагаю сделать класс для properties:
@Data
@ConfigurationProperties("app.ollama")
public class OllamaProperties {
private String urlGenerate;
private String model;
}
application.yaml выглядит следующим образом:
app:
ollama:
url-generate: http://localhost:11434/api/generate
model: llama3:8b
Теперь давайте напишем класс для вызова метода ollama.
Обращаемся к Ollama по нашей model из application вызывая ручку /api/generate получаем ответ и возвращаем его:
@Service
@RequiredArgsConstructor
public class OllamaClient {
private final RestTemplate restTemplate;
private final OllamaProperties ollamaProperties;
public OllamaResponse generateByPromt(String promt) {
HttpEntity<OllamaRequest> request = createRequest(promt);
return restTemplate.postForEntity(ollamaProperties.getUrlGenerate(), request, OllamaResponse.class).getBody();
}
private HttpEntity<OllamaRequest> createRequest(String promt) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
OllamaRequest request = new OllamaRequest(ollamaProperties.getModel(), promt, false);
return new HttpEntity<>(request, headers);
}
}
Затем создаем сервис, который будет генерировать наш promt(запрос). В нашем случае мы хотим получить 1 анекдот:
@Service
@RequiredArgsConstructor
public class OllamaService {
private final OllamaClient ollamaClient;
public String getJoke() {
return ollamaClient.generateByPromt("Расскажи мне 1 анекдот").getResponse();
}
}
Теперь нужно вызвать метод getJoke, я буду использовать обычный RestController:
@RestController
@RequiredArgsConstructor
public class OllamaController {
private final OllamaService ollamaService;
@PostMapping("/generate/joke")
public String generateJoke() {
return ollamaService.getJoke();
}
}
Ну что же, теперь нам с вами остается только проверить всю картинку целиком, в Postman отправляем запрос:

С юмором [3] у ollama пока проблемки, но с другими задачи она справляется на ура!
Сегодня мы посмотрели, как интегрировать LLM в Java или Kotlin-приложение. Этот подход универсален и работает с любым языком программирования, а для примера мы выбрали Java. С помощью Ollama можно решать разные задачи — от автоответчиков до поиска нужной информации.
Всем спасибо за внимание [4], хорошего дня!)
Автор: MishaBucha
Источник [5]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/21797
URLs in this post:
[1] интеллекта: http://www.braintools.ru/article/7605
[2] https://ollama.com/library: https://ollama.com/library
[3] юмором: http://www.braintools.ru/article/3517
[4] внимание: http://www.braintools.ru/article/7595
[5] Источник: https://habr.com/ru/articles/965426/?utm_source=habrahabr&utm_medium=rss&utm_campaign=965426
Нажмите здесь для печати.