Website Knowledge Base

The WebsiteKnowledgeBase reads websites, converts them into vector embeddings and loads them to a vector_db.

Usage

We are using a local PgVector database for this example. Make sure it’s running

pip install bs4

knowledge_base.py

from bitca.knowledge.website import WebsiteKnowledgeBase
from bitca.vectordb.pgvector import PgVector

knowledge_base = WebsiteKnowledgeBase(
    urls=["https://docs.bitcadata.com/introduction"],
    # Number of links to follow from the seed URLs
    max_links=10,
    # Table name: ai.website_documents
    vector_db=PgVector(
        table_name="website_documents",
        db_url="postgresql+psycopg://ai:ai@localhost:5532/ai",
    ),
)

Then use the knowledge_base with an Agent:

agent.py

Params

Parameter
Type
Default
Description

urls

List[str]

-

URLs to read

reader

WebsiteReader

-

A WebsiteReader that reads the urls and converts them into Documents for the vector database.

max_depth

int

3

Maximum depth to crawl.

max_links

int

10

Number of links to crawl.

vector_db

VectorDb

-

Vector Database for the Knowledge Base.

num_documents

int

5

Number of documents to return on search.

optimize_on

int

-

Number of documents to optimize the vector db on.

chunking_strategy

ChunkingStrategy

FixedSizeChunking

The chunking strategy to use.

Last updated