Skip to content

Start Here

CassIO is designed to power several LLM frameworks. In the following quickstart, you will see it in action within one such framework, LangChain. You will run a short question-answering (QA) example, whereby an input corpus of text is first inserted into a Vector Search database index and then, for a given "user question", queried to retrieve the relevant subdocuments and construct an answer to the question.

The quickstart is designed to run out-of-the-box as a notebook in Google Colaboratory ("Colab" for short) and to use Astra DB as the Vector Database -- this choice works fully in the cloud, with nothing to install on your machine.

Other ways to run the examples

This quickstart assumes you'll use an Astra DB cloud database from Google Colab.

If you prefer, however, you can run the very same examples using Jupyter on your machine instead of Colab: only the setup is a bit different. Check the "Further Reading" section for details.

The "nothing to install" approach would be to use a cloud database on DataStax Astra DB. Should you prefer to run a local Cassandra cluster, consult the "Further Reading" section for setup instructions.

We'll come to the code in a moment; first, let's check the pre-requisites needed to run the examples.

Database

Apache Cassandra®

Please follow the specific instructions on how to get Cassandra 5 running if this is your preferred route.

Astra DB

Alternatively, you can use an Astra DB cloud instance, ready in minutes without leaving the browser.

What is Astra DB?

Astra DB is a serverless DBaaS by DataStax, built on Apache Cassandra. It offers a free tier with generous traffic and storage limits. Using Astra DB frees you from the hassle of running your own cluster while retaining all the advantages, such as the excellent data distribution and very high availability that make Cassandra a world-class NoSQL database.

Go to astra.datastax.com register, and look for "Create Database". Ensure you pick the "vector" option when creating the DB.

Depending on your Astra preferences, you may be asked to provide a name for a "Keyspace" in the database (essentially a way to group tables). Correspondingly, here, when asked please provide the keyspace name (we'll assume you used cassio_tutorials), or leave it empty.

In a couple of minutes your database will be in the "Active" state, as shown in the DB Quickstart page (more info).

Now you need two connection parameters:

  • the Database ID, such as 01234567-89ab-cdef-0123-456789abcdef;
  • the (Database Administrator) Token, such as AstraCS:aZ90....

These can be located/generated on the Astra dashboard (more info here and here respectively).

Locate the Database ID

There is one choice of UI for the Astra dashboard that exposes the "API Endpoint" connection parameter instead of the database ID itself.

In that case, you can read the database ID from the endpoint by looking at the first part of its domain name, the one before the region name: for instance if your API endpoint is "https://01234567-89ab-cdef-0123-456789abcdef-us-east1.apps.astra.datastax.com", the database ID to use here will be 01234567-89ab-cdef-0123-456789abcdef.

LLM Access

In order to run the quickstart, you should have access to an LLM. You will be asked to provide the appropriate access secrets in order to run the full code example: make sure you have them ready.

The notebooks currently support the following providers for LLMs:

  • OpenAI. In this case you will be asked for a valid API Key.
  • GCP Vertex AI. In this case you need a JSON API for a Service Account whose permissions include the Vertex AI API.
  • Azure OpenAI. In this case you will need several parameters: the base URL to your Azure OpenAI resource, the API version string, an API Key, and the deployment and model name for both the LLM and the embedding models.

See the inserts below for more information on each provider.

OpenAI

Log in with OpenAI (creating an account if you haven't yet).

By visiting the API Keys page in your user account, you will be able to generate an API Key. Make sure to copy it and store it in a safe place.

OpenAI API Keys page

GCP Vertex AI

In order to use Google's Vertex AI service, you need an account with access to that service.

Once you log in, go to the API Credentials Console, make sure the right project is selected, and click "Create Credentials".

GCP Vertex AI Credentials Console

Choose to generate a "Service account" and fill the wizard, then hit "Done".

GCP Vertex AI, Creating Service Account

The new service account will be visible in the "Credentials" list. Click the "edit" symbol next to it, then go to the "Keys" tab for this account.

GCP Vertex AI, Edit Service Account

There will be no keys yet: click "Add Key" to create a new one and make it of "JSON" type. You will be prompted to save the JSON key file. Save it on your computer in a safe place, as it will not be made available again.

GCP Vertex AI, Create JSON Key

That's it: the full path to the JSON key is the required secret for Vertex AI.

Azure OpenAI

To use LLMs and embedding services from Azure OpenAI, you first need to create a "Resource" in OpenAI Studio and deploy the desired models in it. Next, you retrieve the secrets and connection parameters needed for programmatic API access.

First you need an Azure account allowed to access the Azure OpenAI service.

Log in to the Azure Portal and choose the "Azure OpenAI" service in the dashboard.

Azure OpenAI Service

You will see a list of "Resources" (initially empty). Click "Create" and fill the "Create Azure OpenAI" wizard. (You may need to create a "Resource Group" if you don't have one already.)

Azure OpenAI, Create a Resource

Confirm the process by clicking "Create" at the end of the wizard.

Azure OpenAI, Resource Creation Wizard

After a few minutes with "Deployment in progress...", you will see "Your deployment is complete". You can click "Go to resource".

Azure OpenAI, Go to Resource

Now, you can "Deploy" a model in your newly-created resource.

Azure OpenAI, Deploy a Model

The current deployment list is empty: click "Create new deployment" and pick the model you want. Notice that to have both an LLM and an embedding model you have to do two separate deployments. Take note of the exact deployment name (which you freely choose) and of the model name (chosen from a list), as these will be needed among the connection parameters.

Your models should now be available. To retrieve the connection parameters, start from the Azure OpenAI Studio and click on the "Playground/Chat" item in the left navigation bar.

Locate the "View code" button at the top of the "Chat session" panel and click on it.

Azure OpenAI, Chat Playground

A dialog will be shown (make sure that Python code is the selected option), where you will find the remaining connection parameters: the API Version, the "API Base" (an URL to your resource), and the API Key (shown as masked copyable text box).

Azure OpenAI, View-Code Dialog

This is it: keep the connection parameters you just collected, as you will have to supply them to run the examples.

Run the quickstart

Once you have the DB ID and Token as outlined above, plus the LLM secret(s), click on the Colab Notebook link below to start using your Vector Search Database in the LangChain QA example:

What now?

Now you have first-hand experience on how easily you can power up your application with Vector Search capabilities.

Check out other use cases which benefit from Vector Search, and other ways to enrich your application with LangChain and Cassandra, by browsing the LangChain section of the site.

Or take a look at the various ways to use CassIO besides LangChain -- check out the LlamaIndex section or the one about direct Usage of the library.

If you are looking for something more specific, check out the CassIO Reference.

Do you want to run the examples on your own machine? Check the support for local Jupyter usage.

Tip: Look for the Colab symbol at the top of most code examples.