Skip to main content

AI-powered agent for converting technical ML requirements into user-friendly questions

Project description

Target Questions Generator Agent

An intelligent AI-powered agent for converting technical machine learning requirements into user-friendly, domain-aware questions for interactive interfaces.

🚀 Features

  • AI-Powered Question Generation: Leverages advanced LLM models to convert technical parameters into contextual questions
  • Domain-Aware: Questions are contextualized using domain knowledge and use case information
  • Dataset-Informed: Uses dataset insights to generate appropriate defaults and suggestions
  • Comprehensive Validation: Generates validation rules for each question
  • Multiple Data Sources: Works with both SQL databases and pandas DataFrames
  • 100% LLM-Powered: All question generation logic is handled by LLM, ensuring dynamic and intelligent conversion

📦 Installation

Prerequisites

  • Python 3.11+
  • Git
  • uv package manager (recommended)

Setup

  1. Clone the repository

    git clone https://github.com/stepfnAI/target_questions_generator_agent.git
    cd target_questions_generator_agent/
    git checkout dev
    
  2. Set up the virtual environment and install dependencies

    uv venv --python=3.11 venv
    source venv/bin/activate
    uv pip install -e ".[dev]"
    
  3. Clone and install the blueprint dependency

    cd ..
    git clone https://github.com/stepfnAI/sfn_blueprint.git
    cd sfn_blueprint
    git switch dev
    uv pip install -e .
    cd ../target_questions_generator_agent
    
  4. Set up environment variables

    # Copy the template and fill in your values
    cp env.template .env
    
    # Edit .env file with your actual API key
    # Or set environment variables directly:
    export LLM_PROVIDER="openai"  # Optional (default: openai)
    export LLM_MODEL="gpt-4.1-mini"  # Optional (default: gpt-4.1-mini)
    export LLM_API_KEY="your_llm_api_key"  # REQUIRED
    

🛠️ Usage

Basic Usage

from target_questions_generator_agent import TargetQuestionsGeneratorAgent
from target_questions_generator_agent.models import (
    TargetQuestionsGeneratorInput,
    DomainInfo,
    MLApproachInfo,
    DatasetInsights
)

# Initialize agent
agent = TargetQuestionsGeneratorAgent()

# Prepare input data
input_data = TargetQuestionsGeneratorInput(
    domain_info=DomainInfo(
        business_domain_name="E-commerce",
        business_domain_info="Online retail platform"
    ),
    usecase_info={"name": "churn_prediction"},
    ml_approach=MLApproachInfo(name="binary_classification"),
    raw_requirements={
        "max_depth": {
            "type": "integer",
            "description": "Maximum depth of decision tree",
            "default": 10,
            "min": 1,
            "max": 100
        }
    },
    dataset_insights=DatasetInsights(total_row_count=1000),
    dataset_column_insights={}
)

# Generate questions
result = agent.generate_questions(input_data)

# Access generated questions
for question in result.questions:
    print(f"Question: {question.question}")
    print(f"Default: {question.default_value}")
    print(f"Validation: {question.validation}")

Running the Example

python examples/basic_usage.py

🧪 Testing

Run the complete test suite:

pytest tests/ -s

Or run individual test files:

pytest tests/test_agent.py -s

🏗️ Architecture

The Target Questions Generator Agent is built with a modular architecture:

  • Core Components:

    • agent.py: Main agent class with centralized LLM calls
    • models.py: Data models and schemas (Pydantic)
    • utils.py: Utility functions for input preparation
    • constants.py: Prompt templates and formatting functions
    • config.py: Configuration settings
  • Dependencies:

    • sfn-blueprint: Core framework and utilities (centralized LLM handling)
    • pandas: Data manipulation
    • pydantic: Data validation and models
    • scikit-learn: ML utilities

📋 Workflow Integration

This agent is part of the ML workflow pipeline:

  1. Methodology Suggestion Agent → Outputs ML approach + raw technical requirements
  2. Target Question Generator Agent → Converts requirements to user-friendly questions
  3. Target Prep Agent → Uses user answers to prepare targets

🔧 Configuration

The agent can be configured via environment variables or a config object:

from target_questions_generator_agent.config import TargetQuestionsGeneratorConfig

config = TargetQuestionsGeneratorConfig(
    ai_provider="openai",
    model_name="gpt-4",
    temperature=0.2,
    max_tokens=4000
)

agent = TargetQuestionsGeneratorAgent(config=config)

📝 Output Format

The agent returns structured questions with:

  • Question text: User-friendly, domain-aware question
  • UI type: Input type (currently "text")
  • Options: Suggested values for help text
  • Default value: Prefilled default based on dataset/domain
  • Data type: string, integer, float, boolean, date
  • Validation rules: min, max, required, pattern, allowed_values
  • Help text: Contextual help with examples

🤝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License.

🙏 Acknowledgments

  • Built using the sfn-blueprint framework
  • Follows patterns from target_synthesis_agent and other agents in the ecosystem

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

target_questions_generator_agent-1.0.1.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file target_questions_generator_agent-1.0.1.tar.gz.

File metadata

File hashes

Hashes for target_questions_generator_agent-1.0.1.tar.gz
Algorithm Hash digest
SHA256 14f7aefcb726aca8d7caca6c66b41458d30c41964e1458e63faa5202ce02f0b9
MD5 7afe49862fdee613941f14afff7dd7c9
BLAKE2b-256 d775c59b9850300a1c6ceec5564a04cec9ab64a29559a4c9ca82abb0ae634009

See more details on using hashes here.

File details

Details for the file target_questions_generator_agent-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for target_questions_generator_agent-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d771d323d09bba7d4c6c15216fd39c0bf8dd631312dab39c6cf5c3f453d088ba
MD5 89c85c6312cb14e559018fbec142814b
BLAKE2b-256 0c0f9ddb15d8bc32102cc4cb59840493a4fac3d65923fdcba79a4de53f005423

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