> ## Documentation Index
> Fetch the complete documentation index at: https://docs.elementum.io/llms.txt
> Use this file to discover all available pages before exploring further.

# AI Services

> Create and manage AI services for LLMs and embeddings using your configured providers

export const permission_0 = "Only users with the Admin role can create, edit, or manage AI Services."

## What Are AI Services?

AI Services are specific AI model instances that you configure for use in your workflows. While AI Providers establish connections to external AI platforms, AI Services define the actual models, settings, and configurations that power your AI features.

<Info>
  **Prerequisites**: You must have at least one AI Provider configured before creating AI Services. See the [AI Overview](/ai-agents/ai-overview#ai-providers) for setup instructions.
</Info>

<Callout icon="shield-halved" color="#8B5CF6" iconType="solid">
  **Required Permission:** {permission_0}
</Callout>

## Types of AI Services

Elementum supports two types of AI Services:

* **LLM Services** -- Language models for text generation, conversation, and analysis. Used for [agents](/ai-agents/agents-experience), [automation actions](/ai-agents/ai-automations), and content generation.
* **Embedding Services** -- Embedding models for semantic search and similarity analysis. Used in [AI Search](/ai-agents/ai-search) to convert data into vector representations for semantic querying.

## Prerequisites

Before creating services, you need at least one configured AI provider. Provider setup is covered on its own page per provider; once your provider is saved in **Organization Settings → Providers**, return here to create services.

<CardGroup cols={2}>
  <Card title="OpenAI" icon="brain" href="/ai-agents/openai-setup">
    Connect OpenAI as a provider
  </Card>

  <Card title="Anthropic" icon="bot" href="/ai-agents/anthropic-setup">
    Connect Anthropic for direct Claude access
  </Card>

  <Card title="Snowflake Cortex" icon="snowflake" href="/ai-agents/snowflake-cortex-setup">
    Connect Snowflake Cortex for LLM and embedding services
  </Card>

  <Card title="Google Gemini" icon="sparkles" href="/ai-agents/gemini-setup">
    Connect Vertex AI Gemini
  </Card>

  <Card title="Amazon Bedrock" icon="aws" href="/ai-agents/bedrock-setup">
    Connect Bedrock-hosted models
  </Card>

  <Card title="Custom Provider" icon="plug" href="#configure-a-custom-provider">
    Connect any OpenAI-compatible endpoint (configured below)
  </Card>
</CardGroup>

<Warning>
  **Only verified domain users can configure AI Providers.** Elementum employees cannot create or modify AI Providers or Models in any customer org. See the [AI FAQ](/support/faq/faq-ai) for compliance details.
</Warning>

<Warning>
  **CloudLink type matters.** AI services are not supported on [API CloudLinks](/administration/connect-rest-api-cloudlink). They require a data-warehouse CloudLink such as a [Snowflake CloudLink](/administration/connect-snowflake-to-elementum) (with key-pair authentication for Cortex features).
</Warning>

## Configure a Custom Provider

Use the **Custom** provider type to connect any OpenAI-compatible endpoint, including LLM gateways, proxies, and self-hosted models. Once configured, a custom provider can be used across agents and automations just like any built-in provider.

1. In **AI Services**, click **+ Connect Provider** and choose **Custom**
2. Enter a **Name** to identify the provider in Elementum
3. Enter the **URL** of the OpenAI-compatible endpoint
4. Select the connection type from the dropdown:
   * **API Key** -- Provide a static API key issued by your endpoint
   * **OAuth Credentials** -- Provide the OAuth Client Credentials (client ID, client secret, and token URL) used to obtain a bearer token
5. Enter the required credentials for the connection type you selected
6. Click **Save**

Once the custom provider is configured, click **+ Add Models** on the provider to add any model identifier exposed by the endpoint. Custom-provider models then appear in the model dropdown when creating an LLM Service.

<Note>
  The endpoint must implement the OpenAI Chat Completions API contract. Capabilities available to a custom-provider model (such as structured output, multimodal input, or reasoning) depend on what the underlying endpoint supports.
</Note>

## Manage Providers

Once a provider is connected, click on it in the **Providers** tab to:

* View connection details and status
* Edit the provider configuration or credentials
* Delete the provider
* Click **+ Add Models** to make additional models from this provider available to your services

## Configure Provider Failover

Configure one or more backup providers so traffic automatically reroutes if the primary provider is unreachable. No user action is required during an outage.

**Prerequisites:**

* At least two configured AI Providers of compatible model families.
* Each provider must have active, tested credentials.

**Configuration steps:**

1. On the **Providers** tab, open the dropdown for the desired provider and click the <img src="https://mintcdn.com/elementum/2l5Do6DqmydOnWm-/images/icons/file-text.png?fit=max&auto=format&n=2l5Do6DqmydOnWm-&q=85&s=c6d67963ed7933d5dda6389f09f6f020" alt="Provider Details icon" className="inline-ui-icon" width="24" height="24" data-path="images/icons/file-text.png" /> **Provider Details** icon.
2. Click the <img src="https://mintcdn.com/elementum/WBtBRoedx7pT-MEg/images/icons/pencil.png?fit=max&auto=format&n=WBtBRoedx7pT-MEg&q=85&s=c1d9879f4dee19013fd2fde270735e6d" alt="Edit icon" className="inline-ui-icon" width="24" height="24" data-path="images/icons/pencil.png" /> **Edit** icon next to **Backup Providers**.
3. Select a provider to use in case of failover. Choose multiple to ensure several options are available.
4. Click **Save**.

**Behavior notes:**

* Failover is automatic — no user action is required during an outage.
* Only providers whose status is **Active** are eligible targets.
* Failover applies to all features consuming the primary provider (agents, search, summarization, and so on).
* When the primary provider recovers, new requests resume routing to it.

## Migrate a Model Across the Organization

Replace any AI model with a different model in a single action. Every automation action and agent that references the source model switches over automatically, so you don't need to update each one individually.

**Configuration steps:**

1. On the **Providers** tab, click the dropdown next to the service whose model you want to replace.
2. Click the <img src="https://mintcdn.com/elementum/Ts84_BaenlwunTfe/images/icons/arrow-left-right.png?fit=max&auto=format&n=Ts84_BaenlwunTfe&q=85&s=154976ecd83ca5e45d63a49ea066b485" alt="Replace Model icon" className="inline-ui-icon" width="24" height="24" data-path="images/icons/arrow-left-right.png" /> **Replace Model** icon.
3. Select the new model from the dropdown.

   <Note>The popup lists every automation that uses the current model so you can review the impact before confirming.</Note>
4. Click **Replace**.

**Behavior notes:**

* The migration runs in the background and can take time when many automations reference the source model. Track progress under **Background tasks**.
* Agents and automation actions referencing the source model are updated in place — you don't need to reopen and republish each one.

## Create AI Services

To create a service:

1. Navigate to the **AI Services** page and open the **Services** tab.
2. Click **+ Service** and choose the service type—**LLM** for language models or **Embedding** for AI Search.
3. Configure the fields described below for the service type you selected.
4. Click **Save**. New services appear in the **Services** tab and can be [tested](#test-services) before assignment.

### Create an LLM Service

LLM Services power conversational AI, text generation, and intelligent automation.

<Tabs>
  <Tab title="Service Configuration">
    **Service Name**: Give your service a descriptive name (e.g., "Customer Support Bot")

    **Provider**: Select your configured AI Provider

    **Model**: Choose from available models for your provider. See [AI Models](/ai-agents/ai-models) for a detailed comparison of capabilities, use cases, and pricing considerations across all providers.

    **Cost Per Million Tokens**: Optional cost tracking (varies by provider)
  </Tab>

  <Tab title="Advanced Settings">
    **Temperature**: Controls randomness and creativity of responses (0.0–1.0). Lower values produce more deterministic, consistent outputs; higher values produce more varied, creative responses. Set to 0.0–0.3 for automation tasks like classification where consistency matters.

    **Reasoning Effort**: Controls how much computational effort the model invests in internal reasoning before responding (minimal/low/medium/high)

    * Use **minimal** for simple lookups and straightforward answers
    * Use **low** for basic reasoning tasks and simple problem solving
    * Use **medium** for moderate analytical tasks requiring multi-step reasoning (default)
    * Use **high** for complex problem solving, mathematical proofs, multi-step logic, and detailed analysis

    **Max Tokens**: Maximum response length

    **Top P**: Controls diversity of responses (nucleus sampling)

    **Frequency Penalty**: Reduces repetition in responses

    **Presence Penalty**: Encourages topic diversity

    **Stop Sequences**: Custom stop sequences for response control

    For use-case-specific tuning recommendations (e.g., optimal temperature for classification vs. content generation), see the [Temperature Settings](/ai-agents/ai-models#temperature-settings) and [Performance Optimization](/ai-agents/ai-models#performance-optimization) sections on the AI Models page.
  </Tab>
</Tabs>

### Create an Embedding Service

Embedding Services enable [AI Search](/ai-agents/ai-search) and semantic understanding.

<Tabs>
  <Tab title="Service Configuration">
    **Service Name**: Descriptive name (e.g., "Document Search Embeddings")

    **Provider**: Select your configured AI Provider

    **Model**: Choose from available embedding models:

    * **Snowflake Arctic L V2.0** -- Latest high-quality embeddings
    * **Snowflake Arctic M V1.5** -- Reliable embeddings for production use

    **Dimensions**: Embedding vector size (varies by model)
  </Tab>

  <Tab title="Configuration Options">
    **Batch Size**: Number of texts to process simultaneously

    **Chunk Size**: Maximum text length per embedding

    **Overlap**: Text overlap between chunks (for long documents)

    **Normalization**: Whether to normalize embedding vectors

    **Encoding**: Text encoding method (usually UTF-8)
  </Tab>
</Tabs>

## Assign to Features

Assign AI models to Elementum features at the organization level so those features have a default model available across your workflows.

1. Navigate to the **AI Services** page and click the **Features** tab
2. Click **+ Assign Model** next to a feature and select a model from the dropdown
3. Click **Save**

To update an existing assignment, click **Change** next to the currently assigned model, select a new model from the dropdown, and click **Save**.

<Note>
  The dropdown for each feature only lists models that Elementum has enabled for that feature. This is why the model list can differ between features -- for example, between **Transform Data with AI** and **AI Classification** -- even when both features use models from the same providers. Enablement is managed by Elementum's engineering team based on how well each model fits the feature's task; it is not something admins configure per model or per service. For more detail on this behavior in automation actions, see [Model Availability Across AI Actions](/ai-agents/ai-automations#model-availability-across-ai-actions).
</Note>

***

## Test Services

Before using AI Services in production, test them from the Services list:

1. Click on a service name to open the testing interface
2. For **LLM Services**: enter sample prompts, review AI-generated responses, adjust parameters, and monitor response times
3. For **Embedding Services**: enter sample text, review generated embedding vectors, and test similarity calculations between texts

## Manage and Optimize

Once your services are created and tested, keep the following in mind:

* **Model selection** -- The right model depends on your use case. For recommendations by task type (agents, classification, content generation, semantic search) and guidance on balancing cost and performance, see the [Model Selection Guide](/ai-agents/ai-models#model-selection-guide).
* **Cost optimization** -- Right-size your model choices, write concise prompts, and set appropriate token limits to control spending. See [Cost Optimization](/ai-agents/ai-models#cost-optimization) for detailed strategies.
* **Multiple providers** -- You can configure services across different providers for redundancy or to use different model strengths for different tasks. See [AI Providers](/ai-agents/ai-overview#ai-providers) for setup details.
* **Feature-specific guidance** -- For details on how AI Services integrate with specific capabilities, see [AI in Automations](/ai-agents/ai-automations) for automation actions, [Building Agents](/ai-agents/agents-experience) for conversational agents, and [AI Search](/ai-agents/ai-search) for embedding-powered search.

## Troubleshooting

<Accordion title="Service Creation Failures">
  **Symptoms:** Cannot create new AI services

  **Common Causes:**

  * AI Provider not configured
  * Invalid model selection
  * Insufficient permissions

  **Solutions:**

  1. Verify AI Provider is properly configured
  2. Check model availability for your provider
  3. Ensure proper permissions are granted
  4. Try creating with different model options
</Accordion>

<Accordion title="Poor Performance">
  **Symptoms:** Slow response times or quality issues

  **Common Causes:**

  * Inappropriate model selection
  * Suboptimal configuration
  * Network or provider issues

  **Solutions:**

  1. Review model selection for your use case
  2. Optimize service configuration settings
  3. Check provider status and network connectivity
  4. Consider switching to different models
</Accordion>

<Accordion title="High Costs">
  **Symptoms:** Unexpected high token usage or costs

  **Common Causes:**

  * Inefficient prompts or queries
  * Inappropriate model selection
  * Excessive API calls

  **Solutions:**

  1. Review and optimize prompts
  2. Use more cost-effective models where appropriate
  3. Implement caching and batching
  4. Monitor and analyze usage patterns
</Accordion>

## Next Steps

<CardGroup cols={2}>
  <Card title="AI Models" icon="chart-bar" href="/ai-agents/ai-models">
    Compare models across providers to choose the right one for your use case
  </Card>

  <Card title="Enable AI Search" icon="search" href="/ai-agents/ai-search">
    Use embedding services to power semantic search across your data
  </Card>

  <Card title="Build Agents" icon="robot" href="/ai-agents/agents-experience">
    Create conversational AI assistants using your LLM services
  </Card>

  <Card title="AI in Automations" icon="wand-sparkles" href="/ai-agents/ai-automations">
    Add AI-driven actions to your automation workflows
  </Card>
</CardGroup>
