Python SDK for the Moorcheh Semantic Search API
Project description
The Information-Theoretic Search Engine for RAG & Agentic Memory
Learn more · Tutorials · Join Discord
Why Moorcheh?
- 32x Compression Ratio over traditional Vector DBs
- 85% Reduced End-to-End Latency over Pinecone vector search + Cohere reranker
- 0$ Storage Cost true serverless architecture scaling to 0 when idle
- Read the full paper
Moorcheh is the universal memory layer for agentic AI, providing fast deterministic semantic search with zero‑ops scalability. Its MIB + ITS stack preserves relevance while reducing storage cost and decreasing latency, providing high‑accuracy semantic search without the overhead of managing clusters, making it ideal for production‑grade RAG, agentic memory, and semantic analytics.
🛠️ Key Capabilities
- Bring any data: Ingest raw text, files, or vectors with a unified API.
- One-shot RAG: Go from ingestion to grounded answers in a single flow.
- Zero-ops scale: Serverless architecture that scales up and down automatically.
- Infrastructure as code: Deploy into your cloud with native IaC templates.
- Agentic memory: Stateful context for assistants and long-running agents.
- Developer-ready: Async support, type hints, and clear error handling.
🚀 Quickstart Guide
Hosted Platform
Use our hosted platform to get up and running fast with managed indexing, zero-ops scaling, and usage-based billing.
Self-Hosted
- Install the SDK using pip:
pip install moorcheh-sdk
-
Sign up and generate an API key through the Moorcheh platform dashboard.
-
The recommended way is to set the MOORCHEH_API_KEY environment variable:
export MOORCHEH_API_KEY="YOUR_API_KEY_HERE"
Basic Usage
import os
from moorcheh_sdk import MoorchehClient
api_key = os.environ.get("MOORCHEH_API_KEY")
with MoorchehClient(api_key=api_key) as client:
# Create a namespace
namespace_name = "my-first-namespace"
client.namespaces.create(namespace_name=namespace_name, type="text")
# Upload a document
docs = [{"id": "doc1", "text": "This is the first document about Moorcheh."}]
upload_res = client.documents.upload(namespace_name=namespace_name, documents=docs)
print(f"Upload status: {upload_res.get('status')}")
# Add a small delay for processing before searching
import time
print("Waiting briefly for processing...")
time.sleep(2)
# Perform semantic search on the namespace
search_res = client.similarity_search.query(namespaces=[namespace_name], query="Moorcheh", top_k=1)
print("Search results:")
print(search_res)
# Get a Generative AI Answer
gen_ai_res = client.answer.generate(namespace=namespace_name, query="What is Moorcheh?")
print("Generative Answer:")
print(gen_ai_res)
For more detailed examples covering vector operations, error handling, and logging configuration, please see the examples directory.
API Client Methods
The MoorchehClient and AsyncMoorchehClient classes provide the same method signatures. Below is a list of the available methods.
| Methods | Required Parameters | Description |
|---|---|---|
namespaces.create |
namespace_name, type, vector_dimension | Create a text or vector namespace. |
namespaces.list |
N/A | List all available namespaces. |
namespaces.delete |
namespace_name | Delete a namespace by name. |
documents.upload |
namespace_name, documents | Upload text documents to a text namespace. |
documents.get |
namespace_name, ids | Retrieve documents by ID. |
documents.upload_file |
namespace_name, file_path | Upload a file for server-side ingestion. |
documents.delete |
namespace_name, ids | Delete documents by ID. |
documents.delete_files |
namespace_name, file_names | Delete uploaded files by filename. |
vectors.upload |
namespace_name, vectors=[{id, vector}] | Upload vectors to a vector namespace. |
vectors.delete |
namespace_name, ids | Delete vectors by ID. |
similarity_search.query |
namespaces, query | Run semantic search with text or vector queries. |
answer.generate |
namespaces, query | Generate a grounded answer from a namespace. |
For fully detailed method functionality, please see the API Reference.
🔗 Integrations
- LlamaIndex: Use Moorcheh as a vector store inside LlamaIndex pipelines.
- LangChain: Plug Moorcheh into LangChain retrievers and RAG chains.
- n8n: Automate workflows that ingest, search, or answer with Moorcheh.
- MCP: Connect Moorcheh to external tools via Model Context Protocol.
Roadmap (Planned)
| Item | Required Parameters | Description |
|---|---|---|
get_eigenvectors |
namespace_name, n_eigenvectors | Expose top eigenvectors for semantic structure analysis. |
get_graph |
namespace_name | Provide a graph view of relationships across data in a namespace. |
get_umap_image |
namespace_name, n_dimensions | Generate a 2D UMAP projection image for quick visual exploration. |
Documentation & Support
Have questions or feedback? We're here to help:
- Docs: https://docs.moorcheh.ai
- Discord: Join our Discord server
- Appointment: Book a Discovery Call
- Email: support@moorcheh.ai
Contributing
Contributions are welcome! Please refer to the contributing guidelines (CONTRIBUTING.md) for details on setting up the development environment, running tests, and submitting pull requests.
License
This project is licensed under the MIT License - See the LICENSE file for details.
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
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 moorcheh_sdk-1.3.3.tar.gz.
File metadata
- Download URL: moorcheh_sdk-1.3.3.tar.gz
- Upload date:
- Size: 66.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1db9180a12127790b64a7b425e32ec9aa623f520898ec4099aeedfe0c2d7d8ef
|
|
| MD5 |
e7e6dd1320612c09ba9523dbce9c6b13
|
|
| BLAKE2b-256 |
92b776bad7bf09ab36ddfb9958360c787d1f7cdbe5a9ab4a9de175862563971b
|
File details
Details for the file moorcheh_sdk-1.3.3-py3-none-any.whl.
File metadata
- Download URL: moorcheh_sdk-1.3.3-py3-none-any.whl
- Upload date:
- Size: 33.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
052a022aab82e6f548905070c7586ae4bfa5a84cb2ed67dbb1a8c0ef7d612917
|
|
| MD5 |
8ce7cc6a7a4cc43b0ea0fdbc263ba251
|
|
| BLAKE2b-256 |
2c9ba9f7c34ef0f05d08aef4cf464144f6de38d2be5be089b08637d9d463c7b4
|