Metadata-Version: 2.4
Name: aitoolmaker
Version: 0.1.0
Summary: A framework for automatically generating and running Streamlit-based AI tools and chatbots
Home-page: https://github.com/MoustafaMohamed01/aitoolmaker
Author: Moustafa Mohamed
Author-email: moustafamohmd5@gmail.com
Project-URL: Bug Reports, https://github.com/MoustafaMohamed01/aitoolmaker/issues
Project-URL: Documentation, https://aitoolmaker.readthedocs.io
Project-URL: Source, https://github.com/MoustafaMohamed01/aitoolmaker
Keywords: ai,chatbot,streamlit,tool-generator,gemini,openai,automation
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: streamlit>=1.28.0
Requires-Dist: google-generativeai>=0.3.0
Requires-Dist: jinja2>=3.0.0
Requires-Dist: pandas>=2.0.0
Requires-Dist: langchain>=0.1.0
Requires-Dist: langchain-google-genai>=0.0.6
Requires-Dist: langchain-community>=0.0.13
Requires-Dist: pypdf>=3.17.0
Requires-Dist: python-docx>=1.0.0
Requires-Dist: faiss-cpu>=1.7.4
Requires-Dist: requests>=2.31.0
Requires-Dist: beautifulsoup4>=4.12.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# 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)
