Spring AI 소개 및 필요성
Spring AI는 기존 Spring 개발자가 인공지능(AI) 기능을 프로젝트에 쉽게 통합할 수 있도록 설계된 프레임워크입니다. AI 기술이 빠르게 발전하면서 다양한 애플리케이션에서 AI 기능이 필요해졌습니다. Spring AI는 이러한 요구를 충족시키기 위해 다음과 같은 기능을 제공합니다:
- 다양한 AI 모델 지원: OpenAI, Microsoft, Amazon, Google, Hugging Face 등 주요 모델 제공자를 지원합니다.
- 모델 간의 이식성: 모델 제공자 간에 동일한 API를 사용하여 코드 변경을 최소화하면서 쉽게 전환할 수 있습니다.
- 고급 AI 기능: 텍스트 생성, 이미지 생성, 음성 변환, 오디오 트랜스크립션 등 다양한 AI 기능을 제공합니다.
- 데이터 관리: Apache Cassandra, Azure Vector Search, Chroma, Milvus 등 주요 벡터 데이터베이스를 지원하여 효율적인 데이터 관리를 가능하게 합니다.
- Spring Boot와의 통합: Spring Boot Auto Configuration과 Starters를 통해 손쉽게 설정할 수 있습니다.
이제 실제 프로젝트를 시작해보겠습니다. Ollama AI 모델을 사용하여 간단한 예제를 통해 Spring AI 프로젝트를 시작하는 방법을 단계별로 설명하겠습니다. Ollama를 사용하면 API 비용 없이 로컬에서 쉽게 따라할 수 있습니다.
1. Spring Initializr를 통한 프로젝트 생성
먼저, Spring Initializr를 사용하여 새 프로젝트를 생성합니다.
- Spring Initializr에 접속: start.spring.io로 이동합니다.
- 프로젝트 설정:
- Project: Gradle Project
- Language: Java
- Spring Boot Version: 최신 버전 선택 (예: 2.7.0)
- Project Metadata:
- Group:
com.example
- Artifact:
luizyzi
- Name:
luizyai
- Package Name:
com.example.luizyai
- Packaging: Jar
- Java Version: 11 이상
- Group:
- Dependencies 추가:
- Ollama
- Spring Web
- Generate 버튼 클릭하여 프로젝트 생성 후 다운로드 받은 zip 파일을 풀고 IDE로 엽니다.
기존 프로젝트에 추가하실분은 아래 build.gradle
을 참고해주세요.
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.1'
id 'io.spring.dependency-management' version '1.1.5'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
repositories {
mavenCentral()
maven { url 'https://repo.spring.io/milestone' }
}
ext {
set('springAiVersion', "1.0.0-M1")
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.ai:spring-ai-ollama-spring-boot-starter'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
dependencyManagement {
imports {
mavenBom "org.springframework.ai:spring-ai-bom:${springAiVersion}"
}
}
tasks.named('test') {
useJUnitPlatform()
}
2. Ollama 설치 및 사용 방법
Spring 프로젝트에 Ollama를 통합하기 위해서는 먼저 Ollama를 설치해야 합니다. Ollama는 로컬에서 AI 모델을 실행할 수 있는 도구로, API 비용 없이 사용할 수 있습니다.
Ollama 설치
운영체제에 따라 Ollama를 설치하는 방법은 다음과 같습니다:
macOS
Ollama 다운로드 후 설치합니다.
Windows
Ollama 다운로드 후 설치합니다.
Linux
터미널에서 다음 명령어를 실행하여 설치합니다:
curl -fsSL https://ollama.com/install.sh | sh
Docker
Docker를 사용하여 Ollama를 실행할 수도 있습니다. 공식 Ollama Docker 이미지를 사용합니다:
docker pull ollama/ollama
Ollama 실행 및 모델 다운로드
Ollama를 설치한 후, 터미널에서 다음 명령어를 실행하여 Llama 3 모델을 다운로드하고 실행합니다:
ollama run llama3
이제 Ollama가 로컬에서 실행되고 있으므로 Spring 프로젝트에서 이를 사용할 수 있습니다.
3. 프로젝트 설정
프로젝트 설정을 위해 application.properties
파일에 Ollama AI의 기본 설정을 추가합니다. 기본 모델은 Mistral이지만, Llama 3 모델을 사용하기 위해 다음과 같이 설정합니다.
src/main/resources/application.properties
파일을 열고 다음 내용을 추가합니다.
spring.ai.ollama.chat.options.model=llama3
4. 간단한 Spring AI Controller 작성
이제 Ollama AI를 사용하여 간단한 AI 응답을 생성하는 REST 컨트롤러를 작성해 보겠습니다.
AIController.java 작성
@RestController
public class AIController {
private final ChatClient chatClient;
public Controller(ChatClient.Builder builder) {
this.chatClient = builder.build();
}
@GetMapping("/ai")
public String chat(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
return chatClient.prompt().user(message).call().content();
}
}
이제 Spring Boot 애플리케이션을 실행하면 Ollama AI 모델을 사용하여 간단한 텍스트 생성 기능을 사용할 수 있습니다.
Postman을 사용한 API 테스트
이제 API가 제대로 동작하는지 확인해보겠습니다. Postman을 사용하여 API를 테스트해볼 수 있습니다.
- 새 요청 생성:
- Method: GET
- URL:
http://localhost:8080/ai?message=How much do you knw about CodingLuizy?
- Send 버튼 클릭: 응답으로 생성된 텍스트를 확인합니다.
이제 Spring AI와 Ollama AI를 사용하여 간단한 AI 프로젝트를 성공적으로 시작했습니다. 이를 통해 Spring 개발자는 AI 기능을 손쉽게 프로젝트에 통합할 수 있습니다. 추가적인 AI 모델 및 기능에 대한 자세한 내용은 Spring AI 공식 문서를 참조하세요.
마무리
이제 Spring AI와 Ollama AI를 사용하여 간단한 AI 프로젝트를 성공적으로 시작했습니다. 이를 통해 Spring 개발자는 AI 기능을 손쉽게 프로젝트에 통합할 수 있습니다. Ollama를 사용하면 API 비용 없이 로컬에서 AI 모델을 실행할 수 있어 더욱 편리합니다.
요즘 많은 개발자들이 프로젝트에 AI 도입을 고민하고 있을 텐데, 비용도 들지 않고 이식성이 좋은 방법을 소개하게 되어 기쁩니다. 많은 프로젝트에 이 기술이 도입되어 더 혁신적이고 효율적인 개발이 이루어지길 기대합니다. Spring AI의 다양한 기능과 Ollama의 로컬 실행 능력을 통해 더 많은 AI 응용 프로그램을 개발할 수 있습니다. 추가적인 AI 모델 및 기능에 대한 자세한 내용은 Spring AI 공식 문서를 참조하세요.
또한, Ollama의 다양한 모델과 기능을 탐색하고 싶다면 Ollama 공식 문서를 확인해보세요. 앞으로의 프로젝트에 많은 도움이 되길 바랍니다. Happy coding!
참고
Spring AI : https://docs.spring.io/spring-ai/reference/index.html
ollama : https://github.com/ollama/ollama