docs: 뉴스 시스템 통합 구현 상태 업데이트 - 코드 수정 완료, 테스트 대기

This commit is contained in:
happybell80 2025-09-07 17:50:26 +09:00
parent 9e7c1fe024
commit e43701977a

View File

@ -20,12 +20,12 @@
- **Gemini 요약**: gemini-2.5-flash-lite 모델 사용 중
- **JSON 상태 관리**: /app/data/news_state.json 파일 기반
### 미구현 (확인됨)
- **Slack 인터랙티브 버튼**: Block Kit 미적용
- **Button Callback 처리**: /slack/interactive 엔드포인트 없음
- **rb8001↔skill-publish 연동**: HTTP 통신 코드 없음
- **DB 저장**: rb_news 테이블 없음 (DB 작업 대기)
- **게시 결과 알림**: Slack 응답 메시지 미구현
### 코드 수정 완료 (테스트 대기)
- **Slack 인터랙티브 버튼**: Block Kit 구현 완료
- **Button Callback 처리**: /api/slack/interactive 엔드포인트 추가
- **rb8001↔skill-publish 연동**: HTTP 통신 코드 구현
- **게시 결과 알림**: response_url 통한 알림 구현
- **DB 저장**: rb_news 테이블 없음 (Phase 3 대기)
## 2. 통합 플로우
@ -54,14 +54,14 @@ rb8001 → POST skill-publish:8511/publish
## 3. 필요 구현 사항
### 3.0 컴퍼니엑스 전용 검색 (skill-news)
**파일**: app/services/companyx_news_collector.py (신규)
**엔드포인트**: /api/news/google/companyx-search (news_endpoints.py:63)
### 3.0 컴퍼니엑스 전용 검색 (skill-news)
**파일**: app/services/companyx_news_collector.py (생성됨)
**엔드포인트**: /api/news/google/companyx-search (news_endpoints.py:64)
**검색식**: `"컴퍼니 엑스" OR "컴퍼니엑스" -광고 -채용 -구인`
**환경변수**: COMPANY_X_NEWS_KEYWORDS (기본값 내장)
### 3.1 Slack Block Kit 메시지 (rb8001)
**위치**: app/skills/news_posting_skill.py (신규 생성)
### 3.1 Slack Block Kit 메시지 (rb8001)
**위치**: app/skills/news_posting_skill.py (생성)
**함수**:
- `send_news_for_posting()`: 채널에 뉴스 전송
- `create_news_blocks()`: Block Kit 메시지 생성
@ -82,19 +82,19 @@ blocks = [
```
**참고**: naver_startup_news_service.py, dm_skill.py:384 (DM 전송 로직)
### 3.2 Interactive Endpoint (rb8001)
**위치**: main.py:248 (slack_events 아래 추가)
### 3.2 Interactive Endpoint (rb8001)
**위치**: main.py:249 (구현됨)
```python
@app.post("/api/slack/interactive")
async def slack_interactive(request: Request):
return await handle_interactive(request) # slack_handler.py
```
**핸들러**: slack_handler.py에 handle_interactive() 추가
**핸들러**: slack_handler.py:274 handle_interactive() 구현됨
**구현 방식**: 기존 handle() 패턴 따라 payload 파싱, action_id 확인
**URL 설정**: Slack App에 https://ro-being.com/api/slack/interactive 등록
### 3.3 skill-publish 연동 (rb8001)
**위치**: news_posting_skill.py 내부 함수
### 3.3 skill-publish 연동 (rb8001)
**위치**: news_posting_skill.py:186 publish_to_squarespace() 구현됨
```python
async def publish_to_squarespace(news_data):
async with httpx.AsyncClient() as client:
@ -176,8 +176,8 @@ docker logs rb8001 | grep postMessage
```
## 10. 완료 기준
- [ ] 뉴스에 게시 버튼 표시
- [ ] 버튼 클릭시 게시 프로세스 시작
- [ ] Squarespace 게시 완료
- [ ] 사용자에게 결과 알림
- [ ] 상태 저장 및 조회 가능
- [x] 코드 구현: 모든 Phase 1, 2 기능 구현 완료
- [ ] 테스트: 실제 작동 확인 필요
- [ ] Slack App 설정: Interactive URL 등록 필요
- [ ] 환경변수 설정: .env 파일 업데이트 필요
- [ ] 배포: Docker 재시작 후 검증 필요