Metadata-Version: 2.1
Name: bondai
Version: 0.3.0b3
Summary: An AI-powered console assistant with a versatile API for seamless integration into applications.
Home-page: https://bondai.dev
Author: Kevin Rohling
Author-email: kevin@kevinrohling.com
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.10
Classifier: License :: OSI Approved :: MIT License
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiofiles==23.2.1
Requires-Dist: aiohttp==3.8.5
Requires-Dist: aiosignal==1.3.1
Requires-Dist: alpaca-py==0.10.0
Requires-Dist: aniso8601==9.0.1
Requires-Dist: annotated-types==0.5.0
Requires-Dist: anyio==3.7.1
Requires-Dist: appdirs==1.4.4
Requires-Dist: async-timeout==4.0.3
Requires-Dist: asyncio==3.4.3
Requires-Dist: attrs==23.1.0
Requires-Dist: beautifulsoup4==4.12.2
Requires-Dist: bidict==0.22.1
Requires-Dist: blinker==1.6.2
Requires-Dist: Brotli==1.1.0
Requires-Dist: bs4==0.0.1
Requires-Dist: cachetools==5.3.1
Requires-Dist: certifi==2023.7.22
Requires-Dist: charset-normalizer==3.2.0
Requires-Dist: click==8.1.7
Requires-Dist: cssselect==1.2.0
Requires-Dist: distro==1.8.0
Requires-Dist: duckduckgo-search==3.9.8
Requires-Dist: faiss-cpu==1.7.4
Requires-Dist: fake-useragent==1.2.1
Requires-Dist: Flask==2.3.3
Requires-Dist: Flask-Cors==4.0.0
Requires-Dist: Flask-RESTful==0.3.10
Requires-Dist: Flask-SocketIO==5.3.6
Requires-Dist: frozenlist==1.4.0
Requires-Dist: google-api-core==2.11.1
Requires-Dist: google-api-python-client==2.97.0
Requires-Dist: google-auth==2.22.0
Requires-Dist: google-auth-httplib2==0.1.0
Requires-Dist: googleapis-common-protos==1.60.0
Requires-Dist: h11==0.14.0
Requires-Dist: h2==3.2.0
Requires-Dist: hpack==3.0.0
Requires-Dist: httpcore==1.0.2
Requires-Dist: httplib2==0.22.0
Requires-Dist: httpx==0.25.1
Requires-Dist: hyperframe==5.2.0
Requires-Dist: idna==3.4
Requires-Dist: importlib-metadata==6.8.0
Requires-Dist: itsdangerous==2.1.2
Requires-Dist: Jinja2==3.1.2
Requires-Dist: joblib==1.3.2
Requires-Dist: lxml==4.9.3
Requires-Dist: MarkupSafe==2.1.3
Requires-Dist: msgpack==1.0.5
Requires-Dist: multidict==6.0.4
Requires-Dist: nltk==3.8.1
Requires-Dist: numpy==1.25.2
Requires-Dist: openai==1.3.3
Requires-Dist: packaging==23.2
Requires-Dist: pandas==2.0.3
Requires-Dist: parse==1.19.1
Requires-Dist: protobuf==4.24.1
Requires-Dist: psycopg2-binary==2.9.7
Requires-Dist: pyasn1==0.5.0
Requires-Dist: pyasn1-modules==0.3.0
Requires-Dist: pydantic==1.10.12
Requires-Dist: pydantic_core==2.6.1
Requires-Dist: pyee==8.2.2
Requires-Dist: pyparsing==3.1.1
Requires-Dist: PyPDF2==3.0.1
Requires-Dist: pyppeteer==1.0.2
Requires-Dist: pyquery==2.0.0
Requires-Dist: python-dateutil==2.8.2
Requires-Dist: python-docx==1.1.0
Requires-Dist: python-engineio==4.7.1
Requires-Dist: python-socketio==5.9.0
Requires-Dist: pytz==2023.3
Requires-Dist: regex==2023.8.8
Requires-Dist: requests==2.31.0
Requires-Dist: requests-html==0.10.0
Requires-Dist: rfc3986==1.5.0
Requires-Dist: rsa==4.9
Requires-Dist: simple-websocket==0.10.1
Requires-Dist: six==1.16.0
Requires-Dist: sniffio==1.3.0
Requires-Dist: socksio==1.0.0
Requires-Dist: soupsieve==2.4.1
Requires-Dist: sseclient-py==1.7.2
Requires-Dist: termcolor==2.3.0
Requires-Dist: tiktoken==0.4.0
Requires-Dist: tqdm==4.66.1
Requires-Dist: typing_extensions==4.7.1
Requires-Dist: tzdata==2023.3
Requires-Dist: uritemplate==4.1.1
Requires-Dist: urllib3==1.26.17
Requires-Dist: w3lib==2.1.2
Requires-Dist: websocket-client==1.6.3
Requires-Dist: websockets==10.4
Requires-Dist: Werkzeug==2.3.7
Requires-Dist: wsproto==1.2.0
Requires-Dist: yarl==1.9.2
Requires-Dist: zipp==3.16.2

<a href="https://bondai.dev">
<p align="center">
<img src="assets/bondai-logo.png" alt="Description or Alt text" style="border-radius: 10px; width: 50%;"  alt="logo">
</p>
</a>

<p align="center">
    <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
    <a href="https://pypi.org/project/bondai/"><img src="https://img.shields.io/pypi/v/bondai" alt="PyPI"></a>
    <a href="https://hub.docker.com/r/krohling/bondai"><img src="https://img.shields.io/docker/v/krohling/bondai?logo=docker" alt="Docker"></a>
</p>
<p align="center"><em>Meet BondAI, an open source, AI-powered assistant with a lightweight, versatile API for seamless integration into your own applications.</em></p>

# <a href="https://bondai.dev">BondAI Homepage</a>

Checkout the BondAI Homepage ([https://bondai.dev](https://bondai.dev)) for in depth documentation, examples and API specification.

# Getting Started

There are 3 ways to use BondAI:

1) 🛠️ **Command Line Interface (CLI)** - This is the easiest way to get up and running fast. Run BondAI on your command line with a pre-configured set of tools.

2) 🐋 **Docker** - Running BondAI in a Docker container is recommended if you plan on using tools that run code or directly access your shell.

3) 🏗️ **Start Coding with BondAI** - Integrate BondAI into your own codebase and start building your own agents.

## 🚀 Installation

Installing BondAI is easy:

```bash
pip install bondai
```

## 🛠️ Command Line Interface (CLI)

Once you've installed BondAI using `pip install bondai` the CLI will be available as an executable accessible simply by running `bondai` in your shell. [Learn more about all of the tools and options available through the CLI](https://bondai.dev/docs/cli).

Before running `bondai` you will need to set the OPENAI_API_KEY environment variable.
```bash
export OPENAI_API_KEY=sk-XXXXXXXXXX
```

Once the environment variable has been set you can run `bondai` to start the CLI.

```bash
% bondai                   
Loading BondAI...
Skipping Gmail tools because gmail-token.pickle file is not present.

Hello! How can I assist you today?
```


## 🐋 Docker

BondAI Docker images are available on [DockerHub here](https://hub.docker.com/r/krohling/bondai). If you intend to use tools that run arbitrary code (*PythonREPLTool*) or access your shell (*ShellTool*) it is highly recommended that you run BondAI in a Docker container as these tools can damage your machine.

Before running the BondAI Docker container it is recommended that you create a directory named 'agent-volume' and mount it as a volume on the container. This will be used as the Agent's working directory and allows you to easily share files with the Agent.

```bash
mkdir agent-volume
docker pull krohling/bondai:latest
docker run -it --rm \
           -v ./agent-volume:/agent-volume \
           -w /agent-volume \
           OPENAI_API_KEY=sk-XXXXXXXXXX \
           bondai:latest bondai
```

## 🔥 Start Coding with BondAI

BondAI has a straightforward API for creating powerful AI Agents. Check out our [examples](https://bondai.dev/docs/category/examples) for ideas on how to get started.  Remember to set your *OPENAI_API_KEY* environment variable before running your BondAI Agent.

```python
from bondai import Agent
from bondai.tools.search import DuckDuckGoSearchTool
from bondai.tools.website import WebsiteQueryTool
from bondai.tools.file import FileWriteTool

task = """I want you to research the usage of Metformin as a drug to treat aging and aging related illness. 
You should only use reputable information sources, ideally peer reviewed scientific studies. 
I want you to summarize your findings in a document named metformin.md and includes links to reference and resources you used to find the information. 
Additionally, the last section of your document you should provide a recommendation for a 43 year old male, in good health and who regularly exercises as to whether he would benefit from taking Metformin. 
You should explain your recommendation and justify it with sources. 
Finally, you should highlight potential risks and tradeoffs from taking the medication."""

Agent(tools=[
  DuckDuckGoSearchTool(),
  WebsiteQueryTool(),
  FileWriteTool()
]).run(task)
```

## BondAI Integrations

BondAI comes out of the box with a powerful set of integrations.

|     |  |  |
| -------- | ------- |------- |
| <img src="assets/logos/openai-logo.png" alt="openai logo" width="50"/> | **OpenAI**     | BondAI supports any combination of OpenAI models and services including GPT-4, GPT-3.5, Dalle-E 3, and Embeddings.  |
| <img src="assets/logos/azure-logo.png" alt="azure logo" width="50"/> | **Microsoft Azure**     | BondAI fully supports connectivity to GPT-N, Dalle-E and Embedding APIs through [Microsoft's Azure OpenAI services](https://azure.microsoft.com/en-us/products/ai-services/openai-service).  |
| <img src="assets/logos/google-logo.png" alt="google logo" width="50"/>  | **Google Search**    | Allows BondAI to search the internet. [Requires a Google Search API Key and CSE ID](https://developers.google.com/custom-search/v1/introduction) |
| <img src="assets/logos/duckduckgo-logo.png" alt="duckduckgo logo" width="50"/> | **DuckDuckGo**     | Allows BondAI to search the internet. No API keys required. |
| <img src="assets/logos/alpaca-markets-logo.jpeg" alt="alpaca markets logo" width="50"/> | **Alpaca Markets**     | Allows BondAI to buy and sell stocks and crypto. [Requires an Alpaca Markets account.](https://alpaca.markets/)  |
| <img src="assets/logos/postgres-logo.jpeg" alt="postgres logo" width="75"/>    | **PostgreSQL**    | BondAI can automatically extract the schema from a Postgres DB and process natural language queries. |
| <img src="assets/logos/blandai-logo.jpeg" alt="bland.ai logo" width="50"/> | **Bland AI**     | Allows BondAI to make phone calls and process/retrieve call transcripts. [Requires a Bland.ai account.](https://www.bland.ai/)  |
| <img src="assets/logos/gmail-logo.png" alt="gmail logo" width="50"/> | **Gmail**     | Allows BondAI to search and read emails.  |
| <img src="assets/logos/langchain-logo.jpeg" alt="langchain logo" width="50"/> | **LangChain**     | Use BondAI's LangChainTool class to import any tool from LangChain into BondAI.  |
