LangChain4j: Створюйте Java додатки з можливостями AI

💡 Усі статті, обговорення, новини про AI — в одному місці. Приєднуйтесь до AI спільноти!

Привіт, Java-розробники! Вас цікавить створення додатків на основі LLMs (Large Language Model) з Java та Spring Boot?

Ви можете створювати власні чат-боти на базі штучного інтелекту, обробляти великі обсяги неструктурованих даних та автоматизувати процеси за допомогою автономних агентів. Ці агенти можуть використовувати різноманітні інструменти: викликати API, використовувати бази даних, і навіть динамічно запускати згенерований код!

У цій серії статей ми розглянемо все, що вам потрібно знати, щоб створити свій власний додаток на базі LLM.

Сьогодні ми почнемо з прикладу «Hello, World!» та будемо переходити до більш складних прикладів у наступних статтях.

Готові? Поїхали!

Щоб використовувати LLM у Java, вам потрібно лише імпортувати LangChain4j у ваш Maven/Gradle проект та написати три рядки коду.

Спочатку давайте імпортуємо LangChain4j:

  • Maven:
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j</artifactId>
    <version>0.18.0</version>
</dependency>
  • Gradle:
implementation 'dev.langchain4j:langchain4j:0.18.0'

Ми випускаємо нові версії досить часто, тому переконайтеся, що використовуєте останню версію. Знайти її можна тут.

Тепер створимо об’єкт ChatLanguageModel. Це ваш інтерфейс для спілкування з LLM.

Моделі OpenAI наразі є найбільш здібними. Тому ми почнемо з них.

ChatLanguageModel model = OpenAiChatModel.withApiKey("demo");

Зазвичай потрібно створити свій власний API-ключ для доступу до моделей OpenAI. Однак, щоб вам було легше почати, ми надаємо наші ключі безкоштовно для демонстраційних цілей. Для цього просто використовуйте API-ключ «demo».

Наразі LangChain4j підтримує LLM, які хостяться OpenAI (ChatGPT), HuggingFace та локальні моделі (наприклад, Llama2), які ви можете захостити самостійно за допомогою LocalAI (навіть на своєму комп’ютері). Ми сумлінно працюємо над доданням нових інтеграцій, тому слідкуйте за оновленнями!

Тепер, коли ми все налаштували, можемо почати використовувати LLM:

AiMessage answer = model.sendUserMessage("Hello world!");
System.out.println(answer.text()); // Hello! How can I assist you today? 

Ось і все! Просто, правда?

У наступних статтях ми розглянемо основні комоненти додатків на основі LLM (як-от memory, document loaders, vector stores, agents та tools) та побачимо, як за допомогою них створити декілька крутих рішень!

Якщо ви не хочете чекати наступну статтю і є бажання дізнатися більше вже зараз, ви можете знайти багато інформації тут:

Дякую за ваш час і до наступної статті!

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному5
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Температуру, топП і інші параметри (не всі, але багато) можна конфігурувати

Чи планується підтримка LlamaIndex , підкажіть будь ласка ?

Ця бібліотека є аналогом LlamaIndex. Чи ви маєте на увазі якісь конкретні фічі?

Вибачте, тупе запитання задав, не розібравшись

а ось це вже не погано! дякую

Перформанс залежить від самої моделі і від того, де хоститься. Підтримуються моделі OpenAI, з HuggingFace та можна хостити самостійно за допомогою LocalAI (наприклад, Llama2). На onnx раняться тільки мініатюрні ембеддінг моделі. Але це не обов’язково використовувати, є альтернативи. На практиці 90% людей використовують моделі OpenAI так як вони найбільш якісні і коштують недорого. Згенерувати 10 сторінок А4 тексту з gpt-3.5-turbo коштує приблизно 1 цент.

Ні, локально на девайсі можна за допомогою LocalAI. Він під капотом юзає різні бекенди, але зазвичай llama.cpp, тобто можна ці моделі запускати і на CPU, навіть GPU не потрібна. В інтернеті багато статей на цю тему.

Вот тут есть пример как завести модель на onnx: github.com/...​g/OnnxEmbeddingModel.java правда это подойдёт только моделям на архитектуре BERT. Для Llama2 нужно поэкспериментировать. А какова конечная цель? Запустить ламу на андроид телефоне? Боюсь что даже самая маленькая модель 7б даже при квантизации будет вести себя либо очень медленно либо качество ответов будет убогое.

Цікаво, цей проект що, був заснований українськими розробниками? Або вони хоч якось приймають участь?

Привіт, так. Декілька українців є та і звідусіль. Бельгія, Швейцарія також.

Підписатись на коментарі