Metadata-Version: 2.1
Name: ai-parrot
Version: 0.2.2
Summary: Live Chatbots based on Langchain chatbots and Agents     Integrated into Navigator Framework or used into aiohttp applications.
Home-page: https://github.com/phenobarbital/ai-parrot
Author: Jesus Lara
Author-email: jesuslara@phenobarbital.info
License: MIT
Project-URL: Source, https://github.com/phenobarbital/ai-parrot
Project-URL: Tracker, https://github.com/phenobarbital/ai-parrot/issues
Project-URL: Documentation, https://github.com/phenobarbital/ai-parrot/
Project-URL: Funding, https://paypal.me/phenobarbital
Project-URL: Say Thanks!, https://saythanks.io/to/phenobarbital
Keywords: asyncio,asyncpg,aioredis,aiomcache,langchain,chatbot,agents
Platform: POSIX
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: POSIX :: Linux
Classifier: Environment :: Web Environment
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Framework :: AsyncIO
Requires-Python: >=3.10.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Cython ==3.0.9
Requires-Dist: pymupdf ==1.24.4
Requires-Dist: pymupdf4llm ==0.0.1
Requires-Dist: pdf4llm ==0.0.6
Requires-Dist: PyPDF2 ==3.0.1
Requires-Dist: pdfminer.six ==20231228
Requires-Dist: pdfplumber ==0.11.0
Requires-Dist: bitsandbytes ==0.43.0
Requires-Dist: Cartopy ==0.22.0
Requires-Dist: chromadb ==0.4.24
Requires-Dist: contourpy ==1.2.0
Requires-Dist: datasets ==2.18.0
Requires-Dist: faiss-cpu ==1.8.0
Requires-Dist: fastavro ==1.9.4
Requires-Dist: GitPython ==3.1.42
Requires-Dist: gunicorn ==21.2.0
Requires-Dist: jq ==1.7.0
Requires-Dist: rank-bm25 ==0.2.2
Requires-Dist: matplotlib ==3.8.3
Requires-Dist: numba ==0.59.0
Requires-Dist: opentelemetry-sdk ==1.24.0
Requires-Dist: rapidocr-onnxruntime ==1.3.15
Requires-Dist: pytesseract ==0.3.10
Requires-Dist: python-docx ==1.1.0
Requires-Dist: python-pptx ==0.6.23
Requires-Dist: docx2txt ==0.8
Requires-Dist: pytube ==15.0.0
Requires-Dist: pydub ==0.25.1
Requires-Dist: markdownify ==0.12.1
Requires-Dist: librosa ==0.10.1
Requires-Dist: yt-dlp ==2024.4.9
Requires-Dist: moviepy ==1.0.3
Requires-Dist: safetensors ==0.4.2
Requires-Dist: sentence-transformers ==2.6.1
Requires-Dist: tabulate ==0.9.0
Requires-Dist: tiktoken ==0.6.0
Requires-Dist: tokenizers ==0.19.1
Requires-Dist: unstructured ==0.14.3
Requires-Dist: unstructured-client ==0.18.0
Requires-Dist: uvloop ==0.19.0
Requires-Dist: XlsxWriter ==3.2.0
Requires-Dist: youtube-transcript-api ==0.6.2
Requires-Dist: selenium ==4.18.1
Requires-Dist: webdriver-manager ==4.0.1
Requires-Dist: transitions ==0.9.0
Requires-Dist: sentencepiece ==0.2.0
Requires-Dist: duckduckgo-search ==5.3.0
Requires-Dist: google-search-results ==2.4.2
Requires-Dist: google-api-python-client >=2.86.0
Requires-Dist: gdown ==5.1.0
Requires-Dist: weasyprint ==61.2
Requires-Dist: markdown2 ==2.4.13
Requires-Dist: xformers ==0.0.25.post1
Requires-Dist: fastembed ==0.3.4
Requires-Dist: mammoth ==1.7.1
Requires-Dist: accelerate ==0.29.3
Requires-Dist: langchain >=0.2.6
Requires-Dist: langchain-community >=0.2.6
Requires-Dist: langchain-core ==0.2.10
Requires-Dist: langchain-experimental ==0.0.62
Requires-Dist: langchainhub ==0.1.15
Requires-Dist: langchain-text-splitters ==0.2.2
Requires-Dist: huggingface-hub ==0.23.5
Requires-Dist: llama-index ==0.10.20
Requires-Dist: llama-cpp-python ==0.2.56
Requires-Dist: asyncdb[all] >=2.7.10
Requires-Dist: querysource[analytics] >=3.10.1
Requires-Dist: yfinance ==0.2.40
Requires-Dist: youtube-search ==2.1.2
Requires-Dist: wikipedia ==1.4.0
Requires-Dist: mediawikiapi ==1.2
Requires-Dist: wikibase-rest-api-client ==0.2.0
Requires-Dist: asknews ==0.7.30
Requires-Dist: pyowm ==3.3.0
Requires-Dist: O365 ==2.0.35
Requires-Dist: langchain-huggingface ==0.0.3
Provides-Extra: analytics
Requires-Dist: annoy ==1.17.3 ; extra == 'analytics'
Requires-Dist: gradio-tools ==0.0.9 ; extra == 'analytics'
Requires-Dist: gradio-client ==0.2.9 ; extra == 'analytics'
Requires-Dist: streamlit ==1.37.1 ; extra == 'analytics'
Requires-Dist: simsimd ==4.3.1 ; extra == 'analytics'
Provides-Extra: anthropic
Requires-Dist: langchain-anthropic ==0.1.11 ; extra == 'anthropic'
Requires-Dist: anthropic ==0.25.2 ; extra == 'anthropic'
Provides-Extra: crew
Requires-Dist: colbert-ai ==0.2.19 ; extra == 'crew'
Requires-Dist: vanna ==0.3.4 ; extra == 'crew'
Requires-Dist: crewai[tools] ==0.28.8 ; extra == 'crew'
Provides-Extra: google
Requires-Dist: langchain-google-vertexai ==1.0.4 ; extra == 'google'
Requires-Dist: langchain-google-genai ==1.0.4 ; extra == 'google'
Requires-Dist: google-generativeai ==0.5.4 ; extra == 'google'
Requires-Dist: vertexai ==1.49.0 ; extra == 'google'
Requires-Dist: google-cloud-aiplatform ==1.49.0 ; extra == 'google'
Requires-Dist: grpc-google-iam-v1 ==0.13.0 ; extra == 'google'
Provides-Extra: groq
Requires-Dist: groq ==0.6.0 ; extra == 'groq'
Requires-Dist: langchain-groq ==0.1.4 ; extra == 'groq'
Provides-Extra: hunggingfaces
Requires-Dist: llama-index-llms-huggingface ==0.1.4 ; extra == 'hunggingfaces'
Provides-Extra: milvus
Requires-Dist: langchain-milvus ==0.1.1 ; extra == 'milvus'
Requires-Dist: milvus ==2.3.5 ; extra == 'milvus'
Requires-Dist: pymilvus ==2.4.4 ; extra == 'milvus'
Provides-Extra: openai
Requires-Dist: langchain-openai ==0.1.21 ; extra == 'openai'
Requires-Dist: openai ==1.40.3 ; extra == 'openai'
Requires-Dist: llama-index-llms-openai ==0.1.11 ; extra == 'openai'
Requires-Dist: tiktoken ==0.7.0 ; extra == 'openai'
Provides-Extra: qdrant
Requires-Dist: qdrant-client ==1.8.0 ; extra == 'qdrant'

# AI Parrot: Python package for creating Chatbots
This is an open-source Python package for creating Chatbots based on Langchain and Navigator.
This README provides instructions for installation, development, testing, and releasing Parrot.

## Installation

**Creating a virtual environment:**

This is recommended for development and isolation from system-wide libraries.
Run the following command in your terminal:

Debian-based systems installation:
   ```
   sudo apt install gcc python3.11-venv python3.11-full python3.11-dev libmemcached-dev zlib1g-dev build-essential libffi-dev unixodbc unixodbc-dev libsqliteodbc libev4 libev-dev
   ```

   For Qdrant installation:
   ```
   docker pull qdrant/qdrant
   docker run -d -p 6333:6333 -p 6334:6334 --name qdrant -v $(pwd)/qdrant_storage:/qdrant/storage:z qdrant/qdrant
   ```

For VertexAI, creates a folder on "env" called "google" and copy the JSON credentials file into it.

   ```bash
   make venv
   ```

   This will create a virtual environment named `.venv`. To activate it, run:

   ```bash
   source .venv/bin/activate  # Linux/macOS
   ```

   Once activated, install Parrot within the virtual environment:

   ```bash
   make install
   ```
   The output will remind you to activate the virtual environment before development.

   **Optional** (for developers):
   ```bash
   pip install -e .
   ```

## Start http server
```bash
python run.py
```

## Development Setup

This section explains how to set up your development environment:

1. **Install development requirements:**

   ```bash
   make setup
   ```

   This installs development dependencies like linters and test runners mentioned in the `docs/requirements-dev.txt` file.

2. **Install Parrot in editable mode:**

   This allows you to make changes to the code and test them without reinstalling:

   ```bash
   make dev
   ```

   This uses `flit` to install Parrot in editable mode.


### Usage (Replace with actual usage instructions)

*Once you have set up your development environment, you can start using Parrot.*

#### Test with Code ChatBOT
* Set environment variables for:
 [google]
   GOOGLE_API_KEY=apikey
   GOOGLE_CREDENTIALS_FILE=.../credentials.json
   VERTEX_PROJECT_ID=vertex-project
   VERTEX_REGION=region

* Run the chatbot:
    ```bash
    python examples/test_agent.py
    ```

### Testing

To run the test suite:

```bash
make test
```

This will run tests using `coverage` to report on code coverage.


### Code Formatting

To format the code with black:

```bash
make format
```


### Linting

To lint the code for style and potential errors:

```bash
make lint
```

This uses `pylint` and `black` to check for issues.


### Releasing a New Version

This section outlines the steps for releasing a new version of Parrot:

1. **Ensure everything is clean and tested:**

   ```bash
   make release
   ```

   This runs `lint`, `test`, and `clean` tasks before proceeding.

2. **Publish the package:**

   ```bash
   make release
   ```

   This uses `flit` to publish the package to a repository like PyPI. You'll need to have publishing credentials configured for `flit`.


### Cleaning Up

To remove the virtual environment:

```bash
make distclean
```


### Contributing

We welcome contributions to Parrot! Please refer to the CONTRIBUTING.md file for guidelines on how to contribute.
