- WebSearchService 신규 (Naver webkr.json 우선, 키 미설정/실패 시 DDG) - RestaurantController.searchTabling/searchCatchtable 내부 호출 교체 - 인라인 DDG 80줄 제거, 미사용 import 정리 - app.naver.client-id/secret 추가 (env: NAVER_CLIENT_ID/SECRET) - k8s secrets template에 NAVER 키 항목 Refs: #357 (close) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
96 lines
2.8 KiB
YAML
96 lines
2.8 KiB
YAML
server:
|
|
port: 8000
|
|
|
|
spring:
|
|
threads:
|
|
virtual:
|
|
enabled: true
|
|
|
|
datasource:
|
|
url: jdbc:oracle:thin:@${ORACLE_DSN}
|
|
username: ${ORACLE_USER}
|
|
password: ${ORACLE_PASSWORD}
|
|
driver-class-name: oracle.jdbc.OracleDriver
|
|
hikari:
|
|
minimum-idle: 2
|
|
maximum-pool-size: 10
|
|
connection-timeout: 30000
|
|
idle-timeout: 600000
|
|
max-lifetime: 1800000
|
|
pool-name: TastebyHikariPool
|
|
connection-init-sql: "SELECT 1 FROM DUAL"
|
|
|
|
data:
|
|
redis:
|
|
host: ${REDIS_HOST:192.168.0.147}
|
|
port: ${REDIS_PORT:6379}
|
|
database: ${REDIS_DB:0}
|
|
timeout: 2000ms
|
|
|
|
jackson:
|
|
default-property-inclusion: non_null
|
|
property-naming-strategy: SNAKE_CASE
|
|
serialization:
|
|
write-dates-as-timestamps: false
|
|
|
|
app:
|
|
jwt:
|
|
secret: ${JWT_SECRET:tasteby-dev-secret-change-me}
|
|
expiration-days: 7
|
|
|
|
cors:
|
|
allowed-origins: http://localhost:3000,http://localhost:3001,https://www.tasteby.net,https://tasteby.net,https://dev.tasteby.net
|
|
|
|
oracle:
|
|
wallet-path: ${ORACLE_WALLET:}
|
|
|
|
oci:
|
|
compartment-id: ${OCI_COMPARTMENT_ID}
|
|
chat-endpoint: ${OCI_CHAT_ENDPOINT:https://inference.generativeai.us-ashburn-1.oci.oraclecloud.com}
|
|
embed-endpoint: ${OCI_GENAI_ENDPOINT:https://inference.generativeai.us-chicago-1.oci.oraclecloud.com}
|
|
chat-model-id: ${OCI_CHAT_MODEL_ID}
|
|
embed-model-id: ${OCI_EMBED_MODEL_ID:cohere.embed-v4.0}
|
|
|
|
google:
|
|
maps-api-key: ${GOOGLE_MAPS_API_KEY}
|
|
youtube-api-key: ${YOUTUBE_DATA_API_KEY}
|
|
client-id: ${GOOGLE_CLIENT_ID:635551099330-2l003d3ernjmkqavd4f6s78r8r405iml.apps.googleusercontent.com}
|
|
|
|
# #357 — Naver Search API (Tabling/Catchtable URL 매칭). 미설정 시 DDG 폴백.
|
|
naver:
|
|
client-id: ${NAVER_CLIENT_ID:}
|
|
client-secret: ${NAVER_CLIENT_SECRET:}
|
|
|
|
cache:
|
|
ttl-seconds: 600
|
|
|
|
search:
|
|
# #293 — 벡터 검색 cosine distance 임계값 (0.0=완전일치, 1.0=직교).
|
|
# 0.57은 cohere embed-v4 한국어 시맨틱 적합도 기준 경험값.
|
|
max-distance: ${SEARCH_MAX_DISTANCE:0.57}
|
|
|
|
rate-limit:
|
|
# #337 — 같은 IP에서 visit 카운트 허용 간격(초). 기본 60.
|
|
visit-window-seconds: ${VISIT_WINDOW_SECONDS:60}
|
|
|
|
build:
|
|
# #338 — 배포 시 deploy.sh가 env로 주입. dev에서는 dev/unknown.
|
|
version: ${APP_VERSION:dev}
|
|
commit: ${APP_COMMIT:unknown}
|
|
|
|
daemon:
|
|
# 인스턴스 차원 스케줄러 활성화. dev/prod가 같은 DB를 공유하므로
|
|
# dev .env에 DAEMON_ENABLED=false를 설정해 dev 폴링을 끄고 prod만 동작시킨다.
|
|
enabled: ${DAEMON_ENABLED:true}
|
|
|
|
mybatis:
|
|
mapper-locations: classpath:mybatis/mapper/*.xml
|
|
config-location: classpath:mybatis/mybatis-config.xml
|
|
type-aliases-package: com.tasteby.domain
|
|
type-handlers-package: com.tasteby.config
|
|
|
|
logging:
|
|
level:
|
|
com.tasteby: DEBUG
|
|
com.tasteby.mapper: DEBUG
|