Metadata-Version: 2.4
Name: iatoolkit
Version: 0.72.0
Summary: IAToolkit
Author: Fernando Libedinsky
License-Expression: MIT
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiohappyeyeballs==2.4.4
Requires-Dist: aiohttp==3.11.9
Requires-Dist: aiosignal==1.3.1
Requires-Dist: annotated-types==0.7.0
Requires-Dist: anyio==4.6.2.post1
Requires-Dist: asgiref==3.8.1
Requires-Dist: async-timeout==4.0.3
Requires-Dist: attrs==24.3.0
Requires-Dist: backoff==2.2.1
Requires-Dist: bcrypt==4.2.1
Requires-Dist: beautifulsoup4==4.12.3
Requires-Dist: blinker==1.9.0
Requires-Dist: boto3==1.36.22
Requires-Dist: botocore==1.36.22
Requires-Dist: build==1.2.2.post1
Requires-Dist: cachelib==0.13.0
Requires-Dist: cachetools==5.5.0
Requires-Dist: certifi==2024.12.14
Requires-Dist: cffi==1.17.1
Requires-Dist: charset-normalizer==3.4.0
Requires-Dist: click==8.1.8
Requires-Dist: coloredlogs==15.0.1
Requires-Dist: contourpy==1.3.3
Requires-Dist: coverage==7.6.10
Requires-Dist: cryptography==44.0.3
Requires-Dist: cycler==0.12.1
Requires-Dist: dataclasses-json==0.6.7
Requires-Dist: Deprecated==1.2.15
Requires-Dist: distro==1.9.0
Requires-Dist: durationpy==0.9
Requires-Dist: ecs-logging==2.2.0
Requires-Dist: elastic-apm==6.23.0
Requires-Dist: et_xmlfile==2.0.0
Requires-Dist: exceptiongroup==1.2.2
Requires-Dist: fastapi==0.115.6
Requires-Dist: filelock==3.16.1
Requires-Dist: Flask==3.1.0
Requires-Dist: Flask-Bcrypt==1.0.1
Requires-Dist: flask-cors==6.0.0
Requires-Dist: Flask-Injector==0.15.0
Requires-Dist: Flask-Session==0.8.0
Requires-Dist: flatbuffers==24.3.25
Requires-Dist: fonttools==4.59.2
Requires-Dist: frozenlist==1.5.0
Requires-Dist: fsspec==2024.10.0
Requires-Dist: google-ai-generativelanguage==0.6.15
Requires-Dist: google-api-core==2.24.1
Requires-Dist: google-api-python-client==2.161.0
Requires-Dist: google-auth==2.37.0
Requires-Dist: google-auth-httplib2==0.2.0
Requires-Dist: google-auth-oauthlib==1.2.1
Requires-Dist: google-cloud-core==2.4.1
Requires-Dist: google-cloud-storage==3.0.0
Requires-Dist: google-crc32c==1.6.0
Requires-Dist: google-generativeai==0.8.5
Requires-Dist: google-resumable-media==2.7.2
Requires-Dist: googleapis-common-protos==1.66.0
Requires-Dist: grpcio==1.74.0
Requires-Dist: grpcio-status==1.71.2
Requires-Dist: gunicorn==23.0.0
Requires-Dist: h11==0.14.0
Requires-Dist: httpcore==1.0.7
Requires-Dist: httplib2==0.22.0
Requires-Dist: httptools==0.6.4
Requires-Dist: httpx==0.28.0
Requires-Dist: httpx-sse==0.4.0
Requires-Dist: huggingface-hub==0.31.4
Requires-Dist: humanfriendly==10.0
Requires-Dist: idna==3.10
Requires-Dist: importlib_metadata==8.5.0
Requires-Dist: importlib_resources==6.4.5
Requires-Dist: iniconfig==2.0.0
Requires-Dist: injector==0.22.0
Requires-Dist: itsdangerous==2.2.0
Requires-Dist: Jinja2==3.1.5
Requires-Dist: jiter==0.8.0
Requires-Dist: jmespath==1.0.1
Requires-Dist: joblib==1.4.2
Requires-Dist: jsonpatch==1.33
Requires-Dist: jsonpointer==3.0.0
Requires-Dist: kiwisolver==1.4.9
Requires-Dist: kubernetes==31.0.0
Requires-Dist: langchain==0.3.19
Requires-Dist: langchain-core==0.3.35
Requires-Dist: langchain-text-splitters==0.3.6
Requires-Dist: langsmith==0.3.8
Requires-Dist: lxml==5.3.0
Requires-Dist: markdown-it-py==3.0.0
Requires-Dist: markdown2==2.5.3
Requires-Dist: MarkupSafe==3.0.2
Requires-Dist: marshmallow==3.23.1
Requires-Dist: matplotlib==3.10.6
Requires-Dist: mdurl==0.1.2
Requires-Dist: mmh3==5.0.1
Requires-Dist: monotonic==1.6
Requires-Dist: mpmath==1.3.0
Requires-Dist: msgspec==0.19.0
Requires-Dist: multidict==6.1.0
Requires-Dist: mypy-extensions==1.0.0
Requires-Dist: narwhals==2.3.0
Requires-Dist: networkx==3.4.2
Requires-Dist: numpy==2.2.3
Requires-Dist: oauth2client==4.1.3
Requires-Dist: oauthlib==3.2.2
Requires-Dist: onnxruntime==1.19.2
Requires-Dist: openai==1.79.0
Requires-Dist: openpyxl==3.1.5
Requires-Dist: opentelemetry-api==1.28.2
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.28.2
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.28.2
Requires-Dist: opentelemetry-instrumentation==0.49b2
Requires-Dist: opentelemetry-instrumentation-asgi==0.49b2
Requires-Dist: opentelemetry-instrumentation-fastapi==0.49b2
Requires-Dist: opentelemetry-proto==1.28.2
Requires-Dist: opentelemetry-sdk==1.28.2
Requires-Dist: opentelemetry-semantic-conventions==0.49b2
Requires-Dist: opentelemetry-util-http==0.49b2
Requires-Dist: orjson==3.10.12
Requires-Dist: overrides==7.7.0
Requires-Dist: packaging==24.2
Requires-Dist: pandas==2.3.1
Requires-Dist: pgvector==0.3.6
Requires-Dist: pillow==11.0.0
Requires-Dist: plotly==6.3.0
Requires-Dist: pluggy==1.5.0
Requires-Dist: posthog==3.7.4
Requires-Dist: propcache==0.2.1
Requires-Dist: proto-plus==1.26.0
Requires-Dist: protobuf==5.29.1
Requires-Dist: psutil==7.0.0
Requires-Dist: psycopg2-binary==2.9.10
Requires-Dist: pyarrow==21.0.0
Requires-Dist: pyasn1==0.6.1
Requires-Dist: pyasn1_modules==0.4.1
Requires-Dist: pycparser==2.22
Requires-Dist: pydantic==2.10.2
Requires-Dist: pydantic-settings==2.6.1
Requires-Dist: pydantic_core==2.27.1
Requires-Dist: PyDrive==1.3.1
Requires-Dist: Pygments==2.18.0
Requires-Dist: PyJWT==2.10.1
Requires-Dist: PyMuPDF==1.25.0
Requires-Dist: pyparsing==3.2.1
Requires-Dist: pypdf==5.1.0
Requires-Dist: PyPika==0.48.9
Requires-Dist: pyproject_hooks==1.2.0
Requires-Dist: pytesseract==0.3.13
Requires-Dist: pytest==8.3.4
Requires-Dist: pytest-cov==5.0.0
Requires-Dist: pytest-mock==3.14.0
Requires-Dist: python-dateutil==2.9.0.post0
Requires-Dist: python-docx==1.1.2
Requires-Dist: python-dotenv==1.0.1
Requires-Dist: pytz==2025.2
Requires-Dist: PyYAML==6.0.2
Requires-Dist: redis==5.2.1
Requires-Dist: regex==2024.11.6
Requires-Dist: requests==2.32.3
Requires-Dist: requests-oauthlib==2.0.0
Requires-Dist: requests-toolbelt==1.0.0
Requires-Dist: rich==13.9.4
Requires-Dist: rsa==4.9
Requires-Dist: s3transfer==0.11.2
Requires-Dist: safetensors==0.5.2
Requires-Dist: scikit-learn==1.7.1
Requires-Dist: scipy==1.15.1
Requires-Dist: seaborn==0.13.2
Requires-Dist: setuptools==75.8.0
Requires-Dist: shellingham==1.5.4
Requires-Dist: sib-api-v3-sdk==7.6.0
Requires-Dist: six==1.17.0
Requires-Dist: sniffio==1.3.1
Requires-Dist: soupsieve==2.6
Requires-Dist: SQLAlchemy==2.0.36
Requires-Dist: starlette==0.41.3
Requires-Dist: sympy==1.13.1
Requires-Dist: tenacity==9.0.0
Requires-Dist: threadpoolctl==3.5.0
Requires-Dist: tiktoken==0.8.0
Requires-Dist: tokenizers==0.21.0
Requires-Dist: tomli==2.2.1
Requires-Dist: tqdm==4.67.1
Requires-Dist: typer==0.15.1
Requires-Dist: typing-inspect==0.9.0
Requires-Dist: typing_extensions==4.12.2
Requires-Dist: tzdata==2025.2
Requires-Dist: uritemplate==4.1.1
Requires-Dist: urllib3==2.3.0
Requires-Dist: uvicorn==0.32.1
Requires-Dist: uvloop==0.21.0
Requires-Dist: watchfiles==1.0.0
Requires-Dist: websocket-client==1.8.0
Requires-Dist: websockets==14.1
Requires-Dist: Werkzeug==3.1.3
Requires-Dist: whitenoise==6.8.2
Requires-Dist: wikipedia==1.4.0
Requires-Dist: wrapt==1.17.0
Requires-Dist: yarl==1.18.3
Requires-Dist: zipp==3.21.0
Requires-Dist: zstandard==0.23.0
Dynamic: license-file


<div align="center">
<h1>
    IAToolkit
</h1>

  <p><strong>The Open-Source Framework for Building AI Chatbots on Your Private Data.</strong></p>
<h4>
  <a href="https://www.iatoolkit.com" target="_blank" style="text-decoration: none; color: inherit;">
    www.iatoolkit.com
  </a>
</h4>
</div>

IAToolkit is a comprehensive, Python open-source framework designed for building enterprise-grade 
AI chatbots and conversational applications. It bridges the gap between the power of 
Large Language Models (LLMs) and the valuable, 
private data locked within your organization's databases and documents.

With IAToolkit, you can build production-ready, context-aware chatbots and agents that 
can query relational databases, perform semantic searches on documents, 
and connect to your internal APIs in minutes.

Create secure, branded chat interfaces that can reason over your data, answer questions, and execute custom business logic, 
all powered by leading models from OpenAI, Google Gemini, and more.


## 🚀 Key Features

* **⚙️ Configuration-First Architecture**
    * **Zero-Code Data Integration**: Connect your databases with a simple YAML configuration—no coding required. Just declare your data sources, and IAToolkit handles the rest.
    * **Declarative Setup**: Define everything from database connections, embedding providers, custom tools, and UI branding in a single, intuitive `company.yaml` file.
    * 

* **🔗 Unified Data Connection**
    * **Natural Language to SQL**: Let your chatbot query relational databases (PostgreSQL, MySQL, SQLite) using everyday language.
    * **Semantic Document Search (RAG)**: Automatically chunk, embed, and search across your private documents (PDFs, Word, etc.) to provide contextually accurate answers.
    * **Flexible Embedding Options**: Choose between OpenAI or HuggingFace embedding models. Switch providers with a single configuration change—no code modifications needed.

* **🏢 Enterprise-Ready Multi-Tenancy**
    * Deploy isolated "Company" modules, each with its own data sources, tools, context, and branding.
    * Perfect for SaaS products serving multiple clients or for managing different internal departments.
    * Each company gets its own configuration file, ensuring complete isolation and customization.

* **🎨 Fully Brandable UI**
    * Customize the look and feel for each "Company" with its own colors, logos, and even language settings (i18n).
    * Define your brand identity in YAML—from header colors to button styles.
    * Provides a white-labeled experience for your users with zero front-end coding.

* **🧠 Multi-LLM by Design**
    * **Provider Agnostic**: Switch between **OpenAI (GPT-5)** and **Google (Gemini Pro, Gemini Flash)** with a single configuration line.
    * **Future-Proof**: Easily add support for new LLM providers as they emerge.
    * **Per-Company Configuration**: Mix and match different LLM providers across companies based on cost, performance, or feature requirements.

* **🛠️ Powerful Tool System**
    * Define custom functions (tools) that your AI can invoke to perform actions—from database queries to API calls.
    * Declare tools in YAML with OpenAPI-style schemas.
    * Built-in support for common operations like sql query, excel export, sending mail with easy extensibility for custom business logic.

* **🔒 Security & Observability Built-In**
    * Integrated user authentication, API key management, and secure session handling out of the box.
    * Full traceability with detailed logging of all queries, function calls, token usage, and costs.
    * Production-ready security features including CORS configuration and environment-based secrets management.

* **👨‍💻 Developer-First Experience**
    * Built with a clean **Dependency Injection** architecture for maximum testability and maintainability.
    * High-quality codebase with **90%+ test coverage**.
    * Comprehensive documentation and working examples to get you started quickly.

## 💡 Why IAToolkit?

**Build in Minutes, Not Months**: Traditional AI chatbot development requires months of infrastructure setup, security hardening, and complex integrations. IAToolkit provides all of this out-of-the-box, letting you focus on your business logic and user experience.

**Configuration Over Code**: Most AI frameworks force you to write extensive boilerplate code. With IAToolkit, you describe what you want in YAML, and the framework does the heavy lifting. Connect databases, configure embeddings, define tools—all declaratively.

**Multi-Tenant by Design**: Whether you're building a SaaS product for multiple clients or managing different departments within your organization, IAToolkit's Company architecture provides true isolation with shared infrastructure efficiency.

**Production-Ready from Day One**: No need to retrofit security, logging, or monitoring later. IAToolkit includes enterprise-grade features from the start, so you can deploy confidently.

## 📚 Documentation

For comprehensive guides, tutorials, and API references, visit our complete documentation:

➡️ **[Read the Full Documentation](./docs/index.md)**

## ⚡ Quick Start: Try our 'hello world' example

Ready to see it in action? Our Quickstart Guide will walk you through downloading, configuring, and launching your first AI assistant in just a few minutes. 
It's the best way to experience the toolkit's capabilities firsthand.

➡️ **[Get Started with the Quickstart Guide](./docs/quickstart.md)**

## 🤝 Contributing

We welcome contributions! Whether it's adding a new feature, improving documentation, or fixing a bug, 
please feel free to open a pull request.

➡️ **[Contributing guide](./contributing.md)**

## 📄 License

IAToolkit is open-source and licensed under the [MIT License](LICENSE).
