Skip to content

Leveraging the power of OpenAI GPT to process cryptocurrency news and delivering concise summaries directly to your Telegram and Twitter!

License

Notifications You must be signed in to change notification settings

StepanTita/crypto-news

Repository files navigation

Crypto News Summarizer 💼 📈

Leveraging the power of OpenAI GPT to process cryptocurrency news and delivering concise summaries directly to your Telegram and Twitter!

Note: This project is built using Go Workspace, so dependencies are defined for each service independently

Language: GoLang
Architecture: Microservice

Features 🌟

  • News Summarization: Condense lengthy crypto news into digestible summaries.
  • Multi-Platform Notification: Directly posts summaries to Telegram and Twitter.
  • Customizable Configurations: Control bot behavior and settings directly via Telegram.
  • Localization: Supports multiple languages, ensuring everyone gets the news in the language they prefer.

Microservices & Packages 📦

Services

  1. Configuration-bot: Control system settings & manage user access.
  2. GPT Service: Defines the GPT bot wrapper.
type Bot interface {
    Ask(ctx context.Context, prompt, context string, language string) (*Message, error)
}
  1. Migrator: Manage database migrations.
  2. Parser: Query news sources and store news snippets in the database.
  3. Telegram-bot: Fetch summarized news from the database and dispatch to Telegram channels.
  4. Twitter-bot: Fetch summarized news and tweet them out.

Packages

  • Common: Logic that's universal across services (DB access, error handling, utility functions).
  • Docker: Compose files tailored for various environments (local, dev, prod).
  • Localization: Language mapping files (e.g., pl.locale.yaml for Polish).
  • Scripts: Shell scripts supporting AWS CI/CD with GitHub Actions.
  • Templates: Define the structure of posts and commands (e.g., news.post.tmpl).

Configuration

  • config.yaml: is a sample configuration file. Fill the ... with your keys values.
  • docker/config.docker.yaml: is a sample docker configuration . It follows the same format that is in the config.yaml. But unlike the first one, this file is used to launch in docker environment.

Setup 🚀

Details about how to set up and run the project (make sure your go version is 1.20+)

  1. git clone https://github.com/StepanTita/crypto-news.git
  2. go work sync
  3. docker-compose -f ./docker/docker-compose.local.yaml up -d

To stop the project: docker-compose -f ./docker/docker-compose.local.yaml down -v

License 📄

This project is licensed under the MIT License. See the LICENSE.md file for details.

About

Leveraging the power of OpenAI GPT to process cryptocurrency news and delivering concise summaries directly to your Telegram and Twitter!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages