Launchpad
The Enterprise AI Capability SDK
Launchpad provides a standardized way to turn AI/ML research implementations into reusable, production-ready capabilities. Define your capability once with typed Pydantic contracts — Launchpad handles how it gets delivered.
Why Launchpad?
AI teams repeatedly solve the same problems: wrapping a model call in retry logic, exposing a capability as an API, logging inputs/outputs for evaluation, versioning prompts. Launchpad makes this a one-time effort.
You implement a capability once. Launchpad handles:
- Multiple delivery mechanisms — REST API, gRPC, CLI, SDK import, async queue
- Typed contracts — Pydantic models as first-class input/output schemas, validated at every boundary
- Observability — structured logging, tracing, evaluation hooks
- Configuration — prompt versioning, model routing, runtime overrides
- Reliability — retries, fallbacks, circuit breakers
Core Concepts
| Concept | Description |
|---|---|
| Capability | A typed, self-contained AI function: Capability[InputModel, OutputModel] |
| Adapter | A delivery mechanism that exposes a capability (HTTP, gRPC, etc.) |
| Pipeline | A composable chain of capabilities |
Quick Start
pip install launchpad-ai
pip install 'launchpad-ai[http]' # for the HTTP adapter
Define your contracts as Pydantic models, then implement the capability:
from pydantic import BaseModel
from launchpad import Capability, capability
class SummarizeInput(BaseModel):
text: str
max_length: int = 200
class SummarizeOutput(BaseModel):
summary: str
@capability(name="summarize", version="1.0")
class Summarize(Capability[SummarizeInput, SummarizeOutput]):
def run(self, input: SummarizeInput) -> SummarizeOutput:
# your implementation here
...
Use it directly:
result = Summarize().run(SummarizeInput(text="..."))
print(result.summary)
Or serve it over HTTP:
from launchpad.adapters.http import HttpAdapter
HttpAdapter(Summarize).serve(port=8080)
# POST /summarize → { "text": "...", "max_length": 200 }
# GET /health
# GET /docs (OpenAPI)
Project Structure
launchpad/
├── src/launchpad/
│ ├── core/ # Capability[I,O] base class and @capability decorator
│ ├── adapters/ # http/ — delivery mechanisms
│ ├── pipeline/ # Capability composition
│ ├── observability/ # Structured logging, OpenTelemetry, eval hooks
│ └── config/ # Prompt versioning, model routing
├── examples/ # Self-contained runnable examples
└── tests/
Documentation
See AGENTS.md for conventions used when building capabilities and adapters in this repo.
License
Apache 2.0
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 launchpad_ai-0.1.0.tar.gz.
File metadata
- Download URL: launchpad_ai-0.1.0.tar.gz
- Upload date:
- Size: 4.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d585ba23652c9739133b934798dddc8e9f34c003ae636be4327b2f60f0d3e47d
|
|
| MD5 |
fee789accaae388956973a65a97c7390
|
|
| BLAKE2b-256 |
f63a78d6014adfc847b5b577cb33a043d56d0e174f86af0e3ac1869b0aa89806
|
File details
Details for the file launchpad_ai-0.1.0-py3-none-any.whl.
File metadata
- Download URL: launchpad_ai-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e81c01852378c57c1f1f363a789e012c9feeb279c8db186f6f937635ce793fd8
|
|
| MD5 |
b7f3fc0817c4bb5f311d4769c5ccb186
|
|
| BLAKE2b-256 |
ebdca977ba34a8375b36de8bffbc2c7820dba5fcab52030f73124e52b68d8c58
|