Skip to content

디스코드 채널에서 자연스럽게 사람들의 대화에 참여하는 봇.

Notifications You must be signed in to change notification settings

NeuroWhAI/discord-bot-become-human

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Discord Bot Become Human

OpenAI 대화 모델을 적절히 사용하여 디스코드 채널에서 자연스럽게 사람들의 대화에 참여하는 봇.

banner

Multi-User Conversation
demo

Reference message & Vision
demo2

Function Calls (Weather, Search, Image Gen/Edit, Interpreter, Query DB)
demo3

Features

  • 정해진 채널에서 다자간 대화 수집.
    • 수집 텍스트 : 작성자, 작성일, 내용, og:title/description
    • 수집 이미지 : 첨부, 이모지, 스티커, HTTP URL, og:image
    • 수집 파일(이미지 외) : 첨부
  • 채널이 일정시간 이상 조용하거나 봇이 멘션되면 수집한 맥락을 가지고 대화 시작.
  • 대화 시작 이후에는 멘션이 없어도 일정시간 뒤 응답.
  • 응답을 할지 말지 판단.
  • 대화를 중지할지 말지 판단.
  • 대화 주제가 전환되었는지 판단.
  • 대화 중지 또는 주제 전환시 이전 대화를 내부적으로 요약.
  • 함수 호출 기능 사용하여 기능 확장.
  • 이전 대화들을 정리하여 임베딩 계산 후 DB에 저장.
  • 메모장 느낌으로 채널과 사람에 대해 기억하고 대화에 활용.
  • 좀 더 똑똑하게 대화 참여 및 나가기.

Config

.env

CLIENT_ID={Discord App ID}
DISCORD_TOKEN={Discord Bot Token}
CHANNEL_WHITELIST={Discord Channel IDs : e.g. 321545304510012344,321545304510012345}
OPENAI_API_KEY={OpenAI API Key}
OPENAI_CHAT_MODEL={e.g. gpt-4o}
OPENAI_REASONING_MODEL={e.g. o1-mini}
OPENAI_EMBEDDING_MODEL={e.g. text-embedding-3-large}
CHROMA_DB_URL={e.g. http://localhost:8000}

WEATHER_BIT_API_KEY={Weatherbit API Key}
TAVILY_API_KEY={Tavily API Key}
STABILITY_API_KEY={Stability API Key}
RUNPOD_API_KEY={RunPod API Key}
RUNPOD_ANIME_IMAGEN_ENDPOINT_ID={RunPod Anime Image Generation Endpoint ID : e.g. gblook0abcdefg}
JINA_API_KEY={Jina API Key}

About

디스코드 채널에서 자연스럽게 사람들의 대화에 참여하는 봇.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published