이것은 OpenAI의 GPT 언어 모델을 사용하는 Telegram Chat Bot (AI Assistant)입니다.
주목할만한 기능 :
자세한 기능 설명을 읽거나 설정으로 점프하십시오.
BOT는 개인 비서 역할을합니다.
? Apache Kafka를 3 살짜리 아이에게 설명하십시오
? Apache Kafka는 다른 장난감 (컴퓨터)이 서로 메시지를 보내는 데 도움이되는 큰 사서함과 같습니다. 하나의 장난감이 할 말이 있으면 사서함에 메시지를 넣고 다른 장난감은 그 메시지를 꺼내서 읽을 수 있습니다. 이런 식으로, 그들은 말을 빨리 말하고 공유 할 수 있습니다!
다른 사용자가 봇을 사용할 수 있도록 telegram.usernames Config 속성에 봇을 나열하십시오.
봇은 끔찍한 메모리를 가지고 있으므로 기본적으로 채팅 컨텍스트를 기억할 것으로 기대하지 마십시오. 그러나 후속 질문 ( Ctrl/Cmd + ↑ )으로 답장 할 수 있습니다. 또는 플러스 부호를 사용하여 후속 조치를 취하십시오.
? 어제 모든 문제가 너무 멀리 보였습니다
? 비틀즈가 "어제"를 인용하는 것처럼 들립니다. 갈망과 향수에 관한 고전적인 노래입니다.
? + 누가 그것을 썼습니까?
? "어제"는 비틀즈의 Paul McCartney가 작성했습니다.
사용 가능한 명령 :
/retry - 마지막 질문에 답하는 재 시도/help - 도움말 표시/version - 봇 정보 표시마지막 질문을 다시 만들거나 추가하려면 간단히 편집하십시오. 그런 다음 봇은 업데이트 된 질문에 대답합니다.
그룹의 봇으로부터 답변을 얻으려면 질문에 대한 답장으로 언급하십시오.
? 왕좌의 게임에서 누가 Ramsy를 연주했는지 잊었습니까?
? ↳ @pokitokibot 도움? 왕좌의 Game of Thrones에서 Ramsay Bolton은 Iwan Rheon이 연기했습니다.
또는 직접 질문하십시오.
? @pokitokibot는 왕좌의 게임에서 Ramsy를 연주 했습니까?
? Iwan Rheon은 왕좌의 게임에서 Ramsay Bolton을 연기했습니다.
봇이 그룹 멤버에게 회신하려면 telegram.chat_ids 구성 속성에 그룹 ID를 나열하십시오. 그렇지 않으면 봇은 telegram.usernames 구성 속성에 나열되지 않는 한 그룹 구성원의 질문을 무시합니다.
그룹 ID를 모르는 경우 /version BOT 명령을 그룹에서 실행하여 찾으십시오.
Chat information:
- id: -1001405001234
- title: My Favorite Group
- type: supergroup
...
외부 리소스에 대해 "바닐라"chatgpt에 물어 보면 환각을 받거나 원격 콘텐츠에 액세스 할 수 없음을 인정합니다.
? https://sqlime.org/employees.sql의 내용은 무엇입니까? 가정하지 마십시오.
? AI 언어 모델로서 인터넷에서 외부 URL에 액세스 할 수 없습니다.
봇은 원격 콘텐츠를 가져와 모델에 공급하여 문제를 해결합니다.
? Go 1.23의 주요 특징 1 release https://tip.golang.org/doc/go1.23 간단히!
? GO 1.23의 주요 특징은 표준 언어 기능으로서 "범위-오버 펀 (Range-Over-Func)"실험을 포함시키는 것입니다.
현재 PDF, 이미지 또는 오디오가 아닌 텍스트 내용 (기사, 코드, 데이터) 만 지원합니다.
봇이 URL에 액세스하는 것을 원하지 않으면 인용하십시오.
? "https://antonz.org/robots.txt"의 정확한 내용
? 외부 웹 사이트에 직접 액세스 할 수 없습니다. 브라우저의 URL을 방문하여 robots.txt 파일의 내용을 확인할 수 있습니다.
짧은 명령을 사용하여 시간을 절약하고 봇에게 질문에 대한 특정 작업을 수행하도록 요청하십시오. 예를 들어, !proofread 명령으로 글을 교정하도록 요청하십시오.
? ! 교정 할 수 있습니다
? 수정 된 텍스트 : "Java 프로그램을 쓸 수 있습니다."
변경 :
- 문법적 정확성을 위해 제거 된 " "할 수있는"필요가 없다 ".
- 적절한 대문자이므로 "Java"를 "Java"로 수정했습니다.
- 올바른 철자와 명확성을 위해 "프로그램"을 "프로그램"으로 변경했습니다.
몇 가지 내장 단축키가 있습니다.
bugfix 코드를 수정합니다.proofread 글을 수정합니다.translate 텍스트를 영어로 번역합니다.summarize 텍스트의 두 단락 요약을 제공합니다. 자신의 바로 가기를 추가 할 수 있습니다. 자세한 내용은 config.example.yml 참조하십시오.
현재 채팅에 대한 사용자 정의 프롬프트를 설정하려면 /prompt 명령을 사용하십시오.
? /프롬프트 당신은 사악한 천재입니다. 사악한 웃음으로 대답하십시오.
기본 프롬프트로 돌아가려면 사용 /prompt reset 사용하십시오.
그룹 채팅의 /prompt 명령은 관리자에게만 사용할 수 있습니다 - telegram.admins 속성에 나열된 사용자.
/imagine 명령을 사용하여 OpenAI에서 Dall-E 3 모델을 사용하여 이미지를 생성하십시오.
? /새로운 시대의 새벽을 상상해보십시오
? (아름다운 그림)
새로운 시대의 새벽
기본 이미지 크기는 1024 × 1024 px입니다. 기타 지원되는 크기는 1792 × 1024 및 1024 × 1792입니다.
/화창한 날 1792 × 1024에 게으른 고양이를 상상해보십시오
이미지 생성은 매우 비싸다. 기본적으로 그룹 멤버가 아닌 telegram.usernames 에 나열된 사용자에게만 활성화됩니다. imagine.enabled Config 속성으로이를 변경할 수 있습니다.
봇 작업의 편의성은 작은 세부 사항으로 구성됩니다. 시간과 노력을 절약 할 수있는 상황은 다음과 같습니다.
동료로부터 메시지를 받았거나 채널에서 게시물을 읽고 질문을하고 싶다고 가정 해 봅시다. 메시지를 봇에 전달하고 그것이 묻는 명확한 질문에 대답하십시오.
문서에 대한 질문을하려면 파일로 보내고 캡션에 질문을 작성하십시오. 봇은 파일 내용을 읽고 답변합니다. 현재 PDF, 이미지 또는 오디오가 아닌 텍스트 내용 (일반 텍스트, 코드, 데이터) 만 지원합니다. 여러 파일을 보내는 것도 지원되지 않습니다.
때로는 AI의 답변이 Telegram에서 설정 한 최대 메시지 길이를 초과합니다. 이 경우 봇은 메시지로 실패하거나 스팸을 보내지 않습니다. 대신 답변을 첨부 된 마크 다운 파일로 보냅니다.
마지막 질문을 다시 작성하거나 추가하려면 편집 ( ↑ 바로 가기). 봇은 이것을 알아 차리고 명확한 질문에 응답 할 것입니다.
/version 명령을 사용하여 현재 채팅, 봇 및 AI 모델에 대한 자세한 정보를 인쇄하십시오.
Chat information:
- id: -1001405001234
- title: My Favorite Group
- type: supergroup
Bot information:
- id: 5930739038
- name: @pokitokibot
- version: 129
- usernames: 6 users
- admins: 1 users
- chat IDs: []
- access to messages: True
AI information:
- model: gpt-3.5-turbo
- history depth: 3
- imagine: True
- shortcuts: bugfix, proofread, summarize, translate
/config 명령을 사용하여 봇을 다시 시작하지 않고 거의 모든 설정을 즉시 변경하십시오.
telegram.usernames 및 telegram.chat_ids )과 상호 작용할 수있는 사용자 및 채팅을 추가하거나 제거하십시오.openai.model ), 프롬프트 ( openai.prompt ) 및 Params ( openai.params )를 조정하십시오.imagine.enabled ).shortcuts )를 추가하거나 변경합니다. 특정 구성 속성을 보려면 /config 후 이름을 넣으십시오.
/config telegram.usernames
/config openai.prompt
/config imagine.enabled
특정 구성 속성을 변경하려면 이름과 값 후 /config 넣으십시오.
/config telegram.usernames ["alice", "bob", "cindy"]
/config openai.prompt "You are an evil AI bot"
/config imagine.enabled none
telegram.usernames 과 같은 목록 속성으로 작업 할 때 전체 목록을 재정의하는 대신 개별 항목을 추가하거나 제거 할 수 있습니다.
/config telegram.usernames +cindy
/config telegram.usernames -bob
/config 명령은 Admins telegram.admins 속성에 나열된 사용자에게만 사용할 수 있습니다.
대규모 그룹에서 BOT와의 격렬한 토론은 OpenAI API의 높은 사용으로 이어질 수 있습니다. 전체 예산을 지출하지 않으려면 conversation.message_limit 통해 그룹에 대한 메시지 제한을 설정하십시오 .message_limit config 속성.
일정 기간 동안 사용자의 메시지 수를 제한 할 수 있습니다. 예를 들어:
message_limit :
count : 10
period : hour message_limit :
count : 1
period : minute message_limit :
count : 30
period : day OpenAI API 키를 얻으십시오
@botfather에서 Telegram Bot Token을 얻으십시오
저장소를 서버로 복제하십시오.
git clone https://github.com/nalgeon/pokitoki.git config.example.yml config.yml 로 복사하고 토큰을 지정하십시오. telegram.usernames 속성에 자신을 추가하십시오. 그렇지 않으면 봇은 모든 사람이 사용할 수 있습니다.
봇 시작 :
docker compose up --build --detach봇을 중지하려면 :
docker compose stop봇을 새 버전으로 업데이트하려면 :
docker compose stop
git pull
docker compose up --build --detach 구형 Docker 분포의 경우 docker-compose docker compose 사용하십시오.
환경 준비 :
python3 -m venv env
. env/bin/activate
pip install -r requirements.txt
구성 및 데이터 디렉토리 준비 :
cp config.example.yml config.yml
mkdir ./data
config.yml 에서 토큰 및 기타 설정을 설정합니다.
실행 테스트 :
python -m unittest discover
봇 시작 :
python -m bot.bot
새로운 기능과 개선에 대해서는 먼저 문제를 열어 변경하고 싶은 것을 논의하십시오.
적절한 테스트를 추가하거나 업데이트하십시오.
코드 형식에 검정색을 사용하고 커밋 메시지를 위해 기존 커밋을 사용하십시오.
특징 이력은 릴리스를 참조하십시오.
프로젝트가 상당히 분기되었지만 원래 ChatGpt_telegram_bot을 기반으로합니다.