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

# Generate text

> Sends an AI request to supported Large Language Models (LLMs) and returns generated text based on the provided prompt.

<Note>
  This endpoint is in the version **2024.0**. No changes are required to continue using it. For more details, see **[Box API versioning](/guides/api-calls/api-versioning-strategy)**.

  Learn more about [Box SDK versioning strategy](/guides/tooling/sdks/sdk-versioning/).
</Note>


## OpenAPI

````yaml /box-openapi.json POST /ai/text_gen
openapi: 3.0.2
info:
  title: Box Platform API
  description: >-
    [Box Platform](https://developer.box.com) provides functionality to provide
    access to content stored within [Box](https://box.com). It provides
    endpoints for basic manipulation of files and folders, management of users
    within an enterprise, as well as more complex topics such as legal holds and
    retention policies.
  termsOfService: https://cloud.app.box.com/s/rmwxu64h1ipr41u49w3bbuvbsa29wku9
  contact:
    name: Box, Inc
    url: https://developer.box.com
    email: devrel@box.com
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: '2024.0'
  x-box-commit-hash: 95117b97f9
servers:
  - url: https://api.box.com/2.0
    description: Box Platform API server.
security:
  - OAuth2Security: []
tags:
  - name: AI
    description: A set of endpoints used to interact with supported LLMs.
    x-box-tag: ai
  - name: AI Studio
    description: A set of endpoints used to interact with AI Studio.
    x-box-tag: ai_studio
  - name: App item associations
    x-box-tag: app_item_associations
  - name: Authorization
    description: A set of endpoints used to manage user authorization process.
    x-box-tag: authorization
    x-box-priority: true
  - name: Box Sign requests
    description: Box Sign requests are used to submit a file for signature.
    x-box-tag: sign_requests
  - name: Classifications
    description: >-
      Classification labels are used for content that is sensitive or under
      security restrictions.
    x-box-tag: classifications
  - name: Classifications on files
    description: >-
      Classification labels are used for files that are sensitive or under
      security restrictions.
    x-box-tag: file_classifications
  - name: Classifications on folders
    description: >-
      Classification labels are used for folders that are sensitive or under
      security restrictions.
    x-box-tag: folder_classifications
  - name: Collaborations
    description: >-
      Collaborations define access permissions for users and groups to files and
      folders, similar to access control lists.
    x-box-tag: user_collaborations
  - name: Collaborations (List)
    description: >-
      A set of endpoints used to retrieve file, folder, pending, and group
      collaborations.
    x-box-tag: list_collaborations
  - name: Collections
    description: >-
      Collections are a way to group files, folders, and web links without
      putting them all into a folder.
    x-box-tag: collections
  - name: Comments
    description: >-
      Comments are messages generated users on files, allowing users to
      collaborate on a file, discussing any feedback they might have on the
      content.
    x-box-tag: comments
  - name: Device pinners
    description: >-
      Device pinners allow enterprises to control what devices can use native
      Box applications.
    x-box-tag: device_pinners
  - name: Domain restrictions (User exemptions)
    description: >-
      A set of endpoints that allow exempting users from restrictions imposed by
      the list of allowed collaboration domains for a specific enterprise.
    x-box-tag: collaboration_allowlist_exempt_targets
  - name: Domain restrictions for collaborations
    description: >-
      A set of endpoints that manage domains for which users can collaborate
      with files and folders in an enterprise.
    x-box-tag: collaboration_allowlist_entries
  - name: Downloads
    description: >-
      Downloads allow saving files to the application's server, or directly by
      the end user in a browser.
    x-box-tag: downloads
  - name: Email aliases
    description: >-
      Email aliases provide a list of emails additional to the user's primary
      login email.
    x-box-tag: email_aliases
  - name: Events
    description: >-
      Events provide a way for an application to subscribe to any actions
      performed by any user, users, or service in an enterprise.
    x-box-tag: events
  - name: File requests
    description: >-
      File Requests provide a fast and secure way to request files and
      associated metadata from anyone. Users can create new file requests based
      on an existing file request, update file request settings, activate,
      deactivate, and delete file requests programmatically.
    x-box-tag: file_requests
  - name: File version legal holds
    description: >-
      A legal hold is a process that an enterprise can use to preserve all forms
      of potentially relevant information when litigation is pending or
      reasonably anticipated. A File Version Legal Hold represents all the
      policies that are assigned to a specific file version.
    x-box-tag: file_version_legal_holds
  - name: File version retentions
    description: >-
      A retention policy blocks permanent deletion of content for a specified
      amount of time. A file version retention is a record for a retained file.
    x-box-tag: file_version_retentions
  - name: File versions
    description: A set of endpoints used to manage specific versions of a file.
    x-box-tag: file_versions
  - name: Files
    description: >-
      Files, together with Folders, are at the core of the Box API. Files can be
      uploaded and downloaded, as well as hold important metadata information
      about the content.
    x-box-tag: files
  - name: Folder Locks
    description: >-
      Folder locks define access restrictions placed by folder owners to prevent
      specific folders from being moved or deleted.
    x-box-tag: folder_locks
  - name: Folders
    description: >-
      Folders, together with Files, are at the core of the Box API. Folders can
      be uploaded and downloaded, as well as hold important metadata information
      about the content.
    x-box-tag: folders
  - name: Integration mappings
    description: >-
      Integration Mappings allow the users to manage where content from partner
      apps is stored in Box.
    x-box-tag: integration_mappings
  - name: Group memberships
    description: Group memberships signify that a user is a part of the group.
    x-box-tag: memberships
  - name: Groups
    description: Groups created in an enterprise.
    x-box-tag: groups
  - name: Invites
    description: Invites are used to invite the user to an enterprise.
    x-box-tag: invites
  - name: Legal hold policies
    description: >-
      A legal hold is a process that an enterprise can use to preserve all forms
      of potentially relevant information when litigation is pending or
      reasonably anticipated.
    x-box-tag: legal_hold_policies
  - name: Legal hold policy assignments
    description: >-
      A Legal Hold Policy Assignment is a relation between a policy and
      custodian. In this case, as custodian can be a user, folder, file, or file
      version.
    x-box-tag: legal_hold_policy_assignments
  - name: Metadata cascade policies
    description: >-
      A metadata cascade policy describes how metadata instances applied to a
      folder should be applied to any item within that folder.
    x-box-tag: metadata_cascade_policies
  - name: Metadata instances (Files)
    description: >-
      A metadata instance describes the relation between a template and a file,
      including the values that are assigned for every field.
    x-box-tag: file_metadata
  - name: Metadata instances (Folders)
    description: >-
      A metadata instance describes the relation between a template and a
      folder, including the values that are assigned for every field.
    x-box-tag: folder_metadata
  - name: Metadata taxonomies
    description: >-
      A metadata taxonomy is a hierarchical classification system that helps
      organize and manage metadata within an enterprise.
    x-box-tag: metadata_taxonomies
  - name: Metadata templates
    description: >-
      A metadata template describes a reusable set of key/value pairs that can
      be assigned to a file.
    x-box-tag: metadata_templates
  - name: Recent items
    description: >-
      Recent items represent items such as files or folders that the user
      accessed recently.
    x-box-tag: recent_items
  - name: Retention policies
    description: >-
      A retention policy blocks permanent deletion of content for a specified
      amount of time. Admins can create retention policies and then assign them
      to specific folders or their entire enterprise.
    x-box-tag: retention_policies
  - name: Retention policy assignments
    description: >-
      A Retention Policy Assignment is a relation between a policy and folder or
      enterprise. Creating an assignment puts a retention on all the file
      versions that belong to that folder or enterprise.
    x-box-tag: retention_policy_assignments
  - name: Search
    description: >-
      The Box API provides a way to find content in Box using full-text search
      queries.
    x-box-tag: search
  - name: Session termination
    description: >-
      Session termination API is used to validate the roles and permissions of
      the group, and creates asynchronous jobs to terminate the group's
      sessions.
    x-box-tag: session_termination
  - name: Shared links (Files)
    description: >-
      Files shared links are URLs that are generated for files stored in Box,
      which provide direct, read-only access to the resource.
    x-box-tag: shared_links_files
  - name: Shared links (Folders)
    description: >-
      Folders shared links are URLs that are generated for folders stored in
      Box, which provide direct, read-only access to the resource.
    x-box-tag: shared_links_folders
  - name: Shared links (Web Links)
    description: >-
      Web links for files are URLs that are generated for web links in Box,
      which provide direct, read-only access to the resource.
    x-box-tag: shared_links_web_links
  - name: Shared links (App Items)
    description: >-
      URLs generated for app items stored in Box, which provide direct,
      read-only access to the resource.
    x-box-tag: shared_links_app_items
  - name: Shield information barriers
    description: >-
      Shield information barrier in Box defines an ethical wall. An ethical wall
      is a mechanism that prevents exchanges or communication that could lead to
      conflicts of interest and therefore result in business activities
      ethically or legally questionable.
    x-box-tag: shield_information_barriers
  - name: Shield information barrier segments
    description: >-
      Shield information barrier segment represents a defined group of users. A
      user can be a member of only one segment, which makes segments different
      from groups.
    x-box-tag: shield_information_barrier_segments
  - name: Shield information barrier segment members
    description: >-
      Shield information barrier segment member represents a user that is
      assigned to a specific segment.
    x-box-tag: shield_information_barrier_segment_members
  - name: Shield information barrier reports
    description: >-
      Shield information barrier reports contain information on what existing
      collaborations will be removed permanently when the information barrier is
      enabled.
    x-box-tag: shield_information_barrier_reports
  - name: Shield information barrier segment restrictions
    description: >-
      Shield information barrier segment restriction is an access restriction
      based on the content (file or folder) owner.
    x-box-tag: shield_information_barrier_segment_restrictions
  - name: Box Sign templates
    description: >-
      Sign templates allow you to use a predefined Box Sign template when
      creating a signature request. The template includes placeholders that are
      automatically populated with data when creating the request.
    x-box-tag: sign_templates
  - name: Skills
    description: >-
      Box Skills are designed to allow custom processing of files uploaded to
      Box, with the intent of enhancing the underlying metadata of the file.
    x-box-tag: skills
  - name: Standard and Zones Storage Policies
    description: >-
      Storage policy assignment represents the storage zone for items in a given
      enterprise.
    x-box-tag: storage_policies
  - name: Standard and Zones Storage Policy Assignments
    description: >-
      Storage policy assignment represents the relation between storage zone and
      the assigned item (for example a file stored in a specific zone).
    x-box-tag: storage_policy_assignments
  - name: Task assignments
    description: >-
      A task assignment defines which task is assigned to which user to
      complete.
    x-box-tag: task_assignments
  - name: Tasks
    description: >-
      Tasks allow users to request collaborators on a file to review a file or
      complete a piece of work. Tasks can be used by developers to create
      file-centric workflows.
    x-box-tag: tasks
  - name: Terms of service
    description: A set of endpoints used to manage terms of service agreements.
    x-box-tag: terms_of_services
  - name: Terms of service user statuses
    description: >-
      A set of endpoints used to manage the status of terms of service for a
      particular user.
    x-box-tag: terms_of_service_user_statuses
  - name: Transfer folders
    description: >-
      API designed to move all of the items (files, folders and workflows) owned
      by a user into another user's account.
    x-box-tag: transfer
  - name: Trashed files
    description: Files that were deleted and are in trash.
    x-box-tag: trashed_files
  - name: Trashed folders
    description: Folders that were deleted and are in trash.
    x-box-tag: trashed_folders
  - name: Trashed items
    description: Items that were deleted and are in trash.
    x-box-tag: trashed_items
  - name: Trashed web links
    description: Web links that were deleted and are in trash.
    x-box-tag: trashed_web_links
  - name: Uploads
    description: >-
      The direct file upload API supports files up to 50MB in size and sends all
      the binary data to the Box API in 1 API request.
    x-box-tag: uploads
  - name: Uploads (Chunked)
    description: >-
      The chunked upload endpoints support files from 20MB in size and allow an
      application to upload the file in parts, allowing for more control to
      catch any errors and retry parts individually.
    x-box-tag: chunked_uploads
  - name: User avatars
    description: >-
      User avatars are JPG or PNG files uploaded to Box to represent the user
      image. They are then displayed in the user account.
    x-box-tag: avatars
  - name: Users
    description: >-
      Box API supports a variety of users, ranging from real employees logging
      in with their Managed User account, to applications using App Users to
      drive powerful automation workflows.
    x-box-tag: users
  - name: Watermarks (Files)
    description: >-
      A watermark is a semi-transparent overlay on an embedded file preview that
      displays a viewer's email address or user ID and the time of access over
      the file.
    x-box-tag: file_watermarks
  - name: Watermarks (Folders)
    description: >-
      A watermark is a semi-transparent overlay on an embedded folder preview
      that displays a viewer's email address or user ID and the time of access
      over the folder content.
    x-box-tag: folder_watermarks
  - name: Web links
    description: >-
      Web links are objects that point to URLs. These objects are also known as
      bookmarks within the Box web application.
    x-box-tag: web_links
  - name: Webhooks
    description: >-
      Webhooks allow you to monitor Box content for events, and receive
      notifications to a URL of your choice when they occur. For example, a
      workflow may include waiting for a file to be downloaded to delete a
      shared link.
    x-box-tag: webhooks
  - name: Workflows
    description: >-
      Box Relay Workflows are objects that represent a named collection of
      flows.
    x-box-tag: workflows
  - name: Zip Downloads
    description: >-
      Zip downloads represent a successful request to create a ZIP archive with
      files and folders.
    x-box-tag: zip_downloads
externalDocs:
  description: Box Developer Documentation.
  url: https://developer.box.com
paths:
  /ai/text_gen:
    post:
      tags:
        - AI
      summary: Generate text
      description: >-
        Sends an AI request to supported Large Language Models (LLMs) and
        returns generated text based on the provided prompt.
      operationId: post_ai_text_gen
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AiTextGen'
      responses:
        '200':
          description: A successful response including the answer from the LLM.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AiResponse'
        '500':
          description: An unexpected server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
        default:
          description: An unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
      x-codeSamples:
        - lang: curl
          label: Generate text
          source: |-
            curl -i -L POST "https://api.box.com/2.0/ai/text_gen" \
                 -H "content-type: application/json" \
                 -H "authorization: Bearer <ACCESS_TOKEN>" \
                 -d '{
                      "prompt": "Write a social media post about protein powder.",
                      "items": [
                     {
                        "id": "12345678",
                        "type": "file",
                        "content": "More information about protein powders"
                    },
                    ],
                      "dialogue_history": [
                        {
                            "prompt": "Can you add some more information?",
                            "answer": "Public API schemas provide necessary information to integrate with APIs...",
                            "created_at": "2013-12-12T11:20:43-08:00"
                        }
                    ],
                      "ai_agent": {
                        "type": "ai_agent_text_gen",
                        "basic_gen": {
                          "model": "azure__openai__gpt_4o_mini"
                        }
                     }
                 }'
        - lang: dotnet
          label: Generate text
          source: >-
            await client.Ai.CreateAiTextGenAsync(requestBody: new
            AiTextGen(prompt: "Paraphrase the documents", items:
            Array.AsReadOnly(new [] {new AiTextGenItemsField(id: fileToAsk.Id,
            type: AiTextGenItemsTypeField.File) { Content = "The Earth goes
            around the Sun. The Sun rises in the east in the morning." }})) {
            DialogueHistory = Array.AsReadOnly(new [] {new AiDialogueHistory() {
            Prompt = "What does the earth go around?", Answer = "The Sun",
            CreatedAt = Utils.DateTimeFromString(dateTime:
            "2021-01-01T00:00:00Z") },new AiDialogueHistory() { Prompt = "On
            Earth, where does the Sun rise?", Answer = "east", CreatedAt =
            Utils.DateTimeFromString(dateTime: "2021-01-01T00:00:00Z") }}) });
        - lang: swift
          label: Generate text
          source: >-
            try await client.ai.createAiTextGen(requestBody: AiTextGen(prompt:
            "Paraphrase the documents", items: [AiTextGenItemsField(id:
            fileToAsk.id, type: AiTextGenItemsTypeField.file, content: "The
            Earth goes around the Sun. The Sun rises in the east in the
            morning.")], dialogueHistory: [AiDialogueHistory(prompt: "What does
            the earth go around?", answer: "The Sun", createdAt: try
            Utils.Dates.dateTimeFromString(dateTime: "2021-01-01T00:00:00Z")),
            AiDialogueHistory(prompt: "On Earth, where does the Sun rise?",
            answer: "east", createdAt: try
            Utils.Dates.dateTimeFromString(dateTime: "2021-01-01T00:00:00Z"))]))
        - lang: java
          label: Generate text
          source: >-
            client.getAi().createAiTextGen(new AiTextGen.Builder("Paraphrase the
            documents", Arrays.asList(new
            AiTextGenItemsField.Builder(fileToAsk.getId()).type(AiTextGenItemsTypeField.FILE).content("The
            Earth goes around the Sun. The Sun rises in the east in the
            morning.").build())).dialogueHistory(Arrays.asList(new
            AiDialogueHistory.Builder().prompt("What does the earth go
            around?").answer("The
            Sun").createdAt(dateTimeFromString("2021-01-01T00:00:00Z")).build(),
            new AiDialogueHistory.Builder().prompt("On Earth, where does the Sun
            rise?").answer("east").createdAt(dateTimeFromString("2021-01-01T00:00:00Z")).build())).build())
        - lang: node
          label: Generate text
          source: |-
            await client.ai.createAiTextGen({
              prompt: 'Paraphrase the documents',
              items: [
                new AiTextGenItemsField({
                  id: fileToAsk.id,
                  type: 'file' as AiTextGenItemsTypeField,
                  content:
                    'The Earth goes around the Sun. The Sun rises in the east in the morning.',
                }),
              ],
              dialogueHistory: [
                {
                  prompt: 'What does the earth go around?',
                  answer: 'The Sun',
                  createdAt: dateTimeFromString('2021-01-01T00:00:00Z'),
                } satisfies AiDialogueHistory,
                {
                  prompt: 'On Earth, where does the Sun rise?',
                  answer: 'east',
                  createdAt: dateTimeFromString('2021-01-01T00:00:00Z'),
                } satisfies AiDialogueHistory,
              ],
            } satisfies AiTextGen);
        - lang: python
          label: Generate text
          source: |-
            client.ai.create_ai_text_gen(
                "Paraphrase the documents",
                [
                    CreateAiTextGenItems(
                        id=file_to_ask.id,
                        type=CreateAiTextGenItemsTypeField.FILE,
                        content="The Earth goes around the Sun. The Sun rises in the east in the morning.",
                    )
                ],
                dialogue_history=[
                    AiDialogueHistory(
                        prompt="What does the earth go around?",
                        answer="The Sun",
                        created_at=date_time_from_string("2021-01-01T00:00:00Z"),
                    ),
                    AiDialogueHistory(
                        prompt="On Earth, where does the Sun rise?",
                        answer="east",
                        created_at=date_time_from_string("2021-01-01T00:00:00Z"),
                    ),
                ],
            )
components:
  schemas:
    AiTextGen:
      description: AI text gen request object.
      type: object
      properties:
        prompt:
          description: >-
            The prompt provided by the client to be answered by the LLM. The
            prompt's length is limited to 10000 characters.
          type: string
          example: Write an email to a client about the importance of public APIs.
        items:
          description: >-
            The items to be processed by the LLM, often files. The array can
            include **exactly one** element.


            **Note**: Box AI handles documents with text representations up to
            1MB in size. If the file size exceeds 1MB, the first 1MB of text
            representation will be processed.
          type: array
          items:
            required:
              - id
              - type
            type: object
            description: The item to be processed by the LLM.
            properties:
              id:
                description: The ID of the item.
                type: string
                example: '123'
              type:
                description: The type of the item.
                type: string
                example: file
                enum:
                  - file
              content:
                description: >-
                  The content to use as context for generating new text or
                  editing existing text.
                example: This is file content that is relevant to the text gen request.
                type: string
          maxItems: 1
          minItems: 1
          uniqueItems: true
        dialogue_history:
          description: >-
            The history of prompts and answers previously passed to the LLM.
            This parameter provides the additional context to the LLM when
            generating the response.
          type: array
          items:
            $ref: '#/components/schemas/AiDialogueHistory'
        ai_agent:
          allOf:
            - $ref: '#/components/schemas/AiTextGenAgent'
            - description: The AI agent to be used for generating text.
      required:
        - prompt
        - items
      title: AI text gen request
      x-box-tag: ai
    AiResponse:
      description: AI response.
      type: object
      properties:
        answer:
          description: The answer provided by the LLM.
          type: string
          example: Public APIs are important because of key and important reasons.
        created_at:
          description: >-
            The ISO date formatted timestamp of when the answer to the prompt
            was created.
          type: string
          format: date-time
          example: '2012-12-12T10:53:43-08:00'
        completion_reason:
          description: The reason the response finishes.
          type: string
          example: done
        ai_agent_info:
          $ref: '#/components/schemas/AiAgentInfo'
      required:
        - answer
        - created_at
      title: AI response
      x-box-resource-id: ai_response
      x-box-tag: ai
      x-box-variant: standard
      x-box-variants:
        - standard
        - full
    ClientError:
      description: A generic error.
      type: object
      properties:
        type:
          description: The value will always be `error`.
          type: string
          example: error
          enum:
            - error
          nullable: false
        status:
          description: The HTTP status of the response.
          type: integer
          format: int32
          example: 400
          nullable: false
        code:
          description: A Box-specific error code.
          type: string
          example: item_name_invalid
          enum:
            - created
            - accepted
            - no_content
            - redirect
            - not_modified
            - bad_request
            - unauthorized
            - forbidden
            - not_found
            - method_not_allowed
            - conflict
            - precondition_failed
            - too_many_requests
            - internal_server_error
            - unavailable
            - item_name_invalid
            - insufficient_scope
        message:
          description: A short message describing the error.
          type: string
          example: Method Not Allowed
          nullable: false
        context_info:
          description: >-
            A free-form object that contains additional context about the error.
            The possible fields are defined on a per-endpoint basis. `message`
            is only one example.
          type: object
          example:
            message: Something went wrong
          additionalProperties: {}
          nullable: true
        help_url:
          description: A URL that links to more information about why this error occurred.
          type: string
          example: >-
            https://developer.box.com/guides/api-calls/permissions-and-errors/common-errors/
          nullable: false
        request_id:
          description: >-
            A unique identifier for this response, which can be used when
            contacting Box support.
          type: string
          example: abcdef123456
          nullable: false
      title: Client error
      x-box-resource-id: client_error
    AiDialogueHistory:
      description: A context object that can hold prior prompts and answers.
      type: object
      properties:
        prompt:
          description: >-
            The prompt previously provided by the client and answered by the
            LLM.
          type: string
          example: Make my email about public APIs sound more professional.
        answer:
          description: The answer previously provided by the LLM.
          type: string
          example: >-
            Here is the first draft of your professional email about public
            APIs.
        created_at:
          description: >-
            The ISO date formatted timestamp of when the previous answer to the
            prompt was created.
          type: string
          format: date-time
          example: '2012-12-12T10:53:43-08:00'
      title: Dialogue history
    AiTextGenAgent:
      description: The AI agent to be used to handle the AI text generation request.
      type: object
      oneOf:
        - $ref: '#/components/schemas/AiAgentReference'
        - $ref: '#/components/schemas/AiAgentTextGen'
      title: AI text gen request agent
    AiAgentInfo:
      description: The information on the models and processors used in the request.
      type: object
      properties:
        models:
          description: The models used for the request.
          type: array
          items:
            type: object
            properties:
              name:
                description: The name of the model used for the request.
                type: string
                example: azure__openai__text_embedding_ada_002
              provider:
                description: The provider that owns the model used for the request.
                type: string
                example: azure
              supported_purpose:
                description: >-
                  The supported purpose utilized by the model used for the
                  request.
                type: string
                example: embedding
        processor:
          description: The processor used for the request.
          type: string
          example: basic_text
      title: The information on the models and processors used in the request.
    AiAgentReference:
      description: The AI agent used to handle queries.
      type: object
      properties:
        type:
          description: The type of AI agent used to handle queries.
          type: string
          example: ai_agent_id
          enum:
            - ai_agent_id
          nullable: false
        id:
          description: >-
            The ID of an Agent. This can be a numeric ID for custom agents (for
            example, `14031`) or a unique identifier for pre-built agents (for
            example, `enhanced_extract_agent` for the [Enhanced Extract
            Agent](/guides/box-ai/ai-tutorials/extract-metadata-structured#enhanced-extract-agent)).
          type: string
          example: '14031'
          nullable: false
      required:
        - type
      title: AI agent reference
      x-box-resource-id: ai_agent_reference
      x-box-tag: ai
    AiAgentTextGen:
      description: The AI agent used for generating text.
      type: object
      properties:
        type:
          description: The type of AI agent used for generating text.
          type: string
          example: ai_agent_text_gen
          enum:
            - ai_agent_text_gen
          nullable: false
        basic_gen:
          $ref: '#/components/schemas/AiAgentBasicGenTool'
      required:
        - type
      title: AI agent for text generation requests
      x-box-resource-id: ai_agent_text_gen
      x-box-tag: ai
    AiAgentBasicGenTool:
      description: AI agent basic tool used to generate text.
      type: object
      allOf:
        - $ref: '#/components/schemas/AiAgentLongTextToolTextGen'
        - properties:
            content_template:
              description: >-
                How the content should be included in a request to the LLM.
                Input for `{content}` is optional, depending on the use.
              type: string
              example: '---{content}---'
      title: AI agent basic text generation tool
      x-box-tag: ai
    AiAgentLongTextToolTextGen:
      description: AI agent processor used to to handle longer text.
      type: object
      allOf:
        - $ref: '#/components/schemas/AiAgentBasicTextToolTextGen'
        - properties:
            embeddings:
              type: object
              properties:
                model:
                  description: The model used for the AI agent for calculating embeddings.
                  type: string
                  example: azure__openai__text_embedding_ada_002
                strategy:
                  type: object
                  properties:
                    id:
                      description: >-
                        The strategy used for the AI agent for calculating
                        embeddings.
                      type: string
                      example: basic
                    num_tokens_per_chunk:
                      description: The number of tokens per chunk.
                      type: integer
                      example: 64
                      maximum: 512
                      minimum: 1
      title: AI agent long text tool
      x-box-tag: ai
    AiAgentBasicTextToolTextGen:
      description: AI agent processor used to handle basic text.
      type: object
      allOf:
        - $ref: '#/components/schemas/AiAgentBasicTextToolBase'
        - properties:
            system_message:
              description: >-
                System messages aim at helping the LLM understand its role and
                what it is supposed to do. The input for `{current_date}` is
                optional, depending on the use.
              type: string
              example: You are a helpful travel assistant specialized in budget travel
            prompt_template:
              description: >-
                The prompt template contains contextual information of the
                request and the user prompt.


                When using the `prompt_template` parameter, you **must include**
                input for `{user_question}`. Inputs for `{current_date}` and
                `{content}` are optional, depending on the use.
              type: string
              example: >-
                It is `{current_date}`, and I have $8000 and want to spend a
                week in the Azores. `{user_question}`
              maxLength: 10000
              pattern: \{user_question\}
      title: AI agent basic text tool
      x-box-tag: ai
    AiAgentBasicTextToolBase:
      description: AI agent processor used to handle basic text.
      type: object
      properties:
        model:
          description: >-
            The model used for the AI agent for basic text. For specific model
            values, see the [available models list](/guides/box-ai/ai-models).
          type: string
          example: azure__openai__gpt_4o_mini
        num_tokens_for_completion:
          description: The number of tokens for completion.
          type: integer
          example: 8400
          minimum: 1
        llm_endpoint_params:
          $ref: '#/components/schemas/AiLlmEndpointParams'
      title: AI agent basic text tool
      x-box-tag: ai
    AiLlmEndpointParams:
      description: The parameters for the LLM endpoint specific to a model.
      type: object
      oneOf:
        - $ref: '#/components/schemas/AiLlmEndpointParamsOpenAi'
        - $ref: '#/components/schemas/AiLlmEndpointParamsGoogle'
        - $ref: '#/components/schemas/AiLlmEndpointParamsAWS'
        - $ref: '#/components/schemas/AiLlmEndpointParamsIBM'
      title: AI LLM endpoint parameters
    AiLlmEndpointParamsOpenAi:
      description: AI LLM endpoint params OpenAI object.
      type: object
      properties:
        type:
          description: >-
            The type of the AI LLM endpoint params object for OpenAI. This
            parameter is **required**.
          type: string
          example: openai_params
          enum:
            - openai_params
          nullable: false
        temperature:
          description: >-
            What sampling temperature to use, between 0 and 2. Higher values
            like 0.8 will make the output more random, while lower values like
            0.2 will make it more focused and deterministic. We generally
            recommend altering this or `top_p` but not both.
          type: number
          example: 0
          maximum: 2
          minimum: 0
          nullable: true
        top_p:
          description: >-
            An alternative to sampling with temperature, called nucleus
            sampling, where the model considers the results of the tokens with
            `top_p` probability mass. So 0.1 means only the tokens comprising
            the top 10% probability mass are considered. We generally recommend
            altering this or temperature but not both.
          type: number
          example: 1
          maximum: 1
          minimum: 0.1
          nullable: true
        frequency_penalty:
          description: >-
            A number between -2.0 and 2.0. Positive values penalize new tokens
            based on their existing frequency in the text so far, decreasing the
            model's likelihood to repeat the same line verbatim.
          type: number
          example: 1.5
          maximum: 2
          minimum: -2
          nullable: true
        presence_penalty:
          description: >-
            A number between -2.0 and 2.0. Positive values penalize new tokens
            based on whether they appear in the text so far, increasing the
            model's likelihood to talk about new topics.
          type: number
          example: 1.5
          maximum: 2
          minimum: -2
          nullable: true
        stop:
          description: Up to 4 sequences where the API will stop generating further tokens.
          type: string
          example: <|im_end|>
          nullable: true
      required:
        - type
      title: AI LLM endpoint params OpenAI
      x-box-resource-id: ai_llm_endpoint_params_openai
    AiLlmEndpointParamsGoogle:
      description: AI LLM endpoint params Google object.
      type: object
      properties:
        type:
          description: >-
            The type of the AI LLM endpoint params object for Google. This
            parameter is **required**.
          type: string
          example: google_params
          enum:
            - google_params
          nullable: false
        temperature:
          description: >-
            The temperature is used for sampling during response generation,
            which occurs when `top-P` and `top-K` are applied. Temperature
            controls the degree of randomness in the token selection.
          type: number
          example: 0
          maximum: 2
          minimum: 0
          nullable: true
        top_p:
          description: >-
            `Top-P` changes how the model selects tokens for output. Tokens are
            selected from the most (see `top-K`) to least probable until the sum
            of their probabilities equals the `top-P` value.
          type: number
          example: 1
          maximum: 2
          minimum: 0.1
          nullable: true
        top_k:
          description: >-
            `Top-K` changes how the model selects tokens for output. A low
            `top-K` means the next selected token is the most probable among all
            tokens in the model's vocabulary (also called greedy decoding),
            while a high `top-K` means that the next token is selected from
            among the three most probable tokens by using temperature.
          type: number
          example: 1
          maximum: 2
          minimum: 0.1
          nullable: true
      required:
        - type
      title: AI LLM endpoint params Google
      x-box-resource-id: ai_llm_endpoint_params_google
    AiLlmEndpointParamsAWS:
      description: AI LLM endpoint params AWS object.
      type: object
      properties:
        type:
          description: >-
            The type of the AI LLM endpoint params object for AWS. This
            parameter is **required**.
          type: string
          example: aws_params
          enum:
            - aws_params
          nullable: false
        temperature:
          description: >-
            What sampling temperature to use, between 0 and 1. Higher values
            like 0.8 will make the output more random, while lower values like
            0.2 will make it more focused and deterministic. We generally
            recommend altering this or `top_p` but not both.
          type: number
          example: 0.5
          maximum: 1
          minimum: 0
          nullable: true
        top_p:
          description: >-
            An alternative to sampling with temperature, called nucleus
            sampling, where the model considers the results of the tokens with
            `top_p` probability mass. So 0.1 means only the tokens comprising
            the top 10% probability mass are considered. We generally recommend
            altering this or temperature but not both.
          type: number
          example: 0.5
          maximum: 1
          minimum: 0
          nullable: true
      required:
        - type
      title: AI LLM endpoint params AWS
      x-box-resource-id: ai_llm_endpoint_params_aws
    AiLlmEndpointParamsIBM:
      description: AI LLM endpoint params IBM object.
      type: object
      properties:
        type:
          description: >-
            The type of the AI LLM endpoint params object for IBM. This
            parameter is **required**.
          type: string
          example: ibm_params
          enum:
            - ibm_params
          nullable: false
        temperature:
          description: >-
            What sampling temperature to use, between 0 and 1. Higher values
            like 0.8 will make the output more random, while lower values like
            0.2 will make it more focused and deterministic. We generally
            recommend altering this or `top_p` but not both.
          type: number
          example: 0.5
          nullable: true
        top_p:
          description: >-
            An alternative to sampling with temperature, called nucleus
            sampling, where the model considers the results of the tokens with
            `top_p` probability mass. So 0.1 means only the tokens comprising
            the top 10% probability mass are considered. We generally recommend
            altering this or temperature but not both.
          type: number
          example: 0.5
          maximum: 1
          minimum: 0.1
          nullable: true
        top_k:
          description: >-
            `Top-K` changes how the model selects tokens for output. A low
            `top-K` means the next selected token is the most probable among all
            tokens in the model's vocabulary (also called greedy decoding),
            while a high `top-K` means that the next token is selected from
            among the three most probable tokens by using temperature.
          type: number
          example: 1
          nullable: true
      required:
        - type
      title: AI LLM endpoint params IBM
      x-box-resource-id: ai_llm_endpoint_params_ibm
  securitySchemes:
    OAuth2Security:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://account.box.com/api/oauth2/authorize
          tokenUrl: https://api.box.com/oauth2/token
          scopes:
            root_readonly: Read all files and folders stored in Box
            root_readwrite: Read and write all files and folders stored in Box
            manage_app_users: Provision and manage app users
            manage_managed_users: Provision and manage managed users
            manage_groups: Manage an enterprise's groups
            manage_webhook: Create webhooks programmatically through the API
            manage_enterprise_properties: Manage enterprise properties
            manage_data_retention: Manage data retention polices
            manage_legal_hold: Manage Legal Holds

````