O MarketPulse é um serviço push de análise de informações financeiras de código aberto hospedado no GitHub e desenvolvido pelo usuário T1mn. Ele é baseado no Google Gêmeos IA que captura automaticamente as últimas notícias financeiras, analisa o impacto no mercado e gera relatórios com recomendações de investimento, índices de confiança e confiabilidade da fonte. Os resultados são enviados para os dispositivos dos usuários em tempo real via Bark e PushPlus. Desenvolvido em Python, o projeto suporta o envio para vários dispositivos e a desduplicação automatizada, e é adequado para investidores e desenvolvedores que acompanham o mercado de ações. O código é aberto e a contribuição da comunidade é livre, e o projeto está sob a licença MIT, que permite modificação e uso flexíveis.
Lista de funções
- Receba automaticamente as últimas notícias financeiras da Finnhub e de outras plataformas.
- Use a IA do Google Gemini para analisar notícias para obter conselhos de investimento, índices de confiança e confiabilidade da fonte.
- Envie análises para o seu telefone celular ou computador por meio do Bark e do PushPlus.
- Suporte para códigos de ações definidos pelo usuário a serem seguidos e feeds de notícias confiáveis.
- Elimina automaticamente as duplicações para evitar o envio repetido das mesmas notícias.
- Fornece gerenciamento de daemon com suporte para execução em segundo plano, inicialização, interrupção e reinicialização.
- O sistema de registro grava o status operacional para facilitar a depuração e o monitoramento.
- Suporte à configuração de variáveis de ambiente para proteger a segurança da chave de API.
Usando a Ajuda
Processo de instalação
O MarketPulse é um projeto Python que requer conhecimentos básicos de programação para ser instalado. Aqui estão as etapas detalhadas:
- Instalação do uv (recomendado)
Para gerenciar com eficiência seu ambiente Python, é recomendável instalar a ferramenta uv. Execute o seguinte comando:curl -LsSf https://astral.sh/uv/install.sh | sh
O uv otimiza a resolução de dependências e melhora a eficiência da instalação.
- Clonagem da base de código
Clone o projeto localmente usando o Git:git clone https://github.com/T1mn/MarketPulse.git cd MarketPulse
- Criação de um ambiente virtual e instalação de dependências
Crie um ambiente virtual para isolar as dependências do projeto:uv venv source .venv/bin/activate # Linux/macOS # 或 .venv\Scripts\activate # Windows
Instale as dependências do projeto:
uv pip install -r requirements.txt uv pip install -e .
As dependências incluem
google-generativeai
epython-dotenv
eschedule
responder cantandorequests
etc. - Configuração de variáveis de ambiente
Copie o arquivo de configuração de amostra e renomeie-o.env
::cp .env.example .env
compilador
.env
preencha a chave da API:FINNHUB_API_KEY=your_finnhub_api_key GEMINI_API_KEY=your_gemini_api_key BARK_KEY_1=your_first_bark_key PUSHPLUS_TOKEN=your_pushplus_token PUSHPLUS_TOPIC=your_topic_code
Método de obtenção de chave:
- Chave de API da Finnhub: registre-se na Finnhub para obtê-la.
- API Gemini Chave: solicitada por meio da plataforma Google Cloud.
- Chave Bark: Obtida após a instalação do aplicativo Bark.
- Token PushPlus: Registre-se no PushPlus para obtê-lo.
- Serviços operacionais
Há duas maneiras de executá-lo:- Operação de front-end (para depuração) ::
python -m MarketPulse.main
- Execução em segundo plano (recomendado) ::
python -m MarketPulse.daemon_manager start
A operação em segundo plano oferece suporte ao gerenciamento de processos, e o terminal pode ser desligado depois que o serviço for iniciado.
Funções principais
- Receba notícias financeiras
O MarketPulse recebe as últimas notícias financeiras a cada 30 minutos (por padrão) por meio da API do Finnhub. Os usuários podem encontrar as últimas notícias financeiras na seçãoconfig.py
modificaçõesNEWS_FETCH_INTERVAL
Ajuste a frequência:NEWS_FETCH_INTERVAL = 30 # 分钟
Procedimento operacional:
- Depois de iniciar o serviço, o programa recebe automaticamente notícias do Finnhub.
- disponível em
config.py
Configure feeds de notícias confiáveis, como:TRUSTED_SOURCES = ["Reuters", "Bloomberg", "CNBC"]
- Os dados das notícias são armazenados localmente para análise de IA.
- Análise e envio de IA
A IA do Google Gemini analisa notícias e gera relatórios com conselhos de investimento, índice de confiança (em porcentagem) e confiabilidade da fonte. Os resultados são enviados via Bark ou PushPlus.
Procedimento operacional:- seguro
.env
é configurado com uma chave Bark ou PushPlus. - Quando o serviço estiver em execução, os resultados da análise serão automaticamente enviados para os dispositivos configurados.
- Os pushes de casca aparecem como notificações móveis, o PushPlus suporta pushes do WeChat (consulte o repositório do GitHub).
img
(Exemplos na pasta).
- seguro
- Monitoramento de estoque personalizado
Os usuários podem configurar os símbolos de ticker a serem seguidos para acompanhar as notícias específicas da empresa.
Procedimento operacional:- compilador
config.py
ModificaçõesUS_MARKET_SYMBOLS
::US_MARKET_SYMBOLS = ["AAPL", "TSLA", "MSFT"]
- Depois de salvar e reiniciar o serviço, o programa dará prioridade à análise das notícias sobre essas ações.
- compilador
- gerenciamento de daemons
O MarketPulse suporta a execução em segundo plano com os seguintes comandos de gerenciamento:python -m MarketPulse.daemon_manager start # 启动 python -m MarketPulse.daemon_manager stop # 停止 python -m MarketPulse.daemon_manager restart # 重启 python -m MarketPulse.daemon_manager status # 查看状态
A ID do processo é armazenada no
market_pulse.pid
A documentação é gerenciada automaticamente. - Visualização do registro
Os registros são salvos na pastalogs
Catálogo, contém:market_pulse.log
Registro do programa principal, máximo de 10 MB, mantenha 5 backups.daemon.log
Registros de Daemon, até 5 MB, mantenha 3 backups.
Visualize os registros em tempo real:
tail -f logs/market_pulse.log
- Código de contribuição
Como um projeto de código aberto, os usuários podem enviar melhorias pelo GitHub.
Procedimento operacional:- Fork Warehouse para conta pessoal.
- Modifique o código e envie o Pull Request.
- consulta
CONTRIBUTING.md
(se houver) ou enviar perguntas e sugestões diretamente.
advertência
- Certifique-se de que a chave da API seja válida, pois o Finnhub e o Gemini têm limites de solicitação e cotas a serem cumpridos.
- A primeira execução executará a tarefa uma vez imediatamente e, depois disso, em intervalos configurados.
- arquivo de status
app_state.json
Registre as IDs de notícias processadas para evitar envios duplicados. - Use o ambiente de gerenciamento de uv para melhorar a eficiência da instalação de dependências.
- Os arquivos de registro são rotacionados periodicamente para evitar que ocupem muito espaço em disco.
cenário do aplicativo
- Os investidores obtêm informações sobre o mercado em tempo real
Os investidores usam o MarketPulse para receber notícias financeiras analisadas por IA, entender a dinâmica do mercado, obter conselhos sobre investimentos e ajudar na tomada de decisões. - Os desenvolvedores aprendem IA e processamento de dados financeiros
Os desenvolvedores podem estudar o código e aprender a integrar o Google Gemini AI, as APIs do Finnhub e os serviços push, adequados para práticas em IA e finanças. - Monitoramento corporativo Notícias sobre ações específicas
As empresas podem configurar para seguir os símbolos das ações e obter análises de notícias relevantes para planejamento estratégico ou gerenciamento de riscos.
QA
- Quais feeds de notícias são compatíveis com o MarketPulse?
Por padrão, o Finnhub obtém suas notícias, com suporte para configurar fontes confiáveis, como Reuters, Bloomberg e assim por diante, conforme descrito na seçãoconfig.py
Situado em. - Preciso pagar por uma API?
Sim, as APIs do Finnhub e do Gemini exigem o registro de chaves, e alguns recursos podem envolver cotas gratuitas ou planos pagos. - Como faço para evitar pushs duplicados?
Uso do projetoapp_state.json
Registra as IDs de notícias processadas e as desduplica automaticamente. - Ele pode ser executado em um servidor em nuvem?
Sim, é recomendável executá-lo no modo daemon e ele é compatível com Linux, Windows e outros sistemas. - Como faço para adicionar um novo recurso?
Faça um fork do repositório, altere o código e envie uma solicitação pull. Recomendamos verificar a página de problemas primeiro para ver o que a comunidade deseja.