Este é um BOT de bate -papo do Telegram (AI Assistente) que usa os modelos de idiomas GPT do OpenAI.
Recursos notáveis:
Continue lendo para obter uma descrição detalhada do recurso ou salte para configurar.
O bot atua como seu assistente pessoal:
? Explique o Apache Kafka a uma criança de três anos
? O Apache Kafka é como uma grande caixa de correio que ajuda a diferentes brinquedos (computadores) a enviar mensagens um para o outro. Quando um brinquedo tem algo a dizer, ele coloca uma mensagem na caixa de correio e outros brinquedos podem levar essa mensagem e lê -la. Dessa forma, eles podem conversar e compartilhar as coisas rapidamente!
Para permitir que outros usuários usem o bot, liste -os na propriedade telegram.usernames Config.
O bot tem uma memória terrível, portanto, não espere que se lembre de qualquer contexto de bate -papo por padrão. Você pode, no entanto, responder com uma pergunta de acompanhamento ( Ctrl/Cmd + ↑ ). Como alternativa, use um sinal de mais para acompanhar:
? Ontem, todos os meus problemas pareciam tão longe
? Parece que você está citando "ontem" pelos Beatles. É uma música clássica sobre saudade e nostalgia.
? + Quem escreveu?
? "Ontem" foi escrito por Paul McCartney, dos Beatles.
Comandos disponíveis:
/retry - tente responder à última pergunta/help - mostre ajuda/version - mostre informações de botPara reformular ou adicionar à última pergunta, basta editá -la. O bot responderá à pergunta atualizada.
Para obter uma resposta do bot em um grupo, mencione -o em uma resposta a uma pergunta:
? Eu esqueci quem jogou Ramsy no Game of Thrones?
? ↳ @pokitokibot ajuda? Ramsay Bolton em Game of Thrones foi interpretado por Iwan Rheon.
Ou faça uma pergunta diretamente:
? @pokitokibot que jogou Ramsy no Game of Thrones?
? Iwan Rheon interpretou Ramsay Bolton em Game of Thrones.
Para fazer com que a resposta do BOT aos membros do grupo, liste o ID do grupo na propriedade telegram.chat_ids Config. Caso contrário, o bot ignorará as perguntas dos membros do grupo, a menos que estejam listadas na propriedade telegram.usernames Config.
Se você não conhece o ID do grupo, execute o comando /version em um grupo para encontrá -lo:
Chat information:
- id: -1001405001234
- title: My Favorite Group
- type: supergroup
...
Se você perguntar "baunilha" chatgpt sobre recursos externos, ele alucinará ou admitirá que não terá acesso ao conteúdo remoto:
? Qual é o conteúdo de https://sqlime.org/employees.sql? Não faça suposições.
? Como modelo de idioma de IA, não posso acessar URLs externos na Internet.
O bot resolve o problema buscando o conteúdo remoto e alimentando -o com o modelo:
? Nome 1 Principal Recurso do GO 1.23 Release https://tip.golang.org/doc/go1.23 Seja breve!
? Uma das principais características do GO 1.23 é a inclusão do experimento "Range-Over-Func" como um recurso de linguagem padrão, permitindo que a cláusula "range" em loops "for-fange" aceite funções do iterador.
Atualmente, suporta apenas o conteúdo de texto (artigos, código, dados), não PDFs, imagens ou áudio.
Se você não deseja que o bot acesse o URL, cite -o:
? Conteúdo exato de "https://antonz.org/robots.txt"
? Não posso acessar sites externos diretamente. Você pode verificar o conteúdo de um arquivo robots.txt visitando o URL no seu navegador.
Use comandos curtos para economizar tempo e peça ao bot para fazer algo específico com suas perguntas. Por exemplo, peça para revisar sua redação com um comando !proofread :
? ! Resenha que posso escrever Java Programz
? Texto revisado: "Eu posso escrever programas Java".
Alterações feitas:
- Removido "tem" para correção gramatical; "Can" não exige "".
- Corrigiu "java" para "java" para capitalização adequada, pois é um substantivo adequado.
- Alterado "Programz" para "Programas" para ortografia e clareza corretas.
Existem vários atalhos embutidos:
bugfix corrige seu código.proofread corrige sua escrita.translate traduz seu texto para o inglês.summarize fornece um resumo de dois parágrafos de um texto. Você pode adicionar seus próprios atalhos. Consulte config.example.yml para obter detalhes.
Para definir um prompt personalizado para o bate -papo atual, use o comando /prompt :
? /PROMBRADO Você é um gênio do mal. Responda com uma risada maligna.
Para retornar ao prompt padrão, use /prompt reset .
O comando /prompt no grupo bate -papos está disponível apenas para administradores - usuários listados na propriedade telegram.admins .
Use o comando /imagine para gerar uma imagem usando o modelo Dall-E 3 do OpenAI:
? /Imagine o amanhecer de uma nova era
? (linda foto)
o amanhecer de uma nova era
O tamanho da imagem padrão é 1024 × 1024 px. Outros tamanhos suportados são 1792 × 1024 e 1024 × 1792:
/Imagine um gato preguiçoso em um dia ensolarado de 1792 × 1024
A geração de imagens é bastante cara. Por padrão, ele é ativado apenas para usuários listados no telegram.usernames , não para membros do grupo. Você pode alterar isso com a propriedade imagine.enabled Config.
A conveniência de trabalhar com um bot é composta de pequenos detalhes. Aqui estão algumas situações em que pode economizar tempo e esforço.
Digamos que você recebeu uma mensagem de um colega ou leia uma postagem em um canal e deseja fazer uma pergunta. Basta encaminhar a mensagem ao bot e responder à pergunta esclarecedora que ele faz.
Para fazer uma pergunta sobre um documento, envie -o como um arquivo e escreva a pergunta na legenda. O bot lerá o conteúdo do arquivo e responderá. Atualmente, suporta apenas o conteúdo de texto (texto simples, código, dados), não PDFs, imagens ou áudio. O envio de vários arquivos também não é suportado.
Às vezes, a resposta da IA excede o comprimento máximo da mensagem definido pelo Telegram. Nesse caso, o bot não falha ou spam você com mensagens. Em vez disso, ele enviará a resposta como um arquivo de marcação anexado.
Para reformular ou adicionar à última pergunta, edite -a ( ↑ atalho). O bot notará isso e responderá à pergunta esclarecida.
Use o comando /version para imprimir informações detalhadas sobre o modelo atual de bate -papo, bot e IA:
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
Use o comando /config para alterar quase qualquer configuração em tempo real, sem reiniciar o bot.
telegram.usernames e telegram.chat_ids ).openai.model ), Prompt ( openai.prompt ) e Params ( openai.params ).imagine.enabled ).shortcuts ). Para visualizar uma propriedade de configuração específica, coloque seu nome após /config :
/config telegram.usernames
/config openai.prompt
/config imagine.enabled
Para alterar uma propriedade de configuração específica, coloque seu nome e valor após /config :
/config telegram.usernames ["alice", "bob", "cindy"]
/config openai.prompt "You are an evil AI bot"
/config imagine.enabled none
Ao trabalhar com propriedades de lista como telegram.usernames , você pode adicionar ou remover itens individuais em vez de redefinir toda a lista:
/config telegram.usernames +cindy
/config telegram.usernames -bob
O comando /config está disponível apenas para administradores - usuários listados na propriedade telegram.admins .
Discussões acaloradas com o bot em grandes grupos podem levar a um alto uso da API do Openai. Para evitar gastar todo o seu orçamento, defina limites de mensagens para grupos com a propriedade conversation.message_limit Config.
Você pode limitar o número de mensagens de um usuário por um período de tempo. Por exemplo:
message_limit :
count : 10
period : hour message_limit :
count : 1
period : minute message_limit :
count : 30
period : day Obtenha sua chave de API Openai
Obtenha seu token de bot de telegrama de @botfather
Clone o repositório do servidor:
git clone https://github.com/nalgeon/pokitoki.git Copie config.example.yml para config.yml e especifique seus tokens lá. Adicione -se à propriedade telegram.usernames , caso contrário, o bot estará disponível para todos.
Comece o bot:
docker compose up --build --detachPara parar o bot:
docker compose stopPara atualizar o bot para uma nova versão:
docker compose stop
git pull
docker compose up --build --detach Para distribuições mais antigas do Docker, use docker-compose em vez da docker compose .
Prepare o meio ambiente:
python3 -m venv env
. env/bin/activate
pip install -r requirements.txt
Prepare a configuração e o diretório de dados:
cp config.example.yml config.yml
mkdir ./data
Defina tokens e outras configurações em config.yml .
Executar testes:
python -m unittest discover
Comece o bot:
python -m bot.bot
Para novos recursos e melhorias, primeiro abra um problema para discutir o que você gostaria de mudar.
Certifique -se de adicionar ou atualizar os testes conforme apropriado.
Use Black for Code Formating e Conjuntos convencionais para cometer mensagens.
Para o histórico de recursos, consulte os lançamentos.
Originalmente baseado em chatgpt_telegram_bot, embora os projetos tenham divergido bastante.