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 로그인 사용 | 없음 | 없음 | 있음 |
| 운영 안정성 | 높음 | 높음 | 실험적 |