Code

cookbook/knowledge/vector_db/cassandra_db/async_cassandra_db.py
import asyncio

from agno.agent import Agent
from agno.knowledge.embedder.mistral import MistralEmbedder
from agno.knowledge.knowledge import Knowledge
from agno.models.mistral import MistralChat
from agno.vectordb.cassandra import Cassandra

try:
    from cassandra.cluster import Cluster  # type: ignore
except (ImportError, ModuleNotFoundError):
    raise ImportError(
        "Could not import cassandra-driver python package.Please install it with pip install cassandra-driver."
    )

cluster = Cluster()

session = cluster.connect()
session.execute(
    """
    CREATE KEYSPACE IF NOT EXISTS testkeyspace
    WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }
    """
)

knowledge = Knowledge(
    vector_db=Cassandra(
        table_name="recipes",
        keyspace="testkeyspace",
        session=session,
        embedder=MistralEmbedder(),
    ),
)

agent = Agent(
    model=MistralChat(),
    knowledge=knowledge,
)

if __name__ == "__main__":
    asyncio.run(
        knowledge.add_content(url="https://docs.agno.com/introduction/agents.md")
    )

    asyncio.run(
        agent.aprint_response(
            "What is the purpose of an Agno Agent?",
            markdown=True,
        )
    )

Usage

1

Create a virtual environment

Open the Terminal and create a python virtual environment.
python3 -m venv .venv
source .venv/bin/activate
2

Install libraries

pip install -U cassandra-driver pypdf mistralai agno
3

Run Cassandra

docker run -d \
--name cassandra-db \
-p 9042:9042 \
cassandra:latest
4

Set environment variables

export CASSANDRA_HOST="localhost"
export CASSANDRA_PORT="9042"
export CASSANDRA_USER="cassandra"
export CASSANDRA_PASSWORD="cassandra"
export MISTRAL_API_KEY="your-mistral-api-key"
5

Run Agent

python cookbook/knowledge/vector_db/cassandra_db/async_cassandra_db.py