senju logo

ๅƒๆ‰‹ Senju

๐ŸŽ‹ Poetry in Motion ๐ŸŽŽ

A web service for Haiku generation from text or from images and Haiku sharing


Code Coverage Tests Status License Release
Python Versions Powered by Flask AI PyTorch
## ๐ŸŒŠ Overview Senju (ๅƒๆ‰‹, "thousand hands") is a web service for haiku poetry generation and sharing, with image-to-haiku functionality. ## โœจ Features - **๐ŸŽ AI-Powered Haiku Generation**: Create beautiful three-line haiku poetry from text prompts - **๐Ÿ–ผ๏ธ Image-to-Haiku**: Turn uploaded images into poetic haiku (experimental) - **๐Ÿ” Browse Existing Haiku**: Gallery view of previously generated poetry - **๐Ÿ’พ Persistent Storage**: All generated haiku are stored for future retrieval - **๐Ÿ–ฅ๏ธ Web Interface**: Clean, efficient, minimalist user experience for human interaction ## ๐Ÿ”ง Installation ```bash # Clone the repository git clone https://github.com/senju1337/senju.git cd senju docker compose up ``` Docker desktop users on windows might need to change the line seperator from CRLF to LF of the file ```entrypoint.sh``` ### ๐Ÿ“‹ Dependencies - Python - Flask - TinyDB - PyTorch - Transformers - Pillow See `pyproject.toml` for a complete list of dependencies. ## ๐Ÿฏ Architecture Senju is built around several key components: - **Flask Application**: Core web framework providing routing and template rendering - **Haiku Generator**: Interfaces with a machine learning model for poetry creation - **Image Recognition**: Vision-language model for extracting descriptions from images - **Storage Manager**: TinyDB-based persistence layer for haiku retrieval and storage ## ๐Ÿ“ Documentation Senju is documented with sphinx. The documentation of the latest release is available on [github-pages](https://senju1337.github.io/senju/). It can be generated like this (after installing the dependencies, see above): ```bash cd docs bash auto_docu.sh # now open the documentation with a web browser of your choice firefox ./build/html/ ``` ## ๐Ÿงช Testing ```bash # Run tests pytest # Run tests with coverage bash coverage.sh ``` ## ๐Ÿ“œ License Distributed under the GPL-3 License. See `LICENSE` for more information. ## ๐Ÿ™ Acknowledgements - [Ollama](https://ollama.ai/) for providing the AI backend - [BLIP](https://github.com/salesforce/BLIP) for the image captioning model - [PyTorch](https://pytorch.org/) and [Transformers](https://huggingface.co/docs/transformers/index) for ML infrastructure - [Flask](https://flask.palletsprojects.com/) for the web framework - [TinyDB](https://tinydb.readthedocs.io/) for the document database
Purple petals rise
Defying fragile beauty
Fiercely breathing life