웹사이트에 실시간 AI 챗봇 구축: 간단한 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인공지능
대상자
- 웹 개발자 및 AI 엔지니어
- 복잡한 데이터 파이프라인을 피하고자 하는 실무자
- 실시간 정보 업데이트가 필요한 챗봇 프로젝트 담당자
- 난이도: 중급~고급 (AI 프레임워크 활용, 웹 크롤링 기술 필요)
핵심 요약
- PocketFlow 프레임워크를 사용해 벡터 데이터베이스 없이 실시간 웹사이트 정보를 기반으로 챗봇 구축
- "Node" 기반 아키텍처로 복잡한 파이프라인 대신 단순한 웹 크롤링을 통해 데이터 수집
- 자체적인 웹사이트 업데이트로 인해 데이터 동기화 없이 실시간 정확한 답변 제공
섹션별 세부 요약
1. 전통적인 챗봇 개발의 한계
- 문서 수집-정리-데이터베이스 구축 3단계를 거쳐야 함
- 수동 업데이트 필요로 인해 실시간성 부족 및 오류 발생 가능성
- 예: 가격/정책 변경 시 챗봇 정보가 뒤처짐
2. 실시간 웹사이트 기반 챗봇 구조
- 웹사이트 자체를 지식원으로 활용해 실시간 정보 수집
- 예: "Product A 환불 절차" 질문 시 홈페이지 → 상품 페이지 → 지원 섹션 순서로 정보 탐색
- 사전 승인된 도메인 제한으로 인터넷 전체 크롤링 방지
3. PocketFlow 프레임워크 소개
- 100줄의 코드로 구성된 무중간 라이브러리
- 3가지 핵심 원칙:
- Node 기반 작업 분할 (예: BaseNode
클래스)
- 공유 데이터 딕셔너리(shared
)를 통한 정보 전달
- Flow 관리자로 노드 연결 및 신호 처리
4. Node 기반 워크플로우 예시
- AddFive Node:
```python
class AddFive(BaseNode):
def exec(self, current_number):
return current_number + 5
```
- MultiplyByTwo Node:
```python
class MultiplyByTwo(BaseNode):
def exec(self, current_number):
return current_number * 2
```
- Flow 관리자:
```python
class Flow(BaseNode):
def orch(self, shared):
curr = self.start
while curr:
signal = curr.run(shared)
curr = curr.successors.get(signal or "default")
```
결론
- PocketFlow를 활용해 복잡한 데이터베이스 없이 웹사이트 자체를 지식원으로 사용함으로써 0 유지보수 및 실시간 업데이트 가능
- Node 기반 아키텍처를 통해 간단한 로직으로도 복잡한 작업 흐름 구현 가능
- 실무 적용 시 PocketFlow를 사용하고, 사전 승인된 도메인 목록을 명시적으로 설정해 보안 강화 추천