Sign inSign up

cezarsas/autofl

By cezarsas

•Updated almost 2 years ago

AutoFL is a tool designed for automatic annotation of source code files through weak labeling.

Image
Data science
0

251

cezarsas/autofl repository overview

⁠AutoFL: Automatic Source Code Annotation

AutoFL is a tool designed for automatic annotation of source code files using weak labeling techniques. It supports multiple programming languages and provides a REST API and a user-friendly web-based UI for easy analysis.

⁠Key Features

  • Multi-level Annotation: Annotate files, packages, or entire projects.
  • REST API & Web UI: Access AutoFL functionalities through an API or a web-based interface.
  • Flexible Configuration: Configure the tool to use different annotators, taxonomies, and environments.
  • Supports Multiple Languages: Out-of-the-box support for Java, with optional configurations for Python, C, C++, and C#.

⁠Quick Start

To quickly start using AutoFL, pull the Docker image and run the container:

docker pull cezarsas/autofl

To access the user interface, use docker-compose with the autofl-ui image and link the auto-fl service to auto-fl (the endpoint that the ui expects'):

  ui:
    image: cezarsas/autofl-ui:latest
    ports:
      - "8501:8501"
    stdin_open: true # docker run -i
    tty: true        # docker run -t
    links:
      - 'auto-fl:auto-fl'

Then navigate to your project directory and start both containers with:

docker compose up

Once started, access the API at http://localhost:8000 and the web UI at http://localhost:8501.

⁠Example Usage

To analyze a project, send a POST request to the API:

curl -X POST -d '{"name": "<PROJECT_NAME>", "remote": "<PROJECT_REMOTE>", "languages": ["<PROGRAMMING_LANGUAGE>"]}' localhost:8000/label/files -H "content-type: application/json"

For example, to analyze the project at https://github.com/mickleness/pumpernickel, use:

curl -X POST -d '{"name": "pumpernickel", "remote": "https://github.com/mickleness/pumpernickel", "languages": ["java"]}' localhost:8000/label/files -H "content-type: application/json"

⁠Configuration

AutoFL uses Hydra⁠ for managing configurations. You can customize the following:

  • Environment: Set to local or Docker (default).
  • Taxonomy: Define the taxonomy for labeling.
  • Annotator: Specify which annotators to use.
  • Version Strategy & Dataloader: Choose versioning and data loading preferences.

To override the default configuration when using Docker Compose, bind mount your local configuration file as follows:

volumes:
  # Override the configuration of AutoFL
  - type: bind
    source: ./config/main.yaml
    target: /autofl/config/main.yaml

Refer to the GitHub repository for more details on configuration options.

⁠Known Issues & Development Status

AutoFL is actively developed, and some issues may arise during setup or runtime. The tool has been tested primarily on Linux with limited testing on Windows and MacOS.

For bug reports, feature requests, or contributions, please visit the GitHub repository or contact the maintainer.

⁠Citation

If you use AutoFL in your research or work, please consider citing our tool.

@software{sas2023autofl,
          author    = {Sas, Cezar and Capiluppi, Andrea},
          month     = oct,
          title     = {{AutoFL}},
          url       = {https://github.com/SasCezar/AutoFL},
          version   = {0.5.0},
          year      = {2024},
          url       = {https://doi.org/10.5281/zenodo.10255368},
          doi       = {10.5281/zenodo.10255368}
}

For further details and updates, visit the AutoFL Docker Hub page⁠, and for the user interface, visit the AutoFL-UI Docker Hub page⁠.

Tag summary

Content type

Image

Digest

sha256:179b404ea…

Size

11.8 GB

Last updated

almost 2 years ago

docker pull cezarsas/autofl