Metadata-Version: 2.5
Name: aice-knowledge
Version: 0.1.2
Summary: Python SDK for the AICE Knowledge Service multi-tenant document ingestion and retrieval
Author-email: Adanian Labs <engineering@adanianlabs.io>
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: aice-core<0.4,>=0.3.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
Requires-Dist: pytest>=8.3; extra == 'dev'
Requires-Dist: respx>=0.21; extra == 'dev'
Description-Content-Type: text/markdown

# aice-knowledge

Python SDK for the [Knowledge Service](../../../aice_packages/knowledge_service/) —
multi-tenant document ingestion (PDF/DOCX/OCR) into Postgres + pgvector,
served over REST and MCP.

```python
from aice_knowledge import KnowledgeClient

client = KnowledgeClient(base_url="https://kb.example.com", api_key="sk-…")

# Upload a document (queued for parsing + embedding)
doc = client.documents.upload(
    file=open("contract.pdf", "rb").read(),
    filename="contract.pdf",
)

# Vector search
hits = client.search(query="payment terms", limit=5)

# Manage the scope tree (multi-tenant document organisation)
client.scopes.create(name="finance", parent_id=None)
client.document_scopes.link(document_id=doc["id"], scope_ids=["sc_finance"])
```

Endpoints covered (see `knowledge_service/app/api/routes.py`):

* `POST /documents`, `POST /documents/batch`, `GET /documents`, `GET /documents/{id}`,
  `POST /documents/{id}/retry`, `DELETE /documents/{id}`
* `POST /documents/{id}/share`, `GET /documents/{id}/share`, `DELETE /documents/{id}/share/…`
* `POST /search`
* `POST /scope-types`, `GET /scope-types`, `DELETE /scope-types/{id}`
* `POST /scopes`, `GET /scopes`, `DELETE /scopes`
* `POST /document-scopes`, `GET /document-scopes`, `DELETE /document-scopes`
