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

# Generate AI-suggested default values for prompt variables

> Uses an LLM to generate default values for variables that have an `aiDefaultHint`.
Called by `VariableFillDialog` when rendering an ephemeral or saved prompt template.




## OpenAPI

````yaml /api-reference/openapi.json post /prompts/ai-defaults
openapi: 3.0.3
info:
  title: Findable API
  version: 3.2.38
  description: >
    REST API for the Findable AI Assistant platform.


    ## Authentication


    All endpoints (except `/server/setup` and `/server/bootstrap`) require a
    valid **Azure AD / Entra ID Bearer token**.


    ### Obtaining a token


    1. Register (or reuse) an **App Registration** in Azure Entra ID for your
    client.

    2. Under **API Permissions**, add a delegated permission for the Findable
    server app:
       `api://<SERVER_CLIENT_ID>/User.Read`
    3. Acquire a token using MSAL (or any OAuth 2.0 library) with the following
    parameters:


    | Parameter | Value |

    |-----------|-------|

    | Authority | `https://login.microsoftonline.com/<TENANT_ID>` |

    | Client ID | Your client app registration ID |

    | Scope | `api://<SERVER_CLIENT_ID>/User.Read` |

    | Grant type | Authorization Code (interactive) or Client Credentials
    (daemon) |


    ### Example (MSAL Node.js)


    ```javascript

    const { ConfidentialClientApplication } = require("@azure/msal-node");


    const cca = new ConfidentialClientApplication({
      auth: {
        clientId: "<YOUR_CLIENT_ID>",
        authority: "https://login.microsoftonline.com/<TENANT_ID>",
        clientSecret: "<YOUR_CLIENT_SECRET>",
      },
    });


    const result = await cca.acquireTokenByClientCredential({
      scopes: ["api://<SERVER_CLIENT_ID>/.default"],
    });


    // Use result.accessToken in the Authorization header

    ```


    ### Using the token


    Include the token in every request:

    ```

    Authorization: Bearer <access_token>

    ```


    ### Roles


    Access is determined by Azure AD group membership configured in the
    application settings:

    - **Admin (Owner)**: Full access to all endpoints including admin operations

    - **Contributor**: Can create and manage chats, files, and content

    - **User**: Read access to entitled chats and resources
  contact:
    name: Findable Support
  license:
    name: Proprietary
servers:
  - url: /server
    description: Application server (relative)
security:
  - BearerAuth: []
tags:
  - name: AI
    description: Chat completion and AI generation endpoints
  - name: Chats
    description: Chat configuration CRUD with ACL enforcement
  - name: Settings
    description: Application settings and health
  - name: Files
    description: Blob storage file operations
  - name: Search
    description: Azure AI Search resource management
  - name: User
    description: User profile, feedback, chat logs, and preferences
  - name: Flows
    description: FlowEngine flow designer operations
  - name: Prompts
    description: Prompt template management
  - name: Pages
    description: Navigation page management
  - name: Admin
    description: Administrative operations (admin-only)
  - name: Bootstrap
    description: Bootstrap seed data operations (admin-only)
  - name: Setup
    description: Initial application setup (pre-auth)
  - name: Cosmos
    description: Generic Cosmos DB CRUD operations
  - name: Tools
    description: Tool providers, web search, and utility tools
  - name: MCP
    description: Model Context Protocol server management
  - name: Telemetry
    description: Version, health, and API permission checks
  - name: SharePoint
    description: SharePoint entitlement management
  - name: Data Platform
    description: Data platform connection management
  - name: Vector Stores
    description: Vector store provider operations
  - name: OneDrive
    description: OneDrive personal file storage operations
  - name: Jobs
    description: Background job and scheduler management
  - name: Memory
    description: User and organizational memory operations
  - name: Slack
    description: >-
      Slack bot interactions and webhooks (public, uses Slack signature
      verification)
  - name: Teams
    description: Microsoft Teams bot webhooks and interactions
  - name: Human Input
    description: Human-in-the-loop input requests for flow executions
  - name: Datasources
    description: Datasource catalog CRUD with ACL enforcement
  - name: Assignments
    description: >-
      Assignment lifecycle: inbox, sent, create, launch, complete, delegate,
      reject, reassign, remind, and recurring schedules. Experimental feature —
      requires experimental flag enabled.
paths:
  /prompts/ai-defaults:
    post:
      tags:
        - Prompts
      summary: Generate AI-suggested default values for prompt variables
      description: >
        Uses an LLM to generate default values for variables that have an
        `aiDefaultHint`.

        Called by `VariableFillDialog` when rendering an ephemeral or saved
        prompt template.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - variables
              properties:
                variables:
                  type: array
                  items:
                    $ref: '#/components/schemas/PromptVariable'
                  description: Variables with aiDefaultHint to generate defaults for
                chatId:
                  type: string
                  description: Optional chat ID for context
                resolvedOptions:
                  type: object
                  description: Pre-resolved option lists keyed by variable name
                chatContext:
                  type: object
                  description: Recent chat messages for contextual defaults
      responses:
        '200':
          description: AI-generated defaults
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  defaults:
                    type: object
                    description: Map of variable name to suggested default value
        '400':
          description: Missing or invalid variables array
        '401':
          description: Not authenticated
components:
  schemas:
    PromptVariable:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        type:
          default: text
          type: string
          enum:
            - text
            - multiline
            - number
            - select
            - multiselect
            - boolean
            - date
            - file
            - principal
            - range
            - hierarchy
            - datetime
            - time
            - hidden
            - password
            - table
            - repeater
        label:
          type: string
        placeholder:
          type: string
        helperText:
          type: string
        required:
          type: boolean
        defaultValue:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: array
              items:
                type: string
        options:
          type: array
          items:
            anyOf:
              - type: string
              - type: object
                properties:
                  group:
                    type: string
                    minLength: 1
                  items:
                    minItems: 1
                    type: array
                    items:
                      type: string
                required:
                  - group
                  - items
                additionalProperties: false
              - type: object
                properties:
                  value:
                    type: string
                  label:
                    type: string
                  description:
                    type: string
                  icon:
                    type: string
                  disabled:
                    type: boolean
                required:
                  - value
                additionalProperties: false
        min:
          type: number
        max:
          type: number
        step:
          type: number
        rows:
          type: number
        validation:
          type: string
          enum:
            - none
            - email
            - url
            - phone
            - ipv4
            - ipv6
            - subnet
            - uuid
            - alphanumeric
            - numeric
            - custom
        pattern:
          type: string
        patternMessage:
          type: string
        minLength:
          type: number
        maxLength:
          type: number
        mask:
          type: string
        allowUsers:
          type: boolean
        allowGroups:
          type: boolean
        multiple:
          type: boolean
        accept:
          type: string
        maxFileSize:
          type: number
        maxFiles:
          type: number
        variant:
          type: string
          enum:
            - default
            - radio
            - chips
            - buttons
        width:
          type: string
          enum:
            - full
            - half
            - third
            - quarter
        order:
          type: number
        group:
          type: string
        disabled:
          type: boolean
        readonly:
          type: boolean
        conditionals:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
                minLength: 1
              operator:
                type: string
                enum:
                  - equals
                  - not_equals
                  - contains
                  - not_contains
                  - greater_than
                  - less_than
                  - is_empty
                  - is_not_empty
                  - in
                  - not_in
              value: {}
              action:
                type: string
                enum:
                  - show
                  - hide
                  - require
                  - disable
                  - enable
            required:
              - field
              - operator
              - action
            additionalProperties: false
        allowOther:
          type: boolean
        promptTemplateId:
          type: string
        minItems:
          type: number
        maxItems:
          type: number
      required:
        - name
        - type
      additionalProperties: false
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Azure AD access token obtained via MSAL

````