Skip to main content

A framework for automatically generating and running Streamlit-based AI tools and chatbots

Project description

AIToolMaker

AIToolMaker is a powerful Python framework that automatically generates and runs Streamlit-based AI tools and chatbots, or exports them as full HTML/CSS/JS websites.

Features

  • Instant Tool Generation: Create AI-powered tools with a single command
  • Multiple Output Formats: Generate Streamlit apps or standalone websites
  • 6 Pre-built Tools: Chatbot, Blog Generator, Data Analyzer, SQL Generator, Document Summarizer, Web Summarizer
  • Run Immediately: Option to run tools instantly without exporting code
  • Auto-branding: Automatic name and logo generation
  • Multi-API Support: Works with Gemini, OpenAI, and Anthropic APIs

Installation

pip install aitoolmaker

Or install from source:

git clone https://github.com/MoustafaMohamed01/aitoolmaker.git
cd aitoolmaker
pip install -e .

Quick Start

Python API

from aitoolmaker import AIToolMaker

# Initialize
tool = AIToolMaker(
    api_key="YOUR_GEMINI_API_KEY",
    model="gemini-2.0-flash"
)

# Generate and run a chatbot
tool.create_tool(
    tool_type="chatbot",
    output="streamlit",
    run=True,
    name="My AI Assistant"
)

Command Line

# Create a blog generator
aitoolmaker create --tool blog_generator --api-key YOUR_KEY --output streamlit

# Create and run immediately
aitoolmaker create --tool chatbot --api-key YOUR_KEY --run

# Generate a website
aitoolmaker create --tool sql_generator --api-key YOUR_KEY --output website

Available Tools

Tool Description
chatbot Professional AI assistant with conversation history
blog_generator AI-powered blog writer with keyword optimization
data_analyzer Ask questions about CSV data using AI
sql_generator Generate SQL queries from natural language
document_summarizer Summarize PDF and Word documents
web_summarizer Summarize website content

Usage Examples

Generate Multiple Tools

from aitoolmaker import AIToolMaker

api_key = "YOUR_API_KEY"
tools = ["chatbot", "blog_generator", "sql_generator"]

for tool_type in tools:
    maker = AIToolMaker(api_key=api_key, model="gemini-2.0-flash")
    result = maker.create_tool(
        tool_type=tool_type,
        output="streamlit",
        output_dir=f"./generated_{tool_type}"
    )
    print(f"{tool_type} created at {result['output_dir']}")

Custom Branding

from aitoolmaker import AIToolMaker

maker = AIToolMaker(api_key="YOUR_KEY", model="gemini-2.0-flash")

result = maker.create_tool(
    tool_type="data_analyzer",
    output="streamlit",
    name="DataMaster Pro",
    logo="./my_logo.png",
    output_dir="./my_data_tool"
)

Generate Website

from aitoolmaker import AIToolMaker

maker = AIToolMaker(api_key="YOUR_KEY", model="gemini-2.0-flash")

result = maker.create_tool(
    tool_type="sql_generator",
    output="website",
    name="SQL Wizard",
    output_dir="./sql_website"
)

CLI Usage

List Available Tools

aitoolmaker list

Get Tool Information

aitoolmaker info chatbot

Create Tool with Options

aitoolmaker create \
  --tool document_summarizer \
  --api-key YOUR_KEY \
  --model gemini-2.0-flash \
  --name "DocSummarizer Pro" \
  --logo ./logo.png \
  --output-dir ./my_summarizer

Generated Output Structure

Streamlit App

generated_chatbot/
├── app.py              # Main Streamlit application
├── api_key.py          # API key configuration
├── requirements.txt    # Python dependencies
├── README.md           # Usage instructions
└── utils.py            # Utility functions (if needed)

Website

generated_chatbot_website/
├── index.html          # Main HTML file
├── css/
│   └── style.css       # Stylesheet
├── js/
│   └── app.js          # JavaScript logic
├── assets/
│   └── logo.png        # Logo image
└── README.md           # Deployment instructions

Use Cases

  • Rapid Prototyping: Quickly create AI tool prototypes
  • Client Demos: Generate custom-branded demos
  • Internal Tools: Build internal AI tools for teams
  • Learning: Study production-ready AI code
  • Deployment: Export portable, deployment-ready code

Contributing

Contributions are welcome! To add a new tool:

  1. Create a template file in core/templates/your_tool.py
  2. Define the template constant
  3. Register it in core/templates/__init__.py
  4. Update SUPPORTED_TOOLS in __init__.py

License

MIT License - See LICENSE file for details

Acknowledgments

Support


Made by the Moustafa Mohamed

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

aitoolmaker-0.1.0.tar.gz (728.1 kB view details)

Uploaded Source

Built Distribution

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

aitoolmaker-0.1.0-py3-none-any.whl (730.0 kB view details)

Uploaded Python 3

File details

Details for the file aitoolmaker-0.1.0.tar.gz.

File metadata

  • Download URL: aitoolmaker-0.1.0.tar.gz
  • Upload date:
  • Size: 728.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for aitoolmaker-0.1.0.tar.gz
Algorithm Hash digest
SHA256 945f0bc535132a019e535c190d487278b3f148e4cf6485adaf30ffa1b5c1a51f
MD5 069e0f4affcf9f2ace03d68fd9169d07
BLAKE2b-256 ce58d456b6bc87f39c8384b2cb79705c340a6f5afa6f3c2a589199a6b56ba78e

See more details on using hashes here.

File details

Details for the file aitoolmaker-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: aitoolmaker-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 730.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for aitoolmaker-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3e78934b006a2a3ea62d07f20fb14b8d672ebb38b7095c7c5a99cf7e1f4aa4df
MD5 0c70e0dabe30832779f95bdeea8a0737
BLAKE2b-256 a02ca22fd5debd816f2fb03eea5675dc66db5b79c3f9b39bba64f6d2bcd9737c

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