{"id":34897043,"url":"https://github.com/dmdlgg/echofy-ai","last_synced_at":"2026-04-12T09:36:53.265Z","repository":{"id":325173582,"uuid":"1099789536","full_name":"dmdlgg/echofy-ai","owner":"dmdlgg","description":"Um agente de consultas musicais que utiliza a API do Spotify e Inteligência Artificial.","archived":false,"fork":false,"pushed_at":"2025-12-16T13:32:18.000Z","size":11994,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-18T22:37:02.674Z","etag":null,"topics":["ai","ai-agents","api","flask","langchain","langhchain","openai","python","typescript"],"latest_commit_sha":null,"homepage":"https://echofy-ai.vercel.app","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmdlgg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-19T12:55:01.000Z","updated_at":"2025-12-16T13:32:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dmdlgg/echofy-ai","commit_stats":null,"previous_names":["dmdlgg/echofy-ai"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dmdlgg/echofy-ai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmdlgg%2Fechofy-ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmdlgg%2Fechofy-ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmdlgg%2Fechofy-ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmdlgg%2Fechofy-ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmdlgg","download_url":"https://codeload.github.com/dmdlgg/echofy-ai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmdlgg%2Fechofy-ai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31710792,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T06:22:27.080Z","status":"ssl_error","status_checked_at":"2026-04-12T06:21:52.710Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-agents","api","flask","langchain","langhchain","openai","python","typescript"],"created_at":"2025-12-26T07:36:07.492Z","updated_at":"2026-04-12T09:36:53.258Z","avatar_url":"https://github.com/dmdlgg.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎵 Echofy AI\n\nUm 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.\nVcoê pode acessar o deploy do agente em: https://echofy-ai.vercel.app/\n## ✨ Funcionalidades\n\n- 🎤 **Informações de Artistas**: Obtenha dados completos sobre artistas, incluindo gêneros, popularidade, seguidores e links do Spotify\n- 💿 **Discografia Completa**: Explore álbuns de qualquer artista\n- 🎶 **Top Músicas**: Descubra as músicas mais populares de cada artista\n- 🎧 **Recomendações Personalizadas**: Receba sugestões de playlists baseadas em humor, gênero ou atividade\n- 💬 **Interface de Chat Interativa**: Converse naturalmente com o assistente através de uma interface web moderna\n  \n## 🏗️ Arquitetura\n\nO projeto é dividido em duas partes principais:\n\n### Backend (Python)\n- **Framework**: Flask com Flask-CORS\n- **IA/LLM**: LangChain + OpenAI (GPT)\n- **Agente Inteligente**: LangGraph para orquestração de ferramentas\n- **API**: Integração com Spotify Web API\n- **Ferramentas especializadas**:\n  - `data_analyst.py`: Análise de dados de artistas\n  - `playlist_sugestor.py`: Sugestões de playlists\n  - `spotify_base.py`: Autenticação e base para API do Spotify\n\n### Frontend (TypeScript/Vite)\n- **Framework**: Vite + TypeScript\n- **Estilização**: Tailwind CSS\n- **Renderização**: Marked.js para formatação de markdown\n- **Interface**: Chat em tempo real com histórico de conversas\n\n## 🚀 Instalação e Configuração\n\n### Pré-requisitos\n\n- Python 3.8+\n- Node.js 18+\n- Conta no Spotify Developer\n- Chave de API da OpenAI\n\n### 1. Clone o repositório\n\n```bash\ngit clone https://github.com/seu-usuario/echofy-ai.git\ncd echofy-ai\n```\n\n### 2. Configuração do Backend\n\n#### Instale as dependências Python\n\n```bash\npip install -r requirements.txt\n```\n\n#### Configure as variáveis de ambiente\n\nCrie um arquivo `.env` na raiz do projeto:\n\n```env\n# Spotify API\nB64_STR=seu_codigo_base64_spotify\n\n# OpenAI API\nOPENAI_API_KEY=sua_chave_openai\n```\n\n**Como obter o B64_STR do Spotify:**\n\n1. Acesse [Spotify Developer Dashboard](https://developer.spotify.com/dashboard)\n2. Crie um aplicativo e obtenha `Client ID` e `Client Secret`\n3. Encode em Base64: `echo -n \"CLIENT_ID:CLIENT_SECRET\" | base64`\n4. Use o resultado no `.env`\n\n#### Execute o servidor backend\n\n```bash\npython -m backend.api.app\n```\n\nO servidor estará disponível em `http://localhost:8000`\n\n### 3. Configuração do Frontend\n\n#### Instale as dependências Node\n\n```bash\ncd frontend\nnpm install\n```\n\n#### Execute o servidor de desenvolvimento\n\n```bash\nnpm run dev\n```\n\nO frontend estará disponível em `http://localhost:5173`\n\n## 📖 Uso\n\n### Exemplos de Perguntas\n\n**Informações de Artista:**\n```\n\"Me fale sobre Coldplay\"\n\"Quem é Taylor Swift?\"\n\"Informações sobre The Beatles\"\n```\n\n**Discografia:**\n```\n\"Álbuns do Pink Floyd\"\n\"Discografia do Queen\"\n\"Quais álbuns do Radiohead?\"\n```\n\n**Músicas Populares:**\n```\n\"Músicas do Michael Jackson\"\n\"Sucessos do Ed Sheeran\"\n\"Top músicas do Metallica\"\n```\n\n**Recomendações:**\n```\n\"Músicas tristes para ouvir à noite\"\n\"Playlist para treinar\"\n\"Jazz relaxante\"\n\"Músicas para estudar\"\n```\n\n### API Endpoints\n\n#### POST `/chat`\nEnvia uma mensagem para o assistente.\n\n**Request:**\n```json\n{\n  \"message\": \"Me fale sobre Coldplay\"\n}\n```\n\n**Response:**\n```json\n{\n  \"reply\": \"Coldplay é uma banda britânica...\"\n}\n```\n\n#### DELETE `/chat/clear`\nLimpa o histórico da conversa.\n\n**Response:**\n```json\n{\n  \"message\": \"Histórico limpo com sucesso\"\n}\n```\n\n## 🛠️ Tecnologias Utilizadas\n\n### Backend\n- [Flask](https://flask.palletsprojects.com/) - Framework web\n- [LangChain](https://www.langchain.com/) - Framework para aplicações LLM\n- [LangGraph](https://langchain-ai.github.io/langgraph/) - Orquestração de agentes\n- [OpenAI](https://openai.com/) - Modelo de linguagem\n- [Spotify Web API](https://developer.spotify.com/documentation/web-api/) - Dados musicais\n\n### Frontend\n- [Vite](https://vitejs.dev/) - Build tool\n- [TypeScript](https://www.typescriptlang.org/) - Linguagem tipada\n- [Tailwind CSS](https://tailwindcss.com/) - Framework CSS\n- [Marked](https://marked.js.org/) - Parser de Markdown\n\n## 📁 Estrutura do Projeto\n\n```\nechofy-ai/\n├── backend/\n│   ├── __init__.py\n│   ├── agent.py              # Agente principal com LangChain\n│   ├── api/\n│   │   └── app.py           # API Flask\n│   └── tools/               # Ferramentas do agente\n│       ├── __init__.py\n│       ├── data_analyst.py\n│       ├── playlist_sugestor.py\n│       └── spotify_base.py\n├── frontend/\n│   ├── api/\n│   │   └── chatEndpoint.ts\n│   ├── static/\n│   │   ├── chat.ts\n│   │   ├── index.html\n│   │   └── style.css\n│   ├── package.json\n│   ├── tsconfig.json\n│   └── vite.config.ts\n├── requirements.txt\n└── README.md\n```\n\n## 📬 Contato\n\nFique à vontade para entrar em contato caso tenha dúvidas, sugestões ou queira contribuir:\n  \n- 📨 **Email:** dumedolago@gmail.com \n- 💻 **Linkedin:** [Eduardo Medolago](https://www.linkedin.com/in/eduardo-medolago-364288259/)\n\n\n\n\n\n⭐ Se este projeto foi útil para você, considere dar uma estrela no GitHub!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmdlgg%2Fechofy-ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmdlgg%2Fechofy-ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmdlgg%2Fechofy-ai/lists"}