Skip to content

slsfi/abbi-ng-ai-image-descriptor

Repository files navigation

aBBi – AI-generated image descriptions

aBBi (“AI-bildbeskrivningar”) is a web app for generating alt texts for images and transcribing text in images using AI. It can also TEI (Text Encoding Initiative) XML encode the transcriptions. It currently supports OpenAI and Google models with vision capabilities. You need an OpenAI or Google 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.

Angular version badge

Author: Sebastian Köhler (2024)


Screenshot of the app

Screenshot of the app.

Images in the screenshot: Library of Congress public domain.


Changelog

Learn about the latest improvements.

Development Setup

Prerequisites

  1. Install Node.js which includes npm. The app is compatible with Node ^20.19.0, ^22.12.0 and ^24.0.0 (based on Angular 21 compatibility). Check your Node version with:
Node --version
  1. Install the Angular CLI globally:
npm install -g @angular/cli
  1. Clone the repository locally and cd into the folder. On Windows you can use GitHub Desktop or Git Bash (see tutorial on Git Bash).

  2. Install dependencies:

npm install

Run local development server

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.

Building and deployment

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

Keeping the app up-to-date

Dependencies

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

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.

Modifying available AI-models, languages and prompt types

The available AI-models are defined in src/assets/config/models.ts. Currently, OpenAI and Google (Gemini) models are supported.

The prompts for the various tasks supported by the app are defined in separate plain text files in src/assets/prompts/. The prompts are imported by src/assets/config/prompts.ts In the prompts, there are some hard-coded strings like {{FILENAME}} and {{DESC_LENGTH}} which are replaced by UI settings on runtime.

About

Angular web app for AI-generated image descriptions

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors