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) -> KnowledgeBaseDocumentAdd 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) -> NoneDelete a document from the knowledge base.
Arguments:
document_id: The document ID to delete.
get
def get(self, document_id: str) -> KnowledgeBaseDocumentGet 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) -> KnowledgeBaseDocumentUpdate 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) -> KnowledgeBaseCreate 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) -> NoneDelete a knowledge base.
Arguments:
knowledge_base_id: The knowledge base ID to delete.
documents
def documents(self, knowledge_base_id: str) -> AsyncKnowledgeBaseDocumentsAccess 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) -> KnowledgeBaseGet 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.
search
def search(self, knowledge_base_id: str, query: str, limit: int | None = None, similarity_threshold: float | None = None, include_metadata: bool | None = None) -> SearchResultPerform 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) -> SyncResultTrigger 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) -> KnowledgeBaseUpdate 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) -> KnowledgeBaseDocumentAdd 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) -> NoneDelete 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) -> KnowledgeBaseDocumentGet 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) -> KnowledgeBaseDocumentUpdate 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) -> KnowledgeBaseCreate 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) -> NoneDelete 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) -> KnowledgeBaseDocumentsAccess 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) -> KnowledgeBaseGet 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) -> SearchResultPerform 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) -> SyncResultTrigger 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) -> KnowledgeBaseUpdate 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.