Skip to main content

Launchpad

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

launchpad_ai-0.1.1.tar.gz (8.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

launchpad_ai-0.1.1-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file launchpad_ai-0.1.1.tar.gz.

File metadata

  • Download URL: launchpad_ai-0.1.1.tar.gz
  • Upload date:
  • Size: 8.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.9

File hashes

Hashes for launchpad_ai-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8c648451af66a53cfadfd8ad91171baaa834323a1149922dfea4ce80034e8516
MD5 7d0f9f31a3b661a4021b9be042b5c0f3
BLAKE2b-256 ac41eedafc61e36cf1c76b9cf297ed504608e38f07750e95994fc3cd1fe0f7f0

See more details on using hashes here.

File details

Details for the file launchpad_ai-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: launchpad_ai-0.1.1-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

Hashes for launchpad_ai-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b5123faf0d6c8e97144fdb44b10bcb782b71e25e4e3e42efe56f27927a9b7097
MD5 330f6c8840fa83c4b9e6238f9af274b4
BLAKE2b-256 759f5473e53c6ec25ccdab8163ff23f7856a41eb872b8ca7950d905319bb934f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page