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
-
Clone the repository
git clone https://github.com/stepfnAI/target_questions_generator_agent.git cd target_questions_generator_agent/ git checkout dev
-
Set up the virtual environment and install dependencies
uv venv --python=3.11 venv source venv/bin/activate uv pip install -e ".[dev]"
-
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
-
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 callsmodels.py: Data models and schemas (Pydantic)utils.py: Utility functions for input preparationconstants.py: Prompt templates and formatting functionsconfig.py: Configuration settings
-
Dependencies:
sfn-blueprint: Core framework and utilities (centralized LLM handling)pandas: Data manipulationpydantic: Data validation and modelsscikit-learn: ML utilities
📋 Workflow Integration
This agent is part of the ML workflow pipeline:
- Methodology Suggestion Agent → Outputs ML approach + raw technical requirements
- Target Question Generator Agent → Converts requirements to user-friendly questions
- 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:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📄 License
This project is licensed under the MIT License.
🙏 Acknowledgments
- Built using the
sfn-blueprintframework - Follows patterns from
target_synthesis_agentand 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file target_questions_generator_agent-1.0.5.tar.gz.
File metadata
- Download URL: target_questions_generator_agent-1.0.5.tar.gz
- Upload date:
- Size: 23.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8fd9268920204790d32ad116c4a85a1358942ddf5d9a414b35fefa9d08971bd5
|
|
| MD5 |
928d049f867f0dce0f73c78816dbe3a6
|
|
| BLAKE2b-256 |
eaa15e185c92068959c7e6dd296ed7d652d7b59f7dc7fb85581f6841d864f11c
|
File details
Details for the file target_questions_generator_agent-1.0.5-py3-none-any.whl.
File metadata
- Download URL: target_questions_generator_agent-1.0.5-py3-none-any.whl
- Upload date:
- Size: 21.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f81aadbb419a5745dc810c905ea0c9f2095a8df7831f94ad58fe48aad17bb75b
|
|
| MD5 |
94f4d6136a6b539f6b4d0e3fcf514809
|
|
| BLAKE2b-256 |
a78ba0fd78f269b235e98d4ef7b092d0825304e117936f97aa36a7b3df41fbb0
|