https://github.com/patinaomi/versebot
VerseBot é uma aplicação Java desenvolvida para interagir com usuários através do Telegram, fornecendo funcionalidades relacionadas a versículos bíblicos. A aplicação consome dados de API externas, gerencia a persistência dos dados em um banco de dados e utiliza serviços de inteligência artificial para enriquecer a experiência do usuário.
https://github.com/patinaomi/versebot
api java openai telegram-bot telegram-bot-api tts-api watson-assistant
Last synced: 8 days ago
JSON representation
VerseBot é uma aplicação Java desenvolvida para interagir com usuários através do Telegram, fornecendo funcionalidades relacionadas a versículos bíblicos. A aplicação consome dados de API externas, gerencia a persistência dos dados em um banco de dados e utiliza serviços de inteligência artificial para enriquecer a experiência do usuário.
- Host: GitHub
- URL: https://github.com/patinaomi/versebot
- Owner: patinaomi
- Created: 2024-04-28T15:29:02.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-08T22:47:40.000Z (over 1 year ago)
- Last Synced: 2025-04-01T17:20:54.325Z (7 months ago)
- Topics: api, java, openai, telegram-bot, telegram-bot-api, tts-api, watson-assistant
- Language: Java
- Homepage:
- Size: 6.38 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Documento de Projeto: VerseBot
## Índice
- [Descrição do Projeto](#descrição-do-projeto)
- [Funcionalidades](#funcionalidades)
- [Acesso ao Bot](#acesso-ao-bot)
- [Visão Geral](#visão-geral)
- [Camadas](#camadas)
- [Integração com APIs Externas](#integração-com-apis-externas)
- [API da Bíblia Digital](#api-da-bíblia-digital)
- [OpenAI](#openai)
- [IBM Watson Text to Speech](#ibm-watson-text-to-speech)
- [API do Telegram](#api-do-telegram)
- [Configuração e Uso](#configuração-e-uso)
- [Uso de Arquivo config.properties](#uso-de-arquivo-configproperties)
- [Referências e Documentações Consultadas](#referências-e-documentações-consultadas)
- [Aprendizados com o Projeto](#aprendizados-com-o-projeto)
- [Contribuições](#contribuições)## Descrição do Projeto
VerseBot é uma aplicação Java desenvolvida para interagir com usuários através do Telegram, fornecendo funcionalidades relacionadas a versículos bíblicos. A aplicação consome dados de API externas, gerencia a persistência dos dados em um banco de dados e utiliza serviços de inteligência artificial para enriquecer a experiência do usuário.
## Funcionalidades
- **Cadastro de Usuários**: Permite que usuários se cadastrem e mantenham um registro persistente no sistema.
- **Geração de Versículos Aleatórios**: Usuários podem solicitar versículos aleatórios que são buscados através da API da Bíblia Digital.
- **Salvamento de Versículos**: Usuários podem salvar versículos de interesse, que são armazenados no banco de dados.
- **Geração de Devocionais**: Utiliza a API do OpenAI para gerar devocionais baseados em versículos específicos.
- **Síntese de Voz**: Converte textos em áudio usando o serviço IBM Text to Speech.## Acesso ao Bot
O VerseBot está disponível no Telegram e pode ser acessado diretamente através do seguinte link: [VerseBot no Telegram](https://t.me/versiculo_do_dia_bot).
Clique no link para iniciar uma conversa com o bot e explorar suas funcionalidades interativas, como geração de versículos, cadastro de usuários, e mais.## Visão Geral
O projeto segue uma arquitetura em camadas, separando claramente a lógica de negócios, acesso a dados e interação com APIs externas.
### Camadas
1. **DAO (Data Access Object)**: Gerencia a comunicação com o banco de dados.
2. **BO (Business Object)**: Contém a lógica de negócios.
3. **API Clients**: Conecta com APIs externas como a Bíblia Digital e OpenAI.
4. **Service**: Orquestra as operações entre a API, BOs e DAOs.
5. **Model**: Define as entidades do sistema.## Integração com APIs Externas
### API da Bíblia Digital
Usada para buscar versículos aleatórios e informações sobre livros da Bíblia.
### OpenAI
Utilizada para gerar textos devocionais baseados em prompts específicos.
### IBM Watson Text to Speech
Converte textos em áudio para proporcionar uma experiência auditiva dos textos bíblicos.
### API do Telegram
Essencial para a interação entre o usuário e o VerseBot. Esta API permite que o bot receba mensagens dos usuários e responda com textos, áudios ou comandos interativos.
#### Funcionalidades Implementadas
- **Recebimento de Mensagens**: O bot recebe mensagens de texto dos usuários através do Telegram.
- **Envio de Respostas**: O bot envia respostas que podem incluir texto, versículos, devocionais e áudios.
- **Menus Interativos**: Utiliza botões e comandos interativos para facilitar a navegação do usuário.
- **Gerenciamento de Estados**: O bot mantém o estado da conversa para cada usuário, permitindo interações complexas e personalizadas.## Configuração e Uso
A aplicação utiliza um arquivo `config.properties` para gerenciar configurações sensíveis e variáveis do ambiente.
## Uso de Arquivo `config.properties`### Localização
O arquivo `config.properties` deve ser colocado no diretório `resources` do projeto. Este diretório é normalmente localizado sob `src/main/resources` em projetos Maven.
### Conteúdo do Arquivo
O arquivo deve conter as chaves e valores para configurações como:
```properties
db.username=SEU_USUARIO
db.password=SUA_SENHA
db.url=SEU_URL
telegram.api.key=CHAVE_API_TELEGRAM
openai.api.key=CHAVE_API_OPENAI
tts.api.key=CHAVE_API_IBM_TTS
tts.service.url=URL_SERVICO_TTS
```## Referências e Documentações Consultadas
Durante o desenvolvimento do projeto, várias APIs e bibliotecas foram utilizadas. Abaixo estão os links para a documentação de cada uma, que foram essenciais para o entendimento e aplicação correta das tecnologias.
- **OpenAI Java Client** - Uma biblioteca Java para acessar a GPT-3 da OpenAI. [GitHub Repository](https://github.com/TheoKanning/openai-java)
- **A Bíblia Digital** - Uma API para acessar informações bíblicas. [GitHub Repository](https://github.com/omarciovsena/abibliadigital)
- **Java Telegram Bot API** - Uma biblioteca Java para a criação de bots no Telegram. [GitHub Repository](https://github.com/pengrad/java-telegram-bot-api)
- **IBM Watson Text to Speech** - SDK de Java para o serviço Text to Speech da IBM Watson. [GitHub Repository](https://github.com/watson-developer-cloud/java-sdk/tree/master/text-to-speech)Estas documentações foram fundamentais para o desenvolvimento das funcionalidades do projeto, permitindo a integração eficiente com os serviços externos utilizados.
## Aprendizados com o Projeto
Durante o desenvolvimento do VerseBot, tive a oportunidade de aprender e aplicar vários conceitos importantes:
- **Uso de HashMaps**: Aprendi como utilizar HashMaps para gerenciar estados de usuários de forma eficiente, o que foi crucial para manter o contexto das conversas no bot.
- **Consumo de APIs**: Melhorei minha habilidade de consumir APIs externas, integrando serviços como a Bíblia Digital, OpenAI e IBM Watson para enriquecer as funcionalidades do bot.
- **Criação e Uso da Classe Config**: Utilizei uma classe de configuração para gerenciar variáveis de ambiente e configurações sensíveis, facilitando a manutenção e a escalabilidade do projeto.Esses aprendizados não apenas contribuíram para o sucesso deste projeto, mas também aprimoraram minhas habilidades como desenvolvedor.
## Contribuições
Este projeto está aberto para contribuições! Se você tem ideias para melhorá-lo ou encontrou algum bug, fique à vontade para criar um fork e submeter suas alterações via pull request. Toda contribuição é bem-vinda e ajuda a fazer deste projeto um recurso ainda melhor para a comunidade.