aitoolmaker


Nameaitoolmaker JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/MoustafaMohamed01/aitoolmaker
SummaryA framework for automatically generating and running Streamlit-based AI tools and chatbots
upload_time2025-10-29 15:53:59
maintainerNone
docs_urlNone
authorMoustafa Mohamed
requires_python>=3.8
licenseNone
keywords ai chatbot streamlit tool-generator gemini openai automation
VCS
bugtrack_url
requirements streamlit google-generativeai jinja2 pandas langchain langchain-google-genai langchain-community pypdf python-docx faiss-cpu requests beautifulsoup4
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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

```bash
pip install aitoolmaker
```

Or install from source:

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

## Quick Start

### Python API

```python
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

```bash
# 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

```python
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

```python
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

```python
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

```bash
aitoolmaker list
```

### Get Tool Information

```bash
aitoolmaker info chatbot
```

### Create Tool with Options

```bash
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

- Built with [Streamlit](https://streamlit.io/)
- Powered by [Google Gemini](https://deepmind.google/technologies/gemini/)

## Support

- **Issues**: [GitHub Issues](https://github.com/MoustafaMohamed01/aitoolmaker/issues)
- **Email**: moustafamohmd5@gmail.com

---

Made by the **Moustafa Mohamed**

- **Linkedin** [Moustafa Mohamed](https://www.linkedin.com/in/moustafamohamed01/)
- **Github** [MoustafaMohamed01](https://github.com/MoustafaMohamed01)
- **Kaggle** [moustafamohamed01](https://www.kaggle.com/moustafamohamed01)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/MoustafaMohamed01/aitoolmaker",
    "name": "aitoolmaker",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "ai, chatbot, streamlit, tool-generator, gemini, openai, automation",
    "author": "Moustafa Mohamed",
    "author_email": "moustafamohmd5@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/ce/58/d456b6bc87f39c8384b2cb79705c340a6f5afa6f3c2a589199a6b56ba78e/aitoolmaker-0.1.0.tar.gz",
    "platform": null,
    "description": "# AIToolMaker\r\n\r\n**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.\r\n\r\n## Features\r\n\r\n- **Instant Tool Generation**: Create AI-powered tools with a single command\r\n- **Multiple Output Formats**: Generate Streamlit apps or standalone websites\r\n- **6 Pre-built Tools**: Chatbot, Blog Generator, Data Analyzer, SQL Generator, Document Summarizer, Web Summarizer\r\n- **Run Immediately**: Option to run tools instantly without exporting code\r\n- **Auto-branding**: Automatic name and logo generation\r\n- **Multi-API Support**: Works with Gemini, OpenAI, and Anthropic APIs\r\n\r\n## Installation\r\n\r\n```bash\r\npip install aitoolmaker\r\n```\r\n\r\nOr install from source:\r\n\r\n```bash\r\ngit clone https://github.com/MoustafaMohamed01/aitoolmaker.git\r\ncd aitoolmaker\r\npip install -e .\r\n```\r\n\r\n## Quick Start\r\n\r\n### Python API\r\n\r\n```python\r\nfrom aitoolmaker import AIToolMaker\r\n\r\n# Initialize\r\ntool = AIToolMaker(\r\n    api_key=\"YOUR_GEMINI_API_KEY\",\r\n    model=\"gemini-2.0-flash\"\r\n)\r\n\r\n# Generate and run a chatbot\r\ntool.create_tool(\r\n    tool_type=\"chatbot\",\r\n    output=\"streamlit\",\r\n    run=True,\r\n    name=\"My AI Assistant\"\r\n)\r\n```\r\n\r\n### Command Line\r\n\r\n```bash\r\n# Create a blog generator\r\naitoolmaker create --tool blog_generator --api-key YOUR_KEY --output streamlit\r\n\r\n# Create and run immediately\r\naitoolmaker create --tool chatbot --api-key YOUR_KEY --run\r\n\r\n# Generate a website\r\naitoolmaker create --tool sql_generator --api-key YOUR_KEY --output website\r\n```\r\n\r\n## Available Tools\r\n\r\n| Tool                    | Description                                         |\r\n| ----------------------- | --------------------------------------------------- |\r\n| **chatbot**             | Professional AI assistant with conversation history |\r\n| **blog_generator**      | AI-powered blog writer with keyword optimization    |\r\n| **data_analyzer**       | Ask questions about CSV data using AI               |\r\n| **sql_generator**       | Generate SQL queries from natural language          |\r\n| **document_summarizer** | Summarize PDF and Word documents                    |\r\n| **web_summarizer**      | Summarize website content                           |\r\n\r\n## Usage Examples\r\n\r\n### Generate Multiple Tools\r\n\r\n```python\r\nfrom aitoolmaker import AIToolMaker\r\n\r\napi_key = \"YOUR_API_KEY\"\r\ntools = [\"chatbot\", \"blog_generator\", \"sql_generator\"]\r\n\r\nfor tool_type in tools:\r\n    maker = AIToolMaker(api_key=api_key, model=\"gemini-2.0-flash\")\r\n    result = maker.create_tool(\r\n        tool_type=tool_type,\r\n        output=\"streamlit\",\r\n        output_dir=f\"./generated_{tool_type}\"\r\n    )\r\n    print(f\"{tool_type} created at {result['output_dir']}\")\r\n```\r\n\r\n### Custom Branding\r\n\r\n```python\r\nfrom aitoolmaker import AIToolMaker\r\n\r\nmaker = AIToolMaker(api_key=\"YOUR_KEY\", model=\"gemini-2.0-flash\")\r\n\r\nresult = maker.create_tool(\r\n    tool_type=\"data_analyzer\",\r\n    output=\"streamlit\",\r\n    name=\"DataMaster Pro\",\r\n    logo=\"./my_logo.png\",\r\n    output_dir=\"./my_data_tool\"\r\n)\r\n```\r\n\r\n### Generate Website\r\n\r\n```python\r\nfrom aitoolmaker import AIToolMaker\r\n\r\nmaker = AIToolMaker(api_key=\"YOUR_KEY\", model=\"gemini-2.0-flash\")\r\n\r\nresult = maker.create_tool(\r\n    tool_type=\"sql_generator\",\r\n    output=\"website\",\r\n    name=\"SQL Wizard\",\r\n    output_dir=\"./sql_website\"\r\n)\r\n```\r\n\r\n## CLI Usage\r\n\r\n### List Available Tools\r\n\r\n```bash\r\naitoolmaker list\r\n```\r\n\r\n### Get Tool Information\r\n\r\n```bash\r\naitoolmaker info chatbot\r\n```\r\n\r\n### Create Tool with Options\r\n\r\n```bash\r\naitoolmaker create \\\r\n  --tool document_summarizer \\\r\n  --api-key YOUR_KEY \\\r\n  --model gemini-2.0-flash \\\r\n  --name \"DocSummarizer Pro\" \\\r\n  --logo ./logo.png \\\r\n  --output-dir ./my_summarizer\r\n```\r\n\r\n## Generated Output Structure\r\n\r\n### Streamlit App\r\n\r\n```\r\ngenerated_chatbot/\r\n\u251c\u2500\u2500 app.py              # Main Streamlit application\r\n\u251c\u2500\u2500 api_key.py          # API key configuration\r\n\u251c\u2500\u2500 requirements.txt    # Python dependencies\r\n\u251c\u2500\u2500 README.md           # Usage instructions\r\n\u2514\u2500\u2500 utils.py            # Utility functions (if needed)\r\n```\r\n\r\n### Website\r\n\r\n```\r\ngenerated_chatbot_website/\r\n\u251c\u2500\u2500 index.html          # Main HTML file\r\n\u251c\u2500\u2500 css/\r\n\u2502   \u2514\u2500\u2500 style.css       # Stylesheet\r\n\u251c\u2500\u2500 js/\r\n\u2502   \u2514\u2500\u2500 app.js          # JavaScript logic\r\n\u251c\u2500\u2500 assets/\r\n\u2502   \u2514\u2500\u2500 logo.png        # Logo image\r\n\u2514\u2500\u2500 README.md           # Deployment instructions\r\n```\r\n\r\n## Use Cases\r\n\r\n- **Rapid Prototyping**: Quickly create AI tool prototypes\r\n- **Client Demos**: Generate custom-branded demos\r\n- **Internal Tools**: Build internal AI tools for teams\r\n- **Learning**: Study production-ready AI code\r\n- **Deployment**: Export portable, deployment-ready code\r\n\r\n## Contributing\r\n\r\nContributions are welcome! To add a new tool:\r\n\r\n1. Create a template file in `core/templates/your_tool.py`\r\n2. Define the template constant\r\n3. Register it in `core/templates/__init__.py`\r\n4. Update `SUPPORTED_TOOLS` in `__init__.py`\r\n\r\n## License\r\n\r\nMIT License - See LICENSE file for details\r\n\r\n## Acknowledgments\r\n\r\n- Built with [Streamlit](https://streamlit.io/)\r\n- Powered by [Google Gemini](https://deepmind.google/technologies/gemini/)\r\n\r\n## Support\r\n\r\n- **Issues**: [GitHub Issues](https://github.com/MoustafaMohamed01/aitoolmaker/issues)\r\n- **Email**: moustafamohmd5@gmail.com\r\n\r\n---\r\n\r\nMade by the **Moustafa Mohamed**\r\n\r\n- **Linkedin** [Moustafa Mohamed](https://www.linkedin.com/in/moustafamohamed01/)\r\n- **Github** [MoustafaMohamed01](https://github.com/MoustafaMohamed01)\r\n- **Kaggle** [moustafamohamed01](https://www.kaggle.com/moustafamohamed01)\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A framework for automatically generating and running Streamlit-based AI tools and chatbots",
    "version": "0.1.0",
    "project_urls": {
        "Bug Reports": "https://github.com/MoustafaMohamed01/aitoolmaker/issues",
        "Documentation": "https://aitoolmaker.readthedocs.io",
        "Homepage": "https://github.com/MoustafaMohamed01/aitoolmaker",
        "Source": "https://github.com/MoustafaMohamed01/aitoolmaker"
    },
    "split_keywords": [
        "ai",
        " chatbot",
        " streamlit",
        " tool-generator",
        " gemini",
        " openai",
        " automation"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a02ca22fd5debd816f2fb03eea5675dc66db5b79c3f9b39bba64f6d2bcd9737c",
                "md5": "0c70e0dabe30832779f95bdeea8a0737",
                "sha256": "3e78934b006a2a3ea62d07f20fb14b8d672ebb38b7095c7c5a99cf7e1f4aa4df"
            },
            "downloads": -1,
            "filename": "aitoolmaker-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0c70e0dabe30832779f95bdeea8a0737",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 730043,
            "upload_time": "2025-10-29T15:53:56",
            "upload_time_iso_8601": "2025-10-29T15:53:56.979525Z",
            "url": "https://files.pythonhosted.org/packages/a0/2c/a22fd5debd816f2fb03eea5675dc66db5b79c3f9b39bba64f6d2bcd9737c/aitoolmaker-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ce58d456b6bc87f39c8384b2cb79705c340a6f5afa6f3c2a589199a6b56ba78e",
                "md5": "069e0f4affcf9f2ace03d68fd9169d07",
                "sha256": "945f0bc535132a019e535c190d487278b3f148e4cf6485adaf30ffa1b5c1a51f"
            },
            "downloads": -1,
            "filename": "aitoolmaker-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "069e0f4affcf9f2ace03d68fd9169d07",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 728072,
            "upload_time": "2025-10-29T15:53:59",
            "upload_time_iso_8601": "2025-10-29T15:53:59.334150Z",
            "url": "https://files.pythonhosted.org/packages/ce/58/d456b6bc87f39c8384b2cb79705c340a6f5afa6f3c2a589199a6b56ba78e/aitoolmaker-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-29 15:53:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "MoustafaMohamed01",
    "github_project": "aitoolmaker",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "streamlit",
            "specs": [
                [
                    ">=",
                    "1.28.0"
                ]
            ]
        },
        {
            "name": "google-generativeai",
            "specs": [
                [
                    ">=",
                    "0.3.0"
                ]
            ]
        },
        {
            "name": "jinja2",
            "specs": [
                [
                    ">=",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "langchain",
            "specs": [
                [
                    ">=",
                    "0.1.0"
                ]
            ]
        },
        {
            "name": "langchain-google-genai",
            "specs": [
                [
                    ">=",
                    "0.0.6"
                ]
            ]
        },
        {
            "name": "langchain-community",
            "specs": [
                [
                    ">=",
                    "0.0.13"
                ]
            ]
        },
        {
            "name": "pypdf",
            "specs": [
                [
                    ">=",
                    "3.17.0"
                ]
            ]
        },
        {
            "name": "python-docx",
            "specs": [
                [
                    ">=",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "faiss-cpu",
            "specs": [
                [
                    ">=",
                    "1.7.4"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.31.0"
                ]
            ]
        },
        {
            "name": "beautifulsoup4",
            "specs": [
                [
                    ">=",
                    "4.12.0"
                ]
            ]
        }
    ],
    "lcname": "aitoolmaker"
}
        
Elapsed time: 1.95330s