Official Python SDK for SynapCores AI-Native Database
Project description
SynapCores Python SDK
Official Python SDK for SynapCores - The AI-Native Database Management System.
0.2.1 — gateway response + graph fixes. Bug-fix release:
_handle_responsenow unwraps the gateway's{"data": …, "meta": …}success envelope (sosql()returns rows instead of an empty result) and tolerates empty200bodies fromDELETE;QueryResult.columnsis populated with column names; and the graph client matches the gateway contract —nodes.createsendslabels,edges.createsendssrc/dst,graph.cypher()sends{"sql": …}, andedges.delete()was added.
0.2.0 — gateway v1.5.0-ce alignment. This release rewires every module against the v1.5.0-ce route surface. AutoML moved from
/ai/*to/automl/*, vector ops collapsed onto/vector-algebra/operation, WebSocket auth now uses ticket exchange, API keys are sent via theX-API-Keyheader (and accept the newak_*prefix in addition to the legacyaidb_*), and we ship new top-level modules:graph,nl2sql,filesystem,chat,multimodal,system,transactions,mcp,recipes, andschema.
What's new in 0.2.0
from synapcores import SynapCores
client = SynapCores(host="localhost", port=8080, api_key="ak_prod_xxx...")
# 1. Cypher-style graph traversal
friends = client.graph.cypher(
"MATCH (u:User {id:$id})-[:FRIEND]->(f) RETURN f",
{"id": "u-123"},
)
# 2. Natural language → SQL (with optional execution)
ans = client.nl2sql.ask(
"top 10 customers by revenue this quarter",
execute=True,
)
print(ans["sql"], ans.get("rows"))
# 3. AI chat sessions with streaming
session = client.chat.sessions.create(model="gpt-4o")
for chunk in client.chat.stream(session["id"], "Summarize today's alerts"):
if chunk.get("delta"):
print(chunk["delta"], end="", flush=True)
# 4. Filesystem-backed RAG collections with progress
fs = client.filesystem.collections.create(name="docs", path="/data/docs", watch=True)
for evt in client.filesystem.collections.subscribe_progress(fs["id"]):
print(evt.get("status"), evt.get("progress"), evt.get("filename"))
# 5. Server-side transactions with savepoints
with client.transactions.begin(isolation_level="SERIALIZABLE") as tx:
tx.execute("UPDATE accounts SET balance = balance - $1 WHERE id = $2", [100, "a"])
tx.savepoint("mid")
tx.execute("UPDATE accounts SET balance = balance + $1 WHERE id = $2", [100, "b"])
# commit() runs implicitly on clean exit; rollback() on exception.
Other new surfaces:
client.multimodal.{similarity,search,join,embed}for cross-modal retrieval.client.system.vision.{get,set,delete,test}for the admin vision config.client.mcp.{invoke,batch,info}for the Model Context Protocol gateway.client.recipes.list_categories()/list_templates()/execute_template()/list_executions().client.schema.list_databases()/preview_table().
Breaking changes vs 0.1.0
embed()routes to/ai/embeddings(single) or/ai/embeddings/batch.automl.*paths moved from/ai/*to/automl/*.- All vector math goes through
POST /vector-algebra/operationwith anopdiscriminator. - KNN/range/hybrid search routes to
/vectors/collections/:name/searchwith amodefield. - API keys are sent as the
X-API-Keyheader (was previouslyAuthorization: Bearer). - WebSocket subscriptions now use ticket exchange via
POST /v1/ws/ticketand connect to/ws?token=.... nlp.analyze()is implemented client-side as parallel calls to/ai/sentiment,/ai/entities, and/ai/summarizesince/ai/analyzewas removed.- The
client.sql(query, params=...)payload now matchesPOST /v1/query/execute(positionalparameters);paramsis still accepted as a dict for backwards compatibility.
Features
- AI-Native Operations: Built-in support for embeddings, vector search, and semantic analysis
- Document & Vector Storage: Seamlessly work with both structured and unstructured data
- SQL with AI Extensions: Use familiar SQL syntax enhanced with AI operations
- Real-time Subscriptions: WebSocket support for live data updates
- AutoML Integration: Automated machine learning model training and deployment
- Type-Safe: Full type hints and Pydantic models for better IDE support
Installation
pip install synapcores
Quick Start
from synapcores import SynapCores
# Initialize client with API key authentication
# API keys can be created from your AIDB dashboard at Settings > API Keys
# Note: API keys must start with 'aidb_' prefix
client = SynapCores(
host="localhost",
port=8080,
api_key="aidb_sk_your_api_key_here" # Replace with your actual API key
)
# Create a collection
collection = client.create_collection(
name="products",
schema={
"name": "string",
"description": "string",
"price": "float",
"embedding": "vector[384]"
}
)
# Insert documents
collection.insert([
{
"name": "Laptop",
"description": "High-performance laptop for developers",
"price": 1299.99
},
{
"name": "Mouse",
"description": "Ergonomic wireless mouse",
"price": 49.99
}
])
# Semantic search
results = collection.search(
query="computer accessories",
top_k=5
)
# SQL with AI extensions
df = client.sql("""
SELECT name, price,
similarity(embedding, embed('perfect for coding')) as relevance
FROM products
WHERE price < 1500
ORDER BY relevance DESC
LIMIT 10
""")
# Real-time subscriptions
async def handle_update(change):
print(f"Document {change.op}: {change.document}")
subscription = await collection.subscribe(
filter={"price": {"$lt": 100}},
on_change=handle_update
)
Advanced Features
Vector Operations
# Generate embeddings
embedding = client.embed("High-quality mechanical keyboard")
# Vector similarity search
similar_products = collection.vector_search(
vector=embedding,
top_k=10,
filter={"price": {"$between": [50, 200]}}
)
AutoML
# Train a model
model = client.automl.train(
collection="sales_data",
target="revenue",
features=["product_category", "season", "price"],
task="regression"
)
# Make predictions
predictions = model.predict({
"product_category": "electronics",
"season": "holiday",
"price": 299.99
})
NLP Analysis
# Analyze text
analysis = client.nlp.analyze(
text="This product exceeded my expectations. Highly recommend!",
tasks=["sentiment", "entities", "summary"]
)
print(f"Sentiment: {analysis.sentiment.label} ({analysis.sentiment.score})")
print(f"Entities: {[e.text for e in analysis.entities]}")
Documentation
For detailed documentation, visit https://synapcores.com/developers
License
MIT License - see LICENSE file for details.
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
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 synapcores-0.3.0.tar.gz.
File metadata
- Download URL: synapcores-0.3.0.tar.gz
- Upload date:
- Size: 44.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
929fa78ab545515965ccca7d95d0c8475d96f0833644a4394cec71ce4c2f2b94
|
|
| MD5 |
d749d09a6c6dfc3f1bfa6c2d0c4cd610
|
|
| BLAKE2b-256 |
a241ea0ad6e83fd6c854d2764469a90a5dc9fb8ea885d8cde6f4eebfe4c61502
|
File details
Details for the file synapcores-0.3.0-py3-none-any.whl.
File metadata
- Download URL: synapcores-0.3.0-py3-none-any.whl
- Upload date:
- Size: 47.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25ca223d56754d067a5a2bf69d642e1dea03c1b66f4a836148e85760af44aa56
|
|
| MD5 |
6793f05c94b4d7065ee72cfc5ea3ad14
|
|
| BLAKE2b-256 |
9f85906f36e99806f54ffc76f54e422b81dbdf51b046cc07ef0f2b86b0d41d03
|