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

# Azure OpenAI Prompt

export const ComponentMetadata = ({warehouses, unsupportedWarehouses = [], componentType, connectionInputs, connectionOutputs}) => {
  const allWarehouses = [...warehouses.map(w => ({
    name: w,
    supported: true
  })), ...unsupportedWarehouses.map(w => ({
    name: w,
    supported: false
  }))];
  return <div style={{
    background: 'var(--colors-background-light, #f9fafb)',
    border: '1px solid var(--colors-border-default, #e5e7eb)',
    borderRadius: '12px',
    padding: '20px 28px',
    marginBottom: '28px',
    boxShadow: '0 1px 4px rgba(0,0,0,0.10)'
  }}>
      <table style={{
    width: '100%',
    borderCollapse: 'collapse'
  }}>
        <tbody>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle',
    width: '180px'
  }}>Project Availability</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>
              <div style={{
    display: 'flex',
    flexWrap: 'wrap',
    gap: '8px'
  }}>
                {allWarehouses.map((w, i) => <span key={i} style={{
    background: w.supported ? '#dcfce7' : '#fee2e2',
    color: w.supported ? '#15803d' : '#b91c1c',
    border: `1px solid ${w.supported ? '#bbf7d0' : '#fca5a5'}`,
    borderRadius: '9999px',
    padding: '3px 12px',
    fontSize: '0.85rem',
    fontWeight: '500',
    whiteSpace: 'nowrap'
  }}>
                    {w.name} {w.supported ? '✅' : '❌'}
                  </span>)}
              </div>
            </td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Component Type</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>{componentType}</td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    paddingBottom: '14px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Connection Inputs</td>
            <td style={{
    paddingBottom: '14px',
    verticalAlign: 'middle'
  }}>{connectionInputs}</td>
          </tr>
          <tr>
            <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    whiteSpace: 'nowrap',
    verticalAlign: 'middle'
  }}>Connection Outputs</td>
            <td style={{
    verticalAlign: 'middle'
  }}>{connectionOutputs}</td>
          </tr>
        </tbody>
      </table>
    </div>;
};

<Info>
  Production use of this feature is available for specific editions only. [Contact our sales team](https://www.matillion.com/contact) for more information.
</Info>

<ComponentMetadata warehouses={["Snowflake", "Databricks", "Amazon Redshift"]} unsupportedWarehouses={["BigQuery"]} componentType="Orchestration" connectionInputs="One" connectionOutputs="Unlimited" />

The Azure OpenAI Prompt component uses a large language model (LLM) to provide responses to user-composed prompts. The component takes one or more inputs from your source table, combines the inputs with user prompts, and sends this data to the LLM for processing.

You can configure the component to output the results as either a text value or a JSON object. The results will be stored—along with other metadata—in a destination table on your cloud data warehouse.

We recommend that you read [Introduction to prompt engineering](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/prompt-engineering) if you are new to prompt engineering.

* [OpenAI Prompt](/docs/components/openai-prompt)
* [Amazon Bedrock Prompt](/docs/components/amazon-bedrock-prompt)
* [Vertex AI Prompt](/docs/components/vertex-ai-prompt)

***

## Video example

<iframe width="560" height="315" src="https://www.youtube.com/embed/8M8_X4kUtqw?si=So2SMN2ocQWVrBfK&enablejsapi=1" title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" referrerPolicy="strict-origin-when-cross-origin" allowFullScreen />

***

## Properties

Reference material is provided below for the Connect, Source, Configure, Destination, and RAG properties.

<ResponseField name="Name" type="string" required>
  A human-readable name for the component.
</ResponseField>

### Connect

<ResponseField name="Endpoint" type="string" required>
  URL endpoint denoting access to your Azure OpenAI deployment. You can find this in the **Keys & Endpoint** section when examining your resources in the Azure portal. Example: `https://docs-test-001.openai.azure.com/`.
</ResponseField>

{/* <!-- param-start:[azure.deploymentName] | warehouses: [snowflake, databricks, redshift] --> */}

<ResponseField name="Deployment Name" type="string" required>
  The name of your Azure deployment model. For example, `GPT-Turbo`.
</ResponseField>

{/* <!-- param-start:[azure.apiKey] | warehouses: [snowflake, databricks, redshift] --> */}

<ResponseField name="API Key" type="string" required>
  Use the drop-down menu to select the corresponding secret definition that denotes the value of your OpenAI API key. Read [Secrets and secret definitions](/docs/guides/secrets-and-secret-definitions) to learn how to create a new secret definition.

  You can find your keys in the **Keys & Endpoint** section when examining your resources in the Azure portal. Use the value of either KEY1 or KEY2.
</ResponseField>

{/* <!-- param-start:[azure.temperature] | warehouses: [snowflake, databricks, redshift] --> */}

<ResponseField name="Temperature" type="floating point number" required>
  Set the input temperature. Accepts decimal values between 0 and 2. Higher values command the model to take more risks. Microsoft's documentation for Azure OpenAI suggests the following:

  > *Try 0.9 for more creative applications, and 0 for ones with a well-defined answer.*
</ResponseField>

{/* <!-- param-start:[azure.topP] | warehouses: [snowflake, databricks, redshift] --> */}

<ResponseField name="Top P" type="floating point number" required>
  An alternative method to sampling with "temperature" called "nucleus sampling". The model "considers" the results of the tokens, with `top_p` probability mass. Therefore, 0.1 means that only tokens comprising the top 10% of probability mass would be considered.

  We recommend altering Top P *or* Temperature, but *not* both.
</ResponseField>

{/* <!-- param-start:[azure.n] | warehouses: [snowflake, databricks, redshift] --> */}

<ResponseField name="N" type="integer" required>
  You can choose to generate more than one response for your input data when the output is JSON. This parameter can quickly consume your token quota—use carefully. Default is 1.
</ResponseField>

{/* <!-- param-start:[azure.maxTokens] | warehouses: [snowflake, databricks, redshift] --> */}

<ResponseField name="Max Tokens" type="integer" required>
  The maximum number of tokens to process. Each model has its own maximum token allowance, and this must be considered. Most models have a context length of 2048 tokens (except for the newest models, which support 4096).
</ResponseField>

### Source

Select your cloud data warehouse.

<Tabs>
  <Tab title="Snowflake">
    <ResponseField name="Database" type="drop-down" required>
      The Snowflake *source* database. The special value `[Environment Default]` uses the database defined in the environment. Read [Databases, Tables and Views - Overview](https://docs.snowflake.com/en/guides-overview-db) to learn more.
    </ResponseField>

    {/* <!-- param-start:[source.snowflake.schema] | warehouses: [snowflake] --> */}

    <ResponseField name="Schema" type="drop-down" required>
      The Snowflake *source* schema. The special value `[Environment Default]` uses the schema defined in the environment. Read [Database, Schema, and Share DDL](https://docs.snowflake.com/en/sql-reference/ddl-database.html) to learn more.
    </ResponseField>

    {/* <!-- param-start:[source.snowflake.table] | warehouses: [snowflake] --> */}

    <ResponseField name="Table" type="drop-down" required>
      An existing Snowflake table to use as the input.
    </ResponseField>
  </Tab>

  <Tab title="Databricks">
    <ResponseField name="Catalog" type="drop-down" required>
      Select a *source* [Databricks Unity Catalog](https://docs.databricks.com/en/data-governance/unity-catalog/index.html). The special value `[Environment Default]` uses the catalog defined in the environment. Selecting a catalog will determine which databases are available in the next parameter.
    </ResponseField>

    {/* <!-- param-start:[source.databricks.schema] | warehouses: [databricks] --> */}

    <ResponseField name="Schema (Database)" type="drop-down" required>
      The Databricks *source* schema. The special value `[Environment Default]` uses the schema defined in the environment. Read [Create and manage schemas](https://docs.databricks.com/en/data-governance/unity-catalog/create-schemas.html) to learn more.
    </ResponseField>

    {/* <!-- param-start:[source.databricks.table] | warehouses: [databricks] --> */}

    <ResponseField name="Table" type="drop-down" required>
      An existing Databricks table to use as the input.
    </ResponseField>
  </Tab>

  <Tab title="Amazon Redshift">
    <ResponseField name="Schema" type="drop-down" required>
      The Amazon Redshift *source* schema. The special value `[Environment Default]` uses the schema defined in the environment. Read [Schemas](https://docs.aws.amazon.com/redshift/latest/dg/r_Schemas_and_tables.html) to learn more.
    </ResponseField>

    {/* <!-- param-start:[source.redshift.table] | warehouses: [redshift] --> */}

    <ResponseField name="Table" type="drop-down" required>
      An existing Redshift table to use as the input.
    </ResponseField>
  </Tab>
</Tabs>

<ResponseField name="Key Column" type="drop-down" required>
  Set a column as the primary key. Join the results back to the input table.
</ResponseField>

{/* <!-- param-start:[source.snowflake.limit, source.redshift.limit, source.databricks.limit] | warehouses: [snowflake, databricks, redshift] --> */}

<ResponseField name="Limit" type="integer" required>
  Set a limit for the numbers of rows from the table to load. The default is 1000.
</ResponseField>

### Configure

<ResponseField name="User Context" type="text editor" required>
  Provide your prompt. When **Output Format** is TEXT, this property is where you must specify all of the questions that you wish the LLM to provide answers to.

  Prompts should define the following information:

  * A persona. Who or what should the model impersonate when contextualizing their generative responses?
  * A context. Contextualize the situation for the model to enhance its responses.
  * A tone. What kind of language do you want the model to use?

  Providing an example output may improve performance.
</ResponseField>

{/* <!-- param-start:[promptContext.inputs] | warehouses: [snowflake, databricks, redshift] --> */}

<ResponseField name="Inputs" type="column editor" required>
  Select the source columns to feed as input to the prompt component.

  * **Column Name:** A column from the input table.
  * **Descriptive Name:** An alternate descriptive name to better contextualize the column. Recommended if your column names are low-context.
</ResponseField>

{/* <!-- param-start:[promptContext.outputFormat] | warehouses: [snowflake, databricks, redshift] --> */}

<ResponseField name="Output Format" required>
  Choose TEXT or JSON. Choosing JSON will activate an additional property, **Outputs**.
</ResponseField>

{/* <!-- param-start:[promptContext.outputs] | warehouses: [snowflake, databricks, redshift] --> */}

<ResponseField name="Outputs" type="column editor" required>
  JSON only.

  Define the output columns the prompt component will generate.

  * **Output:** Key of a `key:value` JSON pair. For example, an output might be "review\_score".
  * **Context:** Text that defines the output you expect the model to provide—that is, some task for the model to perform. For example, "Give a score between 0 and 10 on the level of satisfaction you feel in the user's review where 0 is completely dissatisfied and 10 is extremely satisfied." You may wish to use this parameter to configure the tone of the model (where applicable).
</ResponseField>

### Destination

Select your cloud data warehouse.

<Tabs>
  <Tab title="Snowflake">
    <ResponseField name="Database" type="drop-down" required>
      The Snowflake *destination* database. The special value `[Environment Default]` uses the database defined in the environment. Read [Databases, Tables and Views - Overview](https://docs.snowflake.com/en/guides-overview-db) to learn more.
    </ResponseField>

    {/* <!-- param-start:[destination.snowflake.schema] | warehouses: [snowflake] --> */}

    <ResponseField name="Schema" type="drop-down" required>
      The Snowflake *destination* schema. The special value `[Environment Default]` uses the schema defined in the environment. Read [Database, Schema, and Share DDL](https://docs.snowflake.com/en/sql-reference/ddl-database.html) to learn more.
    </ResponseField>

    {/* <!-- param-start:[destination.snowflake.table] | warehouses: [snowflake] --> */}

    <ResponseField name="Table" type="string" required>
      The new Snowflake table to load your prompt output into. Will create a new table if one does not exist. Otherwise, will replace any existing table of the same name.
    </ResponseField>
  </Tab>

  <Tab title="Databricks">
    <ResponseField name="Catalog" type="drop-down" required>
      Select a *destination* [Databricks Unity Catalog](https://docs.databricks.com/en/data-governance/unity-catalog/index.html). The special value `[Environment Default]` uses the catalog defined in the environment. Selecting a catalog will determine which databases are available in the next parameter.
    </ResponseField>

    {/* <!-- param-start:[destination.databricks.schema] | warehouses: [databricks] --> */}

    <ResponseField name="Schema (Database)" type="drop-down" required>
      The Databricks *destination* schema. The special value `[Environment Default]` uses the schema defined in the environment. Read [Create and manage schemas](https://docs.databricks.com/en/data-governance/unity-catalog/create-schemas.html) to learn more.
    </ResponseField>

    {/* <!-- param-start:[destination.databricks.table] | warehouses: [databricks] --> */}

    <ResponseField name="Table" type="string" required>
      The new Databricks table to load your prompt output into. Will create a new table if one does not exist. Otherwise, will replace any existing table of the same name.
    </ResponseField>
  </Tab>

  <Tab title="Amazon Redshift">
    <ResponseField name="Schema" type="drop-down" required>
      The Amazon Redshift *destination* schema. The special value `[Environment Default]` uses the schema defined in the environment. Read [Schemas](https://docs.aws.amazon.com/redshift/latest/dg/r_Schemas_and_tables.html) to learn more.
    </ResponseField>

    {/* <!-- param-start:[destination.redshift.table] | warehouses: [redshift] --> */}

    <ResponseField name="Table" type="string" required>
      The new Redshift table to load your prompt output into. Will create a new table if one does not exist. Otherwise, will replace any existing table of the same name.
    </ResponseField>
  </Tab>
</Tabs>

<ResponseField name="Create Table Options" required>
  * **Replace if Table Exists:** The pipeline will run despite the table already existing. The table will be recreated.
  * **Fail if Table Exists:** If the table already exists, the pipeline will fail to run. This is the default setting.
  * **Append:** If the table already exists, any new rows (records) will be added to the table without modifying or deleting existing rows. If the table does *not* exist, it is created and any new rows are inserted.

  **Snowflake only:**

  This component uses the **CREATE OR REPLACE** clause. When using the **REPLACE** clause, it also applies the **COPY GRANTS** clause. When you clone or create a new object (such as a table, view, schema, or database) from an existing one, the new object doesn't automatically inherit the original's grants (privileges). However, with the **COPY GRANTS** clause, you can seamlessly transfer object-level privileges from the source object to the new one. This helps maintain consistent access control and simplifies permission management when cloning or recreating objects. For more information, read [Snowflake COPY GRANTS](https://docs.snowflake.com/en/sql-reference/sql/create-table#label-create-table-copy-grants).
</ResponseField>

{/* <!-- param-start:[destination.columnPrefix] | warehouses: [snowflake, databricks, redshift] --> */}

<ResponseField name="Column Prefix" type="string" required>
  Optionally set a prefix for newly created columns.
</ResponseField>

### RAG

<ResponseField name="Enable RAG" type="boolean" required>
  Click **Yes** to enable Retrieval-Augmented Generation (RAG). Using RAG optimizes an LLM output by invoking an authoritative knowledge base outside of the LLM's initial training data sources. By using RAG, you can extend an LLM's capabilities to specific domains, such as your organization's documentation, without needing to retrain the model.

  Defaults to No.
</ResponseField>

{/* <!-- param-start:[ragConfig.ragPretext] | warehouses: [snowflake, databricks, redshift] --> */}

<ResponseField name="Pretext" type="text editor" required>
  Add text to your LLM prompt before the RAG data is listed, thus instructing the LLM what to do with the RAG data. For example, you might wish to use RAG to search relevant documentation snippets to answer a question.

  Example:

  "Use any of the following documentation snippets in your response, if relevant:"
</ResponseField>

{/* <!-- param-start:[ragConfig.inputs.searchColumn] | warehouses: [snowflake, databricks, redshift] --> */}

<ResponseField name="Search Column" type="drop-down" required>
  Choose a column in the source table that contains a search term for the vector database. The value is then taken from that column and a vector search is performed. For example, a column value might be a user question such as "How do I log in?". A search is then performed on the vector database using the value string, which will return N number of relevant data. N is defined by the Top K parameter, further down.

  If your vector database contained vectors created from chunks of text documentation, in this scenario the RAG data returned may include the chunk "to log in, click on the key button in the top right and enter your username and password". This data is then inserted into the llm prompt to help provide relevant context.
</ResponseField>

{/* <!-- param-start:[ragConfig.embeddingGenerator.embeddingProviderType] | warehouses: [snowflake, databricks, redshift] --> */}

<ResponseField name="Embedding Provider" type="drop-down" required>
  The embedding provider is the API service used to convert the search term into a vector. Choose either OpenAI or Amazon Bedrock. The embedding provider receives a search term (e.g. "How do I log in?") and returns a vector.

  Choose your provider:
</ResponseField>

<Tabs>
  <Tab title="OpenAI">
    {/* <!-- param-start:[ragConfig.embeddingGenerator.openAI.openaiApiKey] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="OpenAI API Key" type="drop-down" required>
      Use the drop-down menu to select the corresponding secret definition that denotes the value of your OpenAI API key.

      Read [Secrets and secret definitions](/docs/guides/secrets-and-secret-definitions) to learn how to create a new secret definition.

      To create a new OpenAI API key:

      1. Log in to [OpenAI](https://platform.openai.com/).
      2. Click your avatar in the top-right of the UI.
      3. Click **View API keys**.
      4. Click **+ Create new secret key**.
      5. Give a name for your new secret key and click **Create secret key**.
      6. Copy your new secret key and save it. Then click **Done**.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.embeddingGenerator.openAI.openaiApiKey] --> */}

    {/* <!-- param-start:[ragConfig.embeddingGenerator.openAI.embeddingModel] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Embedding Model" type="drop-down" required>
      Select an [embedding model](https://platform.openai.com/docs/guides/embeddings).

      Currently supports:

      * text-embedding-ada-002
      * text-embedding-3-small
      * text-embedding-3-large
    </ResponseField>

    {/* <!-- param-end:[ragConfig.embeddingGenerator.openAI.embeddingModel] --> */}
  </Tab>

  <Tab title="Amazon Bedrock">
    {/* <!-- param-start:[ragConfig.embeddingGenerator.aws.region] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Embedding AWS Region" type="drop-down" required>
      Select your [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html#Concepts.RegionsAndAvailabilityZones.Regions).
    </ResponseField>

    {/* <!-- param-end:[ragConfig.embeddingGenerator.aws.region] --> */}

    {/* <!-- param-start:[ragConfig.embeddingGenerator.aws.model] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Embedding Model" type="drop-down" required>
      Select an embedding model.

      Currently supports:

      * [Titan Embeddings G1 - Text](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-embed-text.html)
    </ResponseField>

    {/* <!-- param-end:[ragConfig.embeddingGenerator.aws.model] --> */}
  </Tab>
</Tabs>

<ResponseField name="Vector Database" type="drop-down" required>
  Select a vector database to use.

  Currently supports [Pinecone](https://www.pinecone.io/learn/vector-database/) and Postgres.
</ResponseField>

<Tabs>
  <Tab title="Pinecone">
    {/* <!-- param-start:[ragConfig.pinecone.pineconeApiKey] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Pinecone API Key" type="drop-down" required>
      Use the drop-down menu to select the corresponding secret definition that denotes the value of your Pinecone API key.

      Read [Secrets and secret definitions](/docs/guides/secrets-and-secret-definitions) to learn how to create a new secret definition.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.pinecone.pineconeApiKey] --> */}

    {/* <!-- param-start:[ragConfig.pinecone.pineconeIndex] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Pinecone Index" type="string" required>
      The name of the Pinecone vector search index to connect to. To retrieve an index name:

      1. Log in to [Pinecone](https://app.pinecone.io/).
      2. Click **PROJECTS** in the left sidebar.
      3. Click a project tile. This action will open the list of vector search indexes in your project.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.pinecone.pineconeIndex] --> */}

    {/* <!-- param-start:[ragConfig.pinecone.pineconeNamespace] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Pinecone Namespace" type="string" required>
      The name of the Pinecone namespace. Pinecone lets you partition records in an index into [namespaces](https://docs.pinecone.io/docs/namespaces). To retrieve a namespace name:

      1. Log in to [Pinecone](https://app.pinecone.io/).
      2. Click **PROJECTS** in the left sidebar.
      3. Click a project tile. This action will open the list of vector search indexes in your project.
      4. Click on your vector search index tile.
      5. Click the **NAMESPACES** tab. Your namespaces will be listed.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.pinecone.pineconeNamespace] --> */}

    {/* <!-- param-start:[ragConfig.pinecone.topK] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Top K" type="integer" required>
      The number of results to return from the vector database query.

      Between 1-100.

      Default is 3.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.pinecone.topK] --> */}

    {/* <!-- param-start:[ragConfig.lookupSource.dataLookupStrategy] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Data Lookup Strategy" type="drop-down" required>
      Select the data lookup strategy. Pinecone only stores the vector associated with text data, and a JSON metadata blob. While the text data *can* be stored in the metadata blob, size limitations can affect coverage—for example when a user has a larger blob of text to be converted to a vector.

      * **Raw data in metadata:** Choosing this option adds an additional property, Data Path, to provide the path to text data within the metadata JSON blob.
      * **Table details in metadata:** Database, schema, and table information is used in the metadata to look up the text data in your warehouse table.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.lookupSource.dataLookupStrategy] --> */}

    {/* <!-- param-start:[ragConfig.lookupSource.dataFromMetadataConfig.dataPath] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Data Path" type="string" required>
      Set the path to the data in the metadata JSON blob.

      Default is `data`.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.lookupSource.dataFromMetadataConfig.dataPath] --> */}
  </Tab>

  <Tab title="Postgres">
    {/* <!-- param-start:[ragConfig.postgres.host] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Host" type="string" required>
      Your Postgres hostname.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.postgres.host] --> */}

    {/* <!-- param-start:[ragConfig.postgres.port] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Port" type="string" required>
      The TCP port number the Postgres server listens on. The default is `5432`.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.postgres.port] --> */}

    {/* <!-- param-start:[ragConfig.postgres.database] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Database" type="string" required>
      The name of your Postgres database.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.postgres.database] --> */}

    {/* <!-- param-start:[ragConfig.postgres.username] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Username" type="string" required>
      Your Postgres username.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.postgres.username] --> */}

    {/* <!-- param-start:[ragConfig.postgres.password] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Password" type="drop-down" required>
      Use the drop-down menu to select the corresponding secret definition that denotes the value of your Postgres password.

      Read [Secrets and secret definitions](/docs/guides/secrets-and-secret-definitions) to learn how to create a new secret definition.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.postgres.password] --> */}

    {/* <!-- param-start:[ragConfig.postgres.schema] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Schema" type="drop-down" required>
      The Postgres schema. The available schemas are determined by the Postgres database you have provided.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.postgres.schema] --> */}

    {/* <!-- param-start:[ragConfig.postgres.table] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Table" type="drop-down" required>
      The table to load data from. The available tables are determined by the Postgres schema you have selected.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.postgres.table] --> */}

    {/* <!-- param-start:[ragConfig.postgres.keyColumnName] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Key Column Name" type="drop-down" required>
      The column in your table to use as the key column.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.postgres.keyColumnName] --> */}

    {/* <!-- param-start:[ragConfig.postgres.textColumnName] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Text Column Name" type="drop-down" required>
      The column in your table with your original text data.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.postgres.textColumnName] --> */}

    {/* <!-- param-start:[ragConfig.postgres.embeddingColumnName] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Embedding Column Name" type="drop-down" required>
      The column in your table used to store your embeddings.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.postgres.embeddingColumnName] --> */}

    {/* <!-- param-start:[ragConfig.postgres.similarityFunction] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Similarity Function" type="drop-down" required>
      Select which similarity function (distance metrics) to use.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.postgres.similarityFunction] --> */}

    {/* <!-- param-start:[ragConfig.postgres.topK] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Top K" type="integer" required>
      The number of results to return from the vector database query.

      Between 1-100.

      Default is 3.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.postgres.topK] --> */}

    {/* <!-- param-start:[ragConfig.postgres.connectionOptions] | warehouses: [snowflake, databricks, redshift] --> */}

    <ResponseField name="Connection Options" type="column editor" required>
      * **Parameter:** A JDBC [Postgres parameter](https://jdbc.postgresql.org/documentation/use/#connection-parameters) supported by the database driver.
      * **Value:** A value for the given parameter.
    </ResponseField>

    {/* <!-- param-end:[ragConfig.postgres.connectionOptions] --> */}
  </Tab>
</Tabs>

## Explanation of output

| Output column      | Description                                                                                                                                                                                                                                              |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| DATA               | A JSON set of key:value pairs when using the JSON.                                                                                                                                                                                                       |
| PROMPT\_TOKENS     | Number of tokens in the generated completion.                                                                                                                                                                                                            |
| COMPLETION\_TOKENS | Number of tokens in the prompt.                                                                                                                                                                                                                          |
| ALL\_TOKENS        | Total number of tokens used in the request (prompt + completion).                                                                                                                                                                                        |
| RAW\_DATA          | All responses received from the LLM. If you have set the parameter **N** to a number greater than 1, then you will see multiple responses for each record.                                                                                               |
| ERROR\_METADATA    | Contains information about errors that occurred when processing that row, such as if no valid JSON was found, or the request to the LLM timed out. Useful for debugging results where no selected result, and/or no raw data is available in the output. |
| SYSTEM\_METADATA   | This is a fundamental instruction from {maia}'s component for the LLM, advising how it should process and respond to the information it receives.                                                                                                        |
| USER\_PROMPT       | Prompt defined by the user in the **Context** property of the Azure OpenAI Prompt component.                                                                                                                                                             |
| MODEL\_NAME        | The specific name of the model.                                                                                                                                                                                                                          |
| PROVIDER\_NAME     | Name of the LLM provider.                                                                                                                                                                                                                                |
