Skip to main content

Python client for ChatBees

Project description

chatbees-python-client

Python client for ChatBees, a Serverless Chat Platform for your knowledge base. ChatBees provides simple and scalable APIs, enabling you to craft a LLM app in mere minutes.

ChatBees is currently in public alpha. We're actively improving the product and releasing new features, and we'd love to hear your feedback! Please take a moment to fill out this feedback form to help us understand your use-case better.

By default, all collections are subject to permanent deletion after 2 weeks. Please let us know if you need to keep it for longer via the feedback form.

ChatBees python client provides very simple APIs for you to directly upload files and ask questions.

Quickstart

You can try out ChatBees in just a few lines of code. We have prepared a special public collection openai-web that can answer questions about the contents of www.openai.com

import chatbees as cdb

answer, _ = cdb.collection('openai-web').ask('what is red team?')
print(answer)
"""
Sample answer:

Red team refers to the group of external experts who work with OpenAI to
identify and evaluate potential risks and harmful capabilities in new systems.
The red team's role is to help develop taxonomies of risk and provide input
throughout the model and product development lifecycle.
"""

You can also create your own collections, upload files, then get answers specific to your data assets. The following example walks you through the process of creating a collection and indexing the original transformer paper into that collection.

import chatbees as cdb

# Create an API key
my_api_key = cdb.create_api_key()

# Configure cdb to use the newly minted API key
cdb.init(api_key=my_api_key)

# Create a new collection
llm_research = cdb.Collection(name="llm_research")
cdb.create_collection(llm_research)

# Index the original Transformer paper into this collection.
llm_research.upload_document("https://arxiv.org/pdf/1706.03762.pdf")

# Get answers from this paper
llm_research.ask("what is a transformer?")

Installation

Install a released ChatBees python client from pip.

python3 version >= 3.10 is required

pip3 install chatbees-python-client

Creating an API key

You need an API key to create, update, delete own collections. A collection can only be accessed by the API key that created it.

Account management and related functionalities will be released soon.

import chatbees as cdb

# Create a new API key
my_api_key = cdb.create_api_key()

# Please record this API key and keep it a secrete
#
# Collections created with this key can only be accessed
# through this key!
print(my_api_key)

# Use this API key in all subsequent calls
cdb.init(api_key=my_api_key)

Creating a Collection

See this page for a brief overview of ChatBees data model

You can create a collection that is only accessible with a specific API key.

import chatbees as cdb

cdb.init(api_key="<my_api_key>")

# Create a collection called llm_research
collection = cdb.Collection(name='llm_research')
cdb.create_collection(collection)

Listing collection

You can see list of collections you have access to. For example, this list will include all collections that were created using the currently configured API key.

import chatbees as cdb

cdb.init(api_key="<my_api_key>")

collections = cdb.list_collections()

Uploading a document

You can upload a local file or a file from a web URL and index it into a collection.

Supported file format

  • .pdf PDF files
  • .csv CSV files
  • .txt Plain-text files
  • .md Markdown files
  • .docx Microsoft word documents
import chatbees as cdb

cdb.init(api_key="<my_api_key>")

# llm_research collection was created in the previous step
collection = cdb.collection('llm_research')

# Local file and URLs are both supported.
# URL must contain the full scheme prefix (http:// or https://)
collection.upload_document('/path/to/file.pdf')
collection.upload_document('https://path/to/file.pdf')

Crawl a website

You can pass the website root url. ChatBees will automatically crawl it.

import chatbees as cdb

cdb.init(api_key="<my_api_key>")

# Create the crawl task
collection = cdb.Collection(name='example-web')
cdb.create_collection(collection)
crawl_id = collection.create_crawl('https://www.example.com')

# Query the crawl status
resp = collection.get_crawl(crawl_id)

# check resp.crawl_status becomes CrawlStatus.SUCCEEDED, and index the pages
collection.index_crawl(crawl_id)

Asking a question

You can ask questions within a collection. API key is required for private collections only. ask() method returns a plain-text answer to your question, as well as a list of most relevance references used to derive the answer.

Available public collections that do not require an API key to access

  • openai-web: Contains contents of www.openai.com
import chatbees as cdb

cdb.init(api_key="<my_api_key>")

# Get a plain text answer, as well as a list of references from the collection
# that are the most relevant to the question.
answer, refs = cdb.collection('openai-web').ask('what is red team?')

answer, refs = cdb.collection('llm_research').ask('what is a transformer?')

Deleting a collection

You can delete a collection using the same API key that was used to create it.

import chatbees as cdb

cdb.init(api_key="<my_api_key>")

cdb.delete_collection('llm_research')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chatbees_python_client-0.8.2.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

chatbees_python_client-0.8.2-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

Details for the file chatbees_python_client-0.8.2.tar.gz.

File metadata

File hashes

Hashes for chatbees_python_client-0.8.2.tar.gz
Algorithm Hash digest
SHA256 c09ed13616b0f33bbc4bb1578d0bc934ebe22db689608c01fbd58ee47462f1cd
MD5 28127c03b1b3bfdbe71a445af8419910
BLAKE2b-256 e879be5890c1a830069bd0ddf24712975f1ddf3f59983c8902dd5ada745ff58a

See more details on using hashes here.

File details

Details for the file chatbees_python_client-0.8.2-py3-none-any.whl.

File metadata

File hashes

Hashes for chatbees_python_client-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 866c60f2e3161d79f8c0bbbeed4fd5db6edcbb39e5b8fe3a585af3b386b620d2
MD5 f347b62f8ae06fb7201eca1e9a795ffe
BLAKE2b-256 df2180ffe9b19d08b4cc3fb2ad2bd80dcaf1f2c8582e185e635e677f439b1728

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page