Quick Start
Get started with isA Data in minutes.
Prerequisites
- Python 3.9+
- Running infrastructure services (Qdrant, MinIO, PostgreSQL)
- isA Model service for embeddings and LLM
Installation
cd isA_Data
pip install -r requirements.txtStart the Service
# Development mode
uvicorn main:app --reload --port 8084
# Or with Python
python main.pyBasic Usage
1. Store Knowledge
Store text content for RAG:
import httpx
async def store_knowledge():
async with httpx.AsyncClient() as client:
response = await client.post(
"http://localhost:8084/api/v1/digital/store",
json={
"user_id": "alice",
"content": "Docker is a containerization platform that packages applications into containers.",
"content_type": "text"
}
)
# SSE streaming response
async for line in response.aiter_lines():
print(line)2. Search Knowledge
Semantic search across stored content:
async def search_knowledge():
async with httpx.AsyncClient() as client:
response = await client.post(
"http://localhost:8084/api/v1/digital/search",
json={
"user_id": "alice",
"query": "What is Docker?",
"search_options": {
"rag_mode": "simple",
"top_k": 5
}
}
)
return response.json()3. Generate RAG Response
Get AI-generated answers with citations:
async def get_response():
async with httpx.AsyncClient() as client:
response = await client.post(
"http://localhost:8084/api/v1/digital/response",
json={
"user_id": "alice",
"query": "Explain Docker containers",
"response_options": {
"rag_mode": "simple",
"context_limit": 3,
"enable_citations": True
}
}
)
# SSE streaming response
async for line in response.aiter_lines():
print(line)cURL Examples
Store Text
curl -X POST "http://localhost:8084/api/v1/digital/store" \
-H "Content-Type: application/json" \
-d '{
"user_id": "alice",
"content": "Kubernetes is an open-source container orchestration platform.",
"content_type": "text"
}'Store PDF
curl -X POST "http://localhost:8084/api/v1/digital/store" \
-H "Content-Type: application/json" \
-d '{
"user_id": "alice",
"content": "https://arxiv.org/pdf/1706.03762.pdf",
"content_type": "pdf",
"metadata": {
"title": "Attention Is All You Need"
}
}'Search
curl -X POST "http://localhost:8084/api/v1/digital/search" \
-H "Content-Type: application/json" \
-d '{
"user_id": "alice",
"query": "transformer architecture",
"search_options": {"top_k": 5}
}'Generate Response
curl -N -X POST "http://localhost:8084/api/v1/digital/response" \
-H "Content-Type: application/json" \
-d '{
"user_id": "alice",
"query": "Explain the self-attention mechanism",
"response_options": {
"rag_mode": "simple",
"enable_citations": true
}
}'Data Lake Operations
Batch Ingestion
curl -X POST "http://localhost:8084/api/v1/data/ingest/batch/postgres" \
-H "Content-Type: application/json" \
-d '{
"config": {
"host": "localhost",
"port": 5432,
"database": "mydb",
"username": "user",
"password": "pass",
"table": "users"
},
"domain": "account",
"target_zone": "raw"
}'Run ETL
curl -X POST "http://localhost:8084/api/v1/data/etl/curate" \
-H "Content-Type: application/json" \
-d '{
"source_domain": "account",
"source_table": "users",
"transformations": {
"drop_null_columns": true,
"deduplicate": true
}
}'List Zones
curl "http://localhost:8084/api/v1/data/lake/zones"Natural Language Query
curl -X POST "http://localhost:8084/api/v1/data/fabric/query" \
-H "Content-Type: application/json" \
-d '{
"query": "Show me all users who signed up last month",
"domain": "account"
}'Health Check
curl "http://localhost:8084/health"Configuration
Environment Variables
# Service
DATA_PORT=8084
ENVIRONMENT=development
DEBUG=true
# Infrastructure
QDRANT_GRPC_HOST=localhost
QDRANT_GRPC_PORT=50062
MINIO_GRPC_HOST=localhost
MINIO_GRPC_PORT=50063
# isA Model Service
ISA_API_URL=http://localhost:8082
# Optional: Consul
CONSUL_ENABLED=falseNext Steps
- RAG Patterns - Explore 7 RAG modes
- Data Lake - Zone management
- File Processing - Multi-modal content