AI 엔진 구성
계층형 LLM 전략, 보안 작업 매핑, RAG (Retrieval-Augmented Generation), Advisor 체인, 스트리밍 파이프라인을 포함한 Contexa AI 엔진의 구성 속성입니다.
계층형 LLM 속성
contexa.llm.*과 spring.ai.security.*를 함께 사용해 런타임 선택과 계층별 모델 할당을 구성합니다. OSS 코어는 Ollama chat runtime을 직접 wiring하며, OpenAI/Anthropic은 Spring AI provider bean이 존재할 때 우선순위에 따라 선택됩니다.
관련 문서: LLM Orchestrator 참조, AI 전략 참조
| 속성 | 기본값 | 설명 |
|---|---|---|
contexa.llm.enabled | true | Contexa LLM 기능 전체 활성화 플래그 |
contexa.llm.advisor-enabled | true | Advisor 체인 등록 활성화 |
contexa.llm.selection.chat.mode | DYNAMIC_PRIORITY | 채팅 제공자 선택 방식: DYNAMIC_PRIORITY는 우선순위 목록 순회, SPRING_PRIMARY는 Spring @Primary 빈 사용 |
contexa.llm.selection.chat.priority | "" | 쉼표 구분 채팅 제공자 우선순위 (예: ollama,anthropic,openai) |
contexa.llm.selection.embedding.mode | DYNAMIC_PRIORITY | 임베딩 제공자 선택 방식 |
contexa.llm.selection.embedding.priority | "" | 쉼표 구분 임베딩 제공자 우선순위 (예: ollama,openai) |
contexa.llm.chat.ollama.base-url | "" | 내장 Ollama chat runtime 활성화 시 필요한 base URL |
contexa.llm.chat.ollama.model | "" | 명시하지 않으면 자동 구성에서 qwen2.5:7b를 기본 chat model로 사용 |
contexa.llm.chat.ollama.keep-alive | "" | Ollama chat keep-alive 힌트 |
contexa.llm.embedding.ollama.dedicated-runtime-enabled | false | 전용 embedding Ollama runtime 사용 여부 |
contexa.llm.embedding.ollama.base-url | "" | 전용 embedding runtime 사용 시 필요한 base URL |
contexa.llm.embedding.ollama.model | "" | 명시하지 않으면 mxbai-embed-large 기본값 사용 |
spring.ai.security.layer1.model | qwen2.5:7b | Layer 1 모델 |
spring.ai.security.layer1.backup.model | — | Layer 1 백업 모델 |
spring.ai.security.layer2.model | gpt-4o-mini | Layer 2 모델 |
spring.ai.security.layer2.backup.model | — | Layer 2 백업 모델 |
spring.ai.security.tiered.layer1.timeout-ms | 30000 | TieredLLMProperties가 사용하는 Layer 1 추론 타임아웃 기본값 |
spring.ai.security.tiered.layer2.timeout-ms | 60000 | TieredLLMProperties가 사용하는 Layer 2 추론 타임아웃 기본값 |
contexa:
llm:
selection:
chat:
mode: DYNAMIC_PRIORITY
priority: ollama,anthropic,openai
embedding:
mode: DYNAMIC_PRIORITY
priority: ollama,openai
chat:
ollama:
base-url: http://localhost:11434
model: qwen2.5:7b
embedding:
ollama:
dedicated-runtime-enabled: true
base-url: http://localhost:11435
model: mxbai-embed-large
spring:
ai:
security:
layer1:
model: qwen2.5:7b
backup:
model: llama3.2:latest
layer2:
model: gpt-4o-mini
backup:
model: deepseek-r1:14b
tiered:
layer1:
timeout-ms: 30000
layer2:
timeout-ms: 60000
OpenAI, Anthropic 자격 증명은 Spring AI의 spring.ai.openai.*, spring.ai.anthropic.*에서 구성하고, Contexa는 등록된 provider bean 중 우선순위에 따라 선택합니다.
권장 선택 구성 (OpenAI + Anthropic + Ollama 페일오버)
관리형 클라우드 제공자와 로컬 Ollama 런타임을 함께 묶으면, API 키가 없거나 클라우드 엔드포인트가 도달 불가능할 때 채팅 호출이 자연스럽게 다음 단계로 떨어집니다. 아래 예제는 OpenAI 를 1차 채팅 제공자, Anthropic 을 2차 페일오버, 로컬 Ollama 런타임을 오프라인 / 키 없음 상태의 최종 폴백으로 사용합니다. 임베딩은 항상 OpenAI 를 사용합니다.
contexa:
llm:
selection:
chat:
mode: dynamic-priority
priority: openai,anthropic,ollama
embedding:
mode: dynamic-priority
priority: openai
키별 의미
mode: dynamic-priority— 오케스트레이터가 콤마로 구분된priority목록을 순서대로 평가하여,ChatModel/EmbeddingModelBean 이 등록되고 호출 가능한 첫 제공자를 선택합니다.dynamic-priority는Mode.DYNAMIC_PRIORITYenum 의 kebab-case 표기이며, 두 형태 모두 Spring 의 relaxed binding 으로 동일한 값에 바인딩됩니다.priority: openai,anthropic,ollama— 채팅 호출은 먼저OpenAI를 시도하고, OpenAI 클라이언트의 키가 없거나 복구 불가 오류가 발생하면 오케스트레이터가Anthropic으로 페일오버합니다. Anthropic 도 사용 불가일 때는 로컬Ollama런타임으로 떨어집니다. 목록 순서가 곧 페일오버 순서이므로, 비용이 낮거나 더 안정적인 제공자를 앞에 둡니다.priority: openai(임베딩) —Anthropic은 Spring AI 에 임베딩 모델을 제공하지 않으며, 플랫폼의 pgvector 스키마는 임베딩 차원을1536으로 고정합니다. 이는OpenAI의text-embedding-3-small/text-embedding-ada-002차원과 일치합니다. 임베딩 목록에 Ollama (보통 768 / 1024 차원) 를 섞으면 같은 컬럼에 폭이 다른 벡터가 기록되어 유사도 검색이 깨집니다. 임베딩은 1536 차원 단일 제공자 로 유지하십시오.
선택 블록과 Spring AI 제공자 속성 짝짓기
contexa.llm.selection.* 블록은 어느 제공자를 호출할지를 결정하지만, 실제 API 키와 모델 식별자는 표준 Spring AI 속성 트리에 둡니다.
spring:
ai:
retry:
max-attempts: 1
anthropic:
api-key: ${ANTHROPIC_API_KEY:disabled}
chat:
options:
model: claude-3-sonnet-20240229
openai:
api-key: ${OPENAI_API_KEY:disabled}
base-url: https://api.openai.com
chat:
options:
model: gpt-4o-mini
temperature: 0.3
- API 키 자리표시자 — 기본값
disabled문자열은 운영자가 환경 변수를 주입하지 않은 상태에서 자동 구성이 실제 클라이언트를 등록하지 않도록 막습니다.ANTHROPIC_API_KEY/OPENAI_API_KEY를 설정하면 해당 제공자가 활성화되고,disabled그대로 두면 의도적으로 그 분기를 건너뛰어 우선순위의 다음 제공자가 처리합니다. spring.ai.retry.max-attempts: 1—dynamic-priority로 두 제공자를 연쇄 구성한 환경에서는 Spring AI 내부에서 같은 실패 제공자를 재시도하는 것은 지연만 늘립니다.1로 각 호출을 단일 시도로 묶고, CONTEXA 의 페일오버 선택자가 다음 항목을 고르도록 합니다.- 모델 식별자 —
gpt-4o-mini는 Tier 1 (낮은 지연시간의 Layer 1 컨텍스트 결정) 에,claude-3-sonnet-20240229는 Tier 2 (포렌식 Layer 2 추론) 에 권장합니다. 새 SKU 가 출시되면 그에 맞게 교체합니다. - OpenAI 측의
temperature: 0.3은 의도적입니다. 보안 결정 프롬프트는 낮은 temperature 가 유리하며, 이 값을 높이면 BLOCK / ESCALATE 경계 판단의 편차가 커집니다.
계층형 전략 속성
spring.ai.security.tiered 아래의 속성으로, TieredStrategyProperties에 바인딩됩니다. 프롬프트 예산, 잘림, 벡터 캐시, 프록시 검증, RAG 임계값을 계층별로 제어합니다.
Layer 1 설정
| 속성 | 기본값 | 설명 |
|---|---|---|
spring.ai.security.tiered.layer1.rag.similarity-threshold | 0.5 | Layer 1 RAG 임계값 |
spring.ai.security.tiered.layer1.session.max-recent-actions | 100 | 세션 문맥에 포함할 최대 최근 액션 수 |
spring.ai.security.tiered.layer1.cache.max-size | 1000 | Layer 1 결과 캐시 최대 수 |
spring.ai.security.tiered.layer1.cache.ttl-minutes | 30 | Layer 1 결과 캐시 TTL(분) |
spring.ai.security.tiered.layer1.timeout.total-ms | 5000 | Layer 1 전체 파이프라인 타임아웃(ms) |
spring.ai.security.tiered.layer1.timeout.llm-ms | 3200 | Layer 1 LLM 호출 타임아웃(ms) |
spring.ai.security.tiered.layer1.timeout.rag-ms | 900 | Layer 1 RAG 단계 타임아웃(ms) |
spring.ai.security.tiered.layer1.vector-search-limit | 3 | Layer 1 벡터 검색 상한 |
spring.ai.security.tiered.layer1.default-budget-profile | CORTEX_L1_INTERACTIVE_STRICT | 기본 예산 프로파일 |
Layer 1 프롬프트 설정
| 속성 | 기본값 | 설명 |
|---|---|---|
spring.ai.security.tiered.layer1.prompt.max-similar-events | 2 | 프롬프트에 포함할 유사 이벤트 수 |
spring.ai.security.tiered.layer1.prompt.max-rag-documents | 3 | 프롬프트에 포함할 RAG 문서 수 |
spring.ai.security.tiered.layer1.prompt.include-event-id | false | 이벤트 ID 포함 여부 |
spring.ai.security.tiered.layer1.prompt.include-raw-timestamp | false | 원시 타임스탬프 포함 여부 |
spring.ai.security.tiered.layer1.prompt.include-raw-session-id | false | 원시 세션 ID 포함 여부 |
spring.ai.security.tiered.layer1.prompt.include-full-user-agent | false | 전체 User-Agent 포함 여부 |
Layer 2 설정
| 속성 | 기본값 | 설명 |
|---|---|---|
spring.ai.security.tiered.layer2.rag.similarity-threshold | 0.5 | Layer 2 RAG 임계값 |
spring.ai.security.tiered.layer2.cache.max-size | 1000 | Layer 2 캐시 최대 수 |
spring.ai.security.tiered.layer2.cache.ttl-minutes | 30 | Layer 2 캐시 TTL(분) |
spring.ai.security.tiered.layer2.timeout-ms | 7000 | Layer 2 전체 타임아웃(ms) |
spring.ai.security.tiered.layer2.enable-soar | false | Layer 2 SOAR 실행 여부 |
spring.ai.security.tiered.layer2.rag-top-k | 5 | Layer 2 RAG top-k |
spring.ai.security.tiered.layer2.default-budget-profile | CORTEX_L2_EXPERT_STRICT | Layer 2 기본 예산 프로파일 |
잘림 설정
| 속성 | 기본값 | 설명 |
|---|---|---|
spring.ai.security.tiered.truncation.layer1.user-agent | 150 | Layer 1 User-Agent 잘림 길이 |
spring.ai.security.tiered.truncation.layer1.payload | 200 | Layer 1 payload 잘림 길이 |
spring.ai.security.tiered.truncation.layer1.rag-document | 180 | Layer 1 RAG 문서 잘림 길이 |
spring.ai.security.tiered.truncation.layer2.user-agent | 150 | Layer 2 User-Agent 잘림 길이 |
spring.ai.security.tiered.truncation.layer2.payload | 1000 | Layer 2 payload 잘림 길이 |
spring.ai.security.tiered.truncation.layer2.rag-document | 500 | Layer 2 RAG 문서 잘림 길이 |
spring.ai.security.tiered.vector-cache.max-size | 10000 | 벡터 캐시 최대 수 |
spring.ai.security.tiered.vector-cache.expire-minutes | 5 | 벡터 캐시 TTL(분) |
spring.ai.security.tiered.vector-cache.enabled | true | 벡터 캐시 활성화 |
spring.ai.security.tiered.vector-cache.record-stats | true | 벡터 캐시 통계 기록 |
spring.ai.security.tiered.security.trusted-proxies | [] | 신뢰 프록시 목록 |
spring.ai.security.tiered.security.trusted-proxy-validation-enabled | true | 프록시 검증 활성화 |
spring.ai.security.tiered.prompt-compression.enabled | true | 런타임 프롬프트 압축 활성화 |
spring.ai.security.tiered.prompt-runtime.native-structured-output-enabled | true | 네이티브 구조화 출력 활성화 |
spring.ai.security.tiered.prompt-runtime.native-structured-output-disabled-profiles | [] | 네이티브 구조화 출력을 비활성화할 프로파일 목록 |
spring.ai.security.tiered.prompt-runtime.telemetry-enabled | true | 프롬프트 런타임 telemetry 활성화 |
보안 작업 매핑 속성
spring.ai.security.mapping 아래의 속성으로, SecurityMappingProperties에 바인딩됩니다. 보안 작업(SecurityTaskType)을 LLM 계층(tier)과 분석 수준(QUICK/NORMAL/DEEP)에 매핑합니다.
| 속성 | 타입 | 기본값 | 설명 |
|---|---|---|---|
spring.ai.security.mapping | |||
.task-to-tier | Map<String, Integer> | {} | 작업 이름 → tier (1/2/3) 직접 매핑 |
.task-to-analysis-level | Map<String, String> | {} | 작업 이름 → 분석 수준 (QUICK/NORMAL/DEEP) 매핑 |
.task-configs | Map<String, TaskConfig> | {} | 작업별 상세 구성 (tier, analysisLevel, toolExecutionEnabled, requireFastResponse, preferLocalModel/CloudModel, temperature, timeoutMs, preferredModel, metadata) |
spring.ai.security.mapping.defaults | |||
.tier1-tasks | String[] | [THREAT_FILTERING, QUICK_DETECTION] | tier 1로 분류할 기본 작업 목록 |
.tier2-tasks | String[] | [CONTEXTUAL_ANALYSIS, BEHAVIOR_ANALYSIS, CORRELATION] | tier 2로 분류할 기본 작업 목록 |
.tier3-tasks | String[] | [EXPERT_INVESTIGATION, INCIDENT_RESPONSE, FORENSIC_ANALYSIS, SOAR_AUTOMATION, APPROVAL_WORKFLOW] | tier 3로 분류할 기본 작업 목록 |
.default-tier | Integer | 2 | 매핑되지 않은 작업의 기본 tier |
.default-analysis-level | String | NORMAL | 매핑되지 않은 작업의 기본 분석 수준 |
Advisor 속성
contexa.advisor 접두사 아래의 속성으로, ContexaAdvisorProperties에 바인딩됩니다. advisor chain profile, security advisor, SOAR approval advisor를 구성합니다.
| 속성 | 기본값 | 설명 |
|---|---|---|
contexa.advisor.chain-profile | STANDARD | Advisor chain profile 이름 |
contexa.advisor.security.enabled | true | Security advisor 활성화 |
contexa.advisor.security.order | 50 | Security advisor 실행 순서 |
contexa.advisor.security.require-authentication | false | AI 분석 전 인증 필요 여부 |
contexa.advisor.soar.approval.enabled | true | SOAR approval advisor 활성화 |
contexa.advisor.soar.approval.order | 100 | SOAR approval advisor 실행 순서 |
contexa.advisor.soar.approval.timeout | 300 | 승인 대기 시간(초) |
RAG 속성
contexa.rag 접두사 아래의 속성으로, ContexaRagProperties에 바인딩됩니다. 기본 검색, 행동 검색, 위험 검색, AI Lab, ETL 동작을 구성합니다.
| 속성 | 기본값 | 설명 |
|---|---|---|
contexa.rag.defaults.similarity-threshold | 0.7 | 기본 검색 유사도 임계값 |
contexa.rag.defaults.top-k | 10 | 기본 top-k |
contexa.rag.behavior.lookback-days | 30 | 행동 검색 lookback 기간 |
contexa.rag.risk.similarity-threshold | 0.8 | 위험 검색 유사도 임계값 |
contexa.rag.risk.top-k | 50 | 위험 검색 top-k |
contexa.rag.lab.batch-size | 50 | AI Lab 배치 크기 |
contexa.rag.lab.validation-enabled | true | AI Lab 검증 활성화 |
contexa.rag.lab.enrichment-enabled | true | AI Lab 메타데이터 보강 활성화 |
contexa.rag.lab.top-k | 100 | AI Lab top-k |
contexa.rag.lab.similarity-threshold | 0.75 | AI Lab 유사도 임계값 |
contexa.rag.etl.batch-size | 100 | ETL 배치 크기 |
contexa.rag.etl.chunk-size | 500 | 문서 chunk 크기 |
contexa.rag.etl.chunk-overlap | 50 | 문서 chunk overlap |
contexa.rag.etl.vector-table-name | vector_store | ETL 논리 테이블 이름 |
contexa.rag.etl.behavior.retention-days | 90 | 행동 코퍼스 보관 기간 |
스트리밍 속성
contexa.streaming 접두사 아래의 속성으로, StreamingProperties에 바인딩됩니다. 스트리밍 마커, 타임아웃, 재시도 정책, 파서 버퍼를 구성합니다.
| 속성 | 기본값 | 설명 |
|---|---|---|
contexa.streaming.final-response-marker | ###FINAL_RESPONSE### | 최종 구조화 응답 앞에 붙는 마커 |
contexa.streaming.streaming-marker | ###STREAMING### | 스트리밍 청크 마커 |
contexa.streaming.json-start-marker | ===JSON_START=== | JSON 시작 마커 |
contexa.streaming.json-end-marker | ===JSON_END=== | JSON 종료 마커 |
contexa.streaming.timeout | PT5M | 전체 스트리밍 타임아웃 |
contexa.streaming.max-retries | 3 | 스트림 재시도 횟수 |
contexa.streaming.retry-delay | PT1S | 초기 재시도 지연 |
contexa.streaming.retry-multiplier | 1.5 | 재시도 backoff 배율 |
contexa.streaming.marker-buffer-size | 100 | 마커 감지 버퍼 크기 |
contexa.streaming.sentence-buffering-enabled | true | 문장 단위 버퍼링 활성화 |
LLM 바인딩 속성
contexa.llm.bindings 아래의 속성으로, ContexaLlmBindingProperties에 바인딩됩니다. 사용자 정의 chat·embedding 모델 바인딩을 등록합니다 (Spring AI ChatModel/EmbeddingModel bean → Contexa runtime 카탈로그 매핑).
| 속성 | 타입 | 기본값 | 설명 |
|---|---|---|---|
contexa.llm.bindings | |||
.chat | Map<String, Binding> | {} | 채팅 모델 바인딩 맵 (key = 논리 이름) |
.embedding | Map<String, Binding> | {} | 임베딩 모델 바인딩 맵 (key = 논리 이름) |
Binding 객체 필드 | |||
.bean-name | String | "" | 참조할 Spring AI bean 이름 |
.provider | String | "" | 제공자 식별자 (ollama/openai/anthropic 등) |
.model-id | String | "" | 모델 식별자 (qwen2.5:7b 등) |
.aliases | List<String> | [] | 모델 별칭 목록 |
.enabled | boolean | true | 바인딩 활성화 여부 |
.primary | boolean | false | 해당 종류의 primary binding 지정 |
contexa:
llm:
bindings:
chat:
primary-ollama:
bean-name: contexaOllamaChatModel
provider: ollama
model-id: qwen2.5:7b
aliases: [default, fast]
enabled: true
primary: true
embedding:
primary-ollama:
bean-name: contexaSharedOllamaEmbeddingModel
provider: ollama
model-id: mxbai-embed-large
enabled: true
primary: true
PgVector 스토어 속성
spring.ai.vectorstore.pgvector 접두사 아래의 속성으로, PgVectorStoreProperties에 바인딩됩니다. Spring AI 의 CommonVectorStoreProperties를 상속하며, Contexa 코어가 직접 선언한 필드는 인덱스 타입, 거리 함수, 차원, batch/search/store 제한, HNSW/IVFFLAT 세부 설정, 문서 chunking 설정입니다.
| 속성 | 타입 | 기본값 | 설명 |
|---|---|---|---|
spring.ai.vectorstore.pgvector | |||
.index-type | IndexType | HNSW | 인덱스 타입: HNSW 또는 IVFFLAT |
.distance-type | DistanceType | COSINE_DISTANCE | 거리 함수: COSINE_DISTANCE / EUCLIDEAN_DISTANCE / NEGATIVE_INNER_PRODUCT |
.dimensions | int | 1024 | 임베딩 벡터 차원 (128–3072) |
.batch-size | int | 100 | 저장 batch 크기 (1–1000) |
.parallel-threads | int | 4 | 병렬 처리 스레드 수 (1–32) |
.top-k | int | 100 | 유사도 검색 top-k 상한 (1–1000) |
.similarity-threshold | double | 0.5 | 유사도 임계값 (0.0–1.0) |
.search-timeout-ms | long | 10000 | 검색 타임아웃(ms, 100–600000) |
.store-timeout-ms | long | 10000 | 저장 타임아웃(ms, 100–600000) |
spring.ai.vectorstore.pgvector.hnsw | |||
.m | int | 16 | HNSW M 파라미터 (4–64) |
.ef-construction | int | 64 | HNSW efConstruction (10–500) |
.ef-search | int | 100 | HNSW efSearch (10–500) |
spring.ai.vectorstore.pgvector.ivfflat | |||
.lists | int | 100 | IVFFLAT lists 수 (1–10000) |
.probes | int | 10 | IVFFLAT probes 수 (1–1000) |
spring.ai.vectorstore.pgvector.document | |||
.chunk-size | int | 1000 | 문서 chunk 크기 (100–10000) |
.chunk-overlap | int | 200 | 문서 chunk overlap (0–1000) |
.enrich-metadata | boolean | true | 메타데이터 자동 보강 |
.extract-keywords | boolean | true | 키워드 자동 추출 |
.generate-summary | boolean | false | 요약 자동 생성 |
spring:
ai:
vectorstore:
pgvector:
index-type: HNSW
distance-type: COSINE_DISTANCE
dimensions: 1024
batch-size: 100
parallel-threads: 4
top-k: 100
similarity-threshold: 0.5
search-timeout-ms: 10000
store-timeout-ms: 10000
hnsw:
m: 16
ef-construction: 64
ef-search: 100
document:
chunk-size: 1000
chunk-overlap: 200
enrich-metadata: true
extract-keywords: true
generate-summary: false
튜닝 시나리오
실제 코드 기준으로 바로 적용할 수 있는 대표 조정 예시입니다.
응답이 느린 경우
contexa:
llm:
chat:
ollama:
model: qwen2.5:7b
spring:
ai:
security:
layer1:
model: qwen2.5:7b
tiered:
layer1:
timeout:
total-ms: 5400000
llm-ms: 3600000
rag-ms: 1200000
RAG 결과가 부정확한 경우
contexa:
rag:
defaults:
similarity-threshold: 0.85
top-k: 3
spring:
ai:
security:
tiered:
layer1:
rag:
similarity-threshold: 0.7
vector-search-limit: 6
토큰 사용량을 줄이고 싶은 경우
spring:
ai:
security:
tiered:
layer1:
prompt:
max-rag-documents: 2
max-similar-events: 1
vector-search-limit: 3
truncation:
layer1:
payload: 100
rag-document: 150
운영 배포 권장 예시
contexa:
llm:
selection:
chat:
mode: DYNAMIC_PRIORITY
priority: ollama,anthropic,openai
embedding:
mode: DYNAMIC_PRIORITY
priority: ollama,openai
embedding:
ollama:
dedicated-runtime-enabled: true
base-url: http://localhost:11435
advisor:
security:
enabled: true
require-authentication: true
spring:
ai:
security:
layer1:
model: qwen2.5:7b
layer2:
model: gpt-4o-mini
tiered:
vector-cache:
max-size: 50000
expire-minutes: 10
enabled: true
record-stats: true
security:
trusted-proxy-validation-enabled: true
상세 속성 참조
TieredStrategyProperties — Layer 1
| 속성 | 기본값 | 설명 |
|---|---|---|
.rag.similarity-threshold | 0.5 | Layer 1 RAG 임계값 |
.session.max-recent-actions | 100 | 최근 액션 포함 수 |
.cache.max-size | 1000 | Layer 1 캐시 크기 |
.cache.ttl-minutes | 30 | Layer 1 캐시 TTL |
.timeout.total-ms | 5000 | Layer 1 전체 예산(ms) |
.timeout.llm-ms | 3200 | Layer 1 LLM 예산(ms) |
.timeout.rag-ms | 900 | Layer 1 RAG 예산(ms) |
.vector-search-limit | 3 | 벡터 검색 상한 |
.default-budget-profile | CORTEX_L1_INTERACTIVE_STRICT | 기본 예산 프로파일 |
.prompt.max-similar-events | 2 | 유사 이벤트 포함 수 |
.prompt.max-rag-documents | 3 | RAG 문서 포함 수 |
TieredStrategyProperties — Layer 2 및 공통
| 속성 | 기본값 | 설명 |
|---|---|---|
.layer2.rag.similarity-threshold | 0.5 | Layer 2 RAG 임계값 |
.layer2.cache.max-size | 1000 | Layer 2 캐시 크기 |
.layer2.cache.ttl-minutes | 30 | Layer 2 캐시 TTL |
.layer2.timeout-ms | 7000 | Layer 2 타임아웃(ms) |
.layer2.enable-soar | false | SOAR 활성화 |
.layer2.rag-top-k | 5 | Layer 2 RAG top-k |
.vector-cache.max-size | 10000 | 벡터 캐시 크기 |
.vector-cache.expire-minutes | 5 | 벡터 캐시 TTL |
.security.trusted-proxies | [] | 신뢰 프록시 목록 |
.security.trusted-proxy-validation-enabled | true | 프록시 검증 활성화 |
.prompt-compression.enabled | true | 프롬프트 압축 활성화 |