Skip to content

GT-ARC/opaca-example-containers

Repository files navigation

OPACA Example Containers

Copyright 2024-2025 GT-ARC & DAI-Labor, TU Berlin

  • Contributors: Tobias Küster, Robert Strehlow, Oskar Kupke

This repository contains a number of example OPACA Agent Containers. It is in irregular intervals updated with new examples, while the main development work on those examples is done is several private repositories.

Besides being useful applications for the OPACA framework, each of the examples showcases some core functionality of OPACA, such as different implementing platforms (here Python and Kotlin), custom routes and ports, using Container Login to communicate with external APIs, and more.

Most of the containers and functions were developed with the OPACA LLM UI 'SAGE' in mind, but they can also be used with different OPACA tools or as components in other services.

Exampes

Exchange Agent

Provides actions to interact with an Exchange API to fetch and write e-mails and calendar events. The Exchange-Server and User can be configured (see readme in the folder). If no user is configured, OPACA Container Login can be used to login to personal mailboxes for each individal user. It also comes with a dummy-mode that does not access an actual Exchange server but comes with a very minimalistic mail- and calendar web UI instead.

Used OPACA-Features:

  • Kotlin-Implementation
  • Container-Login
  • Container-Parameters
  • Custom Web UI (dummy mode)

GitLab Agent

Can be used to interface with a GitLab instance, to fetch a user's projects, issues and merge requests, among others. The GitLab server can be configured and users can login via OPACA Container Login with their API token (see readme in the folder).

Used OPACA-Features:

  • Python-Implementation
  • Container-Login
  • Container-Parameters

Information Agent

A proxy for several external API for different information services, including stock prices, weather, searching on Google and Wikipedia, and summarizing individual websites. The latter is done using internal LLM calls using the OpenAI API. For most of th functionalities, API keys have to be provided via container-parameters (see readme and container.json).

Used OPACA-Features:

  • Python-Implementation
  • Container-Parameters

Visualization Agent

Different services that can be used to create simple plots and diagrams (such as bar, line, or pie charts) for data passed in as parameters to the actions. The plots are stored within the container and can be displayed/embedded using the URL returned by the respective service calls.

Used OPACA-Features:

  • Python-Implementation
  • Container-Parameters

Building and Running the Examples

Change into the respective container directory and run docker build -t $(basename $(pwd)) . in order to build the docker container using the directory name as image name (mind the trailing dot!). Then, build and run an OPACA Runtime Platform (see https://github.com/GT-ARC/opaca-core) and POST the containers. You can use the JSON files found in the resources folders as template and construct a post-container instruction around those, in particular for determining the values of any container configuration parameters.

Note: The exchange-agent has to be built with mvn package first, whereas for the Python-based containers, building the Docker container is enough.

About

Different example OPACA Agent Containers that can be used with the OPACA framework and tools

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors