IAToolkit
Project description
IAToolkit
The Open-Source Framework for Building Real-World AI Assistants on Your Private Data
✨ Why IAToolkit?
IAToolkit is more than a collection of utilities — it is a structured foundation for building real-world, enterprise-grade AI assistants that run inside your own environment, understand your data, and respect your business rules.
Whether you’re:
- building a production chatbot for your company, or
- learning how serious AI applications are architected,
IAToolkit gives you a clean, opinionated architecture:
- a shared Core with Interfaces & Chat
- an Intelligence Layer that orchestrates prompts, tools, RAG, and rules
- Connectors & Tools to talk to SQL, documents, and APIs
- a Data Access Layer based on SQLAlchemy
- and a multi-tenant design where each Company defines its own configuration, context, and tools.
The goal is simple: help you move quickly from “cool demo” to assistant that actually works in the real world.
🧱 Architecture in a Nutshell
At the heart of IAToolkit is a structured internal architecture:
-
Interfaces & Chat
Handle HTTP/JSON/HTML, sessions, and the conversational flow between users, the server, and the LLM. -
Intelligence Layer
The core of the system. Interprets user intent, reads each Company’s configuration, and orchestrates SQL queries, document retrieval, prompts, tools, and RAG. This is where real-world behavior lives. -
Connectors & Tools Layer
Bridges the intelligence with your systems. Provides access to SQL databases, internal documents, APIs, and custom Python tools so the assistant can execute workflows, not just answer questions. -
Data Access Layer
Uses SQLAlchemy to offer structured and predictable access to the internal database, making it safe to grow from one Company to many. -
Company Modules
Each Company has its owncompany.yaml, context, prompts, tools, and branding, forming a clean boundary within a shared IAToolkit Core.
If you want a deeper explanation of the design decisions behind this, see the
🏛️ Foundation Article.
🔌 Connect to Anything
Build AI assistants that truly understand your business.
- Connect to SQL databases (PostgreSQL, MySQL, SQLite)
- Query structured data using natural language
- Perform semantic search on PDFs, DOCX, TXT, XLSX
- Use IAToolkit as a full RAG engine out-of-the-box
- Combine database queries, document retrieval, and tools in a single answer
Your assistant isn’t limited to the chat history — it can see real numbers, real entities, and real documents.
🏢 Multi-Tenant by Design
IAToolkit is built for scenarios where you serve more than one “domain”:
- SaaS products serving multiple customers
- Agencies or consultancies building assistants for several clients
- Large enterprises with multiple business units
Each Company is a logical tenant, defined by:
- a
company.yamlconfiguration file (data sources, LLM choices, tools, roles, branding) - contextual resources (schemas, prompts, documents, examples)
- optional Python tools that the LLM can call (SQL helpers, API calls, custom business actions)
This gives you:
- Clear isolation between tenants
- Clean separation for multi-client deployments
- A straightforward path to scale from 1 to 100+ customers, without rewriting your core
🧠 Built for Real-World Systems
IAToolkit is designed with production in mind — reliable, maintainable, and adaptable:
- Swap between OpenAI (GPT), Google Gemini, or future LLM providers
- Keep a clean separation between UI, business logic, and LLM orchestration
- Use an Intelligence Layer to organize prompts, tools, and RAG in a consistent way
- Integrated authentication and session handling
- Detailed logging of prompts, tool calls, and token usage
- Runs anywhere: local machine, Docker, cloud, serverless
You can start small on a laptop and grow into a full-scale internal assistant without changing frameworks.
🚀 Getting Started in 3 Minutes
Get your first AI assistant running locally by following our “Hello World” example.
Our Quickstart Guide walks you through:
- creating and activating a virtual environment
- configuring your
.envfile with API keys and basic settings - launching the application and talking to your first Company
📚 Documentation
The documentation is designed to grow with you — from basic setup to extending the framework with your own Companies, tools, and workflows.
| Guide | Description |
|---|---|
| 🚀 Quickstart Guide | The fastest way to install, configure, and run IAToolkit for the first time. |
| ⚙️ Companies & Components | A deep dive into the company.yaml file, the core of all configuration. |
| 💻 Programming Guide | Understand the internal architecture, services, and design patterns to extend the framework. |
| ☁️ Deployment Guide | Learn how to deploy your IAToolkit application to a production environment. |
| 🗃️ Database Guide | An overview of the core database schema used by the IAToolkit framework itself. |
| 🏛️ Foundation Article | The “why” behind IAToolkit’s architecture for enterprise-grade assistants. |
| 🗓️ Implementation Plan | A 3-month mini-project plan to deploy a real AI assistant integrated with corporate data. |
🤝 Contributing
We welcome contributions of all kinds — new features, bug fixes, documentation improvements, or ideas for better developer experience.
Please read our Contributing Guide to get started.
📄 License
IAToolkit is open-source software licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
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 iatoolkit-0.80.2.tar.gz.
File metadata
- Download URL: iatoolkit-0.80.2.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1db0d6c1da9ddbff8e3b91661833542f4014484820f451a0ee5453348cae707b
|
|
| MD5 |
263d58abc90f7a17a81e61afbebfaad5
|
|
| BLAKE2b-256 |
986dd425e80db9c2cd243742646c2b3ecd391369aac4035422890b443e9d54d0
|
Provenance
The following attestation bundles were made for iatoolkit-0.80.2.tar.gz:
Publisher:
publish.yml on flibedinsky/iatoolkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
iatoolkit-0.80.2.tar.gz -
Subject digest:
1db0d6c1da9ddbff8e3b91661833542f4014484820f451a0ee5453348cae707b - Sigstore transparency entry: 727204556
- Sigstore integration time:
-
Permalink:
flibedinsky/iatoolkit@8bee3b9bc5705b1dc34210440501e70ce8392f16 -
Branch / Tag:
refs/tags/v0.80.2 - Owner: https://github.com/flibedinsky
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8bee3b9bc5705b1dc34210440501e70ce8392f16 -
Trigger Event:
push
-
Statement type:
File details
Details for the file iatoolkit-0.80.2-py3-none-any.whl.
File metadata
- Download URL: iatoolkit-0.80.2-py3-none-any.whl
- Upload date:
- Size: 1.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bbf2fdeaa257cfdb2edadac05effbd418545562ea0ce96233143a15248935bc2
|
|
| MD5 |
3e4e925997dcd746f5de0fb7d511ce21
|
|
| BLAKE2b-256 |
4be4ca83dda590e383addc7c115c0c2621a149bdcf7fbfd166d3d394df5ffd5e
|
Provenance
The following attestation bundles were made for iatoolkit-0.80.2-py3-none-any.whl:
Publisher:
publish.yml on flibedinsky/iatoolkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
iatoolkit-0.80.2-py3-none-any.whl -
Subject digest:
bbf2fdeaa257cfdb2edadac05effbd418545562ea0ce96233143a15248935bc2 - Sigstore transparency entry: 727204559
- Sigstore integration time:
-
Permalink:
flibedinsky/iatoolkit@8bee3b9bc5705b1dc34210440501e70ce8392f16 -
Branch / Tag:
refs/tags/v0.80.2 - Owner: https://github.com/flibedinsky
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8bee3b9bc5705b1dc34210440501e70ce8392f16 -
Trigger Event:
push
-
Statement type: