Skip to main content

A FastAPI decorator to track method calls and manage state.

Project description

OptiAttack Client

The OptiAttack Client (optiattack_client) is a FastAPI-based server package designed to facilitate remote integration between the OptiAttack core engine and external models or systems under test (NUT). It provides a simple decorator and API endpoints for seamless communication and adversarial test execution.


Table of Contents


Features

  • FastAPI server for remote model or NUT integration
  • Decorator-based interface for easy wrapping of prediction functions
  • Automatic endpoint creation for running, stopping, and querying the NUT
  • Supports image-based adversarial attacks
  • Easy integration with OptiAttack core

Installation

You can install the OptiAttack Client package using pip:

pip install optiattack-client

Alternatively, if you want to install from the local directory (for development or custom modifications), run:

cd client
pip install -e .

Quick Start

  1. Wrap your prediction function with the provided decorator:
from optiattack_client import collect_info

@collect_info(host="localhost", port=38000)
def predict(image_array):
    # Your prediction logic here
    return {"predictions": ...}
  1. Start your script. The FastAPI server will automatically run and expose endpoints for OptiAttack to communicate with.

API Endpoints

The client exposes the following endpoints (default base path: /api/v1):

  • GET /api/v1/infoNUT — Get the current state of the NUT
  • POST /api/v1/runNUT — Run a prediction on the NUT (expects base64-encoded image)
  • POST /api/v1/stopNUT — Stop the NUT
  • POST /api/v1/newAction — Apply a new action (mutation) and get prediction

See client/constants.py for all endpoint paths and defaults.


Example Usage

from optiattack_client import collect_info

@collect_info(host="localhost", port=38000)
def predict(image_array):
    # Example: Use your ML model to predict
    # result = model.predict(image_array)
    return {"predictions": [0.1, 0.9]}  # Example output

# The FastAPI server is now running at http://localhost:38000

Configuration

  • Host and Port: Set via the collect_info decorator arguments.
  • Endpoints: Configurable in client/constants.py.
  • Python Version: Requires Python 3.9 or higher.

Contributing

Contributions are welcome! Please open issues or pull requests for bug fixes, new features, or documentation improvements.


License

This package is part of the OptiAttack project and is licensed under the GNU Lesser General Public License v3 (LGPLv3).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

optiattack_client-0.1.4.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

optiattack_client-0.1.4-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file optiattack_client-0.1.4.tar.gz.

File metadata

  • Download URL: optiattack_client-0.1.4.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for optiattack_client-0.1.4.tar.gz
Algorithm Hash digest
SHA256 578e6464718f1d25f77664b8ab04e6dc32ece4aabde683749bf0ecc74a0be4cb
MD5 8afc3e7a87423828cf9092d6f448f1c9
BLAKE2b-256 f8d7fd333ca588f7a6b876dd35f6ca99f1946873d7fd2b159eaea0dc6d46e6b2

See more details on using hashes here.

File details

Details for the file optiattack_client-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for optiattack_client-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 438e198938ea681a24925e6457daf8b54ab956ce9ccad336d1e94a986e676043
MD5 da4f0918797c171174672a27d3405332
BLAKE2b-256 6005409c27f374afd8d72020535dc4cef87bab29e622ffc291053b8e23a05a7e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page