aBBi (“AI-bildbeskrivningar”) is a web app for generating image descriptions (e.g. alt texts) using AI. It currently supports OpenAI models with vision capabilities. You need an OpenAI API key to use the tool. It is a frontend app without the need of a backend.
The app is built on Angular and uses Angular Material web components.
Author: Sebastian Köhler (2024)
Learn about the latest improvements.
- Install Node.js which includes npm. The app is compatible with Node
^18.19.1
,^20.11.1
and^22.0.0
(based on Angular 18 compatibility). Check your Node version with:
Node --version
- Install the Angular CLI globally:
npm install -g @angular/cli
-
Clone the repository locally and
cd
into the folder. On Windows you can use GitHub Desktop or Git Bash (see tutorial on Git Bash). -
Install dependencies:
npm install
To build and serve the application on a development server, run:
npm start
Open your browser on http://localhost:4200/. The app will automatically rebuild and reload if you change any of the source files.
On each commit in the main
branch a Docker image with the tag main
is automatically built using GitHub Actions and stored in the GitHub Container Registry.
On each release a Docker image with the chosen release tag and the tag latest
is automatically built using GitHub Actions and also stored in the GitHub Container Registry.
To deploy the latest image, you can clone the repository or just compose.yaml
and run:
docker compose up -d
Most of the dependencies are part of the Angular framework (@angular/
). These should be updated with the command:
ng update @angular/cli @angular/core @angular/cdk @angular/material
When updating to a new major version of Angular, check the update guide first: https://angular.dev/update-guide. Also update the Angular major version number specified in Dockerfile
.
Other dependencies can be updated by bumping the version number in package.json
and running:
npm install
Node.js and nginx Docker images are used in the build process. To update these, change the tags specified in both Dockerfile
and in docker-build-and-push.yml
.
The available AI-models are defined in src/assets/config/models.ts
. Currently, only OpenAI models are supported.
The available description languages and prompt types are defined in src/assets/config/prompts.ts
. In the prompt templates, the strings {{FILENAME}}
and {{DESC_LENGTH}}
are replaced with the image filename and desired approximate description length, respectively.