🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

optiattack-client

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

optiattack-client

A FastAPI decorator to track method calls and manage state.

0.1.6
Maintainers
1

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

  • 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": ...}
  • 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).

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts