콘텐츠로 이동

Providers

RAG4U는 검색 파이프라인과 답변 생성 provider를 분리합니다.

로컬 검색
  -> 관련 청크
  -> provider 답변 생성

Embedding Provider

기본 임베딩 설정:

APP_EMBEDDING_PROVIDER=sentence-transformers
APP_EMBEDDING_MODEL=intfloat/multilingual-e5-small

intfloat/multilingual-e5-small은 한국어와 영어를 함께 다루기 좋은 경량 다국어 모델입니다. E5 계열 특성에 맞게 문서 청크는 passage:, 질문은 query: 형식으로 임베딩합니다.

Vector Store

기본 벡터 저장소:

APP_VECTOR_BACKEND=chroma
APP_CHROMA_PATH=data/indexes/chroma

테스트용 경량 모드:

APP_VECTOR_BACKEND=memory APP_EMBEDDING_PROVIDER=hash uvicorn app.api.main:app --reload

이 모드는 동작 확인용이며 실제 검색 품질 검증에는 적합하지 않습니다.

LLM Provider

Provider 용도 외부 전송
mock 검색과 citation 확인 없음
openai OpenAI API 기반 답변 생성, DB tool calling 있음
codex ChatGPT/Codex 로그인 기반 답변 생성, DB tool calling 실험 있음

mock

mock provider는 외부 모델을 호출하지 않고 검색된 첫 청크를 바탕으로 답변 형식을 만듭니다.

{
  "provider": "mock",
  "allow_external_context": false
}

검색 품질, citation 표시, UI 동작을 확인할 때 사용합니다.

openai

OpenAI API key 기반 provider입니다. enable_tools=true일 때는 Responses API function calling으로 알람 이력, 센서 트렌드, 정비 이력 tool을 선택 호출할 수 있습니다.

OPENAI_API_KEY=<your-openai-api-key>
OPENAI_MODEL=gpt-4o-mini
APP_ENABLE_AGENT_TOOLS=true
APP_TOOL_DB_URL=postgresql://rag4u:rag4u@localhost:5433/rag4u_tools

요청에는 외부 전송 동의가 필요합니다.

{
  "provider": "openai",
  "allow_external_context": true,
  "enable_tools": true
}

DB tools 데모:

docker compose up -d rag4u-postgres
python scripts/seed_demo_tool_db.py
curl http://127.0.0.1:8010/tools/db/status

Compose 플러그인이 없는 Docker CLI에서는 docker run으로 같은 Postgres 컨테이너를 띄운 뒤 seed 스크립트를 실행할 수 있습니다.

SQL 실행 경계

LLM은 SQL을 직접 생성하거나 실행하지 않습니다. 앱이 정의한 read-only tool 함수가 고정 SQL과 바인딩 파라미터로 PostgreSQL을 조회합니다.

codex

codex provider는 로컬 Codex CLI를 호출해 현재 로그인된 ChatGPT/Codex 계정으로 답변을 생성하는 실험 기능입니다. enable_tools=true일 때는 Codex가 JSON으로 필요한 tool을 선택하고, RAG4U가 DB tool을 실행한 뒤 결과를 다시 Codex에 전달해 최종 답변을 만듭니다.

/Applications/Codex.app/Contents/Resources/codex login status

정상 로그인 예:

Logged in using ChatGPT

설정:

CODEX_CLI_PATH=/Applications/Codex.app/Contents/Resources/codex
CODEX_MODEL=
CODEX_TIMEOUT_SECONDS=120

요청:

{
  "provider": "codex",
  "allow_external_context": true,
  "enable_tools": true
}

실험 기능

codex provider는 표준 OpenAI API 경로가 아닙니다. 가능성 검증용으로 사용하고, 제품/팀 운영에서는 OpenAI API key 또는 승인된 사내 provider를 권장합니다.

보안 비교

항목 mock openai codex
원본 문서 전체 전송 없음 없음 없음
검색된 청크 전송 없음 있음 있음
DB tool 결과 전송 없음 선택 시 있음 선택 시 있음
API key 필요 없음 있음 없음
ChatGPT/Codex 로그인 사용 없음 없음 있음
운영 안정성 높음 높음 실험적