apipod_registry
Parse, hold and persist AIServices. This package is the one-stop tool for managing AI service information: it turns raw specs into typed contracts and keeps services, models and categories in one registry.
Built on socaity-schemas: AIService is the aggregate root, each Deployment carries a ServiceContract (the machine-readable interface parsed from OpenAPI or Cog).
What it does
parse_contract(spec): OpenAPI, APIPod and Cog specs become aServiceContractwith typed endpoints, parameters, streaming flags and aspecification_hash.materialize_contract(spec, provider):parse_contractplus provider wire behavior. Replicate wraps every cog model in its predictions job API, so contracts of replicate deployments gethas_job_queue=Truehere, not in the parsers.parse_address(url): URLs become typedServiceAddressobjects (socaity, RunPod, Replicate, generic).create_service(contract, address): the minimalAIService, one deployment, ready to register.Registry: in-memory catalog with id/name lookups for services, models and categories. Attach aServiceStore(like the includedFileSystemStore) for persistence; implement the interface to back it with anything else.
Usage
from apipod_registry import parse_contract, create_service, Registry, FileSystemStore
contract = parse_contract(openapi_dict)
service = create_service(contract, address="https://api.socaity.ai/services/v1/abc123")
registry = Registry(service_store=FileSystemStore())
registry.add_service(service)
registry.get_service("abc123") # by id
registry.get_service("face2face") # by name
registry.get_endpoint("face2face", "/swap")
Two axes that stay separate by design: contract.specification says how the spec is written (openapi, apipod, cog, cog2), deployment.provider says where it runs (socaity, runpod, replicate, ...). A Cog model hosted on Replicate is specification="cog" and provider="replicate".
MIT-licensed.
Metadata
Release files for apipod-registry 0.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| apipod_registry-0.1.8.tar.gz | 61.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| apipod_registry-0.1.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 116.3 kB
Release files / apipod_registry-0.1.8.tar.gz
| Download URL | apipod_registry-0.1.8.tar.gz |
|---|---|
| Size | 61.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5deb4df21ca0a05ee771ea2928b9cf27470cba5b19979db95eac24aec802e6a7
|
|
BLAKE2b-256 checksum How to use checksums |
9e4bb9a4fd554927751ef6ef2bfbbb8eca2f50c047c9e5aaae247fb1312a4e85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / apipod_registry-0.1.8-py3-none-any.whl
| Download URL | apipod_registry-0.1.8-py3-none-any.whl |
|---|---|
| Size | 54.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e1c767b35015d5a383bc4d2d0d3205ad27712db082b6454d0db20eb88b06d3dc
|
|
BLAKE2b-256 checksum How to use checksums |
fe484957f274a429fb475004887910644e588c4db128264f629ca1b14aea2c0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|