From b686f412aa626143e9e9b7db3b4a23564584bcea Mon Sep 17 00:00:00 2001 From: happybell80 Date: Wed, 17 Sep 2025 01:06:56 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EB=B6=88=ED=95=84=EC=9A=94=ED=95=9C=20?= =?UTF-8?q?=EB=82=A8=EC=9D=80=20=EA=B3=BC=EC=A0=9C=20=EC=84=B9=EC=85=98=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...916_rb8001_skill-rag-file_연동_구조.md | 27 ++++++++----------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/troubleshooting/250916_rb8001_skill-rag-file_연동_구조.md b/troubleshooting/250916_rb8001_skill-rag-file_연동_구조.md index aeb6de2..1d65a96 100644 --- a/troubleshooting/250916_rb8001_skill-rag-file_연동_구조.md +++ b/troubleshooting/250916_rb8001_skill-rag-file_연동_구조.md @@ -141,25 +141,20 @@ brain_service/llm_service (파일 처리 없이 텍스트만 처리) ### 파일 처리 즉시 응답 방식 개선 - **문제**: 파일 업로드와 질의가 별도 이벤트로 처리되면 파일 내용 인식 못함 - **원인**: context에 file_ids가 없으면 검색 경로 미실행 -- **해결**: - - 파일 텍스트를 먼저 메모리에 추출 (Slack API 직접 다운로드) +- **초기 해결 시도 문제**: + - WebClient.api_call() 잘못 사용 (URL 직접 전달 불가) + - requests 패키지 없음 (requirements.txt에 미포함) + - 비동기 함수에서 동기 블로킹 코드 사용 +- **최종 해결**: + - httpx.AsyncClient 사용 (이미 설치됨) + - 파일 텍스트를 먼저 메모리에 추출 (httpx로 비동기 다운로드) - context["file_contents"]로 즉시 LLM에 전달 - skill-rag-file 업로드는 asyncio.create_task()로 백그라운드 처리 -- **결과**: ChromaDB 에러와 무관하게 즉시 파일 내용 활용 가능 +- **결과**: + - ChromaDB 에러와 무관하게 즉시 파일 내용 활용 가능 + - 파일 다운로드 및 처리 성공 + - 로빙이 파일 내용 읽고 정확히 답변 -## 11. 남은 과제 - -### 검색 결과 없을 때 처리 -- **현상**: 검색 결과가 없으면 빈 응답 반환 -- **문제**: Slack API가 빈 메시지 거부 (no_text 에러) -- **필요**: 검색 실패 시 기본 메시지 처리 - -### 대화와 문서 분리 저장 구조 -- **설계 의도**: - - rb8001: 사용자 대화 임베딩 (짧고 자주 변경) - - skill-rag-file: 문서 임베딩 (크고 고정적) -- **장점**: 검색 성능 최적화, 용도별 처리 분리 -- **단점**: 두 컬렉션 간 연동 복잡도 증가 ### ChromaDB 검색 구조 (API 통신) - **현재 구조**: