specification/cognitiveservices/data-plane/AzureOpenAI/inference/stable/2024-02-01/inference.yaml [837:1568]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            response_format:
              type: object
              description: An object specifying the format that the model must output. Used to enable JSON mode.
              properties:
                type:
                  $ref: '#/components/schemas/chatCompletionResponseFormat'
            tools:
              description: A list of tools the model may call. Currently, only functions are supported as a tool. Use this to provide a list of functions the model may generate JSON inputs for.
              type: array
              minItems: 1
              items:
                $ref: '#/components/schemas/chatCompletionTool'
            tool_choice:
              $ref: '#/components/schemas/chatCompletionToolChoiceOption'
            functions:
              description: Deprecated in favor of `tools`. A list of functions the model may generate JSON inputs for.
              type: array
              minItems: 1
              maxItems: 128
              items:
                $ref: '#/components/schemas/chatCompletionFunction'
            function_call:
              description: Deprecated in favor of `tool_choice`. Controls how the model responds to function calls. "none" means the model does not call a function, and responds to the end-user. "auto" means the model can pick between an end-user or calling a function.  Specifying a particular function via `{"name":\ "my_function"}` forces the model to call that function. "none" is the default when no functions are present. "auto" is the default if functions are present.
              oneOf:
                - type: string
                  enum:
                    - none
                    - auto
                  description: '`none` means the model will not call a function and instead generates a message. `auto` means the model can pick between generating a message or calling a function.'
                - type: object
                  description: 'Specifying a particular function via `{"name": "my_function"}` forces the model to call that function.'
                  properties:
                    name:
                      type: string
                      description: The name of the function to call.
                  required:
                    - name
      required:
        - messages
    chatCompletionResponseFormat:
      type: string
      enum:
        - text
        - json_object
      default: text
      example: json_object
      nullable: true
      description: Setting to `json_object` enables JSON mode. This guarantees that the message the model generates is valid JSON.
      x-ms-enum:
        name: ChatCompletionResponseFormat
        modelAsString: true
        values:
          - value: text
            description: Response format is a plain text string.
          - value: json_object
            description: Response format is a JSON object.
    chatCompletionFunction:
      type: object
      properties:
        name:
          type: string
          description: The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.
        description:
          type: string
          description: The description of what the function does.
        parameters:
          $ref: '#/components/schemas/chatCompletionFunctionParameters'
      required:
        - name
    chatCompletionFunctionParameters:
      type: object
      description: The parameters the functions accepts, described as a JSON Schema object. See the [guide](/docs/guides/gpt/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.
      additionalProperties: true
    chatCompletionRequestMessage:
      type: object
      properties:
        role:
          $ref: '#/components/schemas/chatCompletionRequestMessageRole'
      discriminator:
        propertyName: role
        mapping:
          system: '#/components/schemas/chatCompletionRequestMessageSystem'
          user: '#/components/schemas/chatCompletionRequestMessageUser'
          assistant: '#/components/schemas/chatCompletionRequestMessageAssistant'
          tool: '#/components/schemas/chatCompletionRequestMessageTool'
          function: '#/components/schemas/chatCompletionRequestMessageFunction'
      required:
        - role
    chatCompletionRequestMessageRole:
      type: string
      enum:
        - system
        - user
        - assistant
        - tool
        - function
      description: The role of the messages author.
      x-ms-enum:
        name: ChatCompletionRequestMessageRole
        modelAsString: true
        values:
          - value: system
            description: The message author role is system.
          - value: user
            description: The message author role is user.
          - value: assistant
            description: The message author role is assistant.
          - value: tool
            description: The message author role is tool.
          - value: function
            description: Deprecated. The message author role is function.
    chatCompletionRequestMessageSystem:
      allOf:
        - $ref: '#/components/schemas/chatCompletionRequestMessage'
        - type: object
          properties:
            content:
              type: string
              description: The contents of the message.
              nullable: true
      required:
        - content
    chatCompletionRequestMessageUser:
      allOf:
        - $ref: '#/components/schemas/chatCompletionRequestMessage'
        - type: object
          properties:
            content:
              oneOf:
                - type: string
                  description: The contents of the message.
                - type: array
                  description: An array of content parts with a defined type, each can be of type `text` or `image_url` when passing in images. You can pass multiple images by adding multiple `image_url` content parts. Image input is only supported when using the `gpt-4-visual-preview` model.
                  minimum: 1
                  items:
                    $ref: '#/components/schemas/chatCompletionRequestMessageContentPart'
              nullable: true
      required:
        - content
    chatCompletionRequestMessageContentPart:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/chatCompletionRequestMessageContentPartType'
      discriminator:
        propertyName: type
        mapping:
          text: '#/components/schemas/chatCompletionRequestMessageContentPartText'
          image_url: '#/components/schemas/chatCompletionRequestMessageContentPartImage'
      required:
        - type
    chatCompletionRequestMessageContentPartType:
      type: string
      enum:
        - text
        - image_url
      description: The type of the content part.
      x-ms-enum:
        name: ChatCompletionRequestMessageContentPartType
        modelAsString: true
        values:
          - value: text
            description: The content part type is text.
          - value: image_url
            description: The content part type is image_url.
    chatCompletionRequestMessageContentPartText:
      allOf:
        - $ref: '#/components/schemas/chatCompletionRequestMessageContentPart'
        - type: object
          properties:
            text:
              type: string
              description: The text content.
      required:
        - text
    chatCompletionRequestMessageContentPartImage:
      allOf:
        - $ref: '#/components/schemas/chatCompletionRequestMessageContentPart'
        - type: object
          properties:
            url:
              type: string
              description: Either a URL of the image or the base64 encoded image data.
              format: uri
            detail:
              $ref: '#/components/schemas/imageDetailLevel'
      required:
        - url
    imageDetailLevel:
      type: string
      description: Specifies the detail level of the image.
      enum:
        - auto
        - low
        - high
      default: auto
      x-ms-enum:
        name: ImageDetailLevel
        modelAsString: true
        values:
          - value: auto
            description: The image detail level is auto.
          - value: low
            description: The image detail level is low.
          - value: high
            description: The image detail level is high.
    chatCompletionRequestMessageAssistant:
      allOf:
        - $ref: '#/components/schemas/chatCompletionRequestMessage'
        - type: object
          properties:
            content:
              type: string
              description: The contents of the message.
              nullable: true
            tool_calls:
              type: array
              description: The tool calls generated by the model, such as function calls.
              items:
                $ref: '#/components/schemas/chatCompletionMessageToolCall'
            context:
              $ref: '#/components/schemas/azureChatExtensionsMessageContext'
      required:
        - content
    azureChatExtensionConfiguration:
      required:
        - type
      type: object
      properties:
        type:
          $ref: '#/components/schemas/azureChatExtensionType'
      description: |2-
          A representation of configuration data for a single Azure OpenAI chat extension. This will be used by a chat
          completions request that should use Azure OpenAI chat extensions to augment the response behavior.
          The use of this configuration is compatible only with Azure OpenAI.
      discriminator:
        propertyName: type
        mapping:
          azure_search: '#/components/schemas/azureSearchChatExtensionConfiguration'
          azure_cosmos_db: '#/components/schemas/azureCosmosDBChatExtensionConfiguration'
    azureChatExtensionType:
      type: string
      description: |2-
          A representation of configuration data for a single Azure OpenAI chat extension. This will be used by a chat
          completions request that should use Azure OpenAI chat extensions to augment the response behavior.
          The use of this configuration is compatible only with Azure OpenAI.
      enum:
        - azure_search
        - azure_cosmos_db
      x-ms-enum:
        name: AzureChatExtensionType
        modelAsString: true
        values:
          - name: azureSearch
            value: azure_search
            description: Represents the use of Azure Search as an Azure OpenAI chat extension.
          - name: azureCosmosDB
            value: azure_cosmos_db
            description: Represents the use of Azure Cosmos DB as an Azure OpenAI chat extension.
    azureSearchChatExtensionConfiguration:
      required:
        - parameters
      description: |-
        A specific representation of configurable options for Azure Search when using it as an Azure OpenAI chat
        extension.
      allOf:
        - $ref: '#/components/schemas/azureChatExtensionConfiguration'
        - properties:
            parameters:
              $ref: '#/components/schemas/azureSearchChatExtensionParameters'
      x-ms-discriminator-value: azure_search
    azureSearchChatExtensionParameters:
      required:
        - authentication
        - endpoint
        - index_name
      type: object
      properties:
        authentication:
          oneOf:
            - $ref: '#/components/schemas/onYourDataApiKeyAuthenticationOptions'
            - $ref: '#/components/schemas/onYourDataSystemAssignedManagedIdentityAuthenticationOptions'
            - $ref: '#/components/schemas/onYourDataUserAssignedManagedIdentityAuthenticationOptions'
        top_n_documents:
          type: integer
          description: The configured top number of documents to feature for the configured query.
          format: int32
        in_scope:
          type: boolean
          description: Whether queries should be restricted to use of indexed data.
        strictness:
          maximum: 5
          minimum: 1
          type: integer
          description: The configured strictness of the search relevance filtering. The higher of strictness, the higher of the precision but lower recall of the answer.
          format: int32
        role_information:
          type: string
          description: Give the model instructions about how it should behave and any context it should reference when generating a response. You can describe the assistant's personality and tell it how to format responses. There's a 100 token limit for it, and it counts against the overall token limit.
        endpoint:
          type: string
          description: The absolute endpoint path for the Azure Search resource to use.
          format: uri
        index_name:
          type: string
          description: The name of the index to use as available in the referenced Azure Search resource.
        fields_mapping:
          $ref: '#/components/schemas/azureSearchIndexFieldMappingOptions'
        query_type:
          $ref: '#/components/schemas/azureSearchQueryType'
        semantic_configuration:
          type: string
          description: The additional semantic configuration for the query.
        filter:
          type: string
          description: Search filter.
        embedding_dependency:
          oneOf:
            - $ref: '#/components/schemas/onYourDataEndpointVectorizationSource'
            - $ref: '#/components/schemas/onYourDataDeploymentNameVectorizationSource'
      description: Parameters for Azure Search when used as an Azure OpenAI chat extension.
    azureSearchIndexFieldMappingOptions:
      type: object
      properties:
        title_field:
          type: string
          description: The name of the index field to use as a title.
        url_field:
          type: string
          description: The name of the index field to use as a URL.
        filepath_field:
          type: string
          description: The name of the index field to use as a filepath.
        content_fields:
          type: array
          description: The names of index fields that should be treated as content.
          items:
            type: string
        content_fields_separator:
          type: string
          description: The separator pattern that content fields should use.
        vector_fields:
          type: array
          description: The names of fields that represent vector data.
          items:
            type: string
      description: Optional settings to control how fields are processed when using a configured Azure Search resource.
    azureSearchQueryType:
      type: string
      description: The type of Azure Search retrieval query that should be executed when using it as an Azure OpenAI chat extension.
      enum:
        - simple
        - semantic
        - vector
        - vector_simple_hybrid
        - vector_semantic_hybrid
      x-ms-enum:
        name: azureSearchQueryType
        modelAsString: true
        values:
          - name: simple
            value: simple
            description: Represents the default, simple query parser.
          - name: semantic
            value: semantic
            description: Represents the semantic query parser for advanced semantic modeling.
          - name: vector
            value: vector
            description: Represents vector search over computed data.
          - name: vectorSimpleHybrid
            value: vector_simple_hybrid
            description: Represents a combination of the simple query strategy with vector data.
          - name: vectorSemanticHybrid
            value: vector_semantic_hybrid
            description: Represents a combination of semantic search and vector data querying.
    azureCosmosDBChatExtensionConfiguration:
      required:
        - parameters
      description: |-
        A specific representation of configurable options for Azure Cosmos DB when using it as an Azure OpenAI chat
        extension.
      allOf:
        - $ref: '#/components/schemas/azureChatExtensionConfiguration'
        - properties:
            parameters:
              $ref: '#/components/schemas/azureCosmosDBChatExtensionParameters'
      x-ms-discriminator-value: azure_cosmos_db
    azureCosmosDBChatExtensionParameters:
      required:
        - authentication
        - container_name
        - database_name
        - embedding_dependency
        - fields_mapping
        - index_name
      type: object
      properties:
        authentication:
          $ref: '#/components/schemas/onYourDataConnectionStringAuthenticationOptions'
        top_n_documents:
          type: integer
          description: The configured top number of documents to feature for the configured query.
          format: int32
        in_scope:
          type: boolean
          description: Whether queries should be restricted to use of indexed data.
        strictness:
          maximum: 5
          minimum: 1
          type: integer
          description: The configured strictness of the search relevance filtering. The higher of strictness, the higher of the precision but lower recall of the answer.
          format: int32
        role_information:
          type: string
          description: Give the model instructions about how it should behave and any context it should reference when generating a response. You can describe the assistant's personality and tell it how to format responses. There's a 100 token limit for it, and it counts against the overall token limit.
        database_name:
          type: string
          description: The MongoDB vCore database name to use with Azure Cosmos DB.
        container_name:
          type: string
          description: The name of the Azure Cosmos DB resource container.
        index_name:
          type: string
          description: The MongoDB vCore index name to use with Azure Cosmos DB.
        fields_mapping:
          $ref: '#/components/schemas/azureCosmosDBFieldMappingOptions'
        embedding_dependency:
          oneOf:
            - $ref: '#/components/schemas/onYourDataEndpointVectorizationSource'
            - $ref: '#/components/schemas/onYourDataDeploymentNameVectorizationSource'
      description: |-
        Parameters to use when configuring Azure OpenAI On Your Data chat extensions when using Azure Cosmos DB for
        MongoDB vCore.
    azureCosmosDBFieldMappingOptions:
      required:
        - content_fields
        - vector_fields
      type: object
      properties:
        title_field:
          type: string
          description: The name of the index field to use as a title.
        url_field:
          type: string
          description: The name of the index field to use as a URL.
        filepath_field:
          type: string
          description: The name of the index field to use as a filepath.
        content_fields:
          type: array
          description: The names of index fields that should be treated as content.
          items:
            type: string
        content_fields_separator:
          type: string
          description: The separator pattern that content fields should use.
        vector_fields:
          type: array
          description: The names of fields that represent vector data.
          items:
            type: string
      description: Optional settings to control how fields are processed when using a configured Azure Cosmos DB resource.
    onYourDataAuthenticationOptions:
      required:
        - type
      type: object
      properties:
        type:
          $ref: '#/components/schemas/onYourDataAuthenticationType'
      description: The authentication options for Azure OpenAI On Your Data.
      discriminator:
        propertyName: type
        mapping:
          api_key: '#/components/schemas/onYourDataApiKeyAuthenticationOptions'
          connection_string: '#/components/schemas/onYourDataConnectionStringAuthenticationOptions'
          system_assigned_managed_identity: '#/components/schemas/onYourDataSystemAssignedManagedIdentityAuthenticationOptions'
          user_assigned_managed_identity: '#/components/schemas/onYourDataUserAssignedManagedIdentityAuthenticationOptions'
    onYourDataAuthenticationType:
      type: string
      description: The authentication types supported with Azure OpenAI On Your Data.
      enum:
        - api_key
        - connection_string
        - system_assigned_managed_identity
        - user_assigned_managed_identity
      x-ms-enum:
        name: OnYourDataAuthenticationType
        modelAsString: true
        values:
          - name: apiKey
            value: api_key
            description: Authentication via API key.
          - name: connectionString
            value: connection_string
            description: Authentication via connection string.
          - name: systemAssignedManagedIdentity
            value: system_assigned_managed_identity
            description: Authentication via system-assigned managed identity.
          - name: userAssignedManagedIdentity
            value: user_assigned_managed_identity
            description: Authentication via user-assigned managed identity.
    onYourDataApiKeyAuthenticationOptions:
      required:
        - key
      description: The authentication options for Azure OpenAI On Your Data when using an API key.
      allOf:
        - $ref: '#/components/schemas/onYourDataAuthenticationOptions'
        - properties:
            key:
              type: string
              description: The API key to use for authentication.
      x-ms-discriminator-value: api_key
    onYourDataConnectionStringAuthenticationOptions:
      required:
        - connection_string
      description: The authentication options for Azure OpenAI On Your Data when using a connection string.
      allOf:
        - $ref: '#/components/schemas/onYourDataAuthenticationOptions'
        - properties:
            connection_string:
              type: string
              description: The connection string to use for authentication.
      x-ms-discriminator-value: connection_string
    onYourDataSystemAssignedManagedIdentityAuthenticationOptions:
      description: The authentication options for Azure OpenAI On Your Data when using a system-assigned managed identity.
      allOf:
        - $ref: '#/components/schemas/onYourDataAuthenticationOptions'
      x-ms-discriminator-value: system_assigned_managed_identity
    onYourDataUserAssignedManagedIdentityAuthenticationOptions:
      required:
        - managed_identity_resource_id
      description: The authentication options for Azure OpenAI On Your Data when using a user-assigned managed identity.
      allOf:
        - $ref: '#/components/schemas/onYourDataAuthenticationOptions'
        - properties:
            managed_identity_resource_id:
              type: string
              description: The resource ID of the user-assigned managed identity to use for authentication.
      x-ms-discriminator-value: user_assigned_managed_identity
    onYourDataVectorizationSource:
      required:
        - type
      type: object
      properties:
        type:
          $ref: '#/components/schemas/onYourDataVectorizationSourceType'
      description: An abstract representation of a vectorization source for Azure OpenAI On Your Data with vector search.
      discriminator:
        propertyName: type
        mapping:
          endpoint: '#/components/schemas/onYourDataEndpointVectorizationSource'
          deployment_name: '#/components/schemas/onYourDataDeploymentNameVectorizationSource'
    onYourDataVectorizationSourceType:
      type: string
      description: |-
        Represents the available sources Azure OpenAI On Your Data can use to configure vectorization of data for use with
        vector search.
      enum:
        - endpoint
        - deployment_name
      x-ms-enum:
        name: OnYourDataVectorizationSourceType
        modelAsString: true
        values:
          - name: endpoint
            value: endpoint
            description: Represents vectorization performed by public service calls to an Azure OpenAI embedding model.
          - name: deploymentName
            value: deployment_name
            description: |-
              Represents an Ada model deployment name to use. This model deployment must be in the same Azure OpenAI resource, but
              On Your Data will use this model deployment via an internal call rather than a public one, which enables vector
              search even in private networks.
    onYourDataDeploymentNameVectorizationSource:
      required:
        - deployment_name
      description: |-
        The details of a a vectorization source, used by Azure OpenAI On Your Data when applying vector search, that is based
        on an internal embeddings model deployment name in the same Azure OpenAI resource.
      allOf:
        - $ref: '#/components/schemas/onYourDataVectorizationSource'
        - properties:
            deployment_name:
              type: string
              description: Specifies the name of the model deployment to use for vectorization. This model deployment must be in the same Azure OpenAI resource, but On Your Data will use this model deployment via an internal call rather than a public one, which enables vector search even in private networks.
      x-ms-discriminator-value: deployment_name
    onYourDataEndpointVectorizationSource:
      required:
        - authentication
        - endpoint
      description: |-
        The details of a a vectorization source, used by Azure OpenAI On Your Data when applying vector search, that is based
        on a public Azure OpenAI endpoint call for embeddings.
      allOf:
        - $ref: '#/components/schemas/onYourDataVectorizationSource'
        - properties:
            authentication:
              $ref: '#/components/schemas/onYourDataApiKeyAuthenticationOptions'
            endpoint:
              type: string
              description: Specifies the endpoint to use for vectorization. This endpoint must be in the same Azure OpenAI resource, but On Your Data will use this endpoint via an internal call rather than a public one, which enables vector search even in private networks.
              format: uri
      x-ms-discriminator-value: endpoint
    azureChatExtensionsMessageContext:
      type: object
      properties:
        citations:
          type: array
          description: The data source retrieval result, used to generate the assistant message in the response.
          items:
            $ref: '#/components/schemas/citation'
          x-ms-identifiers: []
        intent:
          type: string
          description: The detected intent from the chat history, used to pass to the next turn to carry over the context.
      description: |2-
          A representation of the additional context information available when Azure OpenAI chat extensions are involved
          in the generation of a corresponding chat completions response. This context information is only populated when
          using an Azure OpenAI request configured to use a matching extension.
    citation:
      required:
        - content
      type: object
      properties:
        content:
          type: string
          description: The content of the citation.
        title:
          type: string
          description: The title of the citation.
        url:
          type: string
          description: The URL of the citation.
        filepath:
          type: string
          description: The file path of the citation.
        chunk_id:
          type: string
          description: The chunk ID of the citation.
      description: citation information for a chat completions response message.
    chatCompletionMessageToolCall:
      type: object
      properties:
        id:
          type: string
          description: The ID of the tool call.
        type:
          $ref: '#/components/schemas/toolCallType'
        function:
          type: object
          description: The function that the model called.
          properties:
            name:
              type: string
              description: The name of the function to call.
            arguments:
              type: string
              description: The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function.
          required:
            - name
            - arguments
      required:
        - id
        - type
        - function
    toolCallType:
      type: string
      enum:
        - function
      description: The type of the tool call, in this case `function`.
      x-ms-enum:
        name: ToolCallType
        modelAsString: true
        values:
          - value: function
            description: The tool call type is function.
    chatCompletionRequestMessageTool:
      allOf:
        - $ref: '#/components/schemas/chatCompletionRequestMessage'
        - type: object
          nullable: true
          properties:
            tool_call_id:
              type: string
              description: Tool call that this message is responding to.
            content:
              type: string
              description: The contents of the message.
              nullable: true
      required:
        - tool_call_id
        - content
    chatCompletionRequestMessageFunction:
      allOf:
        - $ref: '#/components/schemas/chatCompletionRequestMessage'
        - type: object
          description: Deprecated. Message that represents a function.
          nullable: true
          properties:
            role:
              type: string
              enum:
                - function
              description: The role of the messages author, in this case `function`.
            name:
              type: string
              description: The contents of the message.
            content:
              type: string
              description: The contents of the message.
              nullable: true
      required:
        - function_call_id
        - content
    createChatCompletionResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/chatCompletionsResponseCommon'
        - properties:
            prompt_filter_results:
              $ref: '#/components/schemas/promptFilterResults'
            choices:
              type: array
              items:
                type: object
                allOf:
                  - $ref: '#/components/schemas/chatCompletionChoiceCommon'
                  - properties:
                      message:
                        $ref: '#/components/schemas/chatCompletionResponseMessage'
                      content_filter_results:
                        $ref: '#/components/schemas/contentFilterChoiceResults'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



specification/cognitiveservices/data-plane/AzureOpenAI/inference/stable/2024-06-01/inference.yaml [858:1589]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            response_format:
              type: object
              description: An object specifying the format that the model must output. Used to enable JSON mode.
              properties:
                type:
                  $ref: '#/components/schemas/chatCompletionResponseFormat'
            tools:
              description: A list of tools the model may call. Currently, only functions are supported as a tool. Use this to provide a list of functions the model may generate JSON inputs for.
              type: array
              minItems: 1
              items:
                $ref: '#/components/schemas/chatCompletionTool'
            tool_choice:
              $ref: '#/components/schemas/chatCompletionToolChoiceOption'
            functions:
              description: Deprecated in favor of `tools`. A list of functions the model may generate JSON inputs for.
              type: array
              minItems: 1
              maxItems: 128
              items:
                $ref: '#/components/schemas/chatCompletionFunction'
            function_call:
              description: Deprecated in favor of `tool_choice`. Controls how the model responds to function calls. "none" means the model does not call a function, and responds to the end-user. "auto" means the model can pick between an end-user or calling a function.  Specifying a particular function via `{"name":\ "my_function"}` forces the model to call that function. "none" is the default when no functions are present. "auto" is the default if functions are present.
              oneOf:
                - type: string
                  enum:
                    - none
                    - auto
                  description: '`none` means the model will not call a function and instead generates a message. `auto` means the model can pick between generating a message or calling a function.'
                - type: object
                  description: 'Specifying a particular function via `{"name": "my_function"}` forces the model to call that function.'
                  properties:
                    name:
                      type: string
                      description: The name of the function to call.
                  required:
                    - name
      required:
        - messages
    chatCompletionResponseFormat:
      type: string
      enum:
        - text
        - json_object
      default: text
      example: json_object
      nullable: true
      description: Setting to `json_object` enables JSON mode. This guarantees that the message the model generates is valid JSON.
      x-ms-enum:
        name: ChatCompletionResponseFormat
        modelAsString: true
        values:
          - value: text
            description: Response format is a plain text string.
          - value: json_object
            description: Response format is a JSON object.
    chatCompletionFunction:
      type: object
      properties:
        name:
          type: string
          description: The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.
        description:
          type: string
          description: The description of what the function does.
        parameters:
          $ref: '#/components/schemas/chatCompletionFunctionParameters'
      required:
        - name
    chatCompletionFunctionParameters:
      type: object
      description: The parameters the functions accepts, described as a JSON Schema object. See the [guide](/docs/guides/gpt/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.
      additionalProperties: true
    chatCompletionRequestMessage:
      type: object
      properties:
        role:
          $ref: '#/components/schemas/chatCompletionRequestMessageRole'
      discriminator:
        propertyName: role
        mapping:
          system: '#/components/schemas/chatCompletionRequestMessageSystem'
          user: '#/components/schemas/chatCompletionRequestMessageUser'
          assistant: '#/components/schemas/chatCompletionRequestMessageAssistant'
          tool: '#/components/schemas/chatCompletionRequestMessageTool'
          function: '#/components/schemas/chatCompletionRequestMessageFunction'
      required:
        - role
    chatCompletionRequestMessageRole:
      type: string
      enum:
        - system
        - user
        - assistant
        - tool
        - function
      description: The role of the messages author.
      x-ms-enum:
        name: ChatCompletionRequestMessageRole
        modelAsString: true
        values:
          - value: system
            description: The message author role is system.
          - value: user
            description: The message author role is user.
          - value: assistant
            description: The message author role is assistant.
          - value: tool
            description: The message author role is tool.
          - value: function
            description: Deprecated. The message author role is function.
    chatCompletionRequestMessageSystem:
      allOf:
        - $ref: '#/components/schemas/chatCompletionRequestMessage'
        - type: object
          properties:
            content:
              type: string
              description: The contents of the message.
              nullable: true
      required:
        - content
    chatCompletionRequestMessageUser:
      allOf:
        - $ref: '#/components/schemas/chatCompletionRequestMessage'
        - type: object
          properties:
            content:
              oneOf:
                - type: string
                  description: The contents of the message.
                - type: array
                  description: An array of content parts with a defined type, each can be of type `text` or `image_url` when passing in images. You can pass multiple images by adding multiple `image_url` content parts. Image input is only supported when using the `gpt-4-visual-preview` model.
                  minimum: 1
                  items:
                    $ref: '#/components/schemas/chatCompletionRequestMessageContentPart'
              nullable: true
      required:
        - content
    chatCompletionRequestMessageContentPart:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/chatCompletionRequestMessageContentPartType'
      discriminator:
        propertyName: type
        mapping:
          text: '#/components/schemas/chatCompletionRequestMessageContentPartText'
          image_url: '#/components/schemas/chatCompletionRequestMessageContentPartImage'
      required:
        - type
    chatCompletionRequestMessageContentPartType:
      type: string
      enum:
        - text
        - image_url
      description: The type of the content part.
      x-ms-enum:
        name: ChatCompletionRequestMessageContentPartType
        modelAsString: true
        values:
          - value: text
            description: The content part type is text.
          - value: image_url
            description: The content part type is image_url.
    chatCompletionRequestMessageContentPartText:
      allOf:
        - $ref: '#/components/schemas/chatCompletionRequestMessageContentPart'
        - type: object
          properties:
            text:
              type: string
              description: The text content.
      required:
        - text
    chatCompletionRequestMessageContentPartImage:
      allOf:
        - $ref: '#/components/schemas/chatCompletionRequestMessageContentPart'
        - type: object
          properties:
            url:
              type: string
              description: Either a URL of the image or the base64 encoded image data.
              format: uri
            detail:
              $ref: '#/components/schemas/imageDetailLevel'
      required:
        - url
    imageDetailLevel:
      type: string
      description: Specifies the detail level of the image.
      enum:
        - auto
        - low
        - high
      default: auto
      x-ms-enum:
        name: ImageDetailLevel
        modelAsString: true
        values:
          - value: auto
            description: The image detail level is auto.
          - value: low
            description: The image detail level is low.
          - value: high
            description: The image detail level is high.
    chatCompletionRequestMessageAssistant:
      allOf:
        - $ref: '#/components/schemas/chatCompletionRequestMessage'
        - type: object
          properties:
            content:
              type: string
              description: The contents of the message.
              nullable: true
            tool_calls:
              type: array
              description: The tool calls generated by the model, such as function calls.
              items:
                $ref: '#/components/schemas/chatCompletionMessageToolCall'
            context:
              $ref: '#/components/schemas/azureChatExtensionsMessageContext'
      required:
        - content
    azureChatExtensionConfiguration:
      required:
        - type
      type: object
      properties:
        type:
          $ref: '#/components/schemas/azureChatExtensionType'
      description: |2-
          A representation of configuration data for a single Azure OpenAI chat extension. This will be used by a chat
          completions request that should use Azure OpenAI chat extensions to augment the response behavior.
          The use of this configuration is compatible only with Azure OpenAI.
      discriminator:
        propertyName: type
        mapping:
          azure_search: '#/components/schemas/azureSearchChatExtensionConfiguration'
          azure_cosmos_db: '#/components/schemas/azureCosmosDBChatExtensionConfiguration'
    azureChatExtensionType:
      type: string
      description: |2-
          A representation of configuration data for a single Azure OpenAI chat extension. This will be used by a chat
          completions request that should use Azure OpenAI chat extensions to augment the response behavior.
          The use of this configuration is compatible only with Azure OpenAI.
      enum:
        - azure_search
        - azure_cosmos_db
      x-ms-enum:
        name: AzureChatExtensionType
        modelAsString: true
        values:
          - name: azureSearch
            value: azure_search
            description: Represents the use of Azure Search as an Azure OpenAI chat extension.
          - name: azureCosmosDB
            value: azure_cosmos_db
            description: Represents the use of Azure Cosmos DB as an Azure OpenAI chat extension.
    azureSearchChatExtensionConfiguration:
      required:
        - parameters
      description: |-
        A specific representation of configurable options for Azure Search when using it as an Azure OpenAI chat
        extension.
      allOf:
        - $ref: '#/components/schemas/azureChatExtensionConfiguration'
        - properties:
            parameters:
              $ref: '#/components/schemas/azureSearchChatExtensionParameters'
      x-ms-discriminator-value: azure_search
    azureSearchChatExtensionParameters:
      required:
        - authentication
        - endpoint
        - index_name
      type: object
      properties:
        authentication:
          oneOf:
            - $ref: '#/components/schemas/onYourDataApiKeyAuthenticationOptions'
            - $ref: '#/components/schemas/onYourDataSystemAssignedManagedIdentityAuthenticationOptions'
            - $ref: '#/components/schemas/onYourDataUserAssignedManagedIdentityAuthenticationOptions'
        top_n_documents:
          type: integer
          description: The configured top number of documents to feature for the configured query.
          format: int32
        in_scope:
          type: boolean
          description: Whether queries should be restricted to use of indexed data.
        strictness:
          maximum: 5
          minimum: 1
          type: integer
          description: The configured strictness of the search relevance filtering. The higher of strictness, the higher of the precision but lower recall of the answer.
          format: int32
        role_information:
          type: string
          description: Give the model instructions about how it should behave and any context it should reference when generating a response. You can describe the assistant's personality and tell it how to format responses. There's a 100 token limit for it, and it counts against the overall token limit.
        endpoint:
          type: string
          description: The absolute endpoint path for the Azure Search resource to use.
          format: uri
        index_name:
          type: string
          description: The name of the index to use as available in the referenced Azure Search resource.
        fields_mapping:
          $ref: '#/components/schemas/azureSearchIndexFieldMappingOptions'
        query_type:
          $ref: '#/components/schemas/azureSearchQueryType'
        semantic_configuration:
          type: string
          description: The additional semantic configuration for the query.
        filter:
          type: string
          description: Search filter.
        embedding_dependency:
          oneOf:
            - $ref: '#/components/schemas/onYourDataEndpointVectorizationSource'
            - $ref: '#/components/schemas/onYourDataDeploymentNameVectorizationSource'
      description: Parameters for Azure Search when used as an Azure OpenAI chat extension.
    azureSearchIndexFieldMappingOptions:
      type: object
      properties:
        title_field:
          type: string
          description: The name of the index field to use as a title.
        url_field:
          type: string
          description: The name of the index field to use as a URL.
        filepath_field:
          type: string
          description: The name of the index field to use as a filepath.
        content_fields:
          type: array
          description: The names of index fields that should be treated as content.
          items:
            type: string
        content_fields_separator:
          type: string
          description: The separator pattern that content fields should use.
        vector_fields:
          type: array
          description: The names of fields that represent vector data.
          items:
            type: string
      description: Optional settings to control how fields are processed when using a configured Azure Search resource.
    azureSearchQueryType:
      type: string
      description: The type of Azure Search retrieval query that should be executed when using it as an Azure OpenAI chat extension.
      enum:
        - simple
        - semantic
        - vector
        - vector_simple_hybrid
        - vector_semantic_hybrid
      x-ms-enum:
        name: azureSearchQueryType
        modelAsString: true
        values:
          - name: simple
            value: simple
            description: Represents the default, simple query parser.
          - name: semantic
            value: semantic
            description: Represents the semantic query parser for advanced semantic modeling.
          - name: vector
            value: vector
            description: Represents vector search over computed data.
          - name: vectorSimpleHybrid
            value: vector_simple_hybrid
            description: Represents a combination of the simple query strategy with vector data.
          - name: vectorSemanticHybrid
            value: vector_semantic_hybrid
            description: Represents a combination of semantic search and vector data querying.
    azureCosmosDBChatExtensionConfiguration:
      required:
        - parameters
      description: |-
        A specific representation of configurable options for Azure Cosmos DB when using it as an Azure OpenAI chat
        extension.
      allOf:
        - $ref: '#/components/schemas/azureChatExtensionConfiguration'
        - properties:
            parameters:
              $ref: '#/components/schemas/azureCosmosDBChatExtensionParameters'
      x-ms-discriminator-value: azure_cosmos_db
    azureCosmosDBChatExtensionParameters:
      required:
        - authentication
        - container_name
        - database_name
        - embedding_dependency
        - fields_mapping
        - index_name
      type: object
      properties:
        authentication:
          $ref: '#/components/schemas/onYourDataConnectionStringAuthenticationOptions'
        top_n_documents:
          type: integer
          description: The configured top number of documents to feature for the configured query.
          format: int32
        in_scope:
          type: boolean
          description: Whether queries should be restricted to use of indexed data.
        strictness:
          maximum: 5
          minimum: 1
          type: integer
          description: The configured strictness of the search relevance filtering. The higher of strictness, the higher of the precision but lower recall of the answer.
          format: int32
        role_information:
          type: string
          description: Give the model instructions about how it should behave and any context it should reference when generating a response. You can describe the assistant's personality and tell it how to format responses. There's a 100 token limit for it, and it counts against the overall token limit.
        database_name:
          type: string
          description: The MongoDB vCore database name to use with Azure Cosmos DB.
        container_name:
          type: string
          description: The name of the Azure Cosmos DB resource container.
        index_name:
          type: string
          description: The MongoDB vCore index name to use with Azure Cosmos DB.
        fields_mapping:
          $ref: '#/components/schemas/azureCosmosDBFieldMappingOptions'
        embedding_dependency:
          oneOf:
            - $ref: '#/components/schemas/onYourDataEndpointVectorizationSource'
            - $ref: '#/components/schemas/onYourDataDeploymentNameVectorizationSource'
      description: |-
        Parameters to use when configuring Azure OpenAI On Your Data chat extensions when using Azure Cosmos DB for
        MongoDB vCore.
    azureCosmosDBFieldMappingOptions:
      required:
        - content_fields
        - vector_fields
      type: object
      properties:
        title_field:
          type: string
          description: The name of the index field to use as a title.
        url_field:
          type: string
          description: The name of the index field to use as a URL.
        filepath_field:
          type: string
          description: The name of the index field to use as a filepath.
        content_fields:
          type: array
          description: The names of index fields that should be treated as content.
          items:
            type: string
        content_fields_separator:
          type: string
          description: The separator pattern that content fields should use.
        vector_fields:
          type: array
          description: The names of fields that represent vector data.
          items:
            type: string
      description: Optional settings to control how fields are processed when using a configured Azure Cosmos DB resource.
    onYourDataAuthenticationOptions:
      required:
        - type
      type: object
      properties:
        type:
          $ref: '#/components/schemas/onYourDataAuthenticationType'
      description: The authentication options for Azure OpenAI On Your Data.
      discriminator:
        propertyName: type
        mapping:
          api_key: '#/components/schemas/onYourDataApiKeyAuthenticationOptions'
          connection_string: '#/components/schemas/onYourDataConnectionStringAuthenticationOptions'
          system_assigned_managed_identity: '#/components/schemas/onYourDataSystemAssignedManagedIdentityAuthenticationOptions'
          user_assigned_managed_identity: '#/components/schemas/onYourDataUserAssignedManagedIdentityAuthenticationOptions'
    onYourDataAuthenticationType:
      type: string
      description: The authentication types supported with Azure OpenAI On Your Data.
      enum:
        - api_key
        - connection_string
        - system_assigned_managed_identity
        - user_assigned_managed_identity
      x-ms-enum:
        name: OnYourDataAuthenticationType
        modelAsString: true
        values:
          - name: apiKey
            value: api_key
            description: Authentication via API key.
          - name: connectionString
            value: connection_string
            description: Authentication via connection string.
          - name: systemAssignedManagedIdentity
            value: system_assigned_managed_identity
            description: Authentication via system-assigned managed identity.
          - name: userAssignedManagedIdentity
            value: user_assigned_managed_identity
            description: Authentication via user-assigned managed identity.
    onYourDataApiKeyAuthenticationOptions:
      required:
        - key
      description: The authentication options for Azure OpenAI On Your Data when using an API key.
      allOf:
        - $ref: '#/components/schemas/onYourDataAuthenticationOptions'
        - properties:
            key:
              type: string
              description: The API key to use for authentication.
      x-ms-discriminator-value: api_key
    onYourDataConnectionStringAuthenticationOptions:
      required:
        - connection_string
      description: The authentication options for Azure OpenAI On Your Data when using a connection string.
      allOf:
        - $ref: '#/components/schemas/onYourDataAuthenticationOptions'
        - properties:
            connection_string:
              type: string
              description: The connection string to use for authentication.
      x-ms-discriminator-value: connection_string
    onYourDataSystemAssignedManagedIdentityAuthenticationOptions:
      description: The authentication options for Azure OpenAI On Your Data when using a system-assigned managed identity.
      allOf:
        - $ref: '#/components/schemas/onYourDataAuthenticationOptions'
      x-ms-discriminator-value: system_assigned_managed_identity
    onYourDataUserAssignedManagedIdentityAuthenticationOptions:
      required:
        - managed_identity_resource_id
      description: The authentication options for Azure OpenAI On Your Data when using a user-assigned managed identity.
      allOf:
        - $ref: '#/components/schemas/onYourDataAuthenticationOptions'
        - properties:
            managed_identity_resource_id:
              type: string
              description: The resource ID of the user-assigned managed identity to use for authentication.
      x-ms-discriminator-value: user_assigned_managed_identity
    onYourDataVectorizationSource:
      required:
        - type
      type: object
      properties:
        type:
          $ref: '#/components/schemas/onYourDataVectorizationSourceType'
      description: An abstract representation of a vectorization source for Azure OpenAI On Your Data with vector search.
      discriminator:
        propertyName: type
        mapping:
          endpoint: '#/components/schemas/onYourDataEndpointVectorizationSource'
          deployment_name: '#/components/schemas/onYourDataDeploymentNameVectorizationSource'
    onYourDataVectorizationSourceType:
      type: string
      description: |-
        Represents the available sources Azure OpenAI On Your Data can use to configure vectorization of data for use with
        vector search.
      enum:
        - endpoint
        - deployment_name
      x-ms-enum:
        name: OnYourDataVectorizationSourceType
        modelAsString: true
        values:
          - name: endpoint
            value: endpoint
            description: Represents vectorization performed by public service calls to an Azure OpenAI embedding model.
          - name: deploymentName
            value: deployment_name
            description: |-
              Represents an Ada model deployment name to use. This model deployment must be in the same Azure OpenAI resource, but
              On Your Data will use this model deployment via an internal call rather than a public one, which enables vector
              search even in private networks.
    onYourDataDeploymentNameVectorizationSource:
      required:
        - deployment_name
      description: |-
        The details of a a vectorization source, used by Azure OpenAI On Your Data when applying vector search, that is based
        on an internal embeddings model deployment name in the same Azure OpenAI resource.
      allOf:
        - $ref: '#/components/schemas/onYourDataVectorizationSource'
        - properties:
            deployment_name:
              type: string
              description: Specifies the name of the model deployment to use for vectorization. This model deployment must be in the same Azure OpenAI resource, but On Your Data will use this model deployment via an internal call rather than a public one, which enables vector search even in private networks.
      x-ms-discriminator-value: deployment_name
    onYourDataEndpointVectorizationSource:
      required:
        - authentication
        - endpoint
      description: |-
        The details of a a vectorization source, used by Azure OpenAI On Your Data when applying vector search, that is based
        on a public Azure OpenAI endpoint call for embeddings.
      allOf:
        - $ref: '#/components/schemas/onYourDataVectorizationSource'
        - properties:
            authentication:
              $ref: '#/components/schemas/onYourDataApiKeyAuthenticationOptions'
            endpoint:
              type: string
              description: Specifies the endpoint to use for vectorization. This endpoint must be in the same Azure OpenAI resource, but On Your Data will use this endpoint via an internal call rather than a public one, which enables vector search even in private networks.
              format: uri
      x-ms-discriminator-value: endpoint
    azureChatExtensionsMessageContext:
      type: object
      properties:
        citations:
          type: array
          description: The data source retrieval result, used to generate the assistant message in the response.
          items:
            $ref: '#/components/schemas/citation'
          x-ms-identifiers: []
        intent:
          type: string
          description: The detected intent from the chat history, used to pass to the next turn to carry over the context.
      description: |2-
          A representation of the additional context information available when Azure OpenAI chat extensions are involved
          in the generation of a corresponding chat completions response. This context information is only populated when
          using an Azure OpenAI request configured to use a matching extension.
    citation:
      required:
        - content
      type: object
      properties:
        content:
          type: string
          description: The content of the citation.
        title:
          type: string
          description: The title of the citation.
        url:
          type: string
          description: The URL of the citation.
        filepath:
          type: string
          description: The file path of the citation.
        chunk_id:
          type: string
          description: The chunk ID of the citation.
      description: citation information for a chat completions response message.
    chatCompletionMessageToolCall:
      type: object
      properties:
        id:
          type: string
          description: The ID of the tool call.
        type:
          $ref: '#/components/schemas/toolCallType'
        function:
          type: object
          description: The function that the model called.
          properties:
            name:
              type: string
              description: The name of the function to call.
            arguments:
              type: string
              description: The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function.
          required:
            - name
            - arguments
      required:
        - id
        - type
        - function
    toolCallType:
      type: string
      enum:
        - function
      description: The type of the tool call, in this case `function`.
      x-ms-enum:
        name: ToolCallType
        modelAsString: true
        values:
          - value: function
            description: The tool call type is function.
    chatCompletionRequestMessageTool:
      allOf:
        - $ref: '#/components/schemas/chatCompletionRequestMessage'
        - type: object
          nullable: true
          properties:
            tool_call_id:
              type: string
              description: Tool call that this message is responding to.
            content:
              type: string
              description: The contents of the message.
              nullable: true
      required:
        - tool_call_id
        - content
    chatCompletionRequestMessageFunction:
      allOf:
        - $ref: '#/components/schemas/chatCompletionRequestMessage'
        - type: object
          description: Deprecated. Message that represents a function.
          nullable: true
          properties:
            role:
              type: string
              enum:
                - function
              description: The role of the messages author, in this case `function`.
            name:
              type: string
              description: The contents of the message.
            content:
              type: string
              description: The contents of the message.
              nullable: true
      required:
        - function_call_id
        - content
    createChatCompletionResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/chatCompletionsResponseCommon'
        - properties:
            prompt_filter_results:
              $ref: '#/components/schemas/promptFilterResults'
            choices:
              type: array
              items:
                type: object
                allOf:
                  - $ref: '#/components/schemas/chatCompletionChoiceCommon'
                  - properties:
                      message:
                        $ref: '#/components/schemas/chatCompletionResponseMessage'
                      content_filter_results:
                        $ref: '#/components/schemas/contentFilterChoiceResults'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



