Um assistente inteligente especializado em música do Spotify, construído com LangChain e integração com a API do Spotify. O Echofy AI fornece informações detalhadas sobre artistas, álbuns, músicas e recomendações personalizadas baseadas em humor e preferências musicais. Vcoê pode acessar o deploy do agente em: https://echofy-ai.vercel.app/
- 🎤 Informações de Artistas: Obtenha dados completos sobre artistas, incluindo gêneros, popularidade, seguidores e links do Spotify
- 💿 Discografia Completa: Explore álbuns de qualquer artista
- 🎶 Top Músicas: Descubra as músicas mais populares de cada artista
- 🎧 Recomendações Personalizadas: Receba sugestões de playlists baseadas em humor, gênero ou atividade
- 💬 Interface de Chat Interativa: Converse naturalmente com o assistente através de uma interface web moderna
O projeto é dividido em duas partes principais:
- Framework: Flask com Flask-CORS
- IA/LLM: LangChain + OpenAI (GPT)
- Agente Inteligente: LangGraph para orquestração de ferramentas
- API: Integração com Spotify Web API
- Ferramentas especializadas:
data_analyst.py: Análise de dados de artistasplaylist_sugestor.py: Sugestões de playlistsspotify_base.py: Autenticação e base para API do Spotify
- Framework: Vite + TypeScript
- Estilização: Tailwind CSS
- Renderização: Marked.js para formatação de markdown
- Interface: Chat em tempo real com histórico de conversas
- Python 3.8+
- Node.js 18+
- Conta no Spotify Developer
- Chave de API da OpenAI
git clone https://github.com/seu-usuario/echofy-ai.git
cd echofy-aipip install -r requirements.txtCrie um arquivo .env na raiz do projeto:
# Spotify API
B64_STR=seu_codigo_base64_spotify
# OpenAI API
OPENAI_API_KEY=sua_chave_openaiComo obter o B64_STR do Spotify:
- Acesse Spotify Developer Dashboard
- Crie um aplicativo e obtenha
Client IDeClient Secret - Encode em Base64:
echo -n "CLIENT_ID:CLIENT_SECRET" | base64 - Use o resultado no
.env
python -m backend.api.appO servidor estará disponível em http://localhost:8000
cd frontend
npm installnpm run devO frontend estará disponível em http://localhost:5173
Informações de Artista:
"Me fale sobre Coldplay"
"Quem é Taylor Swift?"
"Informações sobre The Beatles"
Discografia:
"Álbuns do Pink Floyd"
"Discografia do Queen"
"Quais álbuns do Radiohead?"
Músicas Populares:
"Músicas do Michael Jackson"
"Sucessos do Ed Sheeran"
"Top músicas do Metallica"
Recomendações:
"Músicas tristes para ouvir à noite"
"Playlist para treinar"
"Jazz relaxante"
"Músicas para estudar"
Envia uma mensagem para o assistente.
Request:
{
"message": "Me fale sobre Coldplay"
}Response:
{
"reply": "Coldplay é uma banda britânica..."
}Limpa o histórico da conversa.
Response:
{
"message": "Histórico limpo com sucesso"
}- Flask - Framework web
- LangChain - Framework para aplicações LLM
- LangGraph - Orquestração de agentes
- OpenAI - Modelo de linguagem
- Spotify Web API - Dados musicais
- Vite - Build tool
- TypeScript - Linguagem tipada
- Tailwind CSS - Framework CSS
- Marked - Parser de Markdown
echofy-ai/
├── backend/
│ ├── __init__.py
│ ├── agent.py # Agente principal com LangChain
│ ├── api/
│ │ └── app.py # API Flask
│ └── tools/ # Ferramentas do agente
│ ├── __init__.py
│ ├── data_analyst.py
│ ├── playlist_sugestor.py
│ └── spotify_base.py
├── frontend/
│ ├── api/
│ │ └── chatEndpoint.ts
│ ├── static/
│ │ ├── chat.ts
│ │ ├── index.html
│ │ └── style.css
│ ├── package.json
│ ├── tsconfig.json
│ └── vite.config.ts
├── requirements.txt
└── README.md
Fique à vontade para entrar em contato caso tenha dúvidas, sugestões ou queira contribuir:
- 📨 Email: dumedolago@gmail.com
- 💻 Linkedin: Eduardo Medolago
⭐ Se este projeto foi útil para você, considere dar uma estrela no GitHub!