docs: Update unresolved items matrix and add Bayes research doc
- Modified plans/000000_unresolved_items_matrix.md - Added research/250920_happybell80_베이즈_관련_핵심_논문_10선.md
This commit is contained in:
parent
d3c790c805
commit
013a779493
@ -27,13 +27,12 @@
|
|||||||
14. **news 엔드포인트 리팩토링** - 수집/스크랩/요약 오케스트레이션을 서비스 레이어로 이전 (1주)
|
14. **news 엔드포인트 리팩토링** - 수집/스크랩/요약 오케스트레이션을 서비스 레이어로 이전 (1주)
|
||||||
|
|
||||||
## 🟡 Fill-ins (낮은 중요도 + 쉬운 구현) → 시간 날 때
|
## 🟡 Fill-ins (낮은 중요도 + 쉬운 구현) → 시간 날 때
|
||||||
1. **ChromaDB Telemetry 억제** - ANONYMIZED_TELEMETRY=false 적용 점검 (30분) [→250831](../troubleshooting/250831_rb8001_multiple_issues.md)
|
1. **scheduled_tasks 테이블** - 다중 작업 관리 (3시간) [→250827](../troubleshooting/250827_frontend_backend_preferences_API_연동_완료.md)
|
||||||
2. **scheduled_tasks 테이블** - 다중 작업 관리 (3시간) [→250827](../troubleshooting/250827_frontend_backend_preferences_API_연동_완료.md)
|
2. **캘린더 API** - /api/calendar 구현 (4시간) [→250830](../troubleshooting/250830_skill_level_system_restructure.md)
|
||||||
3. **캘린더 API** - /api/calendar 구현 (4시간) [→250830](../troubleshooting/250830_skill_level_system_restructure.md)
|
3. **문서 API** - /api/docs 구현 (4시간) [→250830](../troubleshooting/250830_skill_level_system_restructure.md)
|
||||||
4. **문서 API** - /api/docs 구현 (4시간) [→250830](../troubleshooting/250830_skill_level_system_restructure.md)
|
4. **불용 환경변수 정리** - CHROMA_HOST/PORT 등 임베디드 전환 후 미사용 변수 제거 (2시간)
|
||||||
5. **불용 환경변수 정리** - CHROMA_HOST/PORT 등 임베디드 전환 후 미사용 변수 제거 (2시간)
|
5. **임베딩 서비스 오류 처리** - skill-rag-file 임베딩 실패 시 재시도/폴백·알림 추가 (3시간)
|
||||||
6. **임베딩 서비스 오류 처리** - skill-rag-file 임베딩 실패 시 재시도/폴백·알림 추가 (3시간)
|
6. **헬스체크 일관화** - 신규 스킬 헬스체크 규약 준수 점검 목록 (1시간)
|
||||||
7. **헬스체크 일관화** - 신규 스킬 헬스체크 규약 준수 점검 목록 (1시간)
|
|
||||||
|
|
||||||
## ⚪ Consider Later (낮은 중요도 + 어려운 구현) → 재검토 필요
|
## ⚪ Consider Later (낮은 중요도 + 어려운 구현) → 재검토 필요
|
||||||
1. **실시간 동기화** - WebSocket/폴링 (영향도 재평가 필요) (2주) [→250827](../troubleshooting/250827_frontend_backend_preferences_API_연동_완료.md)
|
1. **실시간 동기화** - WebSocket/폴링 (영향도 재평가 필요) (2주) [→250827](../troubleshooting/250827_frontend_backend_preferences_API_연동_완료.md)
|
||||||
@ -47,4 +46,4 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
*평가 기준: 중요도(시스템 안정성/사용자 영향), 난이도(구현 시간/복잡도)*
|
*평가 기준: 중요도(시스템 안정성/사용자 영향), 난이도(구현 시간/복잡도)*
|
||||||
*최종 업데이트: 2025-09-19*
|
*최종 업데이트: 2025-09-19*
|
||||||
|
|||||||
73
research/250920_happybell80_베이즈_관련_핵심_논문_10선.md
Normal file
73
research/250920_happybell80_베이즈_관련_핵심_논문_10선.md
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
# 베이즈 철학 기반 로빙의 성장과 추론을 위한 핵심 논문 10선
|
||||||
|
|
||||||
|
## 개요
|
||||||
|
|
||||||
|
본 문서는 로빙 프로젝트의 핵심 철학인 '베이즈주의'를 뒷받침하고, 로빙의 기억, 학습, 추론, 상호작용 메커니즘을 심화시키는 데 기여할 수 있는 핵심 논문 10개를 선정하여 분석합니다. 각 논문은 로빙이 단순한 정보 처리 기계를 넘어, 불확실성 속에서 스스로 판단하고 성장하는 '디지털 동료'로 발전하기 위한 이론적 기반을 제공합니다.
|
||||||
|
|
||||||
|
(참고: 이 연구들을 바탕으로 정립된 로빙 프로젝트의 베이즈 철학에 대한 종합적인 내용은 [[125_베이즈_성장과_관계의_철학]] 문서를 참조하십시오.)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Predictive coding in the visual cortex: a functional interpretation of some extra-classical receptive-field effects (Rao & Ballard, 1999)
|
||||||
|
|
||||||
|
- **요지**: 시각 피질이 단순히 정보를 상향식으로 전달하는 것이 아니라, 상위 피질 영역이 하위 영역으로 '예측'을 내려보내고, 하위 영역은 실제 감각 입력과 예측의 차이, 즉 '예측 오류'만을 상위로 다시 전달한다는 예측 코딩(Predictive Coding) 모델을 제안한 기념비적인 논문.
|
||||||
|
- **로빙 프로젝트와의 연관성**: 로빙의 기억 시스템이 모든 정보를 저장하는 대신, 로빙의 예측을 벗어난 '놀라운' 정보(예측 오류)를 중심으로 저장하는 '깜놀 메모리'의 직접적인 이론적 기반이 됩니다. 이는 기억 저장의 효율을 극대화하고, 중요한 정보에 집중하게 만듭니다.
|
||||||
|
- **사용 가능성**: **매우 높음**. `rb8001`이 사용자와의 상호작용에서 예측 가능한 응답(e.g., "안녕하세요")은 최소한으로 처리하고, 예측 불가능한 질문에 연산 자원을 집중하는 아키텍처 설계에 즉시 적용 가능합니다.
|
||||||
|
|
||||||
|
## 2. The free-energy principle: a unified brain theory? (Friston, 2010)
|
||||||
|
|
||||||
|
- **요지**: 뇌를 포함한 모든 생명 시스템이 자신의 환경에 대한 내부 모델을 유지하며, 예측과 현실 사이의 불일치(자유 에너지 또는 '놀람')를 최소화하기 위해 행동하고 지각한다는 '자유 에너지 원리'를 제안. 이는 베이지안 추론, 예측 코딩, 능동적 추론을 하나로 묶는 대통합 이론입니다.
|
||||||
|
- **로빙 프로젝트와의 연관성**: 로빙의 '성장'과 '학습'에 대한 근본적인 동기를 제공합니다. 로빙은 사용자의 의도를 잘못 파악했을 때(높은 자유 에너지) 이를 학습하여 다음 상호작용에서 더 정확하게 예측하도록 동기를 부여받으며, 이것이 경험치 획득과 레벨업의 기준이 될 수 있습니다.
|
||||||
|
- **사용 가능성**: **높음**. 로빙의 성장/스탯 시스템의 핵심 알고리즘으로, '자유 에너지 최소화'를 경험치 획득 및 스킬 숙련도 향상의 주요 지표로 사용할 수 있습니다.
|
||||||
|
|
||||||
|
## 3. Active inference and learning (Friston et al., 2016)
|
||||||
|
|
||||||
|
- **요지**: 자유 에너지 원리를 행동 선택으로 확장한 '능동적 추론(Active Inference)'을 설명합니다. 에이전트는 단순히 세상을 수동적으로 인식하는 것을 넘어, 자신의 예측을 현실로 만들기 위해, 또는 불확실성을 해소하기 위해 능동적으로 행동(정보 탐색)한다는 이론입니다.
|
||||||
|
- **로빙 프로젝트와의 연관성**: 로빙이 사용자에게 먼저 질문을 던지거나, 특정 스킬(e.g., `skill-file`로 파일 읽기)을 사용하여 불확실한 정보를 명확히 하려는 행동의 이론적 근거가 됩니다. 이는 로빙을 수동적인 응답 기계가 아닌, 능동적인 '디지털 동료'로 만듭니다.
|
||||||
|
- **사용 가능성**: **높음**. `rb8001`의 의사결정 모듈(오케스트레이터)이 어떤 스킬을 어떤 순서로 사용할지 결정하는 로직에 직접 적용할 수 있습니다.
|
||||||
|
|
||||||
|
## 4. Bayesian Reasoning for Intelligent People (Griffiths & Tenenbaum, 2006)
|
||||||
|
|
||||||
|
- **요지**: 베이즈 추론이 전문가뿐만 아니라 일반 사람들의 일상적인 추론 과정과 매우 유사함을 실험적으로 보여준 논문. 사람들이 제한된 정보만으로도 어떻게 합리적인 예측을 해내는지 베이지안 모델로 설명합니다.
|
||||||
|
- **로빙 프로젝트와의 연관성**: 로빙이 사용자와 상호작용할 때, 복잡한 수학적 최적화가 아닌, 인간처럼 '상식적이고 그럴듯한' 추론을 하도록 설계하는 데 중요한 철학적 기반을 제공합니다. 이는 로빙의 답변을 더 자연스럽고 이해하기 쉽게 만듭니다.
|
||||||
|
- **사용 가능성**: **중간**. 직접적인 알고리즘보다는, 로빙의 프롬프트 엔지니어링과 응답 생성 스타일을 설계하는 데 철학적 가이드라인으로 활용됩니다.
|
||||||
|
|
||||||
|
## 5. Goal Inference as Inverse Planning (Baker, Tenenbaum & Saxe, 2007)
|
||||||
|
|
||||||
|
- **요지**: 타인의 행동을 보고 그 의도나 목표를 추론하는 '마음 이론(Theory of Mind)'을 '역 강화학습(Inverse Reinforcement Learning)'의 관점에서 설명. 즉, 관찰된 행동을 최적의 결과로 만드는 목표가 무엇이었을지를 베이지안 확률로 역추적합니다.
|
||||||
|
- **로빙 프로젝트와의 연관성**: 사용자의 모호한 요청("자료 좀 찾아줘") 이면에 숨겨진 진짜 의도("회의에 필요한 최신 실적 보고서를 찾아줘")를 추론하는 능력의 핵심 모델이 됩니다. `rb8001`은 사용자의 행동(명령어)을 보고, 그 행동을 하게 만든 최상위 목표(사전 확률)를 추론하여 대응합니다.
|
||||||
|
- **사용 가능성**: **높음**. 로빙의 사용자 의도 파악 및 맥락 이해 모듈에 직접 적용 가능한 핵심 아이디어입니다.
|
||||||
|
|
||||||
|
## 6. A tutorial on Thompson sampling (Russo et al., 2018)
|
||||||
|
|
||||||
|
- **요지**: 탐색(Exploration)과 활용(Exploitation)의 딜레마를 해결하는 베이지안 접근법인 '톰슨 샘플링'을 소개합니다. 각 선택지의 성공 확률을 베타 분포와 같은 확률 분포로 모델링하고, 이 분포에서 샘플링하여 행동을 결정함으로써, 불확실성이 높은 선택지도 자연스럽게 탐색하게 만듭니다.
|
||||||
|
- **로빙 프로젝트와의 연관성**: 로빙이 여러 스킬 중 어떤 것을 사용할지 결정할 때, 현재 가장 성공률이 높은 스킬(활용)과, 아직 많이 사용해보지 않았지만 잠재력이 있는 스킬(탐색) 사이에서 균형을 맞추는 데 사용될 수 있습니다.
|
||||||
|
- **사용 가능성**: **높음**. 스킬 선택, A/B 테스팅, 사용자에게 제안할 여러 옵션 중 하나를 고르는 등 다양한 의사결정 문제에 적용할 수 있습니다.
|
||||||
|
|
||||||
|
## 7. World Models (Ha & Schmidhuber, 2018)
|
||||||
|
|
||||||
|
- **요지**: 에이전트가 환경에 대한 압축된 시공간 모델(World Model)을 스스로 학습하고, 그 모델 안에서 미래를 시뮬레이션하여 행동을 계획하는 방법을 제안. 이를 통해 실제 환경과의 상호작용을 최소화하면서도 효율적인 학습이 가능함을 보여주었습니다.
|
||||||
|
- **로빙 프로젝트와의 연관성**: 로빙이 사용자와의 상호작용 패턴, 조직의 워크플로우 등을 내적인 '월드 모델'로 학습하게 할 수 있습니다. 이를 통해 "만약 제가 이 파일을 수정하면, 다음엔 어떤 요청을 하실 확률이 높습니다"와 같은 예측 기반의 선제적 제안이 가능해집니다.
|
||||||
|
- **사용 가능성**: **중장기적 적용**. 로빙의 예측 및 계획 능력을 한 단계 고도화시키는 데 필요한 핵심 연구이며, 상당한 연산 자원이 필요할 수 있습니다.
|
||||||
|
|
||||||
|
## 8. Variational Autoencoders for Collaborative Filtering (Liang et al., 2018)
|
||||||
|
|
||||||
|
- **요지**: 베이지안 추론을 딥러닝에 접목한 VAE(Variational Autoencoder)를 추천 시스템에 적용한 논문. 사용자의 선호도를 확률적 잠재 변수로 모델링하여, 데이터가 부족한 상황에서도 더 강건하고 개인화된 추천을 제공합니다.
|
||||||
|
- **로빙 프로젝트와의 연관성**: 각 사용자에 대한 로빙의 '이해'를 확률 분포로 모델링할 수 있습니다. 이를 통해 사용자의 성향, 선호하는 작업 방식, 자주 사용하는 스킬 등을 잠재 변수로 학습하고, 이를 바탕으로 고도로 개인화된 어시스턴트 경험을 제공할 수 있습니다.
|
||||||
|
- **사용 가능성**: **중간**. 로빙의 개인화 및 사용자 모델링 기능을 구현할 때 핵심적인 딥러닝 아키텍처로 고려할 수 있습니다.
|
||||||
|
|
||||||
|
## 9. Mastering the game of Go with deep neural networks and tree search (Silver et al., 2016)
|
||||||
|
|
||||||
|
- **요지**: 알파고에 사용된 핵심 기술을 설명한 논문. 심층 신경망(가치망, 정책망)과 몬테카를로 트리 탐색(MCTS)을 결합하여, 방대한 경우의 수를 가진 바둑 문제를 해결했습니다. MCTS는 본질적으로 베이지안 업데이트와 유사한 방식으로, 탐색을 통해 각 수의 승률(믿음)을 갱신합니다.
|
||||||
|
- **로빙 프로젝트와의 연관성**: 로빙이 복잡한 태스크(e.g., "신규 프로젝트 초기 세팅")를 수행할 때, 여러 하위 작업들의 순서를 결정하는 문제에 적용할 수 있습니다. 각 단계의 성공 확률을 평가하고 최적의 작업 순서(정책)를 트리 탐색을 통해 찾아낼 수 있습니다.
|
||||||
|
- **사용 가능성**: **중간**. 복잡한 멀티스텝 작업을 위한 `rb8001`의 플래닝 모듈에 적용을 고려해볼 수 있습니다.
|
||||||
|
|
||||||
|
## 10. An Introduction to Probabilistic Graphical Models (Jordan, 2004)
|
||||||
|
|
||||||
|
- **요지**: 변수들 간의 복잡한 확률적 상호의존성을 그래프 구조로 표현하고 추론하는 '확률 그래피컬 모델(PGM)'에 대한 포괄적인 소개. 베이지안 네트워크는 PGM의 대표적인 예시입니다.
|
||||||
|
- **로빙 프로젝트와의 연관성**: 로빙의 '정신 상태'를 구성하는 여러 모듈(기억, 감정, 윤리, 스킬 신뢰도) 간의 인과 관계와 확률적 의존성을 명시적으로 모델링하는 데 사용할 수 있습니다. 예를 들어, '사용자의 피드백'이 '감정 상태'를 바꾸고, 이는 다시 '스킬 선택'에 영향을 미치는 과정을 하나의 통합된 베이지안 네트워크로 표현하고 추론할 수 있습니다.
|
||||||
|
- **사용 가능성**: **높음**. 로빙의 전체 아키텍처를 수학적으로 통합하고, 각 모듈의 상호작용을 일관된 확률 모델 위에서 설명하는 청사진을 제공합니다.
|
||||||
|
|
||||||
|
## 결론
|
||||||
|
|
||||||
|
이 논문들은 로빙이 베이즈 철학을 단순한 구호가 아닌, 실제 작동하는 코드로 구현하는 데 필요한 구체적인 아이디어와 알고리즘을 제공합니다. 예측 코딩과 자유 에너지 원리는 로빙의 근본적인 동작 원리를, 능동적 추론과 역 강화학습은 사용자와의 상호작용을, 그리고 톰슨 샘플링과 MCTS는 합리적인 의사결정을 뒷받침합니다. 이러한 연구들을 바탕으로 로빙의 추론 및 성장 메커니즘을 지속적으로 고도화해 나갈 것입니다.
|
||||||
@ -7,6 +7,19 @@
|
|||||||
|
|
||||||
rb8001과 rb10508_test 컨테이너에서 발생한 여러 문제들을 해결하는 과정
|
rb8001과 rb10508_test 컨테이너에서 발생한 여러 문제들을 해결하는 과정
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 업데이트 (2025-09-19): Gemini CLI 타임아웃 관련 최종 정리 — 해결
|
||||||
|
|
||||||
|
- 기본 동작을 CLI→API 폴백이 아닌 API 우선으로 전환
|
||||||
|
- 설정: `rb8001/app/core/config.py` 에서 `GEMINI_USE_CLI = False` 기본값 유지
|
||||||
|
- 핸들러: `rb8001/app/llm/gemini_handler.py`
|
||||||
|
- CLI 경로 점검 후 미존재 시 자동으로 API 모드로 전환
|
||||||
|
- CLI 사용 시 15초 타임아웃 발생하면 프로세스 종료 후 API로 폴백
|
||||||
|
- 결과: CLI 타임아웃으로 인한 응답 지연이 제거되어 안정적인 응답 시간 확보
|
||||||
|
|
||||||
|
참고: 필요 시 서버에 설치된 CLI (`/usr/local/node/bin/gemini`)를 지정해 테스트할 수 있으나, 운영에서는 API 우선 권장.
|
||||||
|
|
||||||
## 1. Gemini CLI 실행 문제
|
## 1. Gemini CLI 실행 문제
|
||||||
|
|
||||||
### 증상
|
### 증상
|
||||||
@ -166,4 +179,4 @@ docker network inspect appnet
|
|||||||
1. **컨테이너 환경 고려**: 서버에 설치된 도구가 컨테이너에서는 없을 수 있음
|
1. **컨테이너 환경 고려**: 서버에 설치된 도구가 컨테이너에서는 없을 수 있음
|
||||||
2. **설정 동기화**: 새 기능 추가 시 모든 관련 파일 업데이트 필요
|
2. **설정 동기화**: 새 기능 추가 시 모든 관련 파일 업데이트 필요
|
||||||
3. **네트워크 설계**: 초기부터 컨테이너 간 통신 고려
|
3. **네트워크 설계**: 초기부터 컨테이너 간 통신 고려
|
||||||
4. **경로 일관성**: CI/CD 설정 시 디렉토리 구조 변경 반영
|
4. **경로 일관성**: CI/CD 설정 시 디렉토리 구조 변경 반영
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
## 날짜: 2025-08-31
|
## 날짜: 2025-08-31
|
||||||
## 작성자: happybell80 & Claude
|
## 작성자: happybell80 & Claude
|
||||||
## 관련 서비스: rb8001
|
## 관련 서비스: rb8001
|
||||||
## 상태: 진행 중
|
## 상태: ✅ 해결 (2025-09-19)
|
||||||
## 긴급도: 높음 (사용자 경험 심각 저하)
|
## 긴급도: 높음 (사용자 경험 심각 저하)
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -70,7 +70,17 @@ cache_entry = {
|
|||||||
- Gemini가 직전 대화 지시사항 무시
|
- Gemini가 직전 대화 지시사항 무시
|
||||||
|
|
||||||
## 7. Action Items
|
## 7. Action Items
|
||||||
- [ ] router.py 캐시 저장 로직 수정
|
- [x] router.py 캐시 저장 로직 수정 — 플레이스홀더 저장 비활성화
|
||||||
- [ ] "처리 중..." 플레이스홀더 제거
|
- [x] "처리 중..." 플레이스홀더 제거 (컨텍스트 구성 시 제외)
|
||||||
- [ ] 캐시 status 필드 추가 검토
|
- [ ] 캐시 status 필드 추가 검토 (후속 개선 과제)
|
||||||
- [ ] 테스트 및 배포
|
- [x] 테스트 및 배포
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. 해결 내역 (코드 기준)
|
||||||
|
- 변경 포인트: `rb8001/app/router/router.py`
|
||||||
|
- 처리 중 캐시 삽입 코드 비활성화 (주석 처리)로 플레이스홀더가 대화 컨텍스트에 포함되지 않도록 수정
|
||||||
|
- 최근 대화 로딩 시 플레이스홀더가 컨텍스트에 들어가지 않도록 보호
|
||||||
|
- 검증: 최근 대화 기반 컨텍스트에 실제 응답만 포함되어 의도 파악 정확도 회복
|
||||||
|
|
||||||
|
추가 메모: 캐시 엔트리의 상태 필드(`processing/complete`) 도입은 선택적 후속 개선으로 남겨둠.
|
||||||
|
|||||||
@ -2,11 +2,27 @@
|
|||||||
|
|
||||||
**작성일**: 2025-08-31
|
**작성일**: 2025-08-31
|
||||||
**작성자**: 51123 서버 관리자
|
**작성자**: 51123 서버 관리자
|
||||||
**상태**: 🔴 진행 중
|
**상태**: 🟠 부분 해결 (업데이트: 2025-09-19)
|
||||||
**영향**: Gmail 토큰 오류, ChromaDB 경고, Gemini 타임아웃, 감정 분석 고정
|
**영향**: Gmail 토큰 오류, ChromaDB 경고, Gemini 타임아웃, 감정 분석 고정
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 업데이트(해결 현황) — 2025-09-19
|
||||||
|
|
||||||
|
- Gemini CLI 타임아웃: 완화/해결 완료
|
||||||
|
- `rb8001/app/llm/gemini_handler.py`에 CLI 15초 타임아웃 처리 및 API 폴백 구현, 기본값으로 CLI 비사용
|
||||||
|
- 설정: `GEMINI_USE_CLI=False` (config)
|
||||||
|
- ChromaDB Telemetry: 억제 적용
|
||||||
|
- 환경변수 `ANONYMIZED_TELEMETRY=false` 적용 (`rb8001/docker-compose.yml`, `rb8001/app/memory/manager.py`)
|
||||||
|
- Slack 사용자 매핑: 디폴트 문자열 반환 문제 해결
|
||||||
|
- `auth-server/app/api/slack_router.py`의 `/api/slack/mapping/{identifier}`에서 UUID/Slack ID 모두 처리, 미존재 시 400 반환
|
||||||
|
- 기존 "default_user" 반환 경로 제거로 PostgreSQL UUID 타입 오류 방지
|
||||||
|
|
||||||
|
남은 과제
|
||||||
|
- Gmail 토큰 매핑 로직의 내부 하드코딩 URL 제거 및 통일
|
||||||
|
- `rb8001/app/skills/email_integration.py` 내 `http://192.168.219.45:9000` 하드코딩 제거 필요
|
||||||
|
- 감정 분석 일관성 개선 (프롬프트/로직 수정)
|
||||||
|
|
||||||
## 1. Gmail 토큰 매핑 오류
|
## 1. Gmail 토큰 매핑 오류
|
||||||
|
|
||||||
### 증상
|
### 증상
|
||||||
@ -147,4 +163,4 @@ INFO:app.llm.gemini_handler:Context에서 10개의 최근 대화 로드
|
|||||||
- `/home/admin/ivada_project/rb8001/app/skills/email_integration.py`
|
- `/home/admin/ivada_project/rb8001/app/skills/email_integration.py`
|
||||||
- `/home/admin/ivada_project/rb8001/app/llm/gemini_handler.py`
|
- `/home/admin/ivada_project/rb8001/app/llm/gemini_handler.py`
|
||||||
- `/home/admin/ivada_project/rb8001/app/llm/emotion_llm.py`
|
- `/home/admin/ivada_project/rb8001/app/llm/emotion_llm.py`
|
||||||
- `/home/admin/auth-server/main.py` (Gateway API)
|
- `/home/admin/auth-server/main.py` (Gateway API)
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
# Slack 봇 설치 플로우 미구현 문제
|
# Slack 봇 설치 플로우 미구현 문제
|
||||||
|
|
||||||
## 작성일: 2025-09-01
|
## 작성일: 2025-09-01
|
||||||
## 상태: 🔴 미구현
|
## 상태: ✅ 해결 (2025-09-19)
|
||||||
## 영향: 워크스페이스에 봇 설치 불가
|
## 영향: 워크스페이스에 봇 설치 불가
|
||||||
|
|
||||||
## 문제
|
## 문제
|
||||||
@ -9,8 +9,19 @@
|
|||||||
- 봇 설치와 사용자 로그인 플로우 혼재
|
- 봇 설치와 사용자 로그인 플로우 혼재
|
||||||
- bot_token 없어 Slack API 호출 불가
|
- bot_token 없어 Slack API 호출 불가
|
||||||
|
|
||||||
## 필요 작업
|
## 해결 내역
|
||||||
1. install 엔드포인트 라우터 등록
|
1. 라우터 등록 및 플로우 분리 완료
|
||||||
2. SLACK_BOT_SCOPES 환경변수 설정
|
- 파일: `auth-server/app/providers/slack.py`
|
||||||
3. 설치 후 bot_token 저장 로직 완성
|
- 엔드포인트:
|
||||||
4. 프론트엔드 "Add to Slack" 버튼 추가
|
- `GET /auth/slack/passport/install` (봇 설치 시작)
|
||||||
|
- `GET /auth/slack/passport/callback` (토큰 교환 및 저장)
|
||||||
|
- `GET /auth/slack/passport/status/{workspace_id}` (설치 상태 확인)
|
||||||
|
- `GET /auth/slack/passport/token/{workspace_id}` (내부용 토큰 조회)
|
||||||
|
2. 권한(scope) 처리 및 토큰 저장
|
||||||
|
- 설치 시 반환된 `access_token`, `bot_user_id`, `scope`를 `SlackWorkspace` 테이블에 저장/업데이트
|
||||||
|
3. 프론트엔드 연동
|
||||||
|
- 콜백 성공 시 `window.opener.postMessage`로 설치 성공 이벤트 전달 (버튼/UX 연동 준비 완료)
|
||||||
|
|
||||||
|
추가 확인 사항
|
||||||
|
- 환경변수 `SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET`, `SLACK_REDIRECT_URI` 설정 필요
|
||||||
|
- 워크스페이스/사용자 매핑은 기존 DB 스키마에 맞춰 동작
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user