μ΄ μΉμ μμλ Spring AI μ¬μ©μ μμνλ λ°©λ²μ λν μμμ μ μ 곡ν©λλ€.
νμμ λ°λΌ λ€μ μΉμ μ κ° λ¨κ³λ₯Ό λ°λΌμΌ ν©λλ€.
λ ΈνΈ
Spring AIλ Spring Boot 3.2.x λ° 3.3.xλ₯Ό μ§μν©λλ€.
μ€νλ§ μ΄κΈ°ν
start.spring.ioλ‘ μ΄λνμ¬ μ μ ν리μΌμ΄μ μ μ¬μ©ν AI λͺ¨λΈκ³Ό λ²‘ν° μ€ν μ΄λ₯Ό μ ννμΈμ.
λ§μΌμ€ν€ λ° μ€λ μ· λ¦¬ν¬μ§ν 리 μΆκ°νκΈ°
μ’ μμ± μ€λν«μ μ§μ μΆκ°νλ €λ©΄ λ€μ μΉμ μ μ§μΉ¨μ λ°λ₯΄μΈμ.
λ§μΌμ€ν€ λ° μ€λ μ· λ²μ μ μ¬μ©νλ €λ©΄ λΉλ νμΌμ Spring λ§μΌμ€ν€ λ°/λλ μ€λ μ· λ¦¬ν¬μ§ν 리μ λν μ°Έμ‘°λ₯Ό μΆκ°ν΄μΌ ν©λλ€.
Mavenμ κ²½μ° νμμ λ°λΌ λ€μ 리ν¬μ§ν 리 μ μλ₯Ό μΆκ°ν©λλ€:
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
Gradleμ κ²½μ° νμμ λ°λΌ λ€μ 리ν¬μ§ν 리 μ μλ₯Ό μΆκ°ν©λλ€:
repositories {
mavenCentral()
maven { url 'https://repo.spring.io/milestone' }
maven { url 'https://repo.spring.io/snapshot' }
}
μ’ μμ± κ΄λ¦¬
Spring AI BOM(Bill of Materials)μ Spring AIμ νΉμ 릴리μ€μμ μ¬μ©λλ λͺ¨λ μ’ μμ±μ κΆμ₯ λ²μ μ μ μΈν©λλ€. μ ν리μΌμ΄μ μ λΉλ μ€ν¬λ¦½νΈμμ BOMμ μ¬μ©νλ©΄ μ’ μμ± λ²μ μ μ§μ μ§μ νκ³ μ μ§ κ΄λ¦¬ν νμκ° μμ΅λλ€. λμ μ¬μ© μ€μΈ BOM λ²μ μ λ°λΌ μ¬μ©λλ μ’ μμ± λ²μ μ΄ κ²°μ λ©λλ€. λν μ¬μ μνμ§ μλ ν κΈ°λ³Έμ μΌλ‘ μ§μλκ³ ν μ€νΈλ μ’ μμ± λ²μ μ μ¬μ©νλλ‘ λ³΄μ₯ν©λλ€.
Maven μ¬μ©μλΌλ©΄ pom.xml
νμΌμ λ€μμ μΆκ°νμ¬ BOMμ μ¬μ©ν μ μμ΅λλ€.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Gradle μ¬μ©μλ λν Maven BOMμ μ¬μ©νμ¬ μ’ μμ± μ μ½ μ‘°κ±΄μ μ μΈνκΈ° μν Gradle(5.0 μ΄μ) κΈ°λ³Έ μ§μμ νμ©νμ¬ Spring AI BOMμ μ¬μ©ν μ μμ΅λλ€. μ΄λ Gradle λΉλ μ€ν¬λ¦½νΈμ μ’ μμ± μΉμ μ βνλ«νΌβ μ’ μμ± νΈλ€λ¬ λ©μλλ₯Ό μΆκ°νμ¬ κ΅¬νλ©λλ€. μλ μ€λν«μμ λ³Ό μ μλ―μ΄, κ·Έ λ€μμλ μ¬μ©νλ €λ νλ μ΄μμ spring-ai λͺ¨λμ λν μ€νν° μ’ μμ±μ λ²μ μμ΄ μ μΈν μ μμ΅λλ€(μ: spring-ai-openai).
dependencies {
implementation platform("org.springframework.ai:spring-ai-bom:1.0.0-SNAPSHOT")
// Replace the following with the starter dependencies of specific modules you wish to use
implementation 'org.springframework.ai:spring-ai-openai'
}
νΉμ μ»΄ν¬λνΈμ λν μ’ μμ± μΆκ°
λ¬Έμμ λ€μ κ° μΉμ μ νλ‘μ νΈ λΉλ μμ€ν μ μΆκ°ν΄μΌ νλ μ’ μμ±μ 보μ¬μ€λλ€.
- μ±ν λͺ¨λΈ
- μλ² λ© λͺ¨λΈ
- μ΄λ―Έμ§ μμ± λͺ¨λΈ
- νΈλμ€ν¬λ¦½μ λͺ¨λΈ
- ν μ€νΈ μμ± λ³ν(TTS) λͺ¨λΈ
- λ²‘ν° λ°μ΄ν°λ² μ΄μ€
μν νλ‘μ νΈ
GitHubμμ μ΄λ¬ν νλ‘μ νΈλ₯Ό 볡μ νμ¬ μμν μ μμ΅λλ€.
νκ³΅νΈ μμ½ λμ°λ―Έ
github.com/tzolov/playground-flight-booking
μ΄μ©μ½κ΄(κ²μ μ¦κ° μμ±, RAG)μ μ‘μΈμ€νκ³ , μμ (ν¨μ νΈμΆ)μ μννκΈ° μν λꡬ(Java λ©μλ)μ μ‘μΈμ€νλ©°, LLMμ μ¬μ©νμ¬ μ¬μ©μμ μνΈ μμ©νλ AI κΈ°λ° μμ€ν