Skip to main content

UUV Assistant AI based, used to improve the life of testers and developers by generating cucumber phrases from the GUI.

Project description

uuv-assistant-ai

UUV Logo

Assistant AI - Image-based test generation

AI-powered assistant that helps testers and developers generate Cucumber BDD test scenarios from GUI screenshots and HTML content.

PyPI version python fastapi poetry Support us on Open Collective

What is uuv-assistant-ai?

uuv-assistant-ai is an AI-powered service that extends the UUV ecosystem by enabling AI assisted tests. It uses Vision Language Models (VLMs) and Large Language Models (LLMs) to:

  • Classify images - Determine if image elements are decorative or informative (in that case it generate suitable image description)

This service integrates with the main @uuv/assistant or @uuv/assistant-desktop to provide a complete solution for E2E test generation.

Getting started

Prerequisites

  • Python >=3.10, <3.15

Environment Variables

Create a .env file with the following variables:

Required (for API access)

LLM_API_URL=https://localhost:11434
LLM_API_KEY=your-api-key
LLM_MODEL=ministral-3:8b

VLM_API_URL=https://localhost:11434
VLM_API_KEY=your-api-key
VLM_MODEL=ministral-3:8b

Setup with pip

pip install uuv-assistant-ai

# After installing from PyPI
uuv-assistant-ai

The API will be available at http://localhost:8000

Setup with uv

uvx add uuv-assistant-ai[mlflow]

The API will be available at http://localhost:8000

Programmatic Usage

from uuv_assistant_ai.image_classifier import (
    UUVMultipleImageDescriberAgent,
    UUVImageClassifierAgent
)
from PIL import Image

# Describe images
describer = UUVMultipleImageDescriberAgent(
    vlm_api_url="https://api.openai.com/v1",
    vlm_api_key="your-key",
    vlm_model="gpt-4-vision-preview"
)

image = Image.open("screenshot.png")
descriptions = describer(image)

# Classify images
classifier = UUVImageClassifierAgent(
    llm_api_url="https://api.openai.com/v1",
    llm_api_key="your-key",
    llm_model="gpt-4"
)

result = classifier(
    html_content="<html>...</html>",
    css_selector=".element",
    image_description="A button labeled Submit"
)

API Endpoints

1. Classify Image (Unified)

Stream image analysis results including description and classification.

curl -X POST "http://localhost:8000/api/v1/image/classify-unified" \
  -F "html_content=<html>" \
  -F "css_selector=.element-selector" \
  -F "target_img_file=@screenshot.png"

Response (Server-Sent Events):

{"image_description": "A button labeled 'Submit' with blue background"}
{"is_decorative": false, "confidence": 0.95, "analysis_details": "This is a functional button..."}

2. Multiple Image Description

Describe multiple images in a single request.

curl -X POST "http://localhost:8000/api/v1/image/multiple-describe" \
  -F "target_img_file=@screenshot.png"

Response:

{
    "descriptions": [
        { "element": "button", "description": "Submit button" },
        { "element": "input", "description": "Text input field" }
    ]
}

3. Classify Image (Standard)

Classify an image using a pre-computed description, html_content and css_selector.

curl -X POST "http://localhost:8000/api/v1/image/classify" \
  -F "html_content=<html>" \
  -F "css_selector=.element-selector" \
  -F "image_description=A button labeled Submit"

Response:

{
    "is_decorative": false,
    "confidence": 0.95,
    "analysis_details": "This is a functional button..."
}

When to use which endpoint:

Quick Start (Recommended)
Use classify-unified for a simple, one-call approach that returns both image description and classification.

Advanced / Step-by-step
For more control, use the two-step approach:

  1. multiple-describe - Get descriptions for all UI elements in one screenshot
  2. classify - Classify each element using the pre-computed description

This step by approach is useful when you need to:

  • Reuse descriptions for multiple operations
  • Analyze multiple elements separately
  • Build custom workflows with intermediate processing

Integration with UUV Ecosystem

The uuv-assistant-ai service integrates with:

Documentation

Full documentation: https://e2e-test-quest.github.io/uuv/

License


MIT license

This project is licensed under the terms of the MIT license.

Authors

Support UUV

If you want to help UUV grow, you can fund the project directly via Open Collective. Every contribution helps us dedicate more time and energy to improving this open-source tool.

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

uuv_assistant_ai-1.1.0.tar.gz (377.1 kB view details)

Uploaded Source

Built Distribution

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

uuv_assistant_ai-1.1.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file uuv_assistant_ai-1.1.0.tar.gz.

File metadata

  • Download URL: uuv_assistant_ai-1.1.0.tar.gz
  • Upload date:
  • Size: 377.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for uuv_assistant_ai-1.1.0.tar.gz
Algorithm Hash digest
SHA256 5b1c292e9767c5f1a2eb9c3c9fe35997bfb16e4ffc1807bf078d8e8501ba1a94
MD5 6d4560cbd2a8ca551bc7eaabf2496f18
BLAKE2b-256 4c5317356829506a6897f05244de357ee4bf7432936c5cc9937688d7c1f4e3f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for uuv_assistant_ai-1.1.0.tar.gz:

Publisher: uuv-github-ci.yml on e2e-test-quest/uuv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uuv_assistant_ai-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for uuv_assistant_ai-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aea48e65b6df73cb6fa2420e62634d6f19f0e8f573df487fdcdf80f25051bd74
MD5 81874b5331b8814afd9e9e7b59b6e8c3
BLAKE2b-256 0797ccf8c782f751b2cfa7211e2139a10e50a341574fdafdfa38e07b83a27e57

See more details on using hashes here.

Provenance

The following attestation bundles were made for uuv_assistant_ai-1.1.0-py3-none-any.whl:

Publisher: uuv-github-ci.yml on e2e-test-quest/uuv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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