---
id: "ai-service"
type: "kind"
category: "compute"
url: "https://localhost:3000/catalogue/kinds/ai-service"
---

# AI service

A consumption API for hosted models: text, vision, speech or multimodal.

| | |
|---|---|
| Category | Compute |
| Properties | 13 |
| Components | 126 |
| Rules | 2 |

## Properties

| property | type | values | required | default |
|---|---|---|---|---|
| `auth` | enum | `api-key`, `oauth`, `iam`, `none` | no | — |
| `contentFiltering` | boolean | — | no | — |
| `customerManagedKeys` | boolean | — | no | — |
| `dataResidency` (advanced) | enum | `us`, `eu`, `asia`, `global` | no | — |
| `dataRetentionDays` | integer | — | no | — |
| `keyStore` | boolean | — | no | false |
| `managed` | boolean | — | no | false |
| `modality` | enum | `text`, `vision`, `speech`, `multimodal`, `structured`, `image`, `video`, `audio`, `embedding`, `rerank` | no | — |
| `publicEndpoint` | boolean | — | no | — |
| `quotaUnitsPerMinute` | integer | — | no | — |
| `rateLimitRpm` (advanced) | integer | — | no | — |
| `rateLimitTpm` (advanced) | integer | — | no | — |
| `viaGateway` | boolean | — | no | false |

## Rules for this kind · 2

### AI API key not managed `ai-api-key-unmanaged` (warning)

- Page: https://localhost:3000/catalogue/rules/ai-api-key-unmanaged.md
- Why: This AI vendor is reached with an API key, and nothing in the design holds or rotates that key. It ends up in environment files or code, every caller shares it, and a single leak runs up the vendor bill until someone notices. Put the key in a key-management component, or say it is held there with keyStore.
- Applies to: every node of kind ai-service
- Message: AI service '{{node.id}}' is called with an API key, the key is not held in a key-management component, and the design has none.

It fires when:

- all of these hold:
  - the node's `auth` is "api-key"
  - the node's `keyStore` is false
  - the node has at least one incoming edge from an app-server, worker or client
  - this does not hold:
    - the design contains a node of kind key-management

### Stateful node without zone redundancy `stateful-node-without-zone-redundancy` (error)

- Page: https://localhost:3000/catalogue/rules/stateful-node-without-zone-redundancy.md
- Why: A stateful compute node pinned to exactly one availability zone disappears with that zone, and its state goes with it. Nodes inside a cell are exempt, because there the cell is deliberately single-zone and redundancy comes from the other cells.
- Applies to: every node in category compute
- Message: Stateful node '{{node.id}}' lives in exactly one availability zone. A zone outage takes its state with it.

It fires when:

- all of these hold:
  - the node's `stateless` is false
  - the node sits inside exactly 1 availability-zone group
  - this does not hold:
    - the node sits inside at least one cell group

## Components · 126

### vendor-neutral

- [Generic AI service](https://localhost:3000/catalogue/components/ai-service.md) `ai-service` — the kind itself

### alibabacloud

- [Content Moderation](https://localhost:3000/catalogue/components/alibaba-content-moderation.md) `alibaba-content-moderation` — 3 defaults
- [Fraud Detection](https://localhost:3000/catalogue/components/alibaba-fraud-detection.md) `alibaba-fraud-detection` — 3 defaults
- [ID Verification](https://localhost:3000/catalogue/components/alibaba-id-verification.md) `alibaba-id-verification` — 3 defaults
- [Intelligent Robot](https://localhost:3000/catalogue/components/alibaba-intelligent-robot.md) `alibaba-intelligent-robot` — 2 defaults
- [Model Studio](https://localhost:3000/catalogue/components/alibaba-model-studio.md) `alibaba-model-studio` — 3 defaults
- [Smart Conversation Analysis](https://localhost:3000/catalogue/components/alibaba-smart-conversation-analysis.md) `alibaba-smart-conversation-analysis` — 2 defaults

### aws

- [Amazon Bedrock](https://localhost:3000/catalogue/components/aws-bedrock.md) `aws-bedrock` — 5 defaults
- [Amazon Bedrock AgentCore](https://localhost:3000/catalogue/components/aws-bedrock-agentcore.md) `aws-bedrock-agentcore` — 3 defaults
- [Amazon Bedrock Data Automation](https://localhost:3000/catalogue/components/aws-bedrock-data-automation.md) `aws-bedrock-data-automation` — 4 defaults
- [Amazon Bedrock Guardrails](https://localhost:3000/catalogue/components/aws-bedrock-guardrails.md) `aws-bedrock-guardrails` — 4 defaults
- [Amazon Comprehend](https://localhost:3000/catalogue/components/aws-comprehend.md) `aws-comprehend` — 5 defaults
- [Amazon Comprehend Medical](https://localhost:3000/catalogue/components/aws-comprehend-medical.md) `aws-comprehend-medical` — 6 defaults
- [AWS Elemental Inference](https://localhost:3000/catalogue/components/aws-elemental-inference.md) `aws-elemental-inference` — 3 defaults
- [Amazon Forecast](https://localhost:3000/catalogue/components/aws-forecast.md) `aws-forecast` — 5 defaults
- [Amazon Fraud Detector](https://localhost:3000/catalogue/components/aws-fraud-detector.md) `aws-fraud-detector` — 6 defaults
- [AWS HealthScribe](https://localhost:3000/catalogue/components/aws-healthscribe.md) `aws-healthscribe` — 5 defaults
- [Amazon Lex bot](https://localhost:3000/catalogue/components/aws-lex.md) `aws-lex` — 5 defaults
- [Amazon Lookout for Equipment](https://localhost:3000/catalogue/components/aws-lookout-for-equipment.md) `aws-lookout-for-equipment` — 5 defaults
- [Amazon Lookout for Metrics](https://localhost:3000/catalogue/components/aws-lookout-for-metrics.md) `aws-lookout-for-metrics` — 4 defaults
- [Amazon Lookout for Vision](https://localhost:3000/catalogue/components/aws-lookout-for-vision.md) `aws-lookout-for-vision` — 4 defaults
- [Amazon Personalize](https://localhost:3000/catalogue/components/aws-personalize.md) `aws-personalize` — 5 defaults
- [Amazon Polly](https://localhost:3000/catalogue/components/aws-polly.md) `aws-polly` — 6 defaults
- [Amazon Q Business](https://localhost:3000/catalogue/components/aws-q-business.md) `aws-q-business` — 5 defaults
- [Amazon Rekognition](https://localhost:3000/catalogue/components/aws-rekognition.md) `aws-rekognition` — 5 defaults
- [Amazon Textract](https://localhost:3000/catalogue/components/aws-textract.md) `aws-textract` — 5 defaults
- [Amazon Transcribe](https://localhost:3000/catalogue/components/aws-transcribe.md) `aws-transcribe` — 7 defaults
- [Amazon Translate](https://localhost:3000/catalogue/components/aws-translate.md) `aws-translate` — 6 defaults

### azure

- [Content Safety](https://localhost:3000/catalogue/components/azure-ai-content-safety.md) `azure-ai-content-safety` — 7 defaults
- [Azure AI Custom Vision](https://localhost:3000/catalogue/components/azure-ai-custom-vision.md) `azure-ai-custom-vision` — 6 defaults
- [Azure AI Face](https://localhost:3000/catalogue/components/azure-ai-face.md) `azure-ai-face` — 5 defaults
- [Azure Language](https://localhost:3000/catalogue/components/azure-ai-language.md) `azure-ai-language` — 6 defaults
- [Azure Speech](https://localhost:3000/catalogue/components/azure-ai-speech.md) `azure-ai-speech` — 5 defaults
- [Azure Translator](https://localhost:3000/catalogue/components/azure-ai-translator.md) `azure-ai-translator` — 5 defaults
- [Azure Vision](https://localhost:3000/catalogue/components/azure-ai-vision.md) `azure-ai-vision` — 5 defaults
- [Azure Content Understanding](https://localhost:3000/catalogue/components/azure-content-understanding.md) `azure-content-understanding` — 6 defaults
- [Microsoft Discovery](https://localhost:3000/catalogue/components/azure-discovery.md) `azure-discovery` — 2 defaults
- [Azure Document Intelligence](https://localhost:3000/catalogue/components/azure-document-intelligence.md) `azure-document-intelligence` — 5 defaults
- [Foundry Agent Service](https://localhost:3000/catalogue/components/azure-foundry-agent-service.md) `azure-foundry-agent-service` — 6 defaults
- [Foundry Models](https://localhost:3000/catalogue/components/azure-foundry-models.md) `azure-foundry-models` — 6 defaults
- [Azure AI Immersive Reader](https://localhost:3000/catalogue/components/azure-immersive-reader.md) `azure-immersive-reader` — 6 defaults
- [Azure OpenAI in Foundry Models](https://localhost:3000/catalogue/components/azure-openai.md) `azure-openai` — 6 defaults
- [Azure AI Video Indexer](https://localhost:3000/catalogue/components/azure-video-indexer.md) `azure-video-indexer` — 6 defaults

### default

- [AI21 API](https://localhost:3000/catalogue/components/ai21-api.md) `ai21-api` — 5 defaults
- [Aleph Alpha API](https://localhost:3000/catalogue/components/aleph-alpha-api.md) `aleph-alpha-api` — 2 defaults
- [Anthropic API](https://localhost:3000/catalogue/components/anthropic-api.md) `anthropic-api` — 6 defaults
- [AssemblyAI](https://localhost:3000/catalogue/components/assemblyai.md) `assemblyai` — 5 defaults
- [Baidu Qianfan](https://localhost:3000/catalogue/components/baidu-ernie-api.md) `baidu-ernie-api` — 6 defaults
- [Black Forest Labs API](https://localhost:3000/catalogue/components/black-forest-labs-api.md) `black-forest-labs-api` — 5 defaults
- [Bland AI](https://localhost:3000/catalogue/components/bland-ai.md) `bland-ai` — 4 defaults
- [Cartesia](https://localhost:3000/catalogue/components/cartesia.md) `cartesia` — 4 defaults
- [Cerebras Inference](https://localhost:3000/catalogue/components/cerebras-api.md) `cerebras-api` — 6 defaults
- [Cohere API](https://localhost:3000/catalogue/components/cohere-api.md) `cohere-api` — 6 defaults
- [Deepgram](https://localhost:3000/catalogue/components/deepgram.md) `deepgram` — 4 defaults
- [DeepInfra](https://localhost:3000/catalogue/components/deepinfra.md) `deepinfra` — 5 defaults
- [DeepSeek API](https://localhost:3000/catalogue/components/deepseek-api.md) `deepseek-api` — 5 defaults
- [ElevenLabs](https://localhost:3000/catalogue/components/elevenlabs.md) `elevenlabs` — 4 defaults
- [fal](https://localhost:3000/catalogue/components/fal-ai.md) `fal-ai` — 5 defaults
- [Fireworks AI](https://localhost:3000/catalogue/components/fireworks-ai.md) `fireworks-ai` — 4 defaults
- [GitHub Models](https://localhost:3000/catalogue/components/github-models.md) `github-models` — 4 defaults
- [Gladia](https://localhost:3000/catalogue/components/gladia.md) `gladia` — 4 defaults
- [Groq](https://localhost:3000/catalogue/components/groq.md) `groq` — 5 defaults
- [Hume AI](https://localhost:3000/catalogue/components/hume-ai.md) `hume-ai` — 4 defaults
- [Ideogram API](https://localhost:3000/catalogue/components/ideogram-api.md) `ideogram-api` — 4 defaults
- [Jina AI](https://localhost:3000/catalogue/components/jina-ai.md) `jina-ai` — 6 defaults
- [Lepton AI](https://localhost:3000/catalogue/components/lepton-ai.md) `lepton-ai` — 4 defaults
- [Luma Dream Machine API](https://localhost:3000/catalogue/components/luma-api.md) `luma-api` — 5 defaults
- [MiniMax API](https://localhost:3000/catalogue/components/minimax-api.md) `minimax-api` — 6 defaults
- [Mistral AI API](https://localhost:3000/catalogue/components/mistral-api.md) `mistral-api` — 5 defaults
- [Mixedbread](https://localhost:3000/catalogue/components/mixedbread-ai.md) `mixedbread-ai` — 5 defaults
- [Kimi Open Platform](https://localhost:3000/catalogue/components/moonshot-kimi-api.md) `moonshot-kimi-api` — 6 defaults
- [Nomic API](https://localhost:3000/catalogue/components/nomic-api.md) `nomic-api` — 4 defaults
- [Novita AI](https://localhost:3000/catalogue/components/novita-ai.md) `novita-ai` — 4 defaults
- [NVIDIA API Catalog](https://localhost:3000/catalogue/components/nvidia-nim-api.md) `nvidia-nim-api` — 4 defaults
- [OpenAI API](https://localhost:3000/catalogue/components/openai-api.md) `openai-api` — 6 defaults
- [OpenRouter](https://localhost:3000/catalogue/components/openrouter.md) `openrouter` — 5 defaults
- [Perplexity API](https://localhost:3000/catalogue/components/perplexity-api.md) `perplexity-api` — 5 defaults
- [PlayHT](https://localhost:3000/catalogue/components/playht.md) `playht` — 4 defaults
- [Recombee](https://localhost:3000/catalogue/components/recombee.md) `recombee` — 4 defaults
- [Reka API](https://localhost:3000/catalogue/components/reka-api.md) `reka-api` — 4 defaults
- [Replicate](https://localhost:3000/catalogue/components/replicate.md) `replicate` — 4 defaults
- [Retell AI](https://localhost:3000/catalogue/components/retell-ai.md) `retell-ai` — 4 defaults
- [Rev AI](https://localhost:3000/catalogue/components/rev-ai.md) `rev-ai` — 5 defaults
- [Rime](https://localhost:3000/catalogue/components/rime.md) `rime` — 4 defaults
- [Runway API](https://localhost:3000/catalogue/components/runway-api.md) `runway-api` — 4 defaults
- [SambaNova Cloud](https://localhost:3000/catalogue/components/sambanova-api.md) `sambanova-api` — 5 defaults
- [Speechmatics](https://localhost:3000/catalogue/components/speechmatics.md) `speechmatics` — 4 defaults
- [Stability AI API](https://localhost:3000/catalogue/components/stability-ai-api.md) `stability-ai-api` — 5 defaults
- [Synthflow](https://localhost:3000/catalogue/components/synthflow.md) `synthflow` — 4 defaults
- [Together AI](https://localhost:3000/catalogue/components/together-ai.md) `together-ai` — 5 defaults
- [Vapi](https://localhost:3000/catalogue/components/vapi.md) `vapi` — 4 defaults
- [Voyage AI](https://localhost:3000/catalogue/components/voyage-ai.md) `voyage-ai` — 4 defaults
- [Writer API](https://localhost:3000/catalogue/components/writer-api.md) `writer-api` — 7 defaults
- [xAI API](https://localhost:3000/catalogue/components/xai-api.md) `xai-api` — 6 defaults
- [Z.ai Open Platform](https://localhost:3000/catalogue/components/zhipu-glm-api.md) `zhipu-glm-api` — 4 defaults

### digitalocean

- [DigitalOcean Inference](https://localhost:3000/catalogue/components/digitalocean-inference.md) `digitalocean-inference` — 4 defaults

### gcp

- [Agent Assist](https://localhost:3000/catalogue/components/google-agent-assist.md) `google-agent-assist` — 4 defaults
- [Anti Money Laundering AI](https://localhost:3000/catalogue/components/google-anti-money-laundering-ai.md) `google-anti-money-laundering-ai` — 5 defaults
- [Cloud Natural Language API](https://localhost:3000/catalogue/components/google-cloud-natural-language.md) `google-cloud-natural-language` — 5 defaults
- [Cloud Translation API](https://localhost:3000/catalogue/components/google-cloud-translation.md) `google-cloud-translation` — 5 defaults
- [Cloud Vision API](https://localhost:3000/catalogue/components/google-cloud-vision.md) `google-cloud-vision` — 5 defaults
- [Conversational Insights](https://localhost:3000/catalogue/components/google-customer-experience-insights.md) `google-customer-experience-insights` — 4 defaults
- [Conversational Agents (Dialogflow CX)](https://localhost:3000/catalogue/components/google-dialogflow-cx.md) `google-dialogflow-cx` — 5 defaults
- [Dialogflow ES](https://localhost:3000/catalogue/components/google-dialogflow-es.md) `google-dialogflow-es` — 5 defaults
- [Document AI](https://localhost:3000/catalogue/components/google-document-ai.md) `google-document-ai` — 5 defaults
- [Firebase AI Logic](https://localhost:3000/catalogue/components/google-firebase-ai-logic.md) `google-firebase-ai-logic` — 3 defaults
- [Gemini API](https://localhost:3000/catalogue/components/google-gemini-api.md) `google-gemini-api` — 6 defaults
- [Gemini Enterprise](https://localhost:3000/catalogue/components/google-gemini-enterprise.md) `google-gemini-enterprise` — 4 defaults
- [Speech-to-Text](https://localhost:3000/catalogue/components/google-speech-to-text.md) `google-speech-to-text` — 5 defaults
- [Telecom Subscriber Insights](https://localhost:3000/catalogue/components/google-telecom-subscriber-insights.md) `google-telecom-subscriber-insights` — 4 defaults
- [Text-to-Speech](https://localhost:3000/catalogue/components/google-text-to-speech.md) `google-text-to-speech` — 5 defaults
- [Vertex AI RAG Engine](https://localhost:3000/catalogue/components/google-vertex-ai-rag-engine.md) `google-vertex-ai-rag-engine` — 4 defaults
- [Video Intelligence API](https://localhost:3000/catalogue/components/google-video-intelligence.md) `google-video-intelligence` — 5 defaults

### ibm

- [IBM Watson Natural Language Understanding](https://localhost:3000/catalogue/components/ibm-natural-language-understanding.md) `ibm-natural-language-understanding` — 3 defaults
- [IBM Watson Speech to Text](https://localhost:3000/catalogue/components/ibm-watson-speech-to-text.md) `ibm-watson-speech-to-text` — 3 defaults
- [IBM Watson Text to Speech](https://localhost:3000/catalogue/components/ibm-watson-text-to-speech.md) `ibm-watson-text-to-speech` — 3 defaults
- [IBM watsonx Assistant](https://localhost:3000/catalogue/components/ibm-watsonx-assistant.md) `ibm-watsonx-assistant` — 3 defaults
- [IBM watsonx Code Assistant](https://localhost:3000/catalogue/components/ibm-watsonx-code-assistant.md) `ibm-watsonx-code-assistant` — 3 defaults
- [IBM watsonx Orchestrate](https://localhost:3000/catalogue/components/ibm-watsonx-orchestrate.md) `ibm-watsonx-orchestrate` — 3 defaults

### oci

- [OCI AI Language](https://localhost:3000/catalogue/components/oci-ai-language.md) `oci-ai-language` — 4 defaults
- [OCI Speech](https://localhost:3000/catalogue/components/oci-ai-speech.md) `oci-ai-speech` — 5 defaults
- [OCI Vision](https://localhost:3000/catalogue/components/oci-ai-vision.md) `oci-ai-vision` — 5 defaults
- [Oracle Digital Assistant](https://localhost:3000/catalogue/components/oci-digital-assistant.md) `oci-digital-assistant` — 4 defaults
- [OCI Document Understanding](https://localhost:3000/catalogue/components/oci-document-understanding.md) `oci-document-understanding` — 5 defaults
- [OCI Generative AI](https://localhost:3000/catalogue/components/oci-generative-ai.md) `oci-generative-ai` — 4 defaults
- [OCI Generative AI Agents](https://localhost:3000/catalogue/components/oci-generative-ai-agents.md) `oci-generative-ai-agents` — 4 defaults

## Source (`kind` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../schema/kind.schema.json
# A metered vendor endpoint with quota, content filtering and data-handling settings, unlike ml-inference which is a model you deploy on replicas you size. contentFiltering, publicEndpoint, dataRetentionDays and auth have no default so governance rules can catch what was never declared; keyStore and viaGateway say whether the key sits in a key-management component and whether calls pass an AI gateway.
schemaVersion: "1"
type: "kind"
id: "ai-service"
category: "compute"
properties:
  modality:
    type: "enum"
    values: ["text", "vision", "speech", "multimodal", "structured", "image", "video", "audio", "embedding", "rerank"]
  contentFiltering:
    type: "boolean"
  publicEndpoint:
    type: "boolean"
  dataRetentionDays:
    type: "integer"
  customerManagedKeys:
    type: "boolean"
  quotaUnitsPerMinute:
    type: "integer"
  auth:
    type: "enum"
    values: ["api-key", "oauth", "iam", "none"]
  keyStore:
    type: "boolean"
    default: false
  viaGateway:
    type: "boolean"
    default: false
  rateLimitRpm:
    type: "integer"
    advanced: true
  rateLimitTpm:
    type: "integer"
    advanced: true
  dataResidency:
    type: "enum"
    values: ["us", "eu", "asia", "global"]
    advanced: true
  managed:
    type: "boolean"
    default: false
```

Human page: https://localhost:3000/catalogue/kinds/ai-service
