Package: chatbees-python-client
chatbees-python-clientPython client forChatBees, a Serverless Platform for your LLM Apps. ChatBees provides simple and scalable APIs, enabling you to craft a LLM app for your knowledge base in mere minutes.ChatBees is currently inpublic 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 thisfeedback formto help us understand your use-case better.Signup with your google account onhttps://www.chatbees.ai. You could also try it out in ChatBees public account without signup.For the public account, 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.QuickstartYou can try out ChatBees in just a few lines of code. You can 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 indexingthe original transformer paperinto that collection.importchatbeesascdb# If you signup with your google account, you will create an API key on UI and skip this step.# Create an API key in the public account.# my_api_key = cdb.create_api_key()# Configure cdb to use the newly minted API key.cdb.init(api_key=my_api_key,account_id=your_account_id)# If you use the public account, not need to configure the account_id.# cdb.init(api_key=my_api_key)# Create a new collectionllm_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 paperllm_research.ask("what is a transformer?")InstallationInstall a released ChatBees python client from pip.python3 version>= 3.10is requiredpip3installchatbees-python-clientCreating an API keyYou 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.importchatbeesascdb# If you signup with your google account, you will create an API key on UI and skip this step.# Create an API key in the public account.# 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 callscdb.init(api_key=my_api_key,account_id=your_account_id)# If you use the public account, not need to configure the account_id.# cdb.init(api_key=my_api_key)In the following examples, we will assume you have signup with your google account.Creating a CollectionYou can create a collection that is only accessible with a specific API key.importchatbeesascdbcdb.init(api_key=my_api_key,account_id=your_account_id)# Create a collection called llm_researchcollection=cdb.Collection(name='llm_research')cdb.create_collection(collection)Listing collectionYou 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.importchatbeesascdbcdb.init(api_key=my_api_key,account_id=your_account_id)collections=cdb.list_collections()Uploading a documentYou can upload a local file or a file from a web URL and index it into a
collection.Supported file format.pdfPDF files.csvCSV files.txtPlain-text files.mdMarkdown files.docxMicrosoft word documentsimportchatbeesascdbcdb.init(api_key=my_api_key,account_id=your_account_id)# llm_research collection was created in the previous stepcollection=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 websiteYou can pass the website root url. ChatBees will automatically crawl it.importchatbeesascdbcdb.init(api_key=my_api_key,account_id=your_account_id)# Create the crawl taskcollection=cdb.Collection(name='example-web')cdb.create_collection(collection)root_url='https://www.example.com'crawl_id=collection.create_crawl(root_url)# Query the crawl statusresp=collection.get_crawl(crawl_id)# If re-crawl the same root_url, delete the old indexed crawl resultscollection.delete_crawl(root_url)# check resp.crawl_status becomes CrawlStatus.SUCCEEDED, and index the pagescollection.index_crawl(crawl_id)Asking a questionYou 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 accessopenai-web: Contains contents ofwww.openai.comimportchatbeesascdbcdb.init(api_key=my_api_key,account_id=your_account_id)# 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 collectionYou can delete a collection using the same API key that was used to create it.importchatbeesascdbcdb.init(api_key=my_api_key,account_id=your_account_id)cdb.delete_collection('llm_research')