Python client for the Cognitor search platform API.
Project description
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
Release history Release notifications | RSS feed
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.3.0.tar.gz
(15.4 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cognitor-0.3.0.tar.gz.
File metadata
- Download URL: cognitor-0.3.0.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1781dd92018030a7f4db8f00ecd4f12ede5f49513a58ca4ec0c8bad540ab97e
|
|
| MD5 |
8f5ffec5f8407f7ecc4032556925f5ef
|
|
| BLAKE2b-256 |
d888d865a816bc95139ca5efa419fa17b9c28220bd0e8f78fa637bfcaaff2403
|
File details
Details for the file cognitor-0.3.0-py3-none-any.whl.
File metadata
- Download URL: cognitor-0.3.0-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56d260b16cd9eeb8358525c706bd6dfd592dc63b9ef7a3ea2ceaaf40ac9d0baa
|
|
| MD5 |
3be0251723c86d6c72fb35e36b6bf0a6
|
|
| BLAKE2b-256 |
48ae39d64a86cc161f9b0048a29e44e44b64349acd463bdef4d85a38caa611e6
|