Java 애플리케이션에 LLM 통합을 간소화하는 LangChain4j 소개

LangChain4j(Java용 LangChain)는 일반 Java로 RAG 애플리케이션을 구축할 수 있는 강력한 툴셋입니다.

Elasticsearch를 직접 체험하려면 당사의 샘플 노트북을 살펴보거나, 무료 클라우드 체험판을 시작하거나, 지금 바로 로컬 기기에서 Elastic을 사용해 보세요.

LangChain4j 프레임워크는 이 목표를 위해 2023년에 만들어졌습니다:

LangChain4j의 목표는 LLM을 Java 애플리케이션에 통합하는 것을 간소화하는 것입니다.

LangChain4j는 표준 방법을 제공합니다:

  • 주어진 콘텐츠(예: 텍스트)에서 임베딩(벡터)을 생성합니다.
  • 임베딩 스토어에 임베딩 저장하기
  • 임베딩 스토어에서 유사한 벡터를 검색합니다.
  • LLM과 논의
  • 채팅 메모리를 사용하여 LLM과의 토론 컨텍스트 기억하기

이 목록은 전체 목록이 아니며 LangChain4j 커뮤니티는 항상 새로운 기능을 구현하고 있습니다.

이 게시물에서는 프레임워크의 첫 번째 주요 부분을 다룹니다.

프로젝트에 LangChain4j OpenAI 추가하기

모든 Java 프로젝트와 마찬가지로 종속성의 문제일 뿐입니다. 여기서는 Maven을 사용하지만 다른 종속성 관리자로도 동일한 결과를 얻을 수 있습니다.

여기서 구축하려는 프로젝트의 첫 번째 단계로 OpenAI를 사용하므로 langchain4j-open-ai 아티팩트를 추가하기만 하면 됩니다:

나머지 코드에서는 OpenAI에 계정을 등록하여 얻을 수 있는 자체 API 키 또는 데모 목적으로만 LangChain4j 프로젝트에서 제공하는 키를 사용할 것입니다:

이제 ChatLanguageModel의 인스턴스를 만들 수 있습니다:

마지막으로 간단한 질문을 하고 답변을 받을 수 있습니다:

주어진 답은 다음과 같을 수 있습니다:

이 코드를 실행하고 싶으시다면 Step1AiChatTest.java 클래스를 확인하세요.

langchain4j로 더 많은 컨텍스트 제공

langchain4j 아티팩트를 추가해 보겠습니다:

이 도구는 어시스턴트를 구축하기 위한 고급 LLM 통합을 구축하는 데 도움이 되는 도구 세트를 제공합니다. 여기서는 앞서 정의한 ChatLanguageModel 을 자동으로 호출하는 chat 메서드를 제공하는 Assistant 인터페이스를 만들겠습니다:

LangChain4j AiServices 클래스에 인스턴스 생성을 요청하기만 하면 됩니다:

그런 다음 chat(String) 메서드를 호출합니다:

이것은 이전과 동일한 동작을 하고 있습니다. 그렇다면 코드를 변경한 이유는 무엇일까요? 이제 간단한 주석을 사용하여 LLM에 몇 가지 지침을 제공할 수 있습니다:

이제 기부할 수 있습니다:

이 코드를 실행하려면 Step2AssistantTest.java 클래스를 확인하세요.

다른 LLM으로 전환: langchain4j-ollama

우리는 위대한 올라마 프로젝트를 사용할 수 있습니다. 머신에서 로컬로 LLM을 실행하는 데 도움이 됩니다.

langchain4j-ollama 아티팩트를 추가해 보겠습니다:

테스트를 사용하여 샘플 코드를 실행하고 있으므로 프로젝트에 Testcontainer를 추가해 보겠습니다:

이제 Docker 컨테이너를 시작/중단할 수 있습니다:

"" model 객체를 이전에 사용했던 대신 으로 변경하면 됩니다: OpenAiChatModel OllamaChatModel

모델과 함께 이미지를 가져오는 데 시간이 다소 걸릴 수 있지만 잠시 후 답을 얻을 수 있습니다:

메모리가 있으면 더 좋습니다.

여러 개의 질문을 하면 기본적으로 시스템은 이전 질문과 답변을 기억하지 않습니다. 첫 번째 질문 "언제 태어났나요?", 애플리케이션이 응답합니다:

말도 안 되는 소리입니다. 대신 채팅 메모리를 사용해야 합니다:

이제 동일한 질문을 실행하면 의미 있는 답변을 얻을 수 있습니다:

결론

다음 포스팅에서는 임베딩 저장소로 Elasticsearch를 사용하여 비공개 데이터 세트에 질문을 하는 방법에 대해 알아보겠습니다. 이를 통해 애플리케이션 검색을 한 단계 더 발전시킬 수 있습니다.

자주 묻는 질문

LangChain4j란 무엇인가요?

LangChain4j(Java용 LangChain)는 일반 Java로 RAG 애플리케이션을 구축할 수 있는 강력한 툴셋입니다.

관련 콘텐츠

최첨단 검색 환경을 구축할 준비가 되셨나요?

충분히 고급화된 검색은 한 사람의 노력만으로는 달성할 수 없습니다. Elasticsearch는 여러분과 마찬가지로 검색에 대한 열정을 가진 데이터 과학자, ML 운영팀, 엔지니어 등 많은 사람들이 지원합니다. 서로 연결하고 협력하여 원하는 결과를 얻을 수 있는 마법 같은 검색 환경을 구축해 보세요.

직접 사용해 보세요