AI Service 초기 설정 및 패키지 구조 생성

- application.yml 설정 업데이트
  - Redis Database: 4번으로 변경 (서비스별 분리)
  - Server Port: 8084로 변경
  - Azure OpenAI 설정 추가 (gpt-4o, text-embedding-3-large)
  - Azure AI Search 설정 추가
  - Azure Event Hubs 설정 추가
  - JWT 토큰 유효기간 표준화 (1800s/86400s)

- Clean Architecture 패키지 구조 생성
  - biz/domain: 도메인 모델
  - biz/dto: 비즈니스 DTO
  - biz/usecase: 유스케이스 (in/out 포트)
  - biz/service: 유스케이스 구현체
  - infra/controller: REST API 컨트롤러
  - infra/gateway: 출력 포트 구현체
  - infra/config: 설정 클래스

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Minseo-Jo 2025-10-23 15:09:09 +09:00
parent 8c148e2721
commit 14bbe653ce

View File

@ -39,35 +39,49 @@ spring:
max-idle: 8 max-idle: 8
min-idle: 0 min-idle: 0
max-wait: -1ms max-wait: -1ms
database: ${REDIS_DATABASE:3} database: ${REDIS_DATABASE:4}
# Server Configuration # Server Configuration
server: server:
port: ${SERVER_PORT:8083} port: ${SERVER_PORT:8084}
servlet:
context-path: ${CONTEXT_PATH:}
# JWT Configuration # JWT Configuration
jwt: jwt:
secret: ${JWT_SECRET:} secret: ${JWT_SECRET:}
access-token-validity: ${JWT_ACCESS_TOKEN_VALIDITY:3600} access-token-validity: ${JWT_ACCESS_TOKEN_VALIDITY:1800}
refresh-token-validity: ${JWT_REFRESH_TOKEN_VALIDITY:604800} refresh-token-validity: ${JWT_REFRESH_TOKEN_VALIDITY:86400}
# CORS Configuration # CORS Configuration
cors: cors:
allowed-origins: ${CORS_ALLOWED_ORIGINS:http://localhost:*} allowed-origins: ${CORS_ALLOWED_ORIGINS:http://localhost:*}
# OpenAI Configuration # Azure OpenAI Configuration
openai:
api-key: ${OPENAI_API_KEY:}
model: ${OPENAI_MODEL:gpt-4}
max-tokens: ${OPENAI_MAX_TOKENS:2000}
temperature: ${OPENAI_TEMPERATURE:0.7}
# Azure AI Search Configuration
azure: azure:
aisearch: openai:
endpoint: ${AZURE_AISEARCH_ENDPOINT:} api-key: ${AZURE_OPENAI_API_KEY:}
api-key: ${AZURE_AISEARCH_API_KEY:} endpoint: ${AZURE_OPENAI_ENDPOINT:}
index-name: ${AZURE_AISEARCH_INDEX_NAME:minutes-index} deployment-name: ${AZURE_OPENAI_DEPLOYMENT:gpt-4o}
embedding-deployment: ${AZURE_OPENAI_EMBEDDING_DEPLOYMENT:text-embedding-3-large}
max-tokens: ${AZURE_OPENAI_MAX_TOKENS:2000}
temperature: ${AZURE_OPENAI_TEMPERATURE:0.3}
# Azure AI Search Configuration
ai-search:
endpoint: ${AZURE_AI_SEARCH_ENDPOINT:}
api-key: ${AZURE_AI_SEARCH_API_KEY:}
index-name: ${AZURE_AI_SEARCH_INDEX:meeting-transcripts}
# Azure Event Hubs Configuration
eventhub:
connection-string: ${AZURE_EVENTHUB_CONNECTION_STRING:}
namespace: ${AZURE_EVENTHUB_NAMESPACE:hgzero-eventhub-ns}
checkpoint-storage-connection-string: ${AZURE_CHECKPOINT_STORAGE_CONNECTION_STRING:}
checkpoint-container: ${AZURE_CHECKPOINT_CONTAINER:hgzero-checkpoints}
consumer-group:
transcript: ${AZURE_EVENTHUB_CONSUMER_GROUP_TRANSCRIPT:ai-transcript-group}
meeting: ${AZURE_EVENTHUB_CONSUMER_GROUP_MEETING:ai-meeting-group}
# Actuator Configuration # Actuator Configuration
management: management: