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
- 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.
- Configuration-bot: Control system settings & manage user access.
- GPT Service: Defines the GPT bot wrapper.
type Bot interface {
Ask(ctx context.Context, prompt, context string, language string) (*Message, error)
}
- Migrator: Manage database migrations.
- Parser: Query news sources and store news snippets in the database.
- Telegram-bot: Fetch summarized news from the database and dispatch to Telegram channels.
- Twitter-bot: Fetch summarized news and tweet them out.
- 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
).
- 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.
Details about how to set up and run the project (make sure your go version is 1.20+)
git clone https://github.com/StepanTita/crypto-news.git
go work sync
docker-compose -f ./docker/docker-compose.local.yaml up -d
To stop the project:
docker-compose -f ./docker/docker-compose.local.yaml down -v
This project is licensed under the MIT License. See the LICENSE.md file for details.