설치 및 설정 방법 - ssingi/open-source-project GitHub Wiki
- 운영 체제 : Windows 10 이상 / macOS / Linux
-
Python 3.10
이상 -
VS Code
설치 -
Google Cloud Platform
계정 (Gemini API 키 필요) 및Discord Developr Portal
에서 생성한 봇 토큰 -> 자세한 내용은 API 사용법 확인
-
프로젝트 클론 -
git clone https://github.com/ssingi/open-source-project.git
-
필요한 패키지 설치 -
pip install -r requirements.txt
-
가상환경 설정 -
python -m venv venv / source venv/bin/activate #Windows는 venv\Scripts\activate
.env 파일 예시
# .env
GEMINI_API_KEY=your_google_api_key
DISCORD_TOKEN=your_discord_token
config.yml 파일 예시
version: "3.1"
recipe: default.v1 # Rasa에서 제공하는 기본 레시피(설정 템플릿) 사용
assistant_id: 20250509-001644-burgundy-martin # (자동 생성된 챗봇 고유 ID)
language: ko
# 사용자의 입력을 처리하는 단계별 구성(파이프라인)
pipeline:
- name: WhitespaceTokenizer # 문장을 띄어쓰기 기준으로 나눔
- name: RegexFeaturizer # 정규표현식 기반 특징 추출
- name: LexicalSyntacticFeaturizer # 문법적 특징 추출
- name: CountVectorsFeaturizer # 단어/문자 빈도 기반 특징 추출
analyzer: "char_wb" # 문자 단위로 분석
min_ngram: 1 # 최소 n-gram 크기
max_ngram: 4 # 최대 n-gram 크기
- name: RegexEntityExtractor # 정규표현식으로 엔티티 추출
- name: DIETClassifier # 의도(intent)와 엔티티(entity) 분류를 위한 딥러닝 모델
epochs: 100 # 학습 반복 횟수
entity_recognition: True # 엔티티 인식 활성화
- name: EntitySynonymMapper # 엔티티의 동의어 처리
- name: ResponseSelector # 적절한 답변(response) 선택
epochs: 100
- name: FallbackClassifier # 챗봇이 이해하지 못할 때 fallback(예비 답변) 처리
threshold: 0.5 # 의도 인식 신뢰도 임계값
ambiguity_threshold: 0.1 # 애매한 경우 처리 임계값
fallback_intent_name: "fallback" # fallback으로 사용할 intent 이름
# 대화 정책(챗봇이 어떤 규칙/기억/학습을 바탕으로 대화를 이어갈지)에 대한 설정
policies:
- name: RulePolicy # 규칙 기반 정책(정해진 규칙대로 동작)
- name: MemoizationPolicy # 과거 대화(시나리오) 기억
- name: UnexpecTEDIntentPolicy # 예상치 못한 의도 처리
max_history: 5 # 최근 5개의 대화만 기억
epochs: 100 # 학습 반복 횟수
- name: TEDPolicy # 대화 흐름을 예측하는 딥러닝 정책
max_history: 5
epochs: 100