Metadata-Version: 2.5
Name: viora-ai
Version: 0.2.0
Summary: viora: an AI assistant for websites and apps that answers customers by chat and voice, in English and Swahili, from your own information. By INCPRITECH.
Project-URL: Homepage, https://viora.depriver-tech.workers.dev
Project-URL: Documentation, https://viora.depriver-tech.workers.dev/docs
Project-URL: Source, https://github.com/Stark-Priver/viora
Author-email: INCPRITECH <hello@incpritech.com>
License-Expression: MIT
License-File: LICENSE
Keywords: ai,assistant,chatbot,cloudflare,rag,swahili,widget
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Requires-Dist: beautifulsoup4>=4.12
Requires-Dist: fastapi>=0.110
Requires-Dist: httpx>=0.27
Requires-Dist: numpy>=1.26
Requires-Dist: pydantic>=2.6
Requires-Dist: pyyaml>=6.0
Requires-Dist: typer>=0.12
Requires-Dist: uvicorn>=0.29
Requires-Dist: websockets>=12
Provides-Extra: all
Requires-Dist: anthropic>=0.60; extra == 'all'
Requires-Dist: pypdf>=4.0; extra == 'all'
Requires-Dist: sounddevice>=0.4; extra == 'all'
Provides-Extra: anthropic
Requires-Dist: anthropic>=0.60; extra == 'anthropic'
Provides-Extra: audio
Requires-Dist: sounddevice>=0.4; extra == 'audio'
Provides-Extra: dev
Requires-Dist: anthropic>=0.60; extra == 'dev'
Requires-Dist: pypdf>=4.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Provides-Extra: pdf
Requires-Dist: pypdf>=4.0; extra == 'pdf'
Description-Content-Type: text/markdown

# viora

An AI assistant for websites and apps that answers customers by chat and voice, in English and Swahili. By [INCPRITECH](https://incpritech.com).

viora learns a business from a short profile and its website, then answers only from that information. When it doesn't know, it says so, offers WhatsApp, and lists the question for the owner.

```sh
pip install viora-ai
```

The package is `viora-ai` on PyPI; in Python you `import viora`, and the command is `viora`.

## Self-host

```sh
viora init --example     # writes viora.yaml (a sample school profile)
viora ingest             # reads the profile and website, builds the knowledge base
viora ask "Do you offer school transport?"
viora serve              # HTTP API, widget.js, sdk.js and live voice on :8000
```

Then add the widget to any page:

```html
<script src="https://your-server/widget.js" data-site="kilele-academy" async></script>
```

Configure providers in `.env`: Cloudflare Workers AI (default), OpenAI-compatible APIs, Ollama, Anthropic Claude, or offline (`VIORA_EMBEDDINGS=hash`, `VIORA_CHAT=extractive`).

## Use viora from Python software

```python
from viora.client import Client

bot = Client("https://viora-cloud.depriver-tech.workers.dev", "your-site")
for text in bot.stream("Ada ya bweni ni shilingi ngapi?"):
    print(text, end="", flush=True)
```

Real-time voice: `viora.live.LiveSession`, or `viora talk --site your-site` for a hands-free assistant in the terminal (`pip install "viora-ai[audio]"` on Windows and macOS).

Documentation: https://viora.depriver-tech.workers.dev/docs/

MIT licence.
