docs: skill-slack 배포 문서 명확성 개선
- 경로 중복 제거 - 토큰 설정 방식 명확화 - 테스트/체크리스트 우선순위 정리
This commit is contained in:
parent
c172c616b5
commit
38ed2c28a3
@ -11,86 +11,127 @@ skill-slack의 역할을 로빙 철학(스킬=도구, 판단 금지)에 맞게
|
|||||||
---
|
---
|
||||||
|
|
||||||
## 배포 전제조건
|
## 배포 전제조건
|
||||||
- [ ] thread_ts 버그 수정 [확인필요: messages.py]
|
|
||||||
- [ ] SERVICE_API_KEY 설정 [확인필요: 실제값]
|
### 현재 상태
|
||||||
- [ ] SLACK_BOT_TOKEN 설정 [확인필요: 실제값]
|
- **heejae 컨테이너**: 실행 중 (포트 8502 사용)
|
||||||
- [ ] heejae → admin 계정 이전
|
- **admin 디렉토리**: 코드만 클론됨
|
||||||
|
- **포트 충돌**: 동시 실행 불가
|
||||||
|
|
||||||
|
### 필수 확인
|
||||||
|
- [ ] thread_ts 버그 수정 (chat_postMessage에 thread_ts 파라미터 추가)
|
||||||
|
- [ ] SERVICE_API_KEY 설정 (51124 서버 .env 확인)
|
||||||
|
- [ ] SLACK_BOT_TOKEN 설정 (환경변수)
|
||||||
|
- [ ] heejae 컨테이너 중단 후 admin 시작
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 로빙 철학 적용
|
## 로빙 철학 적용
|
||||||
|
|
||||||
### 원칙
|
### 원칙
|
||||||
- **스킬 = 도구**: 판단 금지, 실행만
|
- **스킬 = 순수 도구**: 판단 금지, DB 접근 금지
|
||||||
- **무상태**: 기억하지 않음
|
- **무상태**: 어떤 정보도 기억/조회하지 않음
|
||||||
|
- **교체 가능**: 언제든 제거/교체 가능해야 함
|
||||||
|
|
||||||
|
### 올바른 아키텍처
|
||||||
|
```
|
||||||
|
1. rb8001이 DB에서 토큰/채널 조회
|
||||||
|
2. rb8001이 skill-slack 호출 시 필요 정보 전달
|
||||||
|
3. skill-slack은 받은 정보로만 작업
|
||||||
|
```
|
||||||
|
|
||||||
### API 변경
|
### API 변경
|
||||||
| 엔드포인트 | 상태 | 이유 |
|
| 엔드포인트 | 상태 | 이유 |
|
||||||
|-----------|------|------|
|
|-----------|------|------|
|
||||||
| `/health` | 유지 | 헬스체크 |
|
| `/health` | 유지 | 헬스체크 |
|
||||||
| `/api/v1/send` | 유지 | 메시지 전송 |
|
| `/api/v1/send` | 유지 | 메시지 전송 (토큰 받아서) |
|
||||||
| `/api/v1/update` | 유지 | 메시지 업데이트 |
|
| `/api/v1/update` | 유지 | 메시지 업데이트 |
|
||||||
| `/api/v1/summarize` | **삭제** | LLM 호출 (로빙 역할) |
|
| `/api/v1/summarize` | **삭제** | LLM 호출 (로빙 역할) |
|
||||||
| `/api/v1/digest` | **삭제** | 자체 처리 (로빙 역할) |
|
| `/api/v1/digest` | **삭제** | 자체 처리 (로빙 역할) |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 배포 절차
|
## 환경변수 설정
|
||||||
|
|
||||||
```bash
|
### 기본 토큰 (임시)
|
||||||
ssh admin@51124
|
- **SLACK_BOT_TOKEN**: 환경변수로 설정
|
||||||
cd /home/admin/ivada_project/skill-slack
|
- **SERVICE_API_KEY**: API 인증용
|
||||||
git pull
|
|
||||||
docker compose down
|
### 올바른 방식
|
||||||
docker compose up -d --build
|
- rb8001이 요청 시마다 토큰 전달:
|
||||||
docker logs skill-slack --tail=50
|
```json
|
||||||
|
{
|
||||||
|
"channel": "C1234567",
|
||||||
|
"text": "메시지",
|
||||||
|
"token": "xoxb-...", // rb8001이 DB에서 조회한 토큰
|
||||||
|
"thread_ts": "1234567890.123456"
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 테스트
|
## 배포 절차
|
||||||
|
|
||||||
### 헬스체크
|
### 계정 전환 (heejae → admin)
|
||||||
```bash
|
```bash
|
||||||
curl -f http://localhost:8502/health
|
# 51124 서버에서
|
||||||
|
docker stop skill-slack # heejae 컨테이너 중단
|
||||||
|
cd /home/admin/ivada_project/skill-slack
|
||||||
|
git pull
|
||||||
|
docker compose up -d --build
|
||||||
|
docker logs skill-slack --tail=50
|
||||||
```
|
```
|
||||||
|
|
||||||
### 스레드 응답 (핵심)
|
### 네트워크 모드 변경
|
||||||
```bash
|
현재: `network_mode: host` (docker-compose.yml 32행)
|
||||||
curl -X POST http://localhost:8502/api/v1/send \
|
권장: bridge 모드로 변경
|
||||||
-H "X-API-Key: [확인필요]" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d '{"channel": "[확인필요]", "text": "테스트", "thread_ts": "[확인필요]"}'
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 주요 이슈
|
## 주요 이슈
|
||||||
|
|
||||||
### 긴급
|
### 긴급
|
||||||
- **thread_ts 미작동**: 스레드 응답 불가
|
- **thread_ts 미작동**: chat_postMessage 호출 시 thread_ts 미전달
|
||||||
- **계정 이전**: heejae → admin 미완료
|
- **DB 접근 문제**: skill-slack이 DB 접근하면 철학 위반
|
||||||
|
|
||||||
### 결정 필요
|
### 수정 필요
|
||||||
- 레이트리밋: Redis vs 파일
|
- **토큰 전달 방식**: 환경변수 → API 요청 시 전달
|
||||||
- 네트워크: host vs bridge
|
- **네트워크**: host → bridge
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 테스트
|
||||||
|
|
||||||
|
### 테스트 명령 (현재)
|
||||||
|
```bash
|
||||||
|
# 헬스체크
|
||||||
|
curl -f http://localhost:8502/health
|
||||||
|
|
||||||
|
# 메시지 전송
|
||||||
|
curl -X POST http://localhost:8502/api/v1/send \
|
||||||
|
-H "X-API-Key: {API_KEY}" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"channel": "C1234567", "text": "테스트"}'
|
||||||
|
```
|
||||||
|
|
||||||
|
### 테스트 명령 (개선 후)
|
||||||
|
```bash
|
||||||
|
# rb8001이 토큰과 함께 요청
|
||||||
|
curl -X POST http://localhost:8502/api/v1/send \
|
||||||
|
-H "X-API-Key: {API_KEY}" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"channel": "C1234567", "text": "테스트", "token": "xoxb-..."}'
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 체크리스트
|
## 체크리스트
|
||||||
|
|
||||||
### 배포 전
|
### 배포 전
|
||||||
- [ ] thread_ts 수정
|
- [ ] heejae 컨테이너 중단
|
||||||
- [ ] 토큰 설정
|
- [ ] thread_ts 버그 수정
|
||||||
- [ ] 포트 확인
|
- [ ] 임시 SLACK_BOT_TOKEN 설정
|
||||||
|
|
||||||
### 배포 후
|
### 배포 후
|
||||||
- [ ] 헬스체크 200
|
- [ ] 헬스체크 200
|
||||||
- [ ] 스레드 응답 테스트
|
- [ ] 스레드 응답 테스트
|
||||||
- [ ] summarize/digest 제거 확인
|
- [ ] API에 token 파라미터 추가 (향후)
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 통합
|
|
||||||
- **rb8001**: 메시지 전송 요청
|
|
||||||
- **네이버웍스**: 슬랙 브릿지
|
|
||||||
Loading…
x
Reference in New Issue
Block a user