Metadata-Version: 2.1
Name: wizz
Version: 0.2.2
Summary: A terminal-based LLM chat client with knowledge retrieval.
Home-page: https://github.com/ryzhakar/wizz
License: MIT
Keywords: chat-client,local-LLMs,terminal,query-response,AI,natural-language-processing
Author: Arthur Ryzhak
Author-email: ryzhakar@gmail.com
Requires-Python: >=3.11,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Communications :: Chat
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: aiorwlock (>=1.4.0,<2.0.0)
Requires-Dist: aiosqlite (>=0.20.0,<0.21.0)
Requires-Dist: alembic (>=1.13.1,<2.0.0)
Requires-Dist: annoy (>=1.17.3,<2.0.0)
Requires-Dist: async-annoy (>=0.3.0)
Requires-Dist: greenlet (>=3.0.3,<4.0.0)
Requires-Dist: numpy (>=1.26.4,<2.0.0)
Requires-Dist: openai (>=1.14.2,<2.0.0)
Requires-Dist: protobuf (>=5.26.0,<6.0.0)
Requires-Dist: pydantic (>=2.6.4,<3.0.0)
Requires-Dist: pyyaml (>=6.0.1,<7.0.0)
Requires-Dist: sentence-transformers (>=2.5.1,<3.0.0)
Requires-Dist: sentencepiece (>=0.2.0,<0.3.0)
Requires-Dist: sqlalchemy (>=2,<3)
Requires-Dist: sqlalchemy2-stubs (>=0,<1)
Requires-Dist: tiktoken (>=0.6.0,<0.7.0)
Requires-Dist: typer[all] (>=0.9.0,<0.10.0)
Requires-Dist: types-pyyaml (>=6.0.12.20240311,<7.0.0.0)
Project-URL: Repository, https://github.com/ryzhakar/wizz
Description-Content-Type: text/markdown

# Wizz: AI-Enhanced Document Tool

Wizz is a proof-of-concept tool that helps you work with large collections of documents using AI. It can understand your documents and answer questions about them.

## What Wizz Does

1. Stores your documents and organizes them
2. Finds connections between different parts of your documents
3. Lets you search through your documents quickly
4. Uses AI to answer questions about your documents

## How to Use Wizz

1. Install it:
   ```
   pip install wizz
   ```

2. Set up AI access (you'll need an OpenAI account):
   ```
   echo "OPENAI_API_KEY=your_api_key_here" > .env
   ```

3. Use Wizz:
   ```
   wizz knowledge load --context-name "my_docs" --load-path "/path/to/your/documents"
   wizz knowledge index --context-name "my_docs"
   wizz knowledge interact --context-name "my_docs"
   ```

## Main Commands

- `load`: Add your documents to Wizz
- `index`: Prepare your documents for searching and find connections
- `search`: Look for information in your documents
- `interact`: Ask questions about your documents and get AI-powered answers
- `delete`: Remove a set of documents from Wizz

For more details, type:
```
wizz knowledge --help
```

## What You Need

- Python 3.11 or newer
- An OpenAI API key

## Technical Notes

While Wizz currently works as a standalone tool, its core features are designed with future web integration in mind.
The code uses async programming, preparing it for potential use with ASGI web servers in the future.
I developed a custom async wrapper library called `async-annoy` for the vector search tool 'annoy' (by Spotify). You can find it [here](https://github.com/ryzhakar/async-annoy).

## Important Note

Wizz is an experimental proof-of-concept and learning tool. It's not ready for real-world use. Using it with OpenAI's API may incur costs.

