https://github.com/arkaniightt/zanette-clone-ai
Chatbot em Streamlit integrado com OpenAI Assistant API. Interface web interativa para conversas com IA, com histórico de mensagens e respostas em tempo real.
https://github.com/arkaniightt/zanette-clone-ai
ai assistant bot clone openai python streamlit
Last synced: over 1 year ago
JSON representation
Chatbot em Streamlit integrado com OpenAI Assistant API. Interface web interativa para conversas com IA, com histórico de mensagens e respostas em tempo real.
- Host: GitHub
- URL: https://github.com/arkaniightt/zanette-clone-ai
- Owner: ArkaNiightt
- License: mit
- Created: 2024-11-11T20:43:26.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-19T02:35:10.000Z (over 1 year ago)
- Last Synced: 2025-01-21T05:28:28.940Z (over 1 year ago)
- Topics: ai, assistant, bot, clone, openai, python, streamlit
- Language: Python
- Homepage: https://zanette-clone-ai.streamlit.app
- Size: 23.4 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🌟 Leonardo Zanette Clone AI
Este projeto implementa um clone do assistente de IA "Zanette Clone AI" usando a biblioteca Streamlit e a API da OpenAI. Ele permite que os usuários conversem com o assistente de IA e recebam respostas instantâneas de forma simples e intuitiva.
## 📋 Requisitos
- Python 3.8 ou superior
- Bibliotecas Python:
- `streamlit`
- `openai`
- `Pillow`
- `requests`
## 🚀 Instalação
1. **Clone este repositório** em seu computador:
```sh
git clone https://github.com/ArkaNiightt/zanette-clone-ai.git
cd zanette-clone-ai
```
2. **Crie um ambiente virtual** (opcional, mas recomendado):
```sh
python -m venv venv
source venv/bin/activate # No Windows: venv\Scripts\activate
```
3. **Instale as dependências** necessárias:
```sh
pip install -r requirements.txt
```
4. **Crie um arquivo `secrets.toml`** para armazenar suas chaves de API:
```toml
[secrets]
OPENAI_API_KEY = "sua-chave-api-openai"
OPENAI_ASSISTANT_ID = "seu-assistente-id"
ELEVENLABS_API_KEY = "sua-chave-api-elevenlabs"
VOICE_ID = "id-voz-da-sua-escolha"
IMAGE_ASSISTANT_URL = "url-image-assistente"
```
## ▶️ Como Executar
Execute o comando abaixo para iniciar o servidor Streamlit:
```sh
streamlit run app.py
```
Depois de iniciar o servidor, abra o link local fornecido (normalmente `http://localhost:8501`) no navegador para acessar a interface do assistente de IA.
## ✨ Funcionalidades
- **💬 Conversação Instantânea:** Interaja com o assistente de IA enviando mensagens e receba respostas instantâneas em uma interface amigável.
- **📜 Histórico de Conversas:** As mensagens enviadas e recebidas são armazenadas na sessão do Streamlit, permitindo acompanhar toda a conversa.
- **🧹 Limpar Histórico:** Use o botão na barra lateral para limpar o histórico de conversas e começar um novo diálogo a qualquer momento.
- **🔊 Respostas de Voz:** O assistente pode gerar respostas em áudio utilizando a API da ElevenLabs. Basta clicar no botão de áudio ao lado das mensagens do assistente.
- **🖼️ Avatar Personalizado:** A imagem do avatar do assistente pode ser carregada a partir de uma URL ou de um caminho local, personalizando ainda mais a experiência do usuário.
## 🔧 Organização do Código
- **Configuração da Página:** Define o título, o ícone e a largura da página para melhorar a experiência do usuário.
- **Inicialização do Cliente OpenAI:** Configura a autenticação com a API da OpenAI utilizando as chaves de API fornecidas.
- **Gerenciamento de Sessão:** Utiliza a sessão do Streamlit para armazenar as mensagens e o `thread_id` do assistente, garantindo continuidade nas conversas.
- **Funções Auxiliares:**
- `display_messages()`: Exibe as mensagens salvas na sessão, mantendo o histórico da conversa visível.
- `clear_history()`: Limpa o histórico de conversas e exclui o `thread` associado na API da OpenAI.
- `generate_speech()`: Gera áudio a partir do texto usando a API ElevenLabs.
- `play_audio()`: Reproduz o áudio gerado na interface do Streamlit.
- `load_avatar()`: Carrega a imagem do avatar a partir de uma URL ou caminho local.
## 📌 Utilização
1. **Enviar Mensagens:** Use a caixa de entrada na parte inferior da página para enviar mensagens para o assistente de IA e receber respostas instantâneas.
2. **Limpar Histórico:** Caso queira começar uma nova conversa, clique no botão "Limpar Histórico" localizado na barra lateral para apagar todo o histórico atual.
3. **Interação com o Assistente:** Sempre que uma mensagem é enviada, o assistente é acionado e a resposta correspondente é exibida na tela, criando uma experiência de diálogo contínua.
4. **Reproduzir Resposta em Áudio:** Clique no botão "🔊" ao lado das mensagens do assistente para ouvir a resposta em áudio.
## 💡 Dicas de Uso
- **⏱️ Respostas Rápidas:** O assistente pode demorar alguns segundos para gerar uma resposta dependendo da complexidade do prompt. Aguarde enquanto o indicador de "Aguardando resposta..." estiver ativo.
- **🔑 API da OpenAI:** Garanta que suas chaves de API estejam corretas e ativas para evitar erros de autenticação.
- **📂 Ambiente Virtual:** Utilizar um ambiente virtual é uma boa prática para evitar conflitos de dependências com outras aplicações Python instaladas no seu sistema.
- **🖼️ Avatar Personalizado:** Para uma experiência mais imersiva, personalize a imagem do avatar utilizando uma URL ou caminho local válido.
## ⚠️ Considerações
- Este código faz uso de recursos da API OpenAI que podem estar em versões beta e estão sujeitos a mudanças. Certifique-se de verificar a documentação oficial para atualizações.
- Para que a integração funcione, é necessário ter uma chave de API válida da OpenAI e um ID de assistente que tenha sido criado previamente na plataforma OpenAI.
- A reprodução de áudio requer uma chave de API válida da ElevenLabs e a configuração correta do `VOICE_ID`.
## 📜 Licença
Este projeto está sob a licença MIT. Sinta-se à vontade para contribuir, adaptar e utilizar conforme necessário. Se encontrar algum problema ou tiver sugestões, contribuições são sempre bem-vindas!
## 🤝 Contribuindo
Contribuições são incentivadas! Siga as etapas abaixo para contribuir com melhorias:
1. **Faça um fork** do repositório.
2. **Crie uma branch** para sua feature (`git checkout -b feature/nova-feature`).
3. **Commit suas alterações** (`git commit -m 'Adiciona nova feature'`).
4. **Envie para o repositório remoto** (`git push origin feature/nova-feature`).
5. **Abra um Pull Request**.
## 📨 Contato
Para quaisquer dúvidas ou feedback, sinta-se à vontade para entrar em contato pelo GitHub ou através do e-mail `narutogoit@gmail.com`.