Python SDK for Railtown AI Rail Engine - Retrieval
Project description
Rail Engine Retrieval SDK
Python SDK for retrieving and searching data from Railtown AI Rail Engine - handles embeddings, storage documents, and indexed content.
Overview
The rail-engine package provides a Pythonic interface for retrieving and searching data from Rail Engine. It supports async/await patterns, client-side filtering, automatic pagination, and Pydantic model deserialization.
Installation
uv pip install rail-engine
Quick Start
import asyncio
from railtown.engine import RailEngine
async def main():
# Initialize client (reads from ENGINE_PAT and ENGINE_ID env vars)
async with RailEngine() as client:
# Search vector store
results = client.search_vector_store(
query="apple"
)
async for item in results:
print(item)
asyncio.run(main())
Configuration
Environment Variables
ENGINE_PAT(required) - Personal Access TokenENGINE_ID(required) - Engine ID (can also be passed to constructor)RAILTOWN_API_URL(optional) - Base API URL (defaults tohttps://cndr.railtown.ai/api)
Constructor Parameters
pat(optional) - PAT token (if not provided, reads fromENGINE_PATenv)engine_id(optional) - Engine ID (if not provided, reads fromENGINE_IDenv, required if not in env)api_url(optional) - Base API URL (if not provided, reads fromRAILTOWN_API_URLenv or defaults to production)model(optional) - Pydantic model type for deserializing retrieved data
Features
- Multiple retrieval methods:
search_vector_store()- Semantic search in vector storesget_storage_document_by_event_id()- Get document by EventIdget_storage_document_by_customer_key()- Get documents by customer keyquery_storage_by_jsonpath()- Query using JSONPathlist_storage_documents()- List all documents with paginationsearch_index()- Full-text search using Azure Search
- Client-side filtering - Filter results using
filter_fnparameter - Automatic pagination - Handles pagination automatically
- Model deserialization - Optional Pydantic model support with per-call override
- Graceful error handling - Returns None or empty iterables on errors
- Async/await support - Built for modern async Python applications
Error Handling
The SDK provides custom exception classes:
RailtownError- Base exceptionRailtownBadRequestError- 400 Bad RequestRailtownUnauthorizedError- 401 UnauthorizedRailtownNotFoundError- 404 Not FoundRailtownConflictError- 409 ConflictRailtownServerError- 5xx Server errors
Returns None or empty iterables on errors (graceful degradation).
Requirements
- uv
- Python 3.10+
- httpx >= 0.24.0
- pydantic >= 1.10.0
Related Package
For ingesting data into Rail Engine, see rail-engine.
License
MIT
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 rail_engine-0.1.4.tar.gz.
File metadata
- Download URL: rail_engine-0.1.4.tar.gz
- Upload date:
- Size: 21.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c71e97f5df1f50cf006f15362942be6b2046c35cb7821d7fa25b68aa27be9e4d
|
|
| MD5 |
b4e6c0da65d2ba3533cccf3998cff546
|
|
| BLAKE2b-256 |
96be9c5eda014100103797b5b9401e4dcc9bb609be8b386a89421a1bf8f7c94d
|
File details
Details for the file rail_engine-0.1.4-py3-none-any.whl.
File metadata
- Download URL: rail_engine-0.1.4-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e99c228c9379acc3809727835b3e93f5034493d238be2c84a63f847407ea8db
|
|
| MD5 |
7c13ea6ac02ddacacaed53ea0ac0a642
|
|
| BLAKE2b-256 |
6e51fddd5ef57f605be9bdd027032d107b4313a55ae2ad79873cfca5ef0953c0
|