시작하기

시작하기 (Maven/설정)

LangChain4j는 다양한 LLM 제공자와 임베딩/벡터 저장소 통합을 제공하는데, 각 통합마다 자기만의 Maven 의존성이 있어요. 지원하는 최소 JDK 버전은 17이에요. 여기서는 가장 기본적인 설정, 즉 의존성을 추가하고 OpenAI 모델로 첫 대화를 나누는 흐름을 따라가 볼게요.

출처: 공식문서 - Get Started

:::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

더 알아보기