시작하기
시작하기 (Maven/설정)
LangChain4j는 다양한 LLM 제공자와 임베딩/벡터 저장소 통합을 제공하는데, 각 통합마다 자기만의 Maven 의존성이 있어요. 지원하는 최소 JDK 버전은 17이에요. 여기서는 가장 기본적인 설정, 즉 의존성을 추가하고 OpenAI 모델로 첫 대화를 나누는 흐름을 따라가 볼게요.
:::note Quarkus를 쓰고 있다면 Quarkus Integration을, Spring Boot를 쓰고 있다면 Spring Boot Integration을, Helidon을 쓰고 있다면 Helidon Integration을 참고하세요. :::
의존성 추가
예시로 OpenAI 의존성을 가져와 볼게요. Maven pom.xml에서는 이렇게 추가해요.
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>1.20.0</version>
</dependency>
고수준 AI Services API를 쓰고 싶다면 다음 의존성도 추가해야 해요.
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>1.20.0</version>
</dependency>
Gradle build.gradle에서는 이렇게 해요.
implementation 'dev.langchain4j:langchain4j-open-ai:1.20.0'
implementation 'dev.langchain4j:langchain4j:1.20.0'
Bill of Materials (BOM)
여러 LangChain4j 모듈의 버전을 한곳에서 관리하고 싶다면 BOM을 쓰면 편해요.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-bom</artifactId>
<version>1.20.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
:::note
langchain4j-bom은 항상 모든 LangChain4j 모듈의 최신 버전을 담고 있어요.
:::
:::note
langchain4j-bom 버전이 1.20.0이어도, 많은 모듈은 여전히 1.20.0-beta30 버전을 갖고 있으니 앞으로 그 모듈들에 호환성을 깨뜨리는 변경이 있을 수 있어요.
:::
SNAPSHOT 의존성 (최신 기능)
정식 릴리스 전에 최신 기능을 미리 시험해 보고 싶다면 최신 SNAPSHOT 의존성을 쓸 수 있어요.
<repositories>
<repository>
<name>Central Portal Snapshots</name>
<id>central-portal-snapshots</id>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>1.20.0-SNAPSHOT</version>
</dependency>
</dependencies>
API 키 설정
이제 OpenAI API 키를 가져와요. API 키는 공개적으로 노출될 위험을 줄이기 위해 환경 변수에 보관하는 게 권장돼요.
String apiKey = System.getenv("OPENAI_API_KEY");
키를 준비했으면 OpenAiChatModel 인스턴스를 만들어요.
OpenAiChatModel model = OpenAiChatModel.builder()
.apiKey(apiKey)
.modelName("gpt-4o-mini")
.build();
이제 대화를 나눠 볼게요.
String answer = model.chat("Say 'Hello World'");
System.out.println(answer); // Hello World
더 알아보기
- LangChain4j란 무엇인가 — 개념과 전체 기능
- 모델 파라미터 — 빌더로 모델 파라미터 설정하기
- 로깅 — 요청·응답 로깅 활성화
- Spring Boot 통합