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.2.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.2.tar.gz.

File metadata

File hashes

Hashes for target_questions_generator_agent-1.0.2.tar.gz
Algorithm Hash digest
SHA256 1486579ce8bd47f3de8ccec9548ce32c607e10f3d45b637e7ad99c39b7649cf6
MD5 61684ec60fe6f1ef29f4617e1e0eab84
BLAKE2b-256 216d70c7d1687d24994d0f17013b3fe09f6576cf3eb18ccb3ff5cdd040ddee19

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for target_questions_generator_agent-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1d5d4afb16fffe66e4cc779ff720267d0e1296f7c1894dcb2734ae456bf6087f
MD5 3e2863a1c7526c0d439946ea364c0a6c
BLAKE2b-256 2d0cbb2ae44e20a84f7720ac0b139970d4d784a95edc650bc69a3e19d9e40cf5

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