docs: harmonize rb8001/rb10508 roles, gateway routing, ports; unify proxy_pass slashes; externalize RAG; fix nginx-infra refs; generalize embedding dims; skill sharing notes
This commit is contained in:
parent
4876880160
commit
04b78c7ebc
@ -95,10 +95,10 @@ version: 3.0
|
||||
│ 51124 서버 (서비스 운영) │
|
||||
├─────────────────────────────────────────────┤
|
||||
│ 로빙 서비스: │
|
||||
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
||||
│ │rb8001 │ │rb10408 │ │rb10508 │ │
|
||||
│ │(테스트) │ │(미디어) │ │(메인) │ │
|
||||
│ └─────────┘ └─────────┘ └─────────┘ │
|
||||
│ ┌────────────┐ ┌─────────┐ ┌──────────────┐ │
|
||||
│ │rb8001 │ │rb10408 │ │rb10508_micro │ │
|
||||
│ │(메인/프로덕션)│ (미디어) │ │(테스트) │ │
|
||||
│ └────────────┘ └─────────┘ └──────────────┘ │
|
||||
│ │
|
||||
│ 스킬 서비스: │
|
||||
│ ┌─────────┐ ┌─────────┐ ┌──────────┐ │
|
||||
@ -143,17 +143,19 @@ sequenceDiagram
|
||||
participant U as User
|
||||
participant S as Slack
|
||||
participant N as nginx(51123)
|
||||
participant R as rb10508(51124)
|
||||
participant G as Gateway(8100)
|
||||
participant R as rb8001(51124)
|
||||
participant E as Embedding
|
||||
participant DB as PostgreSQL
|
||||
participant C as ChromaDB
|
||||
|
||||
U->>S: 메시지 입력
|
||||
S->>N: Webhook 전달
|
||||
N->>R: 요청 라우팅
|
||||
N->>G: 요청 전달
|
||||
G->>R: 라우팅
|
||||
R->>DB: 스탯/레벨 조회
|
||||
R->>E: 텍스트 임베딩
|
||||
E-->>R: 384차원 벡터
|
||||
E-->>R: 임베딩 벡터(모델 종속 차원)
|
||||
R->>C: 유사 기억 검색
|
||||
C-->>R: 관련 컨텍스트
|
||||
R->>R: LLM 처리
|
||||
@ -359,4 +361,4 @@ sequenceDiagram
|
||||
|
||||
> "로빙과 함께라면, 당신은 더 이상 혼자가 아닙니다."
|
||||
|
||||
*Last Updated: 2025.01.31*
|
||||
*Last Updated: 2025.01.31*
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
| 서버 | IP | 역할 | 주요 서비스 |
|
||||
|------|-----|------|------------|
|
||||
| 51123 | 192.168.219.45 | 메인 서버 | Gitea, nginx, auth-server, PostgreSQL |
|
||||
| 51124 | 192.168.219.52 | 로빙/스킬 서버 | rb8001, rb10508, skill-email, ChromaDB |
|
||||
| 51124 | 192.168.219.52 | 로빙/스킬 서버 | rb8001, rb10508_micro, skill-email, ChromaDB |
|
||||
|
||||
### 기본 구조
|
||||
```
|
||||
@ -53,7 +53,7 @@
|
||||
│ │ rb8001 (8001) │ │
|
||||
│ │ rb10508_micro (10508) │ │
|
||||
│ │ skill-email (8501) │ │
|
||||
│ │ skill-news (8502) │ │
|
||||
│ │ skill-news (8505) │ │
|
||||
│ └─────────────────────────────┘ │
|
||||
│ ┌─────────────────────────────┐ │
|
||||
│ │ ChromaDB (8000) │ │
|
||||
@ -146,7 +146,7 @@ robeing.conversations: id, robeing_id, user_message, robeing_response
|
||||
| 10508 | rb10508_micro | 테스트 로빙 |
|
||||
| 10408 | rb10408_test | 개발 로빙 |
|
||||
| 8501 | skill-email | Gmail 스킬 |
|
||||
| 8502 | skill-news | 뉴스 스킬 |
|
||||
| 8505 | skill-news | 뉴스 스킬 |
|
||||
| 8000 | ChromaDB | 벡터 DB |
|
||||
|
||||
### API 엔드포인트
|
||||
@ -336,4 +336,4 @@ Gateway (8100)
|
||||
**업데이트**: 2025-08-21
|
||||
**작성자**: 로빙 개발팀
|
||||
**버전**: 2.0
|
||||
**상태**: 구현 중
|
||||
**상태**: 구현 중
|
||||
|
||||
@ -41,11 +41,13 @@ Embedding: Separated Service (Memory Optimization)
|
||||
|
||||
## 시스템 구조 이해하기
|
||||
```
|
||||
User → Slack → rb10508 Container → PostgreSQL/ChromaDB
|
||||
↓
|
||||
Embedding Service
|
||||
↓
|
||||
Skill Services
|
||||
User → Slack → nginx → Gateway(8100) → rb8001(프로덕션)
|
||||
↓
|
||||
Embedding Service
|
||||
↓
|
||||
Skill Services (HTTP)
|
||||
↓
|
||||
PostgreSQL / ChromaDB
|
||||
```
|
||||
|
||||
## 실습 과제
|
||||
@ -59,4 +61,4 @@ User → Slack → rb10508 Container → PostgreSQL/ChromaDB
|
||||
- 동시 처리: 5개 요청
|
||||
|
||||
## 다음 단계
|
||||
Part 4 [성장과 진화](../400_growth/README.md)에서 이 아키텍처 위에서 어떻게 성장하는지 학습하세요.
|
||||
Part 4 [성장과 진화](../400_growth/README.md)에서 이 아키텍처 위에서 어떻게 성장하는지 학습하세요.
|
||||
|
||||
@ -51,7 +51,7 @@ sudo chown -R 999:999 ./chromadb_data
|
||||
- 3초 룰 구현 (빠른 응답 후 처리)
|
||||
- 메시지 큐 시스템
|
||||
|
||||
**rb10508 (메인 브레인)**:
|
||||
**rb10508 (메인 브레인) [당시 기준 — 현행: rb8001가 메인]**:
|
||||
- 기억 시스템 구현
|
||||
- 감정 모델 통합
|
||||
- PostgreSQL 연동
|
||||
@ -103,7 +103,7 @@ WebSocket connection to 'ws://localhost:10508' failed
|
||||
|
||||
// 해결: nginx 프록시 설정
|
||||
location /ws {
|
||||
proxy_pass http://172.17.0.1:10508;
|
||||
proxy_pass http://172.17.0.1:10508/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
@ -254,4 +254,4 @@ async def execute_skill(skill_name: str, params: dict):
|
||||
|
||||
로빙은 이제 단순한 챗봇이 아니다. 기억하고, 느끼고, 성장하는 AI 에이전트다. 앞으로도 계속 진화할 것이다.
|
||||
|
||||
**"도구에서 동료로, 동료에서 친구로"** - 이것이 로빙이 가는 길이다.
|
||||
**"도구에서 동료로, 동료에서 친구로"** - 이것이 로빙이 가는 길이다.
|
||||
|
||||
@ -368,8 +368,8 @@ class HTTPEmbeddingFunction:
|
||||
|----------|------|------|-----------|-------------|
|
||||
| **skill_email** | 8501 | 운영 중 (6일) | 이메일 조회/발송 | rb10408, rb10508 |
|
||||
| **skill-news** | 8505 | 정상 (2시간) | 뉴스 검색/요약 | rb10408, rb10508 |
|
||||
| **skill-slack** | 8503 | 정상 (2시간) | Slack 메시지 처리 | rb10408만 |
|
||||
| **skill-embedding** | 8515 | 정상 (6일) | 텍스트 임베딩 생성 | rb10508만 |
|
||||
| **skill-slack** | 8503 | 정상 (2시간) | Slack 메시지 처리 | 공용(원칙) — 현재 rb10408만 연결, 확대 예정 |
|
||||
| **skill-embedding** | 8515 | 정상 (6일) | 텍스트 임베딩 생성 | 공용(원칙) — 현재 rb10508만 연결, 공용 전환 계획 |
|
||||
|
||||
### 스킬 통합 개선 방안
|
||||
|
||||
@ -485,4 +485,4 @@ class HTTPEmbeddingFunction:
|
||||
|
||||
---
|
||||
|
||||
*이 문서는 2025년 8월 11일 51124 서버에서 실측한 데이터를 기반으로 작성되었습니다.*
|
||||
*이 문서는 2025년 8월 11일 51124 서버에서 실측한 데이터를 기반으로 작성되었습니다.*
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
- 흐름: 업로드 → (PDF/이미지 분기) → skill-ocr HTTP 호출 → 텍스트/블록/메타 → RAG(ChromaDB) 저장 → 응답
|
||||
- 컴포넌트
|
||||
- rb*: 클라이언트 요청 처리, 파일 유형 판별, skill-ocr 호출만 담당
|
||||
- skill-ocr(8501): OCR 파이프라인 수행(PDF: OCRmyPDF, 이미지: PaddleOCR 등)
|
||||
- skill-ocr(8506): OCR 파이프라인 수행(PDF: OCRmyPDF, 이미지: PaddleOCR 등)
|
||||
- Storage: `/mnt/hdd/uploads/{user_id}/`, 로그 `/mnt/hdd/logs/skill-ocr/`
|
||||
- Vector DB: ChromaDB(텍스트 조각) + PostgreSQL(메타)
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
- 로그는 `/mnt/hdd/logs/skill-ocr/` 30일 롤링, 샘플: `Fallback to OCR`, `OCR quality low: confidence=0.72`
|
||||
|
||||
## 6) 배포 가이드(요약)
|
||||
- 컨테이너: `skill-ocr`(8501)
|
||||
- 컨테이너: `skill-ocr`(8506)
|
||||
- 볼륨: `-v /mnt/hdd/uploads:/mnt/hdd/uploads:ro`, `-v /mnt/hdd/logs/skill-ocr:/logs`
|
||||
- 환경: `LANGS=kor,eng`, `THREADS=N`, `USE_GPU=false|true`
|
||||
- 헬스체크: `GET /healthz` (main.py/Dockerfile/compose/workflows 동기화)
|
||||
@ -100,4 +100,3 @@
|
||||
- TrOCR: Hugging Face 문서, AAAI 논문
|
||||
- Donut: GitHub, arXiv, 산업 적용 리뷰
|
||||
- Kraken/Calamari: GitHub, 공식 문서
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
**작성일**: 2025-09-09
|
||||
**작성자**: happybell80 & Claude
|
||||
**관련 서비스**: rb8001 (RAG 스킬 내부 구현)
|
||||
**관련 서비스**: skill-rag (HTTP 외부 스킬)
|
||||
**핵심 기술**: Multi-provider Search API, Query Routing, Caching, RAG
|
||||
|
||||
## 1. 검색 프로바이더 계층 구조
|
||||
@ -25,7 +25,7 @@
|
||||
검색 의도 추가: LLM 프롬프트에 "검색 요청은 /search로" 또는 직접 패턴 매칭.
|
||||
|
||||
```python
|
||||
# rb8001/app/skills/rag.py
|
||||
# 예시 라우팅 (의도별 외부 호출)
|
||||
def route_by_pattern(query):
|
||||
if "뉴스" in query: return 'news_api'
|
||||
if "언제" in query: return 'duckduckgo' # 즉답
|
||||
@ -35,17 +35,17 @@ def route_by_pattern(query):
|
||||
## 3. 구현 아키텍처
|
||||
|
||||
```
|
||||
사용자 → rb8001 내부 RAG 스킬
|
||||
↓
|
||||
[Query Router]
|
||||
↓
|
||||
[Provider Manager]
|
||||
/ | | \
|
||||
Tavily Brave Serper DuckDuckGo
|
||||
↓
|
||||
[Result Merger]
|
||||
↓
|
||||
[Redis Cache]
|
||||
사용자 → rb8001 → (HTTP) skill-rag
|
||||
↓
|
||||
[Query Router]
|
||||
↓
|
||||
[Provider Manager]
|
||||
/ | | \
|
||||
Tavily Brave Serper DuckDuckGo
|
||||
↓
|
||||
[Result Merger]
|
||||
↓
|
||||
[Redis Cache]
|
||||
```
|
||||
|
||||
## 4. 캐싱 전략
|
||||
@ -66,17 +66,17 @@ Tavily Brave Serper DuckDuckGo
|
||||
|
||||
### 예상 월 비용: $0.05
|
||||
|
||||
## 6. 구현 위치: rb8001/app/skills/rag.py
|
||||
## 6. 구현 위치: skill-rag (외부 서비스)
|
||||
|
||||
별도 마이크로서비스 대신 rb8001 내부 RAG 스킬로 구현
|
||||
- 웹 검색 + 파일 RAG 통합 처리
|
||||
rb8001 내부 구현 대신 외부 RAG 스킬(HTTP)로 분리
|
||||
- 웹 검색 + 파일 RAG 통합 처리 (HTTP 인터페이스)
|
||||
- Phase 1: Tavily + DuckDuckGo 웹 검색
|
||||
- Phase 2: ChromaDB 파일 검색 통합
|
||||
- Phase 3: 복잡도 증가 시 skill-rag 분리
|
||||
- Phase 3: 트래픽 증가 시 스케일아웃 (수평 확장)
|
||||
|
||||
## 7. 핵심 차별점
|
||||
|
||||
- 다층 프로바이더로 안정성 확보
|
||||
- 쿼리 타입별 최적 API 자동 선택
|
||||
- 무료 한도 최대 활용으로 비용 최소화
|
||||
- 캐싱으로 중복 검색 방지
|
||||
- 캐싱으로 중복 검색 방지
|
||||
|
||||
@ -43,11 +43,11 @@
|
||||
```
|
||||
├── 로빙 컨테이너
|
||||
│ ├── rb8001:8001 (프로덕션)
|
||||
│ ├── rb10508_test:10508 (테스트)
|
||||
│ └── rb10408_test:10408 (테스트)
|
||||
│ ├── rb10508_micro:10508 (테스트)
|
||||
│ └── rb10408:10408 (테스트)
|
||||
├── 스킬 서비스
|
||||
│ ├── skill-email:8501 (Gmail 연동)
|
||||
│ ├── skill-news:8502
|
||||
│ ├── skill-news:8505
|
||||
│ ├── skill-embedding:8515 (포트 변경됨)
|
||||
│ └── skill-slack (멀티봇 지원)
|
||||
└── ChromaDB (벡터 DB)
|
||||
@ -244,4 +244,4 @@ GET /api/health # 헬스체크
|
||||
|
||||
- 이 계획은 초안이며, 구현 과정에서 수정될 수 있음
|
||||
- 기존 frontend-base의 코드를 최대한 재활용
|
||||
- 서버팀과 사전 협의 필요 (포트, 도메인 등)
|
||||
- 서버팀과 사전 협의 필요 (포트, 도메인 등)
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# 중앙 인증 서버(auth.ro-being.com) 구축
|
||||
|
||||
**날짜**: 2025-07-16
|
||||
**관련 서비스**: auth-server, nginx-deploy
|
||||
**관련 서비스**: auth-server, nginx-infra
|
||||
**작성자**: Claude AI Assistant
|
||||
|
||||
## 작업 개요
|
||||
@ -43,7 +43,7 @@ auth-server/
|
||||
|
||||
### 3. Nginx 리버스 프록시 설정
|
||||
|
||||
**nginx-deploy/default.conf 수정**:
|
||||
**nginx-infra/default.conf 수정**:
|
||||
```nginx
|
||||
# Auth server configuration
|
||||
server {
|
||||
@ -123,7 +123,7 @@ services:
|
||||
## 관련 파일
|
||||
|
||||
- `/home/happybell/projects/ivada/auth-server/` - 인증 서버
|
||||
- `/home/happybell/projects/ivada/nginx-deploy/default.conf` - Nginx 설정
|
||||
- `/home/happybell/projects/ivada/nginx-infra/default.conf` - Nginx 설정
|
||||
- `/home/happybell/projects/ivada/skill_email/` - Gmail 스킬 (통합 예정)
|
||||
|
||||
## SSL/HTTPS 설정 추가
|
||||
@ -135,10 +135,10 @@ services:
|
||||
|
||||
### 해결 과정
|
||||
|
||||
1. **nginx-deploy 저장소 구조 파악**:
|
||||
1. **nginx-infra 저장소 구조 파악**:
|
||||
- `default.conf`: Docker nginx 설정 (legacy)
|
||||
- `server-nginx-default`: 실제 서버 nginx 설정 파일
|
||||
- GitHub Actions가 `server-nginx-default`를 서버의 `/etc/nginx/sites-available/default`로 복사
|
||||
- Gitea Actions가 `server-nginx-default`를 서버의 `/etc/nginx/sites-available/default`로 복사
|
||||
|
||||
2. **HTTPS 서버 블록 추가**:
|
||||
```nginx
|
||||
@ -185,4 +185,4 @@ server {
|
||||
2. **중앙 인증의 장점**: 토큰 관리 일원화, 보안 강화, 확장성
|
||||
3. **마이크로서비스 구조**: 각 서비스(인증, API, 로빙)를 독립적으로 관리
|
||||
4. **SSL 설정 패턴**: HTTP는 HTTPS로 리다이렉션, HTTPS 블록에 실제 프록시 설정
|
||||
5. **nginx-deploy 워크플로우**: 로컬 수정 → Git push → GitHub Actions → 서버 배포
|
||||
5. **nginx-infra 워크플로우**: 로컬 수정 → Git push → Gitea Actions → 서버 배포
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user