Metadata-Version: 2.4
Name: kavalai
Version: 1.0.2
Summary: Kaval.AI is an open source Python SDK for writing AI agents and workflow automation pipelines. Suitable for conversational agents and generic workflow automation.
Author: Kaval.AI Team
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: aiosqlite
Requires-Dist: alembic
Requires-Dist: environs
Requires-Dist: httpx
Requires-Dist: jinja2
Requires-Dist: json-schema-to-pydantic
Requires-Dist: loguru
Requires-Dist: numpy
Requires-Dist: partial-json-parser
Requires-Dist: pydantic
Requires-Dist: pyyaml
Requires-Dist: rich
Requires-Dist: sqlalchemy
Provides-Extra: openai
Requires-Dist: openai; extra == "openai"
Provides-Extra: gemini
Requires-Dist: google-genai; extra == "gemini"
Provides-Extra: ollama
Requires-Dist: ollama; extra == "ollama"
Provides-Extra: anthropic
Requires-Dist: anthropic; extra == "anthropic"
Provides-Extra: llm
Requires-Dist: openai; extra == "llm"
Requires-Dist: google-genai; extra == "llm"
Requires-Dist: ollama; extra == "llm"
Requires-Dist: anthropic; extra == "llm"
Provides-Extra: rag
Requires-Dist: fastembed; extra == "rag"
Requires-Dist: scikit-learn; extra == "rag"
Requires-Dist: sqliteai-vector; extra == "rag"
Provides-Extra: postgres
Requires-Dist: asyncpg; extra == "postgres"
Requires-Dist: psycopg2-binary; extra == "postgres"
Provides-Extra: mcp
Requires-Dist: mcp; extra == "mcp"
Provides-Extra: server
Requires-Dist: fastapi[standard]; extra == "server"
Requires-Dist: authlib; extra == "server"
Requires-Dist: itsdangerous; extra == "server"
Provides-Extra: tools
Requires-Dist: crawl4ai; extra == "tools"
Requires-Dist: feedparser; extra == "tools"
Provides-Extra: notebooks
Requires-Dist: ipykernel>=7.3.0; extra == "notebooks"
Requires-Dist: ipywidgets; extra == "notebooks"
Provides-Extra: all
Requires-Dist: openai; extra == "all"
Requires-Dist: google-genai; extra == "all"
Requires-Dist: ollama; extra == "all"
Requires-Dist: anthropic; extra == "all"
Requires-Dist: fastembed; extra == "all"
Requires-Dist: scikit-learn; extra == "all"
Requires-Dist: sqliteai-vector; extra == "all"
Requires-Dist: asyncpg; extra == "all"
Requires-Dist: psycopg2-binary; extra == "all"
Requires-Dist: mcp; extra == "all"
Requires-Dist: fastapi[standard]; extra == "all"
Requires-Dist: authlib; extra == "all"
Requires-Dist: itsdangerous; extra == "all"
Requires-Dist: crawl4ai; extra == "all"
Requires-Dist: feedparser; extra == "all"
Provides-Extra: test
Requires-Dist: aiosqlite; extra == "test"
Requires-Dist: pre-commit; extra == "test"
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-asyncio; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: python-dotenv; extra == "test"
Requires-Dist: testcontainers[postgres]; extra == "test"
Requires-Dist: openai; extra == "test"
Requires-Dist: google-genai; extra == "test"
Requires-Dist: ollama; extra == "test"
Requires-Dist: anthropic; extra == "test"
Requires-Dist: fastembed; extra == "test"
Requires-Dist: scikit-learn; extra == "test"
Requires-Dist: sqliteai-vector; extra == "test"
Requires-Dist: asyncpg; extra == "test"
Requires-Dist: psycopg2-binary; extra == "test"
Requires-Dist: mcp; extra == "test"
Requires-Dist: fastapi[standard]; extra == "test"
Requires-Dist: authlib; extra == "test"
Requires-Dist: itsdangerous; extra == "test"
Provides-Extra: docs
Requires-Dist: sphinx<9; extra == "docs"
Requires-Dist: sphinx-immaterial; extra == "docs"
Requires-Dist: myst-nb; extra == "docs"
Dynamic: license-file

<img src="frontend/public/assets/images/iconlogo.svg" alt="Kaval.AI Logo" width="400" height="100"/>

[![CI](https://github.com/Kaval-AI/kaval.ai/actions/workflows/ci.yml/badge.svg)](https://github.com/Kaval-AI/kaval.ai/actions/workflows/ci.yml)

Kaval.AI is an opinionated, elegant, production-grade Python library for building LLM-powered workflows,
chatbots and agents, and connecting them to databases and tooling — with a focus on observability and debuggability.


Features:
- Supports common commercial LLM providers such OpenAI, Google Gemini etc.
- Supports open source LLMs via Ollama backend.
- Agents can be run client-side in browser via WebLLM and Pyodide.
- Structured responses using Pydantic semantics.
- Streaming responses.
- Retrieval augmented generation (RAG) index on various storage engines.
- Fully featured workflow engine using conditional processing and tool calling.
- Workflows can be defined in YAML for better readability.
- Python tools, REST server endpoints (supports basic auth) and MCP support.

## Install

```
pip install kavalai
```

## License

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

## Documentation

For full documentation, please visit [Kaval.AI Documentation](https://docs.kaval.ai/).
