Python SDKResources

Knowledge Bases

Python SDK - Knowledge Bases resource API reference

Knowledge Bases resource for semantic document search operations.

AsyncKnowledgeBaseDocuments

Asynchronous document operations for a knowledge base.

Arguments:

client: The parent async client instance. knowledge_base_id: The knowledge base ID.

Methods:

create

def create(self, content: dict[str, Any], document_id: str | None = None, metadata: dict[str, Any] | None = None, generate_embedding: bool = True) -> KnowledgeBaseDocument

Add a document to the knowledge base.

Arguments:

content: Document content matching the knowledge base schema. document_id: Optional external document reference ID. metadata: Optional additional metadata. generate_embedding: Whether to automatically generate embedding. Defaults to True.

Returns:

The created document.

delete

def delete(self, document_id: str) -> None

Delete a document from the knowledge base.

Arguments:

document_id: The document ID to delete.

get

def get(self, document_id: str) -> KnowledgeBaseDocument

Get a specific document by ID.

Arguments:

document_id: The document ID.

Returns:

The document details.

list

def list(self, page: int | None = None, limit: int | None = None, search: str | None = None) -> AsyncPage[KnowledgeBaseDocument]

List documents in the knowledge base.

Arguments:

page: Page number (1-indexed). Defaults to 1. limit: Number of items per page. search: Search term to filter documents.

Returns:

An AsyncPage of documents with pagination support.

update

def update(self, document_id: str, content: dict[str, Any] | None = None, metadata: dict[str, Any] | None = None, regenerate_embedding: bool = False) -> KnowledgeBaseDocument

Update a document in the knowledge base.

Arguments:

document_id: The document ID to update. content: Updated document content. metadata: Updated metadata. regenerate_embedding: Whether to force embedding regeneration. Defaults to False.

Returns:

The updated document.

AsyncKnowledgeBases

Asynchronous knowledge base operations.

Example:

>>> async with AsyncClient(api_key="...") as client:
    ...     async for kb in (await client.knowledge_bases.list()).auto_paging_iter_async():
    ...         print(f"{kb.name}: {kb.documentCount} documents")

Arguments:

client: The parent async client instance.

Methods:

create

def create(self, name: str, description: str, schema: dict[str, Any], indexing_preferences: dict[str, Any] | None = None) -> KnowledgeBase

Create a new knowledge base.

Arguments:

name: Unique name for the knowledge base. description: Description of the knowledge base. schema: JSON schema for documents in this knowledge base. indexing_preferences: Optional indexing configuration.

Returns:

The created knowledge base.

delete

def delete(self, knowledge_base_id: str) -> None

Delete a knowledge base.

Arguments:

knowledge_base_id: The knowledge base ID to delete.

documents

def documents(self, knowledge_base_id: str) -> AsyncKnowledgeBaseDocuments

Access document operations for a knowledge base.

Arguments:

knowledge_base_id: The knowledge base ID.

Returns:

An AsyncKnowledgeBaseDocuments instance for document operations.

get

def get(self, knowledge_base_id: str) -> KnowledgeBase

Get a specific knowledge base by ID.

Arguments:

knowledge_base_id: The knowledge base ID.

Returns:

The knowledge base details.

list

def list(self, page: int | None = None, limit: int | None = None, search: str | None = None, is_active: bool | None = None) -> AsyncPage[KnowledgeBase]

List knowledge bases.

Arguments:

page: Page number (1-indexed). Defaults to 1. limit: Number of items per page. search: Search term to filter by name or description. is_active: Filter by active status.

Returns:

An AsyncPage of knowledge bases with pagination support.

def search(self, knowledge_base_id: str, query: str, limit: int | None = None, similarity_threshold: float | None = None, include_metadata: bool | None = None) -> SearchResult

Perform semantic search in a knowledge base.

Arguments:

knowledge_base_id: The knowledge base ID to search. query: Search query text. limit: Maximum number of results (1-50). similarity_threshold: Minimum similarity score (0-1). include_metadata: Include document metadata in results.

Returns:

Search results with similarity scores.

sync

def sync(self, knowledge_base_id: str, regenerate_embeddings: bool | None = None) -> SyncResult

Trigger manual synchronization of a knowledge base.

Arguments:

knowledge_base_id: The knowledge base ID to sync. regenerate_embeddings: Whether to regenerate all embeddings.

Returns:

The sync operation result.

update

def update(self, knowledge_base_id: str, name: str | None = None, description: str | None = None, is_active: bool | None = None) -> KnowledgeBase

Update a knowledge base.

Arguments:

knowledge_base_id: The knowledge base ID to update. name: New name for the knowledge base. description: New description. is_active: Active status.

Returns:

The updated knowledge base.

Properties:

  • with_raw_response : Access methods that return raw HTTP responses.

KnowledgeBaseDocuments

Synchronous document operations for a knowledge base.

Arguments:

client: The parent client instance. knowledge_base_id: The knowledge base ID.

Methods:

create

def create(self, content: dict[str, Any], document_id: str | None = None, metadata: dict[str, Any] | None = None, generate_embedding: bool = True) -> KnowledgeBaseDocument

Add a document to the knowledge base.

Arguments:

content: Document content matching the knowledge base schema. document_id: Optional external document reference ID. metadata: Optional additional metadata. generate_embedding: Whether to automatically generate embedding. Defaults to True.

Returns:

The created document.

Example:

>>> doc = client.knowledge_bases.documents("kb_123").create(
    ...     content={"title": "User Guide", "text": "..."},
    ...     metadata={"source": "manual"}
    ... )
    >>> print(f"Created: {doc.id}")

delete

def delete(self, document_id: str) -> None

Delete a document from the knowledge base.

Arguments:

document_id: The document ID to delete.

Raises:

NotFoundError: If the document doesn't exist.

Example:

>>> client.knowledge_bases.documents("kb_123").delete("doc_456")

get

def get(self, document_id: str) -> KnowledgeBaseDocument

Get a specific document by ID.

Arguments:

document_id: The document ID.

Returns:

The document details.

Raises:

NotFoundError: If the document doesn't exist.

Example:

>>> doc = client.knowledge_bases.documents("kb_123").get("doc_456")
    >>> print(doc.content)

list

def list(self, page: int | None = None, limit: int | None = None, search: str | None = None) -> Page[KnowledgeBaseDocument]

List documents in the knowledge base.

Arguments:

page: Page number (1-indexed). Defaults to 1. limit: Number of items per page. search: Search term to filter documents.

Returns:

A Page of documents with pagination support.

Example:

>>> docs = client.knowledge_bases.documents("kb_123").list()
    >>> for doc in docs.auto_paging_iter():
    ...     print(doc.id)

update

def update(self, document_id: str, content: dict[str, Any] | None = None, metadata: dict[str, Any] | None = None, regenerate_embedding: bool = False) -> KnowledgeBaseDocument

Update a document in the knowledge base.

Arguments:

document_id: The document ID to update. content: Updated document content. metadata: Updated metadata. regenerate_embedding: Whether to force embedding regeneration. Defaults to False.

Returns:

The updated document.

Example:

>>> doc = client.knowledge_bases.documents("kb_123").update(
    ...     "doc_456",
    ...     content={"title": "Updated Guide", "text": "..."}
    ... )

KnowledgeBases

Synchronous knowledge base operations.

Example:

>>> client = Client(api_key="...")
    >>> # List knowledge bases
    >>> for kb in client.knowledge_bases.list().auto_paging_iter():
    ...     print(f"{kb.name}: {kb.documentCount} documents")
    >>>
    >>> # Search in a knowledge base
    >>> results = client.knowledge_bases.search("kb_123", query="authentication")
    >>> for item in results.data:
    ...     print(f"{item.document.id}: {item.similarity:.2%}")

Arguments:

client: The parent client instance.

Methods:

create

def create(self, name: str, description: str, schema: dict[str, Any], indexing_preferences: dict[str, Any] | None = None) -> KnowledgeBase

Create a new knowledge base.

Arguments:

name: Unique name for the knowledge base. description: Description of the knowledge base. schema: JSON schema for documents in this knowledge base. indexing_preferences: Optional indexing configuration.

Returns:

The created knowledge base.

Raises:

ConflictError: If a knowledge base with that name already exists.

Example:

>>> kb = client.knowledge_bases.create(
    ...     name="User Documentation",
    ...     description="Product user guides and manuals",
    ...     schema={"type": "object", "properties": {"title": {"type": "string"}}}
    ... )
    >>> print(f"Created: {kb.id}")

delete

def delete(self, knowledge_base_id: str) -> None

Delete a knowledge base.

Arguments:

knowledge_base_id: The knowledge base ID to delete.

Raises:

NotFoundError: If the knowledge base doesn't exist.

Example:

>>> client.knowledge_bases.delete("kb_123")

documents

def documents(self, knowledge_base_id: str) -> KnowledgeBaseDocuments

Access document operations for a knowledge base.

Arguments:

knowledge_base_id: The knowledge base ID.

Returns:

A KnowledgeBaseDocuments instance for document operations.

Example:

>>> docs = client.knowledge_bases.documents("kb_123")
    >>> for doc in docs.list().auto_paging_iter():
    ...     print(doc.content)

get

def get(self, knowledge_base_id: str) -> KnowledgeBase

Get a specific knowledge base by ID.

Arguments:

knowledge_base_id: The knowledge base ID.

Returns:

The knowledge base details.

Raises:

NotFoundError: If the knowledge base doesn't exist.

Example:

>>> kb = client.knowledge_bases.get("kb_123")
    >>> print(f"{kb.name}: {kb.description}")

list

def list(self, page: int | None = None, limit: int | None = None, search: str | None = None, is_active: bool | None = None) -> Page[KnowledgeBase]

List knowledge bases.

Arguments:

page: Page number (1-indexed). Defaults to 1. limit: Number of items per page. search: Search term to filter by name or description. is_active: Filter by active status.

Returns:

A Page of knowledge bases with pagination support.

Example:

>>> for kb in client.knowledge_bases.list().auto_paging_iter():
    ...     print(f"{kb.name}: {kb.documentCount} documents")

search

def search(self, knowledge_base_id: str, query: str, limit: int | None = None, similarity_threshold: float | None = None, include_metadata: bool | None = None) -> SearchResult

Perform semantic search in a knowledge base.

Arguments:

knowledge_base_id: The knowledge base ID to search. query: Search query text. limit: Maximum number of results (1-50). similarity_threshold: Minimum similarity score (0-1). include_metadata: Include document metadata in results.

Returns:

Search results with similarity scores.

Example:

>>> results = client.knowledge_bases.search(
    ...     "kb_123",
    ...     query="how to configure authentication",
    ...     limit=5
    ... )
    >>> for item in results.data:
    ...     print(f"{item.similarity:.2%}: {item.document.content}")

sync

def sync(self, knowledge_base_id: str, regenerate_embeddings: bool | None = None) -> SyncResult

Trigger manual synchronization of a knowledge base.

Arguments:

knowledge_base_id: The knowledge base ID to sync. regenerate_embeddings: Whether to regenerate all embeddings.

Returns:

The sync operation result.

Example:

>>> result = client.knowledge_bases.sync("kb_123", regenerate_embeddings=True)
    >>> print(f"Sync status: {result.status}")

update

def update(self, knowledge_base_id: str, name: str | None = None, description: str | None = None, is_active: bool | None = None) -> KnowledgeBase

Update a knowledge base.

Arguments:

knowledge_base_id: The knowledge base ID to update. name: New name for the knowledge base. description: New description. is_active: Active status.

Returns:

The updated knowledge base.

Example:

>>> kb = client.knowledge_bases.update(
    ...     "kb_123",
    ...     description="Updated documentation"
    ... )

Properties:

  • with_raw_response : Access methods that return raw HTTP responses.

On this page