DOCS/troubleshooting/250916_rb8001_skill-rag-file_연동_구조.md
happybell80 d2e7299686 docs: rb8001-skill-rag-file Slack 파일 연동 구조 문서화
- 트러블슈팅: rb8001에서 skill-rag-file 호출 구조 정리
- RAG 아키텍처: Slack 파일 처리 플로우 추가
- team_id 기반 저장 구조로 변경 (user_id → team_id)
- /mnt/hdd/data/documents/ 경로 업데이트
2025-09-16 00:25:35 +09:00

2.3 KiB

rb8001-skill-rag-file Slack 파일 처리 연동 구조

작성일: 2025-09-16

작성자: Claude (51123 서버 관리자)

1. 현재 상황

  • skill-rag-file: 구조만 생성, 미구현 상태
  • rb8001: Slack 메시지 수신 중 (파일 처리 로직 없음)
  • team_document 테이블: 스펙만 존재, 실제 미생성

2. 구현 필요 플로우

Slack 파일 수신 → rb8001 → skill-rag-file

Slack 파일 업로드
    ↓ (Event API)
rb8001:8001 /slack/events
    ↓ (파일 타입 확인)
rb8001 file_handler
    ↓ (HTTP POST)
skill-rag-file:8508 /upload
    ↓
파일 저장 + DB 기록 + ChromaDB 벡터화

3. rb8001 수정 필요사항

파일 이벤트 핸들러 추가

  • 위치: rb8001/app/api/slack_events.py
  • Slack file_shared 이벤트 처리
  • files:read 스코프 확인 필요

skill-rag-file 호출 함수

# rb8001/app/services/rag_service.py (신규)
async def upload_to_rag(file_url, filename, team_id, user_id):
    response = await httpx.post(
        "http://localhost:8508/upload",
        json={
            "file_url": file_url,
            "filename": filename,
            "team_id": team_id,
            "uploaded_by": user_id
        }
    )

4. skill-rag-file 구현 필요사항

엔드포인트

  • POST /upload: 파일 수신 및 처리
  • POST /search: 벡터 검색
  • GET /healthz: 헬스체크

주요 기능

  • Slack 파일 다운로드 (bot_token 사용)
  • 텍스트 추출 (PyPDF2, python-docx)
  • PostgreSQL team_document 저장
  • ChromaDB rb8001_{team_id}_documents 벡터화

5. 테이블 생성 (51123)

CREATE TABLE team_document (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    team_id UUID NOT NULL REFERENCES team(id),
    filename VARCHAR(255) NOT NULL,
    file_hash VARCHAR(64) NOT NULL,
    storage_path VARCHAR(500),
    text_content TEXT,
    metadata JSONB DEFAULT '{}',
    created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);

CREATE UNIQUE INDEX idx_team_doc_hash ON team_document(team_id, file_hash);

6. 확인 사항

  • rb8001 Slack 앱 files:read 스코프
  • skill-rag-file Git 레포 실제 구현
  • 51124 서버 Docker 컨테이너 배포
  • /mnt/51123data/documents/ 마운트 확인