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.2.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.2-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: optiattack_client-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 3b151af774aff7f5b55867004e885388b9b7a42d861f47a19bdfb04db04f3bd4
MD5 81b8342ac3b09630addf83acbc63fb7c
BLAKE2b-256 8f893cb7cd049146b4a984a5d4d96306cf9fe478e836efbe22d489ec3e95b385

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for optiattack_client-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e06b8f2460d69602b4c97dd492414aa69a9e8bcd54bd7d9e3f255aaddd0a890c
MD5 7b44889a319751e3c279bb4ef6a9afa3
BLAKE2b-256 fafbab29d941f7f909af2ee8dd6f873b8834682e2aecc1ce4d179d9986116eae

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