uuv-assistant-ai
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.
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:
multiple-describe- Get descriptions for all UI elements in one screenshotclassify- 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:
@uuv/assistant- Web interface for test generation (integrates with this service)@uuv/cypress- Cypress execution engine@uuv/playwright- Playwright execution engine
Documentation
Full documentation: https://e2e-test-quest.github.io/uuv/
License
This project is licensed under the terms of the MIT license.
Authors
@luifr10- Louis Fredice NJAKO MOLOM@stanlee974- Stanley SERVICAL
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.
Metadata
Release files for uuv-assistant-ai 1.13.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| uuv_assistant_ai-1.13.0.tar.gz | 384.8 kB | With provenance | Details for uuv_assistant_ai-1.13.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| uuv_assistant_ai-1.13.0-py3-none-any.whl | Python 3 | none | any | Details for uuv_assistant_ai-1.13.0-py3-none-any.whl |
Total release size: 398.0 kB
Release files / uuv_assistant_ai-1.13.0.tar.gz
| Download URL | uuv_assistant_ai-1.13.0.tar.gz |
|---|---|
| Size | 384.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e46d22a0a763cd4c0ba335c9ff0dc721616538161db85865ae7c1328eb07c8b6
|
|
BLAKE2b-256 checksum How to use checksums |
4a162fd84cd7fa4932e4bde3bfd878fe0d93de913aa5d366c9730d79b2df65de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 19, 2026.
Transparency logRelease files / uuv_assistant_ai-1.13.0-py3-none-any.whl
| Download URL | uuv_assistant_ai-1.13.0-py3-none-any.whl |
|---|---|
| Size | 13.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
973605970c3c599e790350e05653a3741e6631b1a52864c8bd22ebc0595358a7
|
|
BLAKE2b-256 checksum How to use checksums |
962c5ebbf8fc6e48e672d5d34a43f30967e46d866bda54fa928caf1fa86f1ff3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 19, 2026.
Transparency logSecurity for uuv-assistant-ai 1.13.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for uuv_assistant_ai-1.13.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 19, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.