Skip to content

[ai-assisted] feat(rag): 외부 웹 수집과 근거 통합 추가 - #527

Merged
donghyuck merged 1 commit into
3.xfrom
codex/indexed-web-rag-grounding
Aug 2, 2026
Merged

donghyuck merged 1 commit into
3.xfrom
codex/indexed-web-rag-grounding

Conversation

@donghyuck

Copy link
Copy Markdown
Owner

Why

  • 공개 HTTPS 페이지와 제한된 사이트 범위를 workspace RAG 자료로 수집·색인할 수 있어야 합니다.
  • 첨부 문서와 수집 웹 자료를 함께 검색할 때 검색·packing·인용 검증·SSE·cache가 동일한 근거 계약을 사용해야 합니다.
  • 검색 실패, 근거 구성 실패, 생성 답변 인용 실패가 동일한 메시지로 표시되던 문제와 과거 RAG 회귀를 함께 방지해야 합니다.

What

  • web-knowledge-service와 starter를 추가해 단일 페이지 및 제한된 사이트 수집, revision/CAS, quota, refresh/cancel, HTML 정규화와 RAG 색인을 구현했습니다.
  • HTTPS/redirect/DNS/robots/MIME/크기 제한을 적용한 수집기와 PostgreSQL·MySQL·MariaDB migration을 추가했습니다.
  • INDEXED_WEB 근거 선택, 문서·웹 다중 출처 검색과 packing, source-comparison coverage, 답변 정책 및 인용 검증을 공통 RAG 완료 경로에 연결했습니다.
  • 검증된 canonical 답변만 SSE complete, cache, conversation에 반영하고 실패 단계별 outcome과 exact excerpt 근거 후보를 제공합니다.
  • attachment 객체 권한, embedding/vector partition, provider timeout/error 처리, API·클라이언트 연동 가이드와 회귀 테스트를 보완했습니다.

Related Issues

  • 별도 Issue 없음: 대화형 작업 요청에서 구현 계획, 보안 기준, 회귀 방지 및 완료 기준을 순차적으로 확정했습니다.

Validation

  • Command: ./gradlew :starter:studio-platform-starter-ai-web:test :starter:studio-platform-starter-ai:test :starter:studio-platform-starter-markdown:test :starter:studio-platform-starter-security:test :studio-application-modules:web-knowledge-service:test :starter:studio-application-starter-web-knowledge:test :studio-application-modules:attachment-service:test :starter:studio-application-starter-attachment:test
  • Result: BUILD SUCCESSFUL
  • Command: git diff --cached --check
  • Result: 통과
  • Command: staged path 및 알려진 비밀키 패턴 검사
  • Result: 실행 로그·환경파일·.omx·비밀키 패턴 없음
  • Manual: attachment와 indexed web을 함께 사용한 RAG 요청에서 ANSWERED, INDEX_VALID, STRUCTURE_VALID, DOCUMENT + INDEXED_WEB packing 및 웹 근거 reference 반환 확인

Risk / Rollback

  • Risk: 신규 DB migration과 URL 수집 네트워크 경계, 다중 근거 검색이 런타임 설정 및 기존 RAG 응답 경로에 영향을 줄 수 있습니다.
  • Rollback: 배포 버전을 이전 릴리스로 되돌리고 studio.ai.indexed-web.enabled=false로 URL 수집을 비활성화합니다. 신규 테이블은 기존 데이터와 분리되어 있으며 기존 attachment 색인에는 backfill을 수행하지 않습니다.

AI / Subagent Usage

  • AI-assisted: Yes
  • Subagent used: No
  • Delegated scope: 없음
  • Main author validation: 관련 서버 모듈 테스트, diff 검사, 민감 파일 검사 및 로컬 인증 RAG smoke test를 직접 수행했습니다.

Checklist

  • commit message follows policy
  • issue template used or exception recorded
  • AI-Assisted value is correct
  • validation recorded
  • subagent usage recorded when used
  • CI / repository verification passed
  • human review completed before merge
  • no unrelated changes included

Issue:
- 별도 Issue 없음 (대화형 작업 요청으로 기능 범위와 완료 기준을 확정함)

Why:
- 공개 HTTPS 자료를 수집·색인하고 첨부 문서와 함께 검증 가능한 RAG 근거로 사용하기 위해 변경합니다.
- 검색 실패, 근거 구성 실패, 인용 검증 실패를 구분하고 답변 정책과 SSE 완료 계약을 통일할 필요가 있습니다.

What:
- 단일 페이지와 제한된 사이트 수집을 지원하는 web-knowledge 모듈, 보안 수집기, 상태·quota·revision 저장 및 다중 DB migration을 추가했습니다.
- INDEXED_WEB 근거 선택, 다중 출처 검색·packing, 답변 정책, citation 검증, cache·SSE·대화 계약을 연결했습니다.
- attachment 권한, embedding/vector partition, provider 오류 처리와 관련 문서·회귀 테스트를 보완했습니다.

Validation:
- ./gradlew :starter:studio-platform-starter-ai-web:test :starter:studio-platform-starter-ai:test :starter:studio-platform-starter-markdown:test :starter:studio-platform-starter-security:test :studio-application-modules:web-knowledge-service:test :starter:studio-application-starter-web-knowledge:test :studio-application-modules:attachment-service:test :starter:studio-application-starter-attachment:test
- Result: BUILD SUCCESSFUL
- git diff --cached --check
- Result: 통과
- staged path 및 알려진 비밀키 패턴 검사
- Result: 이상 없음
@donghyuck
donghyuck merged commit 6fc7579 into 3.x Aug 2, 2026
2 checks passed
@donghyuck
donghyuck deleted the codex/indexed-web-rag-grounding branch August 2, 2026 23:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant