Skip to main content

Python client for the Cognitor search platform API.

Project description

Cognitor | All-in-one semantic search engine for AI and humans.

cognitor-python

Python SDK for Cognitor.

Installation

pip install cognitor

Quick start

from cognitor import Cognitor

with Cognitor("http://localhost:7530", api_key="your-api-key") as client:
    print(client.ping())
    print(client.health_ready())  # "ready" or "loading"

The api_key parameter is optional, omit it if your cognitor instance does not require authentication.

Usage

Collections

# Create a collection (server-side embedding)
collection = client.create_collection(
    "my-collection",
    emb_model="text-embedding-3-small",
)

# Create a collection with a fixed vector dimension (client-side embedding)
collection = client.create_collection("my-collection", dim=1536)

# List all collections
collections = client.list_collections()

# Get a single collection
collection = client.get_collection("my-collection")

# Delete a collection
client.delete_collection("my-collection")

Documents

# Add documents (texts are embedded server-side when emb_model is set)
ids = client.add_documents(
    "my-collection",
    texts=["Hello world", "Cognitor is a vector store"],
    metadatas=[{"source": "docs"}, {"source": "docs"}],
)

# Add documents with explicit vectors (client-side embedding)
ids = client.add_documents(
    "my-collection",
    texts=["Hello world"],
    metadatas=[{"source": "docs"}],
    vectors=[[0.1, 0.2, ...]],
)

# Add a large number of documents in batches
ids = client.bulk_add_documents(
    "my-collection",
    texts=[...],
    metadatas=[...],
    batch_size=512,
)

# List documents (paginated)
page = client.list_documents("my-collection", offset=0, limit=50)
print(page.total, page.documents)

# Get a single document
doc = client.get_document("my-collection", doc_id)

# Update document metadata
doc = client.update_document_metadata("my-collection", doc_id, {"source": "updated"})

# Delete a document
client.delete_document("my-collection", doc_id)

Search

# Search by text (requires server-side embedding model)
response = client.search("my-collection", query_text="Hello", top_k=10)

# Search by vector
response = client.search("my-collection", query_vector=[0.1, 0.2, ...], top_k=10)

# Filter results by metadata
response = client.search(
    "my-collection",
    query_text="Hello",
    filters={"source": "docs"},
)

# Include vectors in results
response = client.search("my-collection", query_text="Hello", include_vectors=True)

for hit in response.results:
    print(f"score={hit.score:.4f}  text={hit.text!r}")

Admin

# Compact a collection (removes deleted vectors)
result = client.compact("my-collection")
print(result.deleted_count, "vectors removed")

Health

# Readiness probe status
status = client.health_ready()
if status == "ready":
    print("Server is ready")
else:
    print("Server is still loading models")

Connection management

Use the client as a context manager (recommended) to ensure the underlying HTTP connection is closed:

with Cognitor("http://localhost:7530") as client:
    ...

Or close it manually:

client = Cognitor("http://localhost:7530")
try:
    ...
finally:
    client.close()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cognitor-0.5.0.tar.gz (16.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cognitor-0.5.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file cognitor-0.5.0.tar.gz.

File metadata

  • Download URL: cognitor-0.5.0.tar.gz
  • Upload date:
  • Size: 16.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for cognitor-0.5.0.tar.gz
Algorithm Hash digest
SHA256 8bafd39c601db231bd84da8f5ad97d40ac087ce4c898cf90edad51dc96a18c40
MD5 53f4d6f9cbbc78c1a10c6e70d5265581
BLAKE2b-256 dfdf72dfb77f25c50d552002394a5798dbbc1323f0ec9a102aa39cfbdede0743

See more details on using hashes here.

File details

Details for the file cognitor-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: cognitor-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for cognitor-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0e69d29efdb6bd55bcd60c26956aee37d7150a48d54e2f698eec4698610a0d5f
MD5 a07d31b6c7fa21cece5ac7fa69eb9b07
BLAKE2b-256 1ac40bc2d248b081458d8608bc9f1c424b7fd0950e7c28965a241c23772781ca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page