Spring AI와 OpenAI API를 활용한 채팅 애플리케이션입니다. 대화 기록을 MySQL 데이터베이스에 저장하고 관리합니다.
- Java 17
- Spring Boot 3.2.3
- Spring AI 1.0.0-SNAPSHOT
- Spring AI JDBC ChatMemory
- Spring AI OpenAI Model
- MySQL 8.0
- Gradle
- OpenAI GPT 모델을 활용한 채팅
- 대화 기록의 영구 저장 (MySQL)
- 세션 기반 대화 관리
- 글로벌 예외 처리
src/main/java/com/example/springaiopenai/demo/
├── config/ # 설정 클래스
├── controller/ # REST API 컨트롤러
├── service/ # 비즈니스 로직
├── repository/ # 데이터 접근 계층
├── model/ # 엔티티 클래스
├── exception/ # 예외 처리
└── dto/ # 데이터 전송 객체
- Java 17 이상
- MySQL 8.0
- OpenAI API 키
- MySQL 데이터베이스 생성:
CREATE DATABASE chat_db;application.yml설정:
spring:
datasource:
url: jdbc:mysql://localhost:3306/chat_db
username: [your-username]
password: [your-password]
ai:
openai:
api-key: [your-openai-api-key]./gradlew clean build
./gradlew bootRunPOST /api/chat/session
POST /api/chat/{sessionId}/message?content={message}
CREATE TABLE IF NOT EXISTS SPRING_AI_CHAT_MEMORY (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
conversation_id VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
type VARCHAR(50) NOT NULL,
`timestamp` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_conversation_id (conversation_id)
);- OpenAI API 키는 환경 변수로 설정하거나
application.yml에 직접 입력할 수 있습니다. - MySQL 데이터베이스가 실행 중이어야 합니다.
- 애플리케이션 시작 시 자동으로 필요한 테이블이 생성됩니다.
이 프로젝트는 MIT 라이선스를 따릅니다.
