Pinecone Canopy

Canopy is an open-source framework and context engine to build chat assistants at scale.

Qdrant is supported as a knowledge base within Canopy for context retrieval and augmented generation.

Usage

Install the SDK with the Qdrant extra as described in the Canopy README.

pip install canopy-sdk[qdrant]

Creating a knowledge base

from canopy.knowledge_base import QdrantKnowledgeBase

kb = QdrantKnowledgeBase(collection_name="<YOUR_COLLECTION_NAME>")

To create a new Qdrant collection and connect it to the knowledge base, use the create_canopy_collection method:

kb.create_canopy_collection()

You can always verify the connection to the collection with the verify_index_connection method:

kb.verify_index_connection()

Learn more about customizing the knowledge base and its inner components in the Canopy library.

Adding data to the knowledge base

To insert data into the knowledge base, you can create a list of documents and use the upsert method:

from canopy.models.data_models import Document

documents = [
    Document(
        id="1",
        text="U2 are an Irish rock band from Dublin, formed in 1976.",
        source="https://en.wikipedia.org/wiki/U2",
    ),
    Document(
        id="2",
        text="Arctic Monkeys are an English rock band formed in Sheffield in 2002.",
        source="https://en.wikipedia.org/wiki/Arctic_Monkeys",
        metadata={"my-key": "my-value"},
    ),
]

kb.upsert(documents)

Querying the knowledge base

You can query the knowledge base with the query method to find the most similar documents to a given text:

from canopy.models.data_models import Query

kb.query(
    [
        Query(text="Arctic Monkeys music genre"),
        Query(
            text="U2 music genre",
            top_k=10,
            metadata_filter={"key": "my-key", "match": {"value": "my-value"}},
        ),
    ]
)

Further Reading

Was this page useful?

Thank you for your feedback! 🙏

We are sorry to hear that. 😔 You can edit this page on GitHub, or create a GitHub issue.