diff --git a/content/guides/applications/app-types/custom-apps.md b/content/guides/applications/app-types/custom-apps.md index f347f4f54..22841869b 100644 --- a/content/guides/applications/app-types/custom-apps.md +++ b/content/guides/applications/app-types/custom-apps.md @@ -37,7 +37,7 @@ A Custom App is best used when the application: - Wants to use [OAuth 2.0][oauth2], [JWT][jwt] or [Client Credentials Grant][cc] for authentication. - Wants to upload and download files - Wants the freedom to access both their own files, as well as files owned by [managed or external users][users]. -- Wants the option to list the application in the Box App Center +- Wants the option to list the application in the Box Integrations - Wants to provide integration into the Box Web App ## Use cases diff --git a/content/guides/applications/app-types/index.md b/content/guides/applications/app-types/index.md index b5ccc107f..fdf1f0fb5 100644 --- a/content/guides/applications/app-types/index.md +++ b/content/guides/applications/app-types/index.md @@ -23,7 +23,7 @@ create. | Application Type | Authentication Methods | | ----------------------------- | ------------------------------------------------------------------- | -| [Custom App][custom-apps] | [OAuth 2.0][oauth2], [JWT][jwt], or [Client Credentials Grant][ccg] | +| [Platform App][custom-apps] | [OAuth 2.0][oauth2], [JWT][jwt], or [Client Credentials Grant][ccg] | | [Limited Access App][laa] | [App Token][apptoken] | | [Custom Skill][custom-skills] | No selection needed | diff --git a/content/guides/applications/app-types/select.md b/content/guides/applications/app-types/select.md index d0d0ed4db..964973c34 100644 --- a/content/guides/applications/app-types/select.md +++ b/content/guides/applications/app-types/select.md @@ -27,7 +27,7 @@ You cannot change this selection later on. | | | | -------------------------- | ---------------------------------------------------------------------------- | | **Authentication methods** | [OAuth 2.0][oauth2], [JWT][jwt], or [Client Credentials Authentication][ccg] | -| **Notable Features** | Webhooks, App Center, and Web App Integrations | +| **Notable Features** | Webhooks, Integrations, and Web App Integrations | Custom App encompasses most use cases and is the most flexible option. This application type allows for interaction with our 150+ endpoints. diff --git a/content/guides/applications/images/my-apps-page.png b/content/guides/applications/images/my-apps-page.png deleted file mode 100644 index 493aedc24..000000000 Binary files a/content/guides/applications/images/my-apps-page.png and /dev/null differ diff --git a/content/guides/applications/index.md b/content/guides/applications/index.md index 4beed1aaf..e5efa1483 100644 --- a/content/guides/applications/index.md +++ b/content/guides/applications/index.md @@ -13,33 +13,31 @@ alias_paths: Box Developer Console allows you to create applications you can then use to integrate with Box. -**My Apps** view displays a list of already created applications +**My Platform Apps** view displays a list of already created applications and gives you quick access to their configuration details. This way, you don't need to open the app each time you want to generate a Developer Token, copy the Client ID, or generate a report. -![My apps](./images/my-apps-page.png) - ## Features -**My Apps** page allows you to: +**My Platform Apps** page allows you to: * Search through the list of already created apps. * Filter the apps by **Enablement Status** and **Authentication Type**. * Create [a new app][select]. * Copy the app's [Client ID][clientcredentials]. * Rename the app and access its details with one click. -* Check application [enablement][enablement] and [authorization][authorization] status. Apps published to App Center display status from App Center. +* Check application [enablement][enablement] and [authorization][authorization] status. Apps published to Integrations display status from Integrations. The **Options menu** available for every entry allows you to: * Access the configuration details of your application. * Generate a [Developer Token][token]. * Add collaborators to your application. -* Run the [App Diagnostics Report][report]. +* Run the [Platform App Diagnostics Report][report]. -## App Insights +## Platform App Insights Admins and co-admins can access the Platform Insights dashboard that provides a comprehensive diff --git a/content/guides/applications/app-center/images/app-center.png b/content/guides/applications/integrations/images/app-center.png similarity index 100% rename from content/guides/applications/app-center/images/app-center.png rename to content/guides/applications/integrations/images/app-center.png diff --git a/content/guides/applications/app-center/images/submit-and-approve.png b/content/guides/applications/integrations/images/submit-and-approve.png similarity index 100% rename from content/guides/applications/app-center/images/submit-and-approve.png rename to content/guides/applications/integrations/images/submit-and-approve.png diff --git a/content/guides/applications/app-center/images/submit-app.png b/content/guides/applications/integrations/images/submit-app.png similarity index 100% rename from content/guides/applications/app-center/images/submit-app.png rename to content/guides/applications/integrations/images/submit-app.png diff --git a/content/guides/applications/app-center/index.md b/content/guides/applications/integrations/index.md similarity index 82% rename from content/guides/applications/app-center/index.md rename to content/guides/applications/integrations/index.md index 842ff7120..d210f3be5 100644 --- a/content/guides/applications/app-center/index.md +++ b/content/guides/applications/integrations/index.md @@ -12,17 +12,17 @@ alias_paths: - /guides/applications/app-gallery/ --- -# App Center +# Integrations -The [Box App Center][app-center] is the first place for Box users to find out +The [Box Integrations][app-center] is the first place for Box users to find out about applications that they can use in combination with Box. If your application is suited to be used by other enterprises, listing your service in -the App Center can be a great way to find new users. -App center groups apps into sections so that you can +the Integrations can be a great way to find new users. +Integrations groups apps into sections so that you can quickly find featured, most popular, or recently added apps. - ![App Center](./images/app-center.png) + ![Integrations](./images/app-center.png) ## Developing and app or becoming a Box Partner @@ -41,20 +41,20 @@ Center][app-center]. Your application must meet the following requirements: * The application is in a finished state and ready for production usage. -* The application leverages OAuth 2.0 authentication, as the App Center does not support any other authentication methods. +* The application leverages OAuth 2.0 authentication, as the Integrations does not support any other authentication methods. * You are a developer with access to the application in the [Developer Console][devconsole]. ### 1. Log in to the Developer Console Navigate to the [Developer Console][devconsole] and select your application to -submit to the App Center. +submit to the Integrations. ### 2. Fill in the form -Select the **App Center** tab from the top menu. +Select the **Integrations** tab from the top menu. - ![App Center panel](./images/app-center.png) + ![Integrations panel](./images/app-center.png) Click the button to "Submit My App". @@ -93,7 +93,7 @@ Approval" button. Once approved and published, an application can be unpublished from the same control panel. Navigate to the [Developer Console][devconsole] and select -your application. Then, select the "App Center" panel from the left-hand +your application. Then, select the "Integrations" panel from the left-hand sidebar. The app can be unpublished from this page. [app-center]: https://app.box.com/services diff --git a/content/guides/applications/web-app-integrations/configure.md b/content/guides/applications/web-app-integrations/configure.md index 34950ebb4..6fe666191 100644 --- a/content/guides/applications/web-app-integrations/configure.md +++ b/content/guides/applications/web-app-integrations/configure.md @@ -4,7 +4,7 @@ related_endpoints: [] related_guides: - authentication/oauth2/oauth2-setup - authentication/tokens - - applications/app-center + - applications/integrations required_guides: [] related_resources: [] alias_paths: [] @@ -47,7 +47,7 @@ To configure the integration, follow the guidance below for each value. | Field | Description | |--------------------------- |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Integration name | The name of your integration, which users see in the Box Web App when they select the **More Options** > **Integrations** menu on a file or folder. | -| Description | The description of the integration displayed in the Box App Center. | +| Description | The description of the integration displayed in the Box Integrations. | | Supported file extensions | The integration will only appear as an option in the **More Options** > **Integrations** menu for the selected file extensions. | | Permissions requirement | Determines what permissions level users need to see the integration. **Download permissions are required** allows users to download the file - they will not be able to update it. **Full permissions are required** allows users to download and update the file. | | Integration scopes | Specifies the scope of your integration - either the file/folder from which integration is invoked, or its parent folder. | @@ -95,8 +95,8 @@ The following parameter values are available. ### Integration Status - **Development**: The integration is visible and available only to application collaborators listed under the **General Settings** tab. This option is best used when the application is still in development and undergoing testing. -- **Online**: The integration is visible and available to all Box users. This option is best used when development is complete and the application is ready to publish in the App Center. -- **Maintenance**: The integration is visible and available only to application collaborators listed under the **General Settings** tab. This option is best used after the integration is published in the App Center, but needs to perform maintenance updates or troubleshoot issues. Use this option to temporarily take the integration offline for everyone except the application's collaborators. +- **Online**: The integration is visible and available to all Box users. This option is best used when development is complete and the application is ready to publish in the Integrations. +- **Maintenance**: The integration is visible and available only to application collaborators listed under the **General Settings** tab. This option is best used after the integration is published in the Integrations, but needs to perform maintenance updates or troubleshoot issues. Use this option to temporarily take the integration offline for everyone except the application's collaborators. ## Example Use Cases of Box Integrations @@ -139,7 +139,7 @@ note that the URL must be publicly accessible on the internet. ## Making Integration Publicly Available To make a Box integration publicly available it needs to be listed in the App -Center. Follow the [App Center][app-center] guide for more details. +Center. Follow the [Integrations][integrations] guide for more details. [ca]: g://applications/app-types/custom-apps [pu]: g://applications/web-app-integrations/types @@ -149,4 +149,4 @@ Center. Follow the [App Center][app-center] guide for more details. [custom-oauth2]: g://authentication/oauth2/oauth2-setup [devconsole]: https://app.box.com/developers/console [devaccount]: https://account.box.com/signup/n/developer -[app-center]: g://applications/app-center +[integrations]: g://applications/integrations diff --git a/content/guides/applications/web-app-integrations/index.md b/content/guides/applications/web-app-integrations/index.md index c57736aee..f2cb4a0b7 100644 --- a/content/guides/applications/web-app-integrations/index.md +++ b/content/guides/applications/web-app-integrations/index.md @@ -20,7 +20,7 @@ when editing or sharing files. Using a Web App Integration, a user can modify, share, or edit content stored in Box using a third-party application. It can also offer new features to Box users -through [Recommended Apps][recommended-apps], which show up in Box Preview. +through [Recommended Web Integrations][recommended-web-integrations], which show up in Box Preview. ![Integration example](./images/recommended-apps-preview.png) @@ -34,10 +34,10 @@ restricted to certain content types and file extensions. Learn how to create a Web App Integration -[app-center]: g://applications/app-center +[integrations]: g://applications/integrations [custom-app]: g://authentication/oauth2/oauth2-setup [oauth2]: g://authentication/oauth2 [devconsole]: https://app.box.com/developers/console -[recommended-apps]: https://support.box.com/hc/en-us/articles/360044195533-Installing-Recommended-Apps-in-your-Enterprise +[recommended-web-integrations]: https://support.box.com/hc/en-us/articles/360044195533-Installing-Recommended-Apps-in-your-Enterprise diff --git a/content/guides/applications/web-app-integrations/user-experience.md b/content/guides/applications/web-app-integrations/user-experience.md index d7be76942..2a6e1d6e0 100644 --- a/content/guides/applications/web-app-integrations/user-experience.md +++ b/content/guides/applications/web-app-integrations/user-experience.md @@ -12,9 +12,9 @@ alias_paths: [] The following explains what a Web App Integration looks like from a user's point of view. -1. Box users can discover applications in the Box App Center. They can visit the App Center directly, or select the **Apps** menu from the Box Web App UI. -2. In the App Center they select the application they would like to add. Every published Box application has a public profile page, which provides details including the integrations it provides. -3. They user adds the application to their account by clicking the **Add** button in the App Center listing. Once an application is added to an account, all its integrations become available to the user. +1. Box users can discover applications in the Box Integrations. They can visit the Integrations directly, or select the **Integrations** menu from the Box Web App UI. +2. In the Integrations they select the application they would like to add. Every published Box application has a public profile page, which provides details including the integrations it provides. +3. They user adds the application to their account by clicking the **Add** button in the Integrations listing. Once an application is added to an account, all its integrations become available to the user. 4. Select an integration from the **More Actions** menu on a file or folder. 5. Box will ask the user for permission to share the file or folder with the application. The confirmation prompt must accepted before the integration can be successfully used. 6. Upon granting access, Box passes the data to the application. Depending on the type of integration, the application will then display a popup panel or run a server-based process. \ No newline at end of file diff --git a/content/guides/authentication/app-token/app-token-setup.md b/content/guides/authentication/app-token/app-token-setup.md index de6322c2d..c4b6b5234 100644 --- a/content/guides/authentication/app-token/app-token-setup.md +++ b/content/guides/authentication/app-token/app-token-setup.md @@ -26,7 +26,7 @@ for authentication. ## Prerequisites -To set up a Custom App using server-side authentication, you will need to ensure +To set up a Platform App using server-side authentication, you will need to ensure you have access the [Developer Console][devconsole] from your Box enterprise account. Alternatively, you may sign up for a [developer account][devaccount]. @@ -35,9 +35,9 @@ account. Alternatively, you may sign up for a [developer account][devaccount]. ### 1. Log in to the Developer Console Log into Box and navigate to the [Developer Console][devconsole]. -Select **Create New App**. +Select **Create Platform App**. -### 2. Create a Custom App +### 2. Create a Platform App Select **Limited Access App** from the list of application types. A modal will appear to prompt the next step. diff --git a/content/guides/authentication/client-credentials/client-credentials-setup.md b/content/guides/authentication/client-credentials/client-credentials-setup.md index cc37962c5..54beb71b7 100644 --- a/content/guides/authentication/client-credentials/client-credentials-setup.md +++ b/content/guides/authentication/client-credentials/client-credentials-setup.md @@ -27,7 +27,7 @@ account. Alternatively, you may sign up for a [developer account][devaccount]. ### Navigate to the Developer Console Log into Box and go to the [Developer Console][devconsole]. -Select **Create New App**. +Select **Create Platform App**. ### Select application type diff --git a/content/guides/authentication/jwt/jwt-setup.md b/content/guides/authentication/jwt/jwt-setup.md index 527ae7018..942052674 100644 --- a/content/guides/authentication/jwt/jwt-setup.md +++ b/content/guides/authentication/jwt/jwt-setup.md @@ -18,7 +18,7 @@ alias_paths: # Setup with JWT -A Custom App can be set up to use server-side authentication with +A Platform App can be set up to use server-side authentication with [JWT][jwt]. @@ -27,7 +27,7 @@ A Custom App can be set up to use server-side authentication with ## Prerequisites -To set up a Custom App using server-side authentication, you will need to ensure +To set up a Platform App using server-side authentication, you will need to ensure you have access the [Developer Console][devconsole] from your Box enterprise account. Alternatively, you may sign up for a [developer account][devaccount]. @@ -36,11 +36,11 @@ account. Alternatively, you may sign up for a [developer account][devaccount]. ### Navigate to the Developer Console Log into Box and go to the [Developer Console][devconsole]. -Select **Create New App**. +Select **Create Platform App**. ### Select application type -Select **Custom App** from the list of application types. A modal will appear to +Select **Platform App** from the list of application types. A modal will appear to prompt a selection for the next step. @@ -65,7 +65,7 @@ Use the drop-down list to select the app's purpose. Depending on the option chos ### Select application authentication Select **Server Authentication (with JWT)** if you would like to verify -application identity [with a key pair][kp] and confirm with **Create App**. +application identity [with a key pair][kp] and confirm with **Create Platform App**. Once you make a selection, you will not be able to change to a different @@ -83,7 +83,7 @@ authentication method without creating a new application. (Client Credentials Grant) as your authentication method. -Once a Custom App is created leveraging Server Authentication with JWT, a key +Once a Platform App is created leveraging Server Authentication with JWT, a key pair can be generated via the configuration tab within the [Developer Console][devconsole]. Alternatively, you can generate your own and supply Box with the public key. Regardless of the method you select, @@ -160,7 +160,7 @@ approval. More information on this process is available in our [support article for app authorization][app-auth]. - Learn how to authorize a Custom Application + Learn how to authorize a Platform Application ## Basic configuration diff --git a/content/guides/authentication/oauth2/oauth2-setup.md b/content/guides/authentication/oauth2/oauth2-setup.md index 9b40a7a40..edc50de67 100644 --- a/content/guides/authentication/oauth2/oauth2-setup.md +++ b/content/guides/authentication/oauth2/oauth2-setup.md @@ -32,7 +32,7 @@ account. Alternatively, you may sign up for a [developer account][devaccount]. ### Navigate to the Developer Console Log into Box and go to the -[Developer Console][devconsole]. Select **Create New App**. +[Developer Console][devconsole]. Select **Create Platform App**. ### Select application type diff --git a/content/guides/authentication/tokens/developer-tokens.md b/content/guides/authentication/tokens/developer-tokens.md index 471212658..5b18254ea 100644 --- a/content/guides/authentication/tokens/developer-tokens.md +++ b/content/guides/authentication/tokens/developer-tokens.md @@ -26,8 +26,8 @@ To create a Developer Token for an application: - Under Developer Token, select **Generate Developer Token**. -You can also generate a Developer Token directly from [My Apps][apps] view, -using the menu available for each app. +You can also generate a Developer Token directly from [My Platform Apps][apps] +view, using the menu available for each app. diff --git a/content/guides/authentication/tokens/index.md b/content/guides/authentication/tokens/index.md index ab6bced2c..e3a4ab7f3 100644 --- a/content/guides/authentication/tokens/index.md +++ b/content/guides/authentication/tokens/index.md @@ -16,7 +16,7 @@ with content the user associated with the Access Token either a collaborator on or owns. This can be further restricted by [downscoping][ds] a token. - Application scopes, application access, enabled advanced settings, user + Required access scopes, application access, enabled advanced settings, user permissions, and endpoint-specific restrictions all work together to determine which API calls will be successful. For example, even if a user has collaborator access to a folder, a call to get information about the folder diff --git a/content/guides/authorization/custom-app-approval.md b/content/guides/authorization/custom-app-approval.md index a2d299161..ae1316ecb 100644 --- a/content/guides/authorization/custom-app-approval.md +++ b/content/guides/authorization/custom-app-approval.md @@ -24,7 +24,7 @@ A Box Admin needs an application's Client ID in order to properly authorize or enable it in the Admin Console. -You can use [My Apps][apps] view to quickly look up +You can use [Integrations][apps] view to quickly look up the authorization and enablement status of your application. @@ -67,7 +67,7 @@ application. 2. Scroll down to the OAuth 2.0 Credentials section and copy the **Client ID** value to provide to a Box Admin. Alternatively, hover over the application in the -[My Apps][apps] view to look up the **ClientID** and then +[My Platform Apps][apps] view to look up the **ClientID** and then copy it using the `copy` button. @@ -80,15 +80,15 @@ copy it using the `copy` button. ### As an Admin -1. Navigate to the [Admin Console][adminconsole] and select the **Apps** tab (1) from the left navigation panel. -2. Click the **Custom Apps Manager** tab (2) at the top of your screen. -3. For both Server and User Authentication Apps screens, click the **Add App** (3) button in the top right corner to add a new app. -4. Alternatively, you can use the Custom Apps Manager table menu (4) to authorize and enable apps. +1. Navigate to the [Admin Console][adminconsole] and select the **Integrations** tab (1) from the left navigation panel. +2. Click the **Platform Apps Manager** tab (2) at the top of your screen. +3. For both Server and User Authentication Apps screens, click the **Add Platform App** (3) button in the top right corner to add a new app. +4. Alternatively, you can use the Platform Apps Manager table menu (4) to authorize and enable apps. #### Server Authentication Apps - ![Server Apps tab](images/jwt_app_approval_flow.png) + ![Server tab](images/jwt_app_approval_flow.png) #### User Authentication Apps diff --git a/content/guides/authorization/index.md b/content/guides/authorization/index.md index 69dc9fecc..bc9d88b6e 100644 --- a/content/guides/authorization/index.md +++ b/content/guides/authorization/index.md @@ -33,16 +33,16 @@ Admin authorization based on enabled enterprise settings. Subsequent steps are required if any of the following enterprise settings are enabled: -- Disable published apps by default -- Disable unpublished apps by default +- Disable published Integrations by default +- Disable unpublished Integrations by default - Require manual admin authorization for transactional access apps These [settings][setting] can be found by navigating to: -**Admin Console** > **Apps** > **Custom Apps** > click the ⚙ icon +**Admin Console** > **Apps** > **Platform Apps** > click the ⚙ icon - Published apps are any applications that can be found in our App Center. + Published integrations are any applications that can be found in our App Center. ## Required actions @@ -51,7 +51,7 @@ To see what steps an Admin must complete for a given app, review the following scenarios. -**Disable published apps by default**: +**Disable Integrations by default**: | Authentication Method | Enabled | Disabled | ------------------------------------------------ | ------------------------------------------- | -------------- | @@ -60,14 +60,14 @@ scenarios. |[Server Authentication (client credentials)][cc] | N/A | N/A | |[App Token Authentication][apptoken] | N/A | N/A | -**Disable unpublished apps by default**: +**Disable unpublished integrations by default**: | Authentication Method | Enabled | Disabled | ------------------------------------------------ | ----------------------------------------------------------------------------------- | --------------------------------------- | -|[OAuth 2.0][standauth] | Enable in **Apps** > **Custom Apps Manager** > **User Authentication Apps** > **Add App** | Ready for use | -|[Server Authentication (with JWT)][jwt] | Authorize and enable in **Apps** > **Custom Apps Manager** > **Server Authentication Apps** > **Add App** | Authorize in **Apps** > **Custom Apps Manager** > **Server Authentication Apps** > **Add App** | -|[Server Authentication (client credentials)][cc] | Authorize and enable in **Apps** > **Custom Apps Manager** > **Server Authentication Apps** | Authorize in **Apps** > **Custom Apps Manager** > **Server Authentication Apps** > **Add App** | -|[App Token Authentication][apptoken] | Authorize and enable in **Apps** > **Custom Apps Manager** > **Server Authentication Apps** > **Server Authentication Apps** > **Add App** | Ready for use | +|[OAuth 2.0][standauth] | Enable in **Apps** > **Platform Apps Manager** > **User Authentication Apps** > **Platform App** | Ready for use | +|[Server Authentication (with JWT)][jwt] | Authorize and enable in **Integrations** > **Platform Apps Manager** > **Server Authentication Apps** > **Add Platform App** | Authorize in **Integrations** > **Platform Apps Manager** > **Server Authentication Apps** > **Add Platform App** | +|[Server Authentication (client credentials)][cc] | Authorize and enable in **Apps** > **Platform Apps Manager** > **Server Authentication Apps** | Authorize in **Integrations** > **Platform Apps Manager** > **Server Authentication Apps** > **Add Platform App** | +|[App Token Authentication][apptoken] | Authorize and enable in **Integrations** > **Platform Apps Manager** > **Server Authentication Apps** > **Server Authentication Apps** > **Add Platform App** | Ready for use | **Require manual admin authorization for transactional access apps**: @@ -76,7 +76,7 @@ scenarios. |[OAuth 2.0][standauth] | N/A | N/A | |[Server Authentication (with JWT)][jwt] | N/A | N/A | |[Server Authentication (client credentials)][cc] | N/A | N/A | -|[App Token Authentication][apptoken] | Authorize in **Apps** > **Custom Apps Manager** > **Server Authentication Apps** | Automatically authorized and enabled upon creation | +|[App Token Authentication][apptoken] | Authorize in **Integrations** > **Platform Apps Manager** > **Server Authentication Apps** | Automatically authorized and enabled upon creation | @@ -86,7 +86,7 @@ scenarios. [sa]: page://platform/user-types/#service-account [scopes]: g://api-calls/permissions-and-errors/scopes -[ag]: g://applications/app-center +[ag]: g://applications/integrations [standauth]: g://authentication/oauth2 [jwt]: g://authentication/jwt [cc]: g://authentication/client-credentials diff --git a/content/guides/authorization/limited-access-approval.md b/content/guides/authorization/limited-access-approval.md index 190a721ab..7bf3bdb8f 100644 --- a/content/guides/authorization/limited-access-approval.md +++ b/content/guides/authorization/limited-access-approval.md @@ -13,7 +13,7 @@ alias_paths: [] # Limited Access App Approval -Limited Access Apps are automatically authorized for use in an enterprise upon +Limited Access Integrations are automatically authorized for use in an enterprise upon creation. However, if the enterprise setting to @@ -58,8 +58,8 @@ section and copy the Client ID value to provide to a Box Admin. ### As an Admin As a Box Admin, navigate to the [Admin Console][adminconsole] and -select the **Apps** tab (1) from the left navigation panel. Then, click the -**Custom Apps** tab (2) at the top of your screen. On this screen, you will +select the **Integrations** tab (1) from the left navigation panel. Then, click the +**Platform Apps** tab (2) at the top of your screen. On this screen, you will see a **+** button in the top right corner to add a new app authorization. diff --git a/content/guides/authorization/platform-app-approval.md b/content/guides/authorization/platform-app-approval.md new file mode 100644 index 000000000..0546cfd4c --- /dev/null +++ b/content/guides/authorization/platform-app-approval.md @@ -0,0 +1,133 @@ +--- +rank: 1 +related_endpoints: [] +related_guides: +- authorization/limited-access-approval +- authorization/custom-skill-approval +required_guides: +- authorization +- authentication/oauth2/oauth2-setup +- authentication/jwt/jwt-setup +alias_paths: +- /guides/applications/custom-apps/app-approval +--- + +# Platform App Approval + +Server authentication applications using [JWT][jwt] or +[Client Credentials Grant][ccg] must be authorized by a Box Admin before use. + +Unpublished applications using [OAuth 2.0][oauth] authentication may +require enablement by a Box Admin if they are [inactive by default][upa]. + +A Box Admin needs an application's Client ID in order to properly +authorize or enable it in the Admin Console. + + +You can use [My Platform Apps][apps] view to quickly look up +the authorization and enablement status of your application. + + +## Approval Notifications + +A semi-automated process to submit an app approval is available in the Developer +Console for all custom application types. + +### Server authentication apps + +Navigate to the **Authorization** tab for your application in the +[Developer Console][devconsole]. + + + ![Authorization tab](images/app_authorization.png) + + +### User authentication apps + +Navigate to the **Enablement** tab for your application in the [Developer Console][devconsole]. + + + ![Enablement tab](images/app_enablement.png) + + +Submitting the application for approval will send an email to your +enterprise's Primary Admin to approve the application. +When a Box Admin approves or declines your request, +you will get an email with the decision. +More information on this process is available in our [support article on app authorization][app-auth]. + +## Manual Approval + +The following steps provide instructions on how to manually approve the +application. + +### As a developer + +1. Navigate to the **Configuration** tab for your application in the [Developer Console][devconsole]. +2. Scroll down to the OAuth 2.0 Credentials section and copy the **Client ID** value to provide to a Box Admin. + +Alternatively, hover over the application in the +[My Platform Apps][apps] view to look up the **ClientID** and then +copy it using the `copy` button. + + + # Finding a Box Admin + + If you don't know your enterprise Admin, go to your Box [Account + Settings][settings] page and scroll to the bottom. If an admin contact is set + you should see their contact information under "Admin Contact". + + +### As an Admin + +1. Navigate to the [Admin Console][adminconsole] and select the **Apps** tab (1) from the left navigation panel. +2. Click the **Custom Apps Manager** tab (2) at the top of your screen. +3. For both Server and User Authentication Apps screens, click the **Add App** (3) button in the top right corner to add a new app. +4. Alternatively, you can use the Custom Apps Manager table menu (4) to authorize and enable apps. + +#### Server Authentication Apps + + + ![Server Apps tab](images/jwt_app_approval_flow.png) + + +#### User Authentication Apps + + + ![User Apps tab](images/oauth_app_approval_flow.png) + + +In the popup that appears, enter the client ID for the application that the +developer collected from the **Configuration** tab of the +[Developer Console][devconsole]. + +## Re-authorization on changes + +When the application's scopes or access level change the application needs to be +re-authorized. Repeat the process above and request a new Access Token for the +new changes to take effect. + +In the same section where the application was initially authorized, an Admin +can re-authorize the application by clicking on the ellipses to the right +of the application name to **Reauthorize App**. + + + ![Re-authorize app](images/reauthorize_app.png) + + + +[devconsole]: https://app.box.com/developers/console + +[ccg]: g://authentication/client-credentials + +[settings]: https://app.box.com/account +[adminconsole]: https://app.box.com/master/settings/custom + +[jwt]: g://authentication/jwt +[app-token]: g://authentication/app-token +[oauth]: g://authentication/oauth2 +[upa]: g://security/#enterprise-settings-and-authorization + +[app-auth]: https://support.box.com/hc/en-us/articles/360043697014-Authorizing-Apps-in-the-Box-App-Approval-Process + +[apps]: g://applications \ No newline at end of file diff --git a/content/guides/box-ai/ai-agents/ai-agent-overrides.md b/content/guides/box-ai/ai-agents/ai-agent-overrides.md new file mode 100644 index 000000000..049e74d9e --- /dev/null +++ b/content/guides/box-ai/ai-agents/ai-agent-overrides.md @@ -0,0 +1,163 @@ +--- +rank: 4 +related_endpoints: + - get_ai_agent_default + - post_ai_text_gen + - post_ai_ask +related_guides: + - box-ai/ai-tutorials/prerequisites + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/default-agent-overrides +--- + +# Override AI model configuration + + +Endpoints related to metadata extraction are currently a beta feature offered subject to Box’s Main Beta Agreement, and the available capabilities may change. Box AI API is available to all Enterprise Plus customers. + + +The `ai_agent` configuration allows you to override the default AI model configuration. It is available for the following endpoints: + +* [`POST ai/ask`][ask] +* [`POST ai/text_gen`][text-gen] +* [`POST ai/extract`][extract] +* [`POST ai/extract_structured`][extract-structured] + + + +Use the [`GET ai_agent_default`][agent] endpoint to fetch the default configuration. + + + +The override examples include: + +* Replacing the default AI model with a custom one based on your organization's needs. +* Tweaking the base `prompt` to allow a more customized user experience. +* Changing a parameter, such as `temperature`, to make the results more or less creative. + +## Sample configuration + +A complete configuration for `ai/ask` is as follows: + +```sh +{ + "type": "ai_agent_ask", + "basic_text": { + "llm_endpoint_params": { + "type": "openai_params", + "frequency_penalty": 1.5, + "presence_penalty": 1.5, + "stop": "<|im_end|>", + "temperature": 0, + "top_p": 1 + }, + "model": "azure__openai__gpt_3_5_turbo_16k", + "num_tokens_for_completion": 8400, + "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer the `{user_question}`.", + "system_message": "You are a helpful travel assistant specialized in budget travel" + }, + "basic_text_multi": { + "llm_endpoint_params": { + "type": "openai_params", + "frequency_penalty": 1.5, + "presence_penalty": 1.5, + "stop": "<|im_end|>", + "temperature": 0, + "top_p": 1 + }, + "model": "azure__openai__gpt_3_5_turbo_16k", + "num_tokens_for_completion": 8400, + "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer the `{user_question}`.", + "system_message": "You are a helpful travel assistant specialized in budget travel" + }, + "long_text": { + "embeddings": { + "model": "openai__text_embedding_ada_002", + "strategy": { + "id": "basic", + "num_tokens_per_chunk": 64 + } + }, + "llm_endpoint_params": { + "type": "openai_params", + "frequency_penalty": 1.5, + "presence_penalty": 1.5, + "stop": "<|im_end|>", + "temperature": 0, + "top_p": 1 + }, + "model": "azure__openai__gpt_3_5_turbo_16k", + "num_tokens_for_completion": 8400, + "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer the `{user_question}`.", + "system_message": "You are a helpful travel assistant specialized in budget travel" + }, + "long_text_multi": { + "embeddings": { + "model": "openai__text_embedding_ada_002", + "strategy": { + "id": "basic", + "num_tokens_per_chunk": 64 + } + }, + "llm_endpoint_params": { + "type": "openai_params", + "frequency_penalty": 1.5, + "presence_penalty": 1.5, + "stop": "<|im_end|>", + "temperature": 0, + "top_p": 1 + }, + "model": "azure__openai__gpt_3_5_turbo_16k", + "num_tokens_for_completion": 8400, + "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer the `{user_question}`.", + "system_message": "You are a helpful travel assistant specialized in budget travel" + } +} +``` + +### Differences in parameter sets + +The set of parameters available for `ask`, `text_gen`, `extract`, `extract_structured` differs slightly, depending on the API call. + + * The agent configuration for the `ask` endpoint includes `basic_text`, `basic_text_multi`, `long_text` and `long_text_multi` parameters. This is because of the `mode` parameter you use to specify if the request is for a single item or multiple items. If you selected `multiple_item_qa` as the `mode`, you can also use `multi` parameters for overrides. + + * The agent configuration for `text_gen` includes the `basic_gen` parameter + that is used to generate text. + +### LLM endpoint params + +The `llm_endpoint_params` configuration options differ depending on the overall AI model being [Google][google-params], [OpenAI][openai-params] or [AWS][aws-params] based. + +For example, both `llm_endpoint_params` objects accept a `temperature` parameter, but the outcome differs depending on the model. + +For Google and AWS models, the [`temperature`][google-temp] 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. + +For OpenAI models, [`temperature`][openai-temp] is the sampling temperature with values between 0 and 2. Higher values like 0.8 make the output more random, while lower values like 0.2 make it more focused and deterministic. When introducing your own configuration, use `temperature` or or `top_p` but not both. + +### System message + +The `system_message` parameter's aim is to help the LLM understand its role and what it’s supposed to do. +For example, if your solution is processing travel itineraries, you can add a system message saying: + +```sh +You are a travel agent aid. You are going to help support staff process large amounts of schedules, tickets, etc. +``` + +This message is separate from the content you send in, but it can improve the results. + +### Number of tokens for completion + +The `num_tokens_for_completion` parameter represents the number of [tokens][openai-tokens] Box AI can return. This number can vary based on the model used. + +[ask]: e://post_ai_ask#param_ai_agent +[text-gen]: e://post_ai_text_gen#param_ai_agent +[extract]: e://post_ai_extract#param_ai_agent +[extract-structured]: e://post_ai_extract_structured#param_ai_agent +[google-params]: r://ai-llm-endpoint-params-google +[openai-params]: r://ai-llm-endpoint-params-openai +[openai-tokens]: https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them +[agent]: e://get_ai_agent_default +[google-temp]: https://ai.google.dev/gemini-api/docs/models/generative-models#model-parameters +[openai-temp]: https://community.openai.com/t/temperature-top-p-and-top-k-for-chatbot-responses/295542 +[aws-params]: r://ai-llm-endpoint-params-aws \ No newline at end of file diff --git a/content/guides/box-ai/ai-agents/ai-agent-versioning.md b/content/guides/box-ai/ai-agents/ai-agent-versioning.md index 5e0e8b30e..35b6e75a3 100644 --- a/content/guides/box-ai/ai-agents/ai-agent-versioning.md +++ b/content/guides/box-ai/ai-agents/ai-agent-versioning.md @@ -5,11 +5,11 @@ related_endpoints: - post_ai_text_gen - post_ai_ask related_guides: - - box-ai/prerequisites - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/prerequisites + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured --- # AI agent configuration versioning @@ -209,4 +209,4 @@ To make sure your configurations are not affected in a negative way, you can use ``` [default-config]: g://box-ai/ai-agents/get-agent-default-config -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-agents/get-agent-default-config.md b/content/guides/box-ai/ai-agents/get-agent-default-config.md index 9c256c855..3fb92dad5 100644 --- a/content/guides/box-ai/ai-agents/get-agent-default-config.md +++ b/content/guides/box-ai/ai-agents/get-agent-default-config.md @@ -5,11 +5,11 @@ related_endpoints: - post_ai_text_gen - post_ai_ask related_guides: - - box-ai/prerequisites - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/prerequisites + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured --- # Get default AI agent configuration @@ -254,7 +254,7 @@ When you set the `mode` parameter to `extract_structured` the response will be a -[prereq]: g://box-ai/prerequisites +[prereq]: g://box-ai/ai-tutorials/prerequisites [models]: g://box-ai/ai-models -[ai-agent-config]: g://box-ai/ai-agents/overrides-tutorial -[override-tutorials]: g://box-ai/ai-agents/overrides-tutorial +[ai-agent-config]: g://box-ai/ai-agents/ai-agent-overrides +[override-tutorials]: g://box-ai/ai-agents/ai-agent-overrides diff --git a/content/guides/box-ai/ai-agents/index.md b/content/guides/box-ai/ai-agents/index.md index d10b8e79c..44ec95944 100644 --- a/content/guides/box-ai/ai-agents/index.md +++ b/content/guides/box-ai/ai-agents/index.md @@ -8,7 +8,7 @@ related_endpoints: - post_ai_extract_structured related_guides: - box-ai/ai-agents/get-agent-default-config - - box-ai/ai-agents/overrides-tutorial + - box-ai/ai-agents/ai-agent-overrides --- # AI model overrides @@ -30,5 +30,5 @@ To see specific use cases, check the [overrides tutorial][overrides]. [ask]: e://post_ai_ask#param_ai_agent [text-gen]: e://post_ai_text_gen#param_ai_agent [agent-default]: g://box-ai/ai-agents/get-agent-default-config -[overrides]: g://box-ai/ai-agents/overrides-tutorial +[overrides]: g://box-ai/ai-agents/ai-agent-overrides [models]: g://box-ai/ai-models \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/aws-claude-3-5-sonnet-model-card.md b/content/guides/box-ai/ai-models/aws-claude-3-5-sonnet-model-card.md index 47edf2ca9..cb1156b95 100644 --- a/content/guides/box-ai/ai-models/aws-claude-3-5-sonnet-model-card.md +++ b/content/guides/box-ai/ai-models/aws-claude-3-5-sonnet-model-card.md @@ -1,10 +1,10 @@ --- rank: 14 related_guides: - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured - box-ai/ai-agents/get-agent-default-config --- # AWS Claude 3.5 Sonnet @@ -20,7 +20,7 @@ related_guides: |Model name|**AWS Claude 3.5 Sonnet**| The name of the model. | |API model name|`aws__claude_3_5_sonnet`| The name of the model that is used in the [Box AI API for model overrides][overrides]. The user must provide this exact name for the API to work. | |Hosting layer| **Amazon Web Services (AWS)** | The trusted organization that securely hosts LLM. | -|Model provider|**AWS Bedrock**| The organization that provides this model. | +|Model provider|**Anthropic**| The organization that provides this model. | |Release date| **June 20th, 2024** | The release date for the model.| |Knowledge cutoff date| **April 2024**| The date after which the model does not get any information updates. | |Input context window |**200k tokens**| The number of tokens supported by the input context window.| @@ -33,4 +33,4 @@ related_guides: For additional information, see [official AWS Claude 3.5 Sonnet documentation][aws-claude]. [aws-claude]: https://aws.amazon.com/bedrock/claude/ -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/aws-claude-3-haiku-model-card.md b/content/guides/box-ai/ai-models/aws-claude-3-haiku-model-card.md index 14f264107..9e47ff3e6 100644 --- a/content/guides/box-ai/ai-models/aws-claude-3-haiku-model-card.md +++ b/content/guides/box-ai/ai-models/aws-claude-3-haiku-model-card.md @@ -1,10 +1,10 @@ --- rank: 15 related_guides: - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured - box-ai/ai-agents/get-agent-default-config --- # AWS Claude 3 Haiku @@ -33,4 +33,4 @@ related_guides: For additional information, see [official AWS Claude 3 Haiku documentation][aws-claude]. [aws-claude]: https://aws.amazon.com/bedrock/claude/ -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/aws-claude-3-sonnet-model-card.md b/content/guides/box-ai/ai-models/aws-claude-3-sonnet-model-card.md index b08ba9ad7..2248cca68 100644 --- a/content/guides/box-ai/ai-models/aws-claude-3-sonnet-model-card.md +++ b/content/guides/box-ai/ai-models/aws-claude-3-sonnet-model-card.md @@ -1,10 +1,10 @@ --- rank: 16 related_guides: - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured - box-ai/ai-agents/get-agent-default-config --- # AWS Claude 3 Sonnet @@ -31,4 +31,4 @@ related_guides: For additional information, see [official AWS Claude 3 Sonnet documentation][aws-claude]. [aws-claude]: https://aws.amazon.com/bedrock/claude/ -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/aws-titan-text-lite-model-card.md b/content/guides/box-ai/ai-models/aws-titan-text-lite-model-card.md index 54f0ec4aa..9e0f7e16f 100644 --- a/content/guides/box-ai/ai-models/aws-titan-text-lite-model-card.md +++ b/content/guides/box-ai/ai-models/aws-titan-text-lite-model-card.md @@ -1,10 +1,10 @@ --- rank: 17 related_guides: - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured - box-ai/ai-agents/get-agent-default-config --- # AWS Titan Text Lite @@ -32,4 +32,4 @@ although the model itself is lightweight. For additional information, see [official AWS Titan documentation][aws-titan]. [aws-titan]: https://aws.amazon.com/bedrock/titan/ -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/azure-openai-gpt-4o-2024-05-13-model-card.md b/content/guides/box-ai/ai-models/azure-openai-gpt-4o-2024-05-13-model-card.md index 43020ecbe..b6f564486 100644 --- a/content/guides/box-ai/ai-models/azure-openai-gpt-4o-2024-05-13-model-card.md +++ b/content/guides/box-ai/ai-models/azure-openai-gpt-4o-2024-05-13-model-card.md @@ -1,10 +1,10 @@ --- rank: 3 related_guides: - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured - box-ai/ai-agents/get-agent-default-config --- # Azure OpenAI GPT-4o-2024-05-13 @@ -18,7 +18,7 @@ related_guides: |Model name|**GPT-4o 2024-05-13**| The name of the model. | |API model name|`azure__openai__gpt_4o_2024-05-13`| The name of the model that is used in the [Box AI API for model overrides][overrides]. The user must provide this exact name for the API to work. | |Hosting layer| **Microsoft Azure** | The trusted organization that securely hosts LLM. | -|Model provider|**OpenAI**| The organization that provides this model. | +|Model provider|**Microsoft Azure**| The organization that provides this model. | |Release date|**May 13th, 2024** | The release date for the model.| |Knowledge cutoff date| **September 2023**| The date after which the model does not get any information updates. | |Input context window |**128k tokens**| The number of tokens supported by the input context window.| @@ -31,4 +31,4 @@ related_guides: For additional information, see [official Azure OpenAI GPT-4o-2024-05-13 documentation][azure-ai-mini-4o-model]. [azure-ai-mini-4o-model]: https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models?tabs=python-secure#gpt-4o-and-gpt-4-turbo -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/azure-openai-gpt-4o-mini-model-card.md b/content/guides/box-ai/ai-models/azure-openai-gpt-4o-mini-model-card.md index e012b5db0..2235b0a7c 100644 --- a/content/guides/box-ai/ai-models/azure-openai-gpt-4o-mini-model-card.md +++ b/content/guides/box-ai/ai-models/azure-openai-gpt-4o-mini-model-card.md @@ -1,10 +1,10 @@ --- rank: 4 related_guides: - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured - box-ai/ai-agents/get-agent-default-config --- # Azure OpenAI GPT-4o Mini @@ -18,7 +18,7 @@ related_guides: |Model name|**GPT-4o Mini**| The name of the model. | |API model name|`azure__openai__gpt_4o_mini`| The name of the model that is used in the [Box AI API for model overrides][overrides]. The user must provide this exact name for the API to work. | |Hosting layer| **Microsoft Azure** | The trusted organization that securely hosts LLM. | -|Model provider|**OpenAI**| The organization that provides this model. | +|Model provider|**Microsoft Azure**| The organization that provides this model. | |Release date|**July 18th, 2024** | The release date for the model.| |Knowledge cutoff date| **October 2023**| The date after which the model does not get any information updates. | |Input context window |**128k tokens**| The number of tokens supported by the input context window.| @@ -48,4 +48,4 @@ Box AI API uses this model to cover the following use cases: For additional information, see [official Azure OpenAI GPT-4o Mini documentation][azure-ai-mini-4o-model]. [azure-ai-mini-4o-model]: https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models?tabs=python-secure#gpt-4o-and-gpt-4-turbo -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/azure-text-embedding-ada-002-model-card.md b/content/guides/box-ai/ai-models/azure-text-embedding-ada-002-model-card.md index 8792b89fe..24a8eae2a 100644 --- a/content/guides/box-ai/ai-models/azure-text-embedding-ada-002-model-card.md +++ b/content/guides/box-ai/ai-models/azure-text-embedding-ada-002-model-card.md @@ -1,10 +1,10 @@ --- rank: 5 related_guides: - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured - box-ai/ai-agents/get-agent-default-config --- # Azure text-embedding-ada-002 @@ -18,7 +18,7 @@ related_guides: |Model name|**text-embedding-ada-002**| The name of the model. | |API model name|`azure__openai__text_embedding_ada_002`| The name of the model that is used in the [Box AI API for model overrides][overrides]. The user must provide this exact name for the API to work. | |Hosting layer| **Microsoft Azure** | The trusted organization that securely hosts LLM. | -|Model provider|**OpenAI**| The organization that provides this model. | +|Model provider|**Microsoft Azure**| The organization that provides this model. | |Release date|**December 2022** | The release date for the model.| |Knowledge cutoff date| **September 2021**| The date after which the model does not get any information updates. | |Input context window |**8k tokens**| The number of tokens supported by the input context window.| @@ -31,4 +31,4 @@ related_guides: For additional information, see [official Azure Embeddings models documentation][azure-ai-embeddings]. [azure-ai-embeddings]: https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#embeddings -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/google-gemini-1-5-flash-001-model-card.md b/content/guides/box-ai/ai-models/google-gemini-1-5-flash-001-model-card.md index 65af2e7d4..e0d0d2ae1 100644 --- a/content/guides/box-ai/ai-models/google-gemini-1-5-flash-001-model-card.md +++ b/content/guides/box-ai/ai-models/google-gemini-1-5-flash-001-model-card.md @@ -1,10 +1,10 @@ --- rank: 6 related_guides: - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured - box-ai/ai-agents/get-agent-default-config --- @@ -32,4 +32,4 @@ related_guides: For additional information, see [official Google Gemini 1.5 Flash documentation][vertex-ai-gemini-models]. [vertex-ai-gemini-models]: https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-models -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/google-gemini-1-5-pro-001-model-card.md b/content/guides/box-ai/ai-models/google-gemini-1-5-pro-001-model-card.md index 5bebb9f38..8513b46f8 100644 --- a/content/guides/box-ai/ai-models/google-gemini-1-5-pro-001-model-card.md +++ b/content/guides/box-ai/ai-models/google-gemini-1-5-pro-001-model-card.md @@ -1,10 +1,10 @@ --- rank: 7 related_guides: - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured - box-ai/ai-agents/get-agent-default-config --- @@ -32,4 +32,4 @@ related_guides: For additional information, see [official Google Gemini 1.5 Pro documentation][vertex-ai-gemini-models]. [vertex-ai-gemini-models]: https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-models -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/google-text-bison-32-model-card.md b/content/guides/box-ai/ai-models/google-text-bison-32-model-card.md index 5bc8e4318..e4fee01fc 100644 --- a/content/guides/box-ai/ai-models/google-text-bison-32-model-card.md +++ b/content/guides/box-ai/ai-models/google-text-bison-32-model-card.md @@ -1,10 +1,10 @@ --- rank: 8 related_guides: - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured - box-ai/ai-agents/get-agent-default-config --- @@ -32,4 +32,4 @@ related_guides: For additional information, see [official Google Text Bison documentation][vertex-text-models]. [vertex-text-models]: https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/text -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/google-text-bison-model-card.md b/content/guides/box-ai/ai-models/google-text-bison-model-card.md index 7592260ab..f502a6208 100644 --- a/content/guides/box-ai/ai-models/google-text-bison-model-card.md +++ b/content/guides/box-ai/ai-models/google-text-bison-model-card.md @@ -1,10 +1,10 @@ --- rank: 9 related_guides: - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured - box-ai/ai-agents/get-agent-default-config --- @@ -32,4 +32,4 @@ related_guides: For additional information, see [official Google Text Bison documentation][vertex-text-models]. [vertex-text-models]: https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/text -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/google-text-unicorn-model-card.md b/content/guides/box-ai/ai-models/google-text-unicorn-model-card.md index c0dcadb3d..7d79df744 100644 --- a/content/guides/box-ai/ai-models/google-text-unicorn-model-card.md +++ b/content/guides/box-ai/ai-models/google-text-unicorn-model-card.md @@ -1,10 +1,10 @@ --- rank: 10 related_guides: - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured - box-ai/ai-agents/get-agent-default-config --- @@ -32,4 +32,4 @@ related_guides: For additional information, see [official Google Text Unicorn documentation][vertex-text-models]. [vertex-text-models]: https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/text -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/google-textembedding-gecko-002-model-card.md b/content/guides/box-ai/ai-models/google-textembedding-gecko-002-model-card.md index 2af337631..ad294f198 100644 --- a/content/guides/box-ai/ai-models/google-textembedding-gecko-002-model-card.md +++ b/content/guides/box-ai/ai-models/google-textembedding-gecko-002-model-card.md @@ -1,10 +1,10 @@ --- rank: 12 related_guides: - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured - box-ai/ai-agents/get-agent-default-config --- # Google textembedding-gecko@002 @@ -31,4 +31,4 @@ Text embedding models convert textual data into numerical vectors that can be pr For additional information, see [official Google textembedding models documentation][vertex-ai-model]. [vertex-ai-model]: https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#models -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/google-textembedding-gecko-003-model-card.md b/content/guides/box-ai/ai-models/google-textembedding-gecko-003-model-card.md index 3009bcf07..3a39a366b 100644 --- a/content/guides/box-ai/ai-models/google-textembedding-gecko-003-model-card.md +++ b/content/guides/box-ai/ai-models/google-textembedding-gecko-003-model-card.md @@ -1,10 +1,10 @@ --- rank: 13 related_guides: - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured - box-ai/ai-agents/get-agent-default-config --- # Google textembedding-gecko@003 @@ -31,4 +31,4 @@ Text embedding models convert textual data into numerical vectors that can be pr For additional information, see [official Google textembedding models documentation][vertex-ai-model]. [vertex-ai-model]: https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#models -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/google-textembedding-gecko-model-card.md b/content/guides/box-ai/ai-models/google-textembedding-gecko-model-card.md index 8226c022b..bea5f745c 100644 --- a/content/guides/box-ai/ai-models/google-textembedding-gecko-model-card.md +++ b/content/guides/box-ai/ai-models/google-textembedding-gecko-model-card.md @@ -1,10 +1,10 @@ --- rank: 11 related_guides: - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata - - box-ai/extract-metadata-structured + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured - box-ai/ai-agents/get-agent-default-config --- # Google textembedding-gecko @@ -31,4 +31,4 @@ Text embedding models convert textual data into numerical vectors that can be pr For additional information, see [official Google textembedding models documentation][vertex-ai-model]. [vertex-ai-model]: https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#models -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-models/index.md b/content/guides/box-ai/ai-models/index.md index 61ea79a3d..e85cbc07e 100644 --- a/content/guides/box-ai/ai-models/index.md +++ b/content/guides/box-ai/ai-models/index.md @@ -1,9 +1,10 @@ --- rank: 1 related_guides: - - box-ai/ask-questions - - box-ai/generate-text + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text - box-ai/ai-agents/get-agent-default-config + - box-ai/ai-tutorials/default-agent-overrides alias_paths: - guides/box-ai/supported-models --- @@ -38,7 +39,7 @@ Models offered in **Preview** mode have not been fully performance-tested at sca Available - + A multimodal model, highly efficient in handling complex, multi-step tasks.
Default for Box AI for Box Hubs diff --git a/content/guides/box-ai/ai-tutorials/ask-questions.md b/content/guides/box-ai/ai-tutorials/ask-questions.md new file mode 100644 index 000000000..fbe9ee6ba --- /dev/null +++ b/content/guides/box-ai/ai-tutorials/ask-questions.md @@ -0,0 +1,183 @@ +--- +rank: 2 +related_endpoints: + - post_ai_ask +related_guides: + - box-ai/ai-tutorials/prerequisites + - box-ai/ai-tutorials/default-agent-overrides + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured +alias_paths: + - guides/box-ai/ask-questions +--- + +# Ask questions to Box AI + + +Box AI API is available to all Enterprise Plus customers. + + + +Box AI API allows you to +ask a question about a supplied file or +a set of files, and get a response based on +the content. +For example, while viewing a document in Box, +you can ask Box AI to summarize the content. + +## Before you start + +Make sure you followed the steps listed in [prerequisites for using Box AI][prereq] to create a custom app and authenticate. + +## Send a request + +To send a request containing your question, +use the `POST /2.0/ai/ask` endpoint and +provide the mandatory parameters. + + + +### Parameters + +To make a call, you need to pass the following parameters. +Mandatory parameters are in **bold**. + +| Parameter |Description | Available values | Example | +| ------------ | ------ | ----------- | --- | +| **`mode`** | The type of request. It can be a question about a single file or a set of files. For a single file, Box AI API supports up to 1MB of text representation. If the file size exceeds 1MB, the first 1MB of text representation will be processed. If you want to list multiple files, the limit is 25 files. If you set `mode` to `single_item_qa`, the `items` array can list only one element.| `single_item_qa`, `multiple_item_qa` | `single_item_qa` | +| **`prompt`** | The question about your document or content. The prompt's length cannot exceed 10000 characters. | | `What is this document about?` | +| `dialogue_history.prompt` | The prompt previously provided by the client and answered by the Large Language Model (LLM). | `Make my email about public APIs sound more professional` | +| `dialogue_history.answer` | The answer previously provided by the LLM. | `Here is a draft of your professional email about public APIs.` | +| `dialogue_history.created_at` | The ISO date formatted timestamp of when the previous answer to the prompt was created. | `2012-12-12T10:53:43-08:00` | +|`include_citations`| Specifies if the citations should be returned in the answer.| `true`, `false`| `true`| +|**`items.id`** | The Box file ID you want to provide as input. | | `112233445566`| +| **`items.type`** | The type of the provided input. Currently, it can be a single file or multiple files. | `file` | `file` | +| `items.content` | The content of the item. Usually it is the text representation. | | `An application programming interface (API) is a way for two or more computer programs or components to communicate with each other. It is a type of software interface...` | +|`ai_agent` | The AI agent used to override the default agent configuration. You can use this parameter replace the default LLM with a custom one using the [`model`][model-param] parameter for shorter and longer texts, tweak the base [`prompt`][prompt-param] to allow for a more customized user experience, or change an LLM parameter, such as `temperature`, to make the results more or less creative. Before you use the `ai_agent` parameter, you can get the default configuration using the [`GET 2.0/ai_agent_default`][agent] request. For specific use cases, see the [AI model overrides tutorial][overrides]. || + +## Use cases + +## Ask questions about an item + +This example shows how to ask a question about one or more items using the `POST ask/ai` API. When using this endpoint, remember to specify the `mode` parameter depending on the number of items you want to supply. + +```sh +curl -i -L POST "https://api.box.com/2.0/ai/ask" \ + -H "content-type: application/json" \ + -H "authorization: Bearer " \ + -d '{ + "mode": "single_item_qa", + "items": [ + { + "id": "12345678", + "type": "file" + } + ], + "prompt": "List the guidelines on creating questions in Box AI for Documents" +}' +``` + +The response will be as follows: + +```sh +{ + "answer": "The guidelines for working with questions in Box AI for Documents are as follows:\n\n1. Box AI pulls information only from the document loaded in preview.\n2. If questions fall outside the scope of the document, Box AI will inform you that it cannot answer.\n3. Be specific when asking questions; use parameters like numbered lists, brevity, tables, and central themes or key points.\n4. Aim to stay within the scope of the document.\n5. Focus on text-based responses only.", + "created_at": "2024-11-04T02:30:09.557-08:00", + "completion_reason": "done" +} +``` + +## Ask questions with `content` parameter + +If you use the `content` parameter as the source of input for Box AI, it will use it as the primary source. + +```sh +curl -i -L POST "https://api.box.com/2.0/ai/ask" \ + -H "content-type: application/json" \ + -H "authorization: Bearer " \ + -d '{ + "mode": "single_item_qa", + "items": [ + { + "id": "12345678", + "type": "file", + "content": "This is a document about Box AI For documents. It consists of the functionality summary and guidelines on how to work with Box AI. Additionally, it provides a set of best practices for creating questions." + } + ], + "prompt": "List the guidelines on creating questions in Box AI for Documents" +}' +``` + +The response to this request is based on the `content` parameter instead of the file's content: + +```sh +{ + "answer": "The document does not provide specific guidelines on working with questions in Box AI for Documents. It only mentions that it includes a set of best practices for creating questions, but the details of those guidelines are not included in the text provided. If you have more information or another document, I can help further!", + "created_at": "2024-11-04T02:31:51.125-08:00", + "completion_reason": "done" +} +``` + +## Ask questions with `citations` parameter + +Setting the `citations` parameter to `true` causes the response to include excerpts from source file or files Box AI used to compile the answer. + +```sh +curl -i -L POST "https://api.box.com/2.0/ai/ask" \ + -H "content-type: application/json" \ + -H "authorization: Bearer " \ + -d '{ + "mode": "multiple_item_qa", + "include_citations": true, + "items": [ + { + "id": "12345678", + "type": "file" + } + ], + "prompt": "List the guidelines on working with responses in Box AI for Documents" +}' +``` + +The resulting answer includes the source file and direct content citations. + +```sh +{ + "answer": "The guidelines for working with questions in Box AI for Documents are as follows:\n\n1. Box AI pulls information only from the document loaded in preview, and cannot answer questions outside its scope.\n2. Be specific when asking questions; use parameters like numbered lists, brevity, tables, and central themes or key points.\n3. Examples of better phrasing include asking for a numbered list of key points instead of just \"list key points,\" and requesting a succinct outline of important points rather than a general inquiry about the document's purpose.\n4. Stay within the scope of the document and focus on text-based responses only.", + "created_at": "2024-11-04T02:35:00.578-08:00", + "completion_reason": "done", + "citations": [ + { + "type": "file", + "id": "12345678", + "name": "Box AI for Documents.docx", + "content": "Guidelines for Box AI questions\nBox AI pulls information only from the document you loaded in preview." + }, + { + "type": "file", + "id": "12345678", + "name": "Box AI for Documents.docx", + "content": "If you ask any questions outside of the scope of the document, Box AI informs you that it cannot answer the question with the information provided." + }, + { + "type": "file", + "id": "12345678", + "name": "Box AI for Documents.docx", + "content": "As you ask Box AI to analyze your document, consider these suggestions:\n· Be as specific as possible." + }, + { + "type": "file", + "id": "12345678", + "name": "Box AI for Documents.docx", + "content": "Box AI for Documents\n\nWhen viewing a document in Box, you can ask Box AI to summarize document content, search key points, and write outline drafts based on your document files." + } + ] +} +``` + +[prereq]: g://box-ai/ai-tutorials/prerequisites +[agent]: e://get_ai_agent_default +[model-param]: r://ai_agent_ask#param_basic_text_model +[prompt-param]: e://ai_agent_ask#param_basic_text_prompt_template +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-agents/overrides-tutorial.md b/content/guides/box-ai/ai-tutorials/default-agent-overrides.md similarity index 59% rename from content/guides/box-ai/ai-agents/overrides-tutorial.md rename to content/guides/box-ai/ai-tutorials/default-agent-overrides.md index b210ac554..a5884b7f3 100644 --- a/content/guides/box-ai/ai-agents/overrides-tutorial.md +++ b/content/guides/box-ai/ai-tutorials/default-agent-overrides.md @@ -5,9 +5,14 @@ related_endpoints: - post_ai_text_gen - post_ai_ask related_guides: - - box-ai/prerequisites - - box-ai/ask-questions - - box-ai/generate-text + - box-ai/ai-tutorials/prerequisites + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured + - box-ai/ai-agents/ai-agent-overrides +alias_paths: + - guides/box-ai/ai-agent-overrides --- # Override AI model configuration @@ -16,140 +21,12 @@ related_guides: Endpoints related to metadata extraction are currently a beta feature offered subject to Box’s Main Beta Agreement, and the available capabilities may change. Box AI API is available to all Enterprise Plus customers. -The `agent_ai` configuration allows you to override the default AI model configuration. It is available for the following endpoints: +## Before you start -* [`POST ai/ask`][ask] -* [`POST ai/text_gen`][text-gen] -* [`POST ai/extract`][extract] -* [`POST ai/extract_structured`][extract-structured] +Make sure you followed the steps listed in [prerequisites for using Box AI][prereq] to create a custom app and authenticate. +To get more context, read about [agent overrides][agent-overrides]. - - -Use the [`GET ai_agent_default`][agent] endpoint to fetch the default configuration. - - - -The override examples include: - -* Replacing the default AI model with a custom one based on your organization's needs. -* Tweaking the base `prompt` to allow a more customized user experience. -* Changing a parameter, such as `temperature`, to make the results more or less creative. - -## Sample configuration - -A sample configuration for `ai/ask` is as follows: - -```sh -{ - "type": "ai_agent_ask", - "basic_text": { - "llm_endpoint_params": { - "type": "openai_params", - "frequency_penalty": 1.5, - "presence_penalty": 1.5, - "stop": "<|im_end|>", - "temperature": 0, - "top_p": 1 - }, - "model": "azure__openai__gpt_3_5_turbo_16k", - "num_tokens_for_completion": 8400, - "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer the `{user_question}`.", - "system_message": "You are a helpful travel assistant specialized in budget travel" - }, - "basic_text_multi": { - "llm_endpoint_params": { - "type": "openai_params", - "frequency_penalty": 1.5, - "presence_penalty": 1.5, - "stop": "<|im_end|>", - "temperature": 0, - "top_p": 1 - }, - "model": "azure__openai__gpt_3_5_turbo_16k", - "num_tokens_for_completion": 8400, - "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer the `{user_question}`.", - "system_message": "You are a helpful travel assistant specialized in budget travel" - }, - "long_text": { - "embeddings": { - "model": "openai__text_embedding_ada_002", - "strategy": { - "id": "basic", - "num_tokens_per_chunk": 64 - } - }, - "llm_endpoint_params": { - "type": "openai_params", - "frequency_penalty": 1.5, - "presence_penalty": 1.5, - "stop": "<|im_end|>", - "temperature": 0, - "top_p": 1 - }, - "model": "azure__openai__gpt_3_5_turbo_16k", - "num_tokens_for_completion": 8400, - "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer the `{user_question}`.", - "system_message": "You are a helpful travel assistant specialized in budget travel" - }, - "long_text_multi": { - "embeddings": { - "model": "openai__text_embedding_ada_002", - "strategy": { - "id": "basic", - "num_tokens_per_chunk": 64 - } - }, - "llm_endpoint_params": { - "type": "openai_params", - "frequency_penalty": 1.5, - "presence_penalty": 1.5, - "stop": "<|im_end|>", - "temperature": 0, - "top_p": 1 - }, - "model": "azure__openai__gpt_3_5_turbo_16k", - "num_tokens_for_completion": 8400, - "prompt_template": "It is `{current_date}`, consider these travel options `{content}` and answer the `{user_question}`.", - "system_message": "You are a helpful travel assistant specialized in budget travel" - } -} -``` - -### Differences in parameter sets - -The set of parameters available for `ask`, `text_gen`, `extract`, `extract_structured` differs slightly, depending on the API call. - - * The agent configuration for the `ask` endpoint includes `basic_text`, `basic_text_multi`, `long_text` and `long_text_multi` parameters. This is because of the `mode` parameter you use to specify if the request is for a single item or multiple items. If you selected `multiple_item_qa` as the `mode`, you can also use `multi` parameters for overrides. - - * The agent configuration for `text_gen` includes the `basic_gen` parameter - that is used to generate text. - -### LLM endpoint params - -The `llm_endpoint_params` configuration options differ depending on the overall AI model being [Google][google-params], [OpenAI][openai-params] or [AWS][aws-params] based. - -For example, both `llm_endpoint_params` objects accept a `temperature` parameter, but the outcome differs depending on the model. - -For Google and AWS models, the [`temperature`][google-temp] 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. - -For OpenAI models, [`temperature`][openai-temp] is the sampling temperature with values between 0 and 2. Higher values like 0.8 make the output more random, while lower values like 0.2 make it more focused and deterministic. When introducing your own configuration, use `temperature` or or `top_p` but not both. - -### System message - -The `system_message` parameter's aim is to help the LLM understand its role and what it’s supposed to do. -For example, if your solution is processing travel itineraries, you can add a system message saying: - -```sh -You are a travel agent aid. You are going to help support staff process large amounts of schedules, tickets, etc. -``` - -This message is separate from the content you send in, but it can improve the results. - -### Number of tokens for completion - -The `num_tokens_for_completion` parameter represents the number of [tokens][openai-tokens] Box AI can return. This number can vary based on the model used. - -## Use case: Box AI Q&A +## Override prompt This example shows how to use the `prompt_template` parameter to change the query result. @@ -214,7 +91,7 @@ The response would be slightly less formal: } ``` -## Use case: Generating text +## Override AI model (text generation) This example shows you how changing the AI model in the `ai_agent` options can influence the way the text is generated. @@ -281,7 +158,7 @@ After the model switch, the response is slightly different: As you can see the responses differ to some extent. Thanks to the model switch, you can optimize your interaction with Box AI and choose the most suitable model for your needs. -## Use case: Metadata extraction +## Override AI model (metadata extraction) Switching models can also give us different results for metadata extraction. Let's use a sample contract to extract the metadata. In this example, the model used is Google Gemini. @@ -344,14 +221,5 @@ Using this model results in a response listing more metadata entries: } ``` -[ask]: e://post_ai_ask#param_ai_agent -[text-gen]: e://post_ai_text_gen#param_ai_agent -[extract]: e://post_ai_extract#param_ai_agent -[extract-structured]: e://post_ai_extract_structured#param_ai_agent -[google-params]: r://ai-llm-endpoint-params-google -[openai-params]: r://ai-llm-endpoint-params-openai -[openai-tokens]: https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them -[agent]: e://get_ai_agent_default -[google-temp]: https://ai.google.dev/gemini-api/docs/models/generative-models#model-parameters -[openai-temp]: https://community.openai.com/t/temperature-top-p-and-top-k-for-chatbot-responses/295542 -[aws-params]: r://ai-llm-endpoint-params-aws \ No newline at end of file +[agent-overrides]: g://box-ai/ai-agents/ai-agent-overrides +[prereq]: g://box-ai/ai-tutorials/prerequisites \ No newline at end of file diff --git a/content/guides/box-ai/extract-metadata-structured.md b/content/guides/box-ai/ai-tutorials/extract-metadata-structured.md similarity index 94% rename from content/guides/box-ai/extract-metadata-structured.md rename to content/guides/box-ai/ai-tutorials/extract-metadata-structured.md index 66a3d05cb..b14ebc95b 100644 --- a/content/guides/box-ai/extract-metadata-structured.md +++ b/content/guides/box-ai/ai-tutorials/extract-metadata-structured.md @@ -3,10 +3,13 @@ rank: 9 related_endpoints: - post-ai-extract related_guides: - - box-ai/prerequisites - - box-ai/extract-metadata - - box-ai/ai-agents/get-agent-default-config - - box-ai/ai-agents/overrides-tutorial + - box-ai/ai-tutorials/prerequisites + - box-ai/ai-tutorials/default-agent-overrides + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/extract-metadata +alias_paths: + - guides/box-ai/extract-metadata-structured --- # Extract metadata from file (structured) @@ -21,15 +24,15 @@ and get the result in the form of key-value pairs. As input, you can either create a structure using the `fields` parameter, or use an already defined metadata template. To learn more about creating templates, see [Creating metadata templates in the Admin Console][templates-console] or use the [metadata template API][templates-api]. +## Before you start + +Make sure you followed the steps listed in [prerequisites for using Box AI][prereq] to create a custom app and authenticate. + ## Send a request To send a request, use the `POST /2.0/ai/extract_structured` endpoint. -Make sure you have generated the developer token -to authorize your app. See [prerequisites for using Box AI][prereq] -for details. - ### Parameters @@ -58,15 +61,16 @@ The `items` array can have exactly one element. | `fields.prompt` | Additional context about the key (identifier) that may include how to find and format it. | `Name is the first and last name from the email address` | | `ai_agent` | The AI agent used to override the default agent configuration. This parameter allows you to, for example, replace the default LLM with a custom one using the [`model`][model-param] parameter, tweak the base [`prompt`][prompt-param] to allow for a more customized user experience, or change an LLM parameter, such as `temperature`, to make the results more or less creative. Before you use the `ai_agent` parameter, you can get the default configuration using the [`GET 2.0/ai_agent_default`][agent] request. For specific use cases, see the [AI model overrides tutorial][overrides]. | | -## Use case +## Use cases -Let's assume you want to extract the vendor name, invoice number, and a few more details from the following sample invoice: +This example shows you how to extract metadata from a sample invoice in a structured way. +Let's assume you want to extract the vendor name, invoice number, and a few more details. -![sample invoice](./images/sample-invoice.png) +![sample invoice](../images/sample-invoice.png) ### Create the request -To get the response from Box AI, call `POST /2.0/ai/extract` endpoint with the following parameters: +To get the response from Box AI, call `POST /2.0/ai/extract_structured` endpoint with the following parameters: - `items.type` and `items.id` to specify the file to extract the data from. - `fields` to specify the data that you want to extract from the given file. @@ -78,7 +82,7 @@ You can use either `fields` or `metadata_template` to specify your structure, bu -### Using `fields` parameter +### Use `fields` parameter The `fields` parameter allows you to specify the data you want to extract. Each `fields` object has a subset of parameters you can use to add more information about the searched data. For example, you can add the field type, description, or even a prompt with some additional context. @@ -140,7 +144,7 @@ The response lists the specified fields and their values: } ``` -### Using metadata template +### Use metadata template If you prefer to use a metadata template, you can provide its `template_key`, `type`, and `scope`. @@ -175,10 +179,10 @@ The response lists the fields included in the metadata template and their values } ``` -[prereq]: g://box-ai/prerequisites +[prereq]: g://box-ai/ai-tutorials/prerequisites [agent]: e://get_ai_agent_default [model-param]: r://ai_agent_text_gen#param_basic_gen_model [prompt-param]: r://ai_agent_text_gen#param_basic_gen_prompt_template [templates-console]: https://support.box.com/hc/en-us/articles/360044194033-Customizing-Metadata-Templates [templates-api]: g://metadata/templates/create -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/extract-metadata.md b/content/guides/box-ai/ai-tutorials/extract-metadata.md similarity index 78% rename from content/guides/box-ai/extract-metadata.md rename to content/guides/box-ai/ai-tutorials/extract-metadata.md index 14d19cddd..35333af48 100644 --- a/content/guides/box-ai/extract-metadata.md +++ b/content/guides/box-ai/ai-tutorials/extract-metadata.md @@ -3,8 +3,13 @@ rank: 8 related_endpoints: - post-ai-extract-structured related_guides: - - box-ai/extract-metadata-structured - - box-ai/prerequisites + - box-ai/ai-tutorials/prerequisites + - box-ai/ai-tutorials/default-agent-overrides + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/extract-metadata-structured +alias_paths: + - guides/box-ai/extract-metadata --- # Extract metadata from file (freeform) @@ -17,15 +22,15 @@ Endpoints related to metadata extraction are currently a beta feature offered su Box AI API allows you to query a document and extract metadata based on a provided prompt. **Freeform** means that the prompt can include a stringified version of formats such as JSON or XML, or even plain text. +## Before you start + +Make sure you followed the steps listed in [prerequisites for using Box AI][prereq] to create a custom app and authenticate. + ## Send a request To send a request, use the `POST /2.0/ai/extract` endpoint. -Make sure you have generated the developer token -to authorize your app. See [prerequisites for using Box AI][prereq] -for details. - ### Parameters @@ -45,11 +50,9 @@ The `items` array can have exactly one element. | `items.content` | The content of the item, often the text representation. | `This article is about Box AI`. | |`ai_agent` | The AI agent used to override the default agent configuration. This parameter allows you to, for example, replace the default LLM with a custom one using the [`model`][model-param] parameter, tweak the base [`prompt`][prompt-param] to allow for a more customized user experience, or change an LLM parameter, such as `temperature`, to make the results more or less creative. Before you use the `ai_agent` parameter, you can get the default configuration using the [`GET 2.0/ai_agent_default`][agent] request. For specific use cases, see the [AI model overrides tutorial][overrides].| | -## Use case - -Let's assume you want to extract the vendor name, invoice number, and a few more details from the following sample invoice: +## Use cases -![sample invoice](./images/sample-invoice.png) +This example shows you how to extract metadata from a sample invoice. ### Create the request @@ -62,9 +65,38 @@ To get the response from Box AI, call `POST /2.0/ai/extract` endpoint with the f Depending on the use case and the level of detail, you can construct various prompts. -#### Using keywords +#### Use plain text + +Because this endpoint allows freeform prompts, you can use plain text to get the information. + +```bash +curl --location 'https://api.box.com/2.0/ai/extract' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: Bearer ' \ +--data '{ + "prompt": "find the document type (invoice or po), vendor, total, and po number", + "items": [ + { + "type": "file", + "id": "1443721424754" + } + ] +}' +``` + +In such a case, the response will be based on the keywords included in the text: + +```bash +{ + "answer": "{\"Document Type\": \"Invoice\", \"Vendor\": \"Quasar Innovations\", \"Total\": \"$1,050\", \"PO Number\": \"003\"}", + "created_at": "2024-05-31T10:30:51.223-07:00", + "completion_reason": "done" +} +``` + +#### Use specific terms -The prompt can include a list of keywords that you expect to find in an invoice: +If you don't want to write the entire sentence, the prompt can consist of terms that you expect to find in an invoice: ```bash curl --location 'https://api.box.com/2.0/ai/extract' \ @@ -81,7 +113,7 @@ The prompt can include a list of keywords that you expect to find in an invoice: }' ``` -Using this approach results in a list of keywords provided in the request and their values: +Using this approach results in a list of terms provided in the request and their values: ```bash { @@ -91,9 +123,9 @@ Using this approach results in a list of keywords provided in the request and th } ``` -#### Using key-value pairs +#### Use key-value pairs -The prompt can be a list of key-value pairs that helps Box AI to come up with the metadata structure: +The prompt can also be a list of key-value pairs that helps Box AI to come up with the metadata structure. This approach requires listing the key-value pairs within a `fields` array. ```bash curl --location 'https://api.box.com/2.0/ai/extract' \ @@ -110,7 +142,7 @@ curl --location 'https://api.box.com/2.0/ai/extract' \ }' ``` -The response includes the fields present in the file, along with their values: +The response includes the `fields` present in the file, along with their values: ```bash { @@ -120,37 +152,8 @@ The response includes the fields present in the file, along with their values: } ``` -#### Using plain text - -You can also use plain text: - -```bash -curl --location 'https://api.box.com/2.0/ai/extract' \ ---header 'Content-Type: application/json' \ ---header 'Authorization: Bearer ' \ ---data '{ - "prompt": "find the document type (invoice or po), vendor, total, and po number", - "items": [ - { - "type": "file", - "id": "1443721424754" - } - ] -}' -``` - -In such a case, the response will be based on the keywords included in the query: - -```bash -{ - "answer": "{\"Document Type\": \"Invoice\", \"Vendor\": \"Quasar Innovations\", \"Total\": \"$1,050\", \"PO Number\": \"003\"}", - "created_at": "2024-05-31T10:30:51.223-07:00", - "completion_reason": "done" -} -``` - -[prereq]: g://box-ai/prerequisites +[prereq]: g://box-ai/ai-tutorials/prerequisites [agent]: e://get_ai_agent_default [model-param]: r://ai_agent_text_gen#param_basic_gen_model [prompt-param]: r://ai_agent_text_gen#param_basic_gen_prompt_template -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-tutorials/generate-text.md b/content/guides/box-ai/ai-tutorials/generate-text.md new file mode 100644 index 000000000..c3cc55cbc --- /dev/null +++ b/content/guides/box-ai/ai-tutorials/generate-text.md @@ -0,0 +1,90 @@ +--- +rank: 3 +related_endpoints: + - post_ai_text_gen +related_guides: + - box-ai/ai-tutorials/prerequisites + - box-ai/ai-tutorials/default-agent-overrides + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured +alias_paths: + - guides/box-ai/generate-text +--- +# Generate text with Box AI + + +Box AI API is available to all Enterprise Plus customers. + + + +You can use Box AI to generate text +based on provided content. + For example, you can ask Box AI to + generate a template based + on the content you read or create in Box Notes. + Then you can embed the generated text + directly into your document. + +## Before you start + +Make sure you followed the steps listed in [prerequisites for using Box AI][prereq] to create a custom app and authenticate. + +## Send a request + +To send a request, use the +`POST /2.0/ai/text_gen` endpoint. + + + +### Parameters + +To make a call, you must pass the following parameters. Mandatory parameters are in **bold**. + +**Note**: The `items` array can have exactly one element. + +| Parameter| Description| Example| +|--------|--------|-------| +|**`prompt`**| The request for Box AI to generate or refine the text. The prompt's length cannot exceed 10000 characters.|Create a meeting agenda for a weekly sales meeting.| +|**`items.id`**|Box file ID of the document. |`1233039227512`| +|**`items.type`**|The type of the supplied input. | `file`| +| `items.content` | The content of the item, often the text representation. | `This article is about Box AI`. | +| `dialogue_history.prompt` | The prompt previously provided by the client and answered by the Large Language Model (LLM). | `Make my email about public APIs sound more professional` | +| `dialogue_history.answer` | The answer previously provided by the LLM. | `Here is a draft of your professional email about public APIs.` | +| `dialogue_history.created_at` | The ISO date formatted timestamp of when the previous answer to the prompt was created. | `2012-12-12T10:53:43-08:00` | +|`ai_agent` | The AI agent used to override the default agent configuration. This parameter allows you to, for example, replace the default LLM with a custom one using the [`model`][model-param] parameter, tweak the base [`prompt`][prompt-param] to allow for a more customized user experience, or change an LLM parameter, such as `temperature`, to make the results more or less creative. Before you use the `ai_agent` parameter, you can get the default configuration using the [`GET 2.0/ai_agent_default`][agent] request. For specific use cases, see the [AI model overrides tutorial][overrides]| | + +## Use cases + +Generate text based on the provided file content and a prompt. + +```sh +curl -i -L POST "https://api.box.com/2.0/ai/text_gen" \ + -H "content-type: application/json" \ + -H "authorization: Bearer " \ + -d '{ + "items": [ + { + "id": "12345678", + "type": "file" + } + ], + "prompt": "Create a short blog post that provides information on Box AI for Documents and focuses on best practices for asking questions. You can add emoticons, but not too many." +}' +``` + +The result will be as follows: + +```sh +{ + "answer": "📝 **Box AI for Documents: Best Practices for Asking Questions** 🤔\n\n---\n\nWelcome to our blog post on Box AI for Documents! 🎉 Today, we're going to dive into some best practices when it comes to asking questions within this innovative platform.\n\n1. **Be Clear and Concise**: When formulating a question in Box Notes, make sure your query is clear and to the point. This helps Box AI understand exactly what you're looking for.\n\n2. **Provide Context**: Giving context around your question can significantly improve the accuracy of the response generated by Box AI. Include relevant details or background information.\n\n3. **Use Keywords**: Utilize keywords related to your query within the question itself. This can help Box AI better identify the main topic of your inquiry.\n\n4. **Avoid Ambiguity**: Try to avoid vague or ambiguous questions that could lead to misunderstandings. The more precise you are, the better Box AI can assist you.\n\n5. **Review Suggestions Carefully**: After receiving suggestions from Box AI, take the time to review them carefully before incorporating them into your document. Ensure they align with your intended message.\n\nBy following these best practices, you can maximize the effectiveness of Box AI for Documents and streamline your workflow like never before! 💼✨\n\nStay tuned for more tips and tricks on leveraging technology for enhanced productivity! 👩‍💻🚀", + "created_at": "2024-11-04T02:46:23.459-08:00", + "completion_reason": "done" +} +``` + +[prereq]: g://box-ai/ai-tutorials/prerequisites +[agent]: e://get_ai_agent_default +[model-param]: r://ai_agent_text_gen#param_basic_gen_model +[prompt-param]: r://ai_agent_text_gen#param_basic_gen_prompt_template +[overrides]: g://box-ai/ai-agents/ai-agent-overrides \ No newline at end of file diff --git a/content/guides/box-ai/ai-tutorials/index.md b/content/guides/box-ai/ai-tutorials/index.md new file mode 100644 index 000000000..a53a31d65 --- /dev/null +++ b/content/guides/box-ai/ai-tutorials/index.md @@ -0,0 +1,14 @@ +--- +rank: 0 +related_guides: + - authentication/tokens/developer-tokens/ + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/default-agent-overrides + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata-structured + - box-ai/ai-tutorials/extract-metadata +--- + +# Box AI tutorials + +The listed tutorials provide you with an overview and use cases for Q&A and text generation, metadata extraction, and AI model configuration overrides. diff --git a/content/guides/box-ai/prerequisites.md b/content/guides/box-ai/ai-tutorials/prerequisites.md similarity index 85% rename from content/guides/box-ai/prerequisites.md rename to content/guides/box-ai/ai-tutorials/prerequisites.md index 6a0bb21a4..154ebec8e 100644 --- a/content/guides/box-ai/prerequisites.md +++ b/content/guides/box-ai/ai-tutorials/prerequisites.md @@ -1,10 +1,13 @@ --- -rank: 2 +rank: 1 related_guides: - - authentication/tokens/developer-tokens/ - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/ai-agents/get-agent-default-config + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/default-agent-overrides + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata + - box-ai/ai-tutorials/extract-metadata-structured +alias_paths: + - guides/box-ai/prerequisites --- # Get started with Box AI @@ -47,10 +50,10 @@ settings, contact your admin. To add a scope: 1. Open your application in Developer Console. -2. Go to **Configuration** > **Application Scopes** > **Content Actions** +2. Go to **Configuration** > **Required Access Scopes** > **Content Actions** 3. Select the **Manage AI** scope. Box Platform will automatically include the scope when making the call. If you are added as an collaborator for a given app, but do not have Box AI API access, you will see the **Manage AI** scope checked and grayed out. This means the app owner has the AI scope enabled but you cannot change this setting. - ![box ai scopes](./images/box-ai-app-scopes.png) + ![box ai scopes](../images/box-ai-app-scopes.png) 4. Submit your app for [authorization or enablement][authorization]. If you want to enable Box AI API for an existing application, you must [re-authorize][reauthorization] it. @@ -61,11 +64,11 @@ to authenticate your app when sending requests. To generate a token: -1. Go to **Developer Console** > **My Apps**. +1. Go to **Developer Console** > **My Platform Apps**. 2. Click the **Options menu** button (…) on the right. 3. Select **Generate Developer Token**. The token will be automatically generated and saved to clipboard. -![generate token](./images/developer-token.png) +![generate token](../images/developer-token.png) You can also open your app, go to **Configuration** > **Developer Token** diff --git a/content/guides/box-ai/ask-questions.md b/content/guides/box-ai/ask-questions.md deleted file mode 100644 index 6ba77746a..000000000 --- a/content/guides/box-ai/ask-questions.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -rank: 3 -related_endpoints: - - post_ai_ask -related_guides: - - box-ai/prerequisites - - box-ai/generate-text - - box-ai/ai-agents/get-agent-default-config - - box-ai/ai-agents/overrides-tutorial ---- - -# Ask questions to Box AI - - -Box AI API is available to all Enterprise Plus customers. - - - -Box AI API allows you to -ask a question about a supplied file or -a set of files, and get a response based on -the content. -For example, while viewing a document in Box, -you can ask Box AI to summarize the content. - -## Send a request - -To send a request containing your question, -use the `POST /2.0/ai/ask` endpoint and -provide the mandatory parameters. - - - -### Authentication - -Make sure you have generated the developer token -to authorize your app. See [prerequisites for using Box AI][prereq] -for details. - -### Parameters - -To make a call, you need to pass the following parameters. -Mandatory parameters are in **bold**. - -| Parameter |Description | Available values | Example | -| ------------ | ------ | ----------- | --- | -| **`mode`** | The type of request. It can be a question about a single file or a set of files. For a single file, Box AI API supports up to 1MB of text representation. If the file size exceeds 1MB, the first 1MB of text representation will be processed. If you want to list multiple files, the limit is 25 files. If you set `mode` to `single_item_qa`, the `items` array can list only one element.| `single_item_qa`, `multiple_item_qa` | `single_item_qa` | -| **`prompt`** | The question about your document or content. The prompt's length cannot exceed 10000 characters. | | `What is this document about?` | -| `dialogue_history.prompt` | The prompt previously provided by the client and answered by the Large Language Model (LLM). | `Make my email about public APIs sound more professional` | -| `dialogue_history.answer` | The answer previously provided by the LLM. | `Here is a draft of your professional email about public APIs.` | -| `dialogue_history.created_at` | The ISO date formatted timestamp of when the previous answer to the prompt was created. | `2012-12-12T10:53:43-08:00` | -|`include_citations`| Specifies if the citations should be returned in the answer.| `true`, `false`| `true`| -|**`items.id`** | The Box file ID you want to provide as input. | | `112233445566`| -| **`items.type`** | The type of the provided input. Currently, it can be a single file or multiple files. | `file` | `file` | -| `items.content` | The content of the item, often the text representation. | | `An application programming interface (API) is a way for two or more computer programs or components to communicate with each other. It is a type of software interface...` | -|`ai_agent` | The AI agent used to override the default agent configuration. You can use this parameter replace the default LLM with a custom one using the [`model`][model-param] parameter for shorter and longer texts, tweak the base [`prompt`][prompt-param] to allow for a more customized user experience, or change an LLM parameter, such as `temperature`, to make the results more or less creative. Before you use the `ai_agent` parameter, you can get the default configuration using the [`GET 2.0/ai_agent_default`][agent] request. For specific use cases, see the [AI model overrides tutorial][overrides]. || - -[prereq]: g://box-ai/prerequisites -[agent]: e://get_ai_agent_default -[model-param]: r://ai_agent_ask#param_basic_text_model -[prompt-param]: e://ai_agent_ask#param_basic_text_prompt_template -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file diff --git a/content/guides/box-ai/generate-text.md b/content/guides/box-ai/generate-text.md deleted file mode 100644 index 420320692..000000000 --- a/content/guides/box-ai/generate-text.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -rank: 6 -related_endpoints: - - post_ai_text_gen -related_guides: - - box-ai/prerequisites - - box-ai/ask-questions - - box-ai/ai-agents/get-agent-default-config ---- -# Generate text with Box AI - - -Box AI API is available to all Enterprise Plus customers. - - - -You can use Box AI to generate text -based on provided content. - For example, you can ask Box AI to - generate a template based - on the content you read or create in Box Notes. - Then you can embed the generated text - directly into your document. - -## Send a request - -To send a request, use the -`POST /2.0/ai/text_gen` endpoint. - -Make sure you have generated the developer token -to authorize your app. See [prerequisites for using Box AI][prereq] -for details. - - - -### Parameters - -To make a call, you must pass the following parameters. Mandatory parameters are in **bold**. - -**Note**: The `items` array can have exactly one element. - -| Parameter| Description| Example| -|--------|--------|-------| -|**`prompt`**| The request for Box AI to generate or refine the text. The prompt's length cannot exceed 10000 characters.|Create a meeting agenda for a weekly sales meeting.| -|**`items.id`**|Box file ID of the document. |`1233039227512`| -|**`items.type`**|The type of the supplied input. | `file`| -| `items.content` | The content of the item, often the text representation. | `This article is about Box AI`. | -| `dialogue_history.prompt` | The prompt previously provided by the client and answered by the Large Language Model (LLM). | `Make my email about public APIs sound more professional` | -| `dialogue_history.answer` | The answer previously provided by the LLM. | `Here is a draft of your professional email about public APIs.` | -| `dialogue_history.created_at` | The ISO date formatted timestamp of when the previous answer to the prompt was created. | `2012-12-12T10:53:43-08:00` | -|`ai_agent` | The AI agent used to override the default agent configuration. This parameter allows you to, for example, replace the default LLM with a custom one using the [`model`][model-param] parameter, tweak the base [`prompt`][prompt-param] to allow for a more customized user experience, or change an LLM parameter, such as `temperature`, to make the results more or less creative. Before you use the `ai_agent` parameter, you can get the default configuration using the [`GET 2.0/ai_agent_default`][agent] request. For specific use cases, see the [AI model overrides tutorial][overrides]| | - -[prereq]: g://box-ai/prerequisites -[agent]: e://get_ai_agent_default -[model-param]: r://ai_agent_text_gen#param_basic_gen_model -[prompt-param]: r://ai_agent_text_gen#param_basic_gen_prompt_template -[overrides]: g://box-ai/ai-agents/overrides-tutorial \ No newline at end of file diff --git a/content/guides/box-ai/index.md b/content/guides/box-ai/index.md index 3eb273c76..e72cf92e0 100644 --- a/content/guides/box-ai/index.md +++ b/content/guides/box-ai/index.md @@ -4,11 +4,11 @@ related_endpoints: - post_ai_text_gen - post_ai_ask related_guides: - - box-ai/prerequisites - - box-ai/ask-questions - - box-ai/generate-text - - box-ai/extract-metadata-structured - - box-ai/extract-metadata + - box-ai/ai-tutorials/prerequisites + - box-ai/ai-tutorials/ask-questions + - box-ai/ai-tutorials/generate-text + - box-ai/ai-tutorials/extract-metadata-structured + - box-ai/ai-tutorials/extract-metadata --- diff --git a/content/guides/cli/cli-docs/jwt-cli.md b/content/guides/cli/cli-docs/jwt-cli.md index 1252a1733..dc93ecba4 100644 --- a/content/guides/cli/cli-docs/jwt-cli.md +++ b/content/guides/cli/cli-docs/jwt-cli.md @@ -36,7 +36,7 @@ following scopes are set in the **Configuration** tab of your application: 1. From the left-hand navigation panel on your All Files page, open the [Developer Console][dc]. If this is your first time using the Box API and this option is not already available, you can add it to your account by clicking [here][dc]. -2. Click **Create New App** > **Custom App** > **Server Authentication (with JWT)** > name the application > **Create App** +2. Click **Create Platform App** > **Platform App** > **Server Authentication (with JWT)** > name the application > **Create App** Server Authentication (with JWT) always requires Admin authorization before use. diff --git a/content/guides/collaborations/connect-slack-to-group-collabs/1-configure-slack.md b/content/guides/collaborations/connect-slack-to-group-collabs/1-configure-slack.md index 94b4be5a0..97c5b1b58 100644 --- a/content/guides/collaborations/connect-slack-to-group-collabs/1-configure-slack.md +++ b/content/guides/collaborations/connect-slack-to-group-collabs/1-configure-slack.md @@ -18,7 +18,7 @@ This section will take you through the following steps. ## Create a minimal Slack app -Go to the **[Slack apps page][slack-apps]** and click **Create New App**. Add +Go to the **[Slack apps page][slack-apps]** and click **Create Platform App**. Add an **App Name**, select your **Development Slack Workspace** from the dropdown list where the bot will be deployed to, then click **Create App**. diff --git a/content/guides/events/event-triggers/shield-smart-access-events.md b/content/guides/events/event-triggers/shield-smart-access-events.md index 785d528f7..860328edc 100644 --- a/content/guides/events/event-triggers/shield-smart-access-events.md +++ b/content/guides/events/event-triggers/shield-smart-access-events.md @@ -355,7 +355,7 @@ The `additional_details` payload will provide the following details: `SHIELD_EXTERNAL_COLLAB_INVITE_JUSTIFIED` event. -## Application Restriction +## Integration Restriction If a 3rd-party application, including published custom applications with which your organization is integrated, is restricted from downloading a file or a diff --git a/content/guides/getting-started/first-application.md b/content/guides/getting-started/first-application.md index 681d8ac26..d60876957 100644 --- a/content/guides/getting-started/first-application.md +++ b/content/guides/getting-started/first-application.md @@ -41,7 +41,7 @@ Begin with the most basic settings. Open the **General Settings** tab and check or fill in below fields: - **App Name** - the name you set up during the app creation, you can change it here if needed; -- **Contact Email** - this is set to the developer of the application by default. Keep in mind that once you publish your app, this email is publicly visible to Box users who view your app in the [App Center][app-center]. We recommend to change it to a support email address, so that users can reach out to support in case of any issues with the integration; +- **Contact Email** - this is set to the developer of the application by default. Keep in mind that once you publish your app, this email is publicly visible to Box users who view your app in the [Integrations][integrations]. We recommend to change it to a support email address, so that users can reach out to support in case of any issues with the integration; - **Collaborators** - add other developers that can work on this integration, so that they can access the developer interface in case they need to adjust any settings. @@ -60,7 +60,7 @@ features, and add CORS domains. In the next tabs you can create webhooks, web app integrations, submit app for enablement for access to the Enterprise, submit your app -to the [Box App Center][app-center], and generate a report to view this application’s +to the [Box Integrations][integrations], and generate a report to view this application’s activity. ## Test your app @@ -84,9 +84,9 @@ You can also use [Box CLI tool][box-cli] if you prefer to use the terminal. [console]: https://cloud.app.box.com/developers/console [auth]: g://authentication/select [oauth2]: g://authentication/oauth2 -[app-center]: g://applications/app-center +[integrations]: g://applications/integrations [add-users]: https://support.box.com/hc/en-us/articles/360043694594-Add-Users -[app-center]: https://cloud.app.box.com/app-center +[integrations]: https://cloud.app.box.com/integrations [dev-token]: g://authentication/tokens/developer-tokens/#create-developer-token [postman-collection]: g://tooling/postman [api-ref]: https://developer.box.com/reference/ diff --git a/content/guides/getting-started/publish-app.md b/content/guides/getting-started/publish-app.md index 925806f07..972fa4a00 100644 --- a/content/guides/getting-started/publish-app.md +++ b/content/guides/getting-started/publish-app.md @@ -5,7 +5,7 @@ rank: 3 # Publish your application When you finish the app configuration and testing, you can publish -it in the [Box App Center][app-center]. It allows customers to find +it in the [Box Integrations][integrations]. It allows customers to find your application and add it to their Box accounts. @@ -13,7 +13,7 @@ your application and add it to their Box accounts. Only applications that use the OAuth 2.0 authentication have a built-in publication option. You can use other user authentication types, but such app can only serve as a marketing listing in the -App Center and redirect customers to your website. +Integrations and redirect customers to your website. @@ -21,12 +21,12 @@ To publish your app: 1. Open the **Dev Console**. 2. Select the application you want to publish. -3. Go to the **App Center** tab and submit your app. +3. Go to the **Integrations** tab and submit your app. This action gives you access to the marketing section of the application, where you need to add the following app information: -- **General App Info** - choose correct categories and platforms for your application to make it easier to find in the App Center, +- **General App Info** - choose correct categories and platforms for your application to make it easier to find in the Integrations, - **App Description** - make sure it contains all information about your application that the customers may find useful, - **Short Description** appears next to your app logo, together with your app name; - **Long Description** is what the users see after they select your app to view its details. You can add clickable links to the long description. @@ -40,9 +40,9 @@ Console. When you're finished with providing the details about your app, submit your app for approval. Box will review your application -and publish it in the App Center. +and publish it in the Integrations. In case of any questions or issues, contact the Partners team: integrate@box.com -[app-center]: https://cloud.app.box.com/app-center \ No newline at end of file +[integrations]: https://cloud.app.box.com/integrations \ No newline at end of file diff --git a/content/guides/integration-mappings/slack-mappings/setup.md b/content/guides/integration-mappings/slack-mappings/setup.md index 3b5a2a9b9..3ee2b09f4 100644 --- a/content/guides/integration-mappings/slack-mappings/setup.md +++ b/content/guides/integration-mappings/slack-mappings/setup.md @@ -34,7 +34,7 @@ If you encounter any errors, see the [troubleshooting guide][3]. ## Create Box application 1. Create a [custom app with OAuth authentication][4] in the [Box developer console][5] -2. Open the application and enable the **Manage enterprise properties** application scope under **Configuration** > **Application Scopes**. +2. Open the application and enable the **Manage enterprise properties** application scope under **Configuration** > **Required Access Scopes**. For Slack-side channel validation, the [Integration Mappings API][6] diff --git a/content/guides/mobile/ios/quick-start/3-configure-box-app.md b/content/guides/mobile/ios/quick-start/3-configure-box-app.md index 825ad26c6..2e36d313d 100644 --- a/content/guides/mobile/ios/quick-start/3-configure-box-app.md +++ b/content/guides/mobile/ios/quick-start/3-configure-box-app.md @@ -3,11 +3,11 @@ type: quick-start hide_in_page_nav: true --- -# Configure a Box App +# Configure a Box Platform App To start making authenticated API calls to the Box API with the **Box iOS SDK**, an **Access Token** will be needed. The simplest way to generate a valid -token is to generate a new **Box App** and manually generate a short lived +token is to generate a new **Box Platform App** and manually generate a short lived developer token. The developer token is generated through the developer console UI and will be @@ -38,12 +38,12 @@ valid for one hour before having to be manually refreshed. token, use the following steps. 1. Go to the [Developer Console][devconsole] - 2. Select **Create New App** - 3. Select **Custom App** as the type of application to create, and click **Next** + 2. Select **Create Platform App** + 3. Select **Platform App** as the type of application to create, and click **Next** 4. Select **OAuth 2.0 with JWT** as the authentication method, and click **Next** - 5. Give your Box app a unique name and click **Create App** - 6. Go to the app's configuration by clicking **View Your App**. - 7. Optionally, scroll to the **Application Scopes** section of the same screen and select any additional permissions you want to enable for this application. + 5. Give your Box app a unique name and click **Create Platform App** + 6. Go to the app's configuration by clicking **View Your Platform App**. + 7. Optionally, scroll to the **Required Access Scopes** section of the same screen and select any additional permissions you want to enable for this application. 8. At the top of the page click the button to **Save Changes** diff --git a/content/guides/security/images/global_app_settings.png b/content/guides/security/images/global_app_settings.png deleted file mode 100644 index a3750623c..000000000 Binary files a/content/guides/security/images/global_app_settings.png and /dev/null differ diff --git a/content/guides/security/images/global_apps_settings.png b/content/guides/security/images/global_integration_settings.png similarity index 100% rename from content/guides/security/images/global_apps_settings.png rename to content/guides/security/images/global_integration_settings.png diff --git a/content/guides/security/index.md b/content/guides/security/index.md index f69c9b254..639252c8f 100644 --- a/content/guides/security/index.md +++ b/content/guides/security/index.md @@ -136,11 +136,11 @@ Service Account and App Users. There are a few enterprise settings to be aware of when it comes to the Box API. -![Global App Settings](images/global_apps_settings.png) +![Global Integration Settings](images/global_integration_settings.png) Custom applications fall into two categories: published and unpublished. -Published applications are found in the [Box App Center][appcenter]. Box +Published applications are found in the [Box Integrations][appcenter]. Box Admins decide whether published and unpublished application are enabled by default and therefore can be used without approval. The status of these settings determines what actions are necessary to successfully [authorize][auth] an diff --git a/content/guides/skills/handle/setup.md b/content/guides/skills/handle/setup.md index 41a7f3c46..328ef1dae 100644 --- a/content/guides/skills/handle/setup.md +++ b/content/guides/skills/handle/setup.md @@ -15,7 +15,7 @@ Setting up a Custom Skill is a multi-step process. ## Prerequisites -To set up a Custom App using OAuth 2.0 authentication, you will need to ensure +To set up a Platform App using OAuth 2.0 authentication, you will need to ensure you have access the [Developer Console][devconsole] from your Box enterprise account. Alternatively, you may sign up for a [developer account][devaccount]. @@ -39,7 +39,7 @@ will appear to prompt the next step. ### 3. Provide a name -Finally, select a unique name for your application and click **Create App**. +Finally, select a unique name for your application and click **Create Platform App**. diff --git a/content/guides/sso-identities-and-app-users/connect-okta-to-app-users/3-configure-box.md b/content/guides/sso-identities-and-app-users/connect-okta-to-app-users/3-configure-box.md index caf7fa805..583b59548 100644 --- a/content/guides/sso-identities-and-app-users/connect-okta-to-app-users/3-configure-box.md +++ b/content/guides/sso-identities-and-app-users/connect-okta-to-app-users/3-configure-box.md @@ -33,12 +33,12 @@ create users that are associated with the Okta user account. the following steps. 1. Go to the [Developer Console][devconsole] - 2. Select **Create New App** - 3. Select **Custom App** as the type of application to create, and click **Next** + 2. Select **Create Platform App** + 3. Select **Platform App** as the type of application to create, and click **Next** 4. Select **OAuth 2.0 with JWT** as the authentication method, and click **Next** 5. Give your Box app a unique name and click **Create App** 6. Go to the app's configuration by clicking **View Your App**. - 7. Scroll to the **Application Scopes** section of the same screen and ensure that at least the following scopes are enabled: + 7. Scroll to the **Required Access Scopes** section of the same screen and ensure that at least the following scopes are enabled: * Read and write all files and folders stored in Box * Manage Users 8. Under **Advanced Features** ensure that both options are enabled to perform actions as users and generate user access tokens. diff --git a/content/guides/sso-identities-and-app-users/connect-okta-to-app-users/5-find-or-create-box-users.md b/content/guides/sso-identities-and-app-users/connect-okta-to-app-users/5-find-or-create-box-users.md index 98e354ec2..aa58d5207 100644 --- a/content/guides/sso-identities-and-app-users/connect-okta-to-app-users/5-find-or-create-box-users.md +++ b/content/guides/sso-identities-and-app-users/connect-okta-to-app-users/5-find-or-create-box-users.md @@ -15,7 +15,7 @@ This section will cover the final Box components: * Creating a new app user for the associated Okta record if they don't. * Fetching tokens for the Box user to make user-specific API calls. -## Create New App Users +## Create Platform App Users Before validating users we need a method for creating an associated Box user account if one doesn't already exist for the Okta user. diff --git a/content/guides/tooling/salesforce-toolkit/flow-actions.md b/content/guides/tooling/salesforce-toolkit/flow-actions.md index 4f919587c..7c6c9d87a 100644 --- a/content/guides/tooling/salesforce-toolkit/flow-actions.md +++ b/content/guides/tooling/salesforce-toolkit/flow-actions.md @@ -37,7 +37,7 @@ The list below contains all methods that can be invoked in - Delete Collaboration (`deleteCollaboration`) - Delete Metadata Cascade Policy (`deleteMetadataCascadePolicyById`) - Edit Collaboration (`editCollaboration`) -- Enable App Activity (`enableAppActivity`) +- Enable Integration Activity (`enableAppActivity`) - Get Box Metadata by Folder Id (`getBoxMetadataByFolderId`) - Get Folder Associations By Salesforce Record ID (`getFolderAssociationsByRecordId`) - Get Folder ID By Record ID (`getFolderIdByRecordId`) diff --git a/content/guides/webhooks/v1/create-v1.md b/content/guides/webhooks/v1/create-v1.md index d7eebcc2a..10f5a5d07 100644 --- a/content/guides/webhooks/v1/create-v1.md +++ b/content/guides/webhooks/v1/create-v1.md @@ -44,7 +44,7 @@ to begin use. To obtain the URL to add the app, follow the directions below for OAuth 2.0 authentication apps: -1. Navigate to the **App Center** tab for the application in the [Developer Console][devconsole]. +1. Navigate to the **Integrations** tab for the application in the [Developer Console][devconsole]. 2. Click **Submit My App**. Do not worry, you will not be completing the submission process! 3. At the bottom of the page, click **Preview**. 4. Click **Add** diff --git a/content/guides/webhooks/v2/create-v2.md b/content/guides/webhooks/v2/create-v2.md index 767046af6..5a6847325 100644 --- a/content/guides/webhooks/v2/create-v2.md +++ b/content/guides/webhooks/v2/create-v2.md @@ -24,7 +24,7 @@ created in the [Developer Console][console] and with API. V2 webhooks can be created only when the scope **Manage Webhooks** is selected and the application is authorized. See more about - [application scopes][1] and [authorization][2]. + [Required Access Scopes][1] and [authorization][2]. To create a webhook follow the steps below. diff --git a/content/microcopy/ai_dev_zone.yml b/content/microcopy/ai_dev_zone.yml index 0ad5e364a..53988ea59 100644 --- a/content/microcopy/ai_dev_zone.yml +++ b/content/microcopy/ai_dev_zone.yml @@ -81,7 +81,7 @@ side_panel: summary: title: Document summary cta: Learn more - url: /guides/box-ai/ask-questions/ + url: /guides/box-ai/ai-tutorials/ask-questions/ metadata: title: Structured metadata extraction cta: Learn more @@ -93,7 +93,7 @@ side_panel: qa: title: Document Q&A cta: Learn more - url: /guides/box-ai/generate-text/ + url: /guides/box-ai/ai-tutorials/generate-text/ tab_demo: Demo tab_sample_code: Sample code filtersError: Select the tone of voice and length to generate diff --git a/content/microcopy/headers.yml b/content/microcopy/headers.yml index c10bb8bbb..24eef2230 100644 --- a/content/microcopy/headers.yml +++ b/content/microcopy/headers.yml @@ -120,7 +120,7 @@ primary: console: // text: The text for the link to the developer console - text: My Apps + text: My Platform Apps // url: The URL to the developer console url: https://cloud.app.box.com/developers/console @@ -170,11 +170,11 @@ primary: text: Event title: - text: BoxWorks + text: Box Developer Day Toronto details: text: |- - Join BoxWorks 2024 to discover what's possible with content and AI! + Join the upcoming Box Platform Developer Day in Toronto on November 20! cta: text: |- diff --git a/content/pages/platform/application-types.md b/content/pages/platform/application-types.md index ec9599798..d9890100d 100644 --- a/content/pages/platform/application-types.md +++ b/content/pages/platform/application-types.md @@ -18,7 +18,7 @@ provides customizable UI Elements for tasks like browsing, searching, and previewing content. These apps support OAuth 2.0, JWT, and Client Credentials Grant for authentication. Custom Apps are ideal for applications that need to access both their own and others' files, upload and download files, and -potentially be listed in the Box App Center. +potentially be listed in the Box Integrations. ## Limited Access App @@ -47,21 +47,21 @@ handling authentication. seamlessly with the Box user experience. They enable users to edit, share, or modify content stored in Box using a third-party application. Such integrations can -add new features to Box users and be added to Recommended Apps in Box Preview, +add new features to Box users and be added to Recommended Web Integrations in Box Preview, enhancing the user experience by integrating with various content types and file extensions. -## App Center Publication +## Integrations Publication -The [Box App Center][app_center] is a platform for Box users to discover +The [Box Integrations][integrations] is a platform for Box users to discover applications that can be used in conjunction with Box. For developers, listing their application -in the App Center is an effective way to reach new users, particularly for -applications suited for use by other enterprises. The process for App Center +in the Integrations is an effective way to reach new users, particularly for +applications suited for use by other enterprises. The process for Integrations publication involves ensuring the app is production-ready, leverages OAuth 2.0 authentication, and submitting it for approval through the Developer Console. Once approved, applications can be featured, most popular, or recently added -sections in the App Center, and they can also be unpublished if necessary. +sections in the Integrations, and they can also be unpublished if necessary. Next step @@ -71,4 +71,4 @@ sections in the App Center, and they can also be unpublished if necessary. [limited_app]: g://applications/app-types/limited-access-apps/ [skills]: g://applications/app-types/custom-skills/ [web_app]: g://applications/web-app-integrations/ -[app_center]: g://applications/app-center/ \ No newline at end of file +[integrations]: g://applications/integrations/ \ No newline at end of file diff --git a/content/pages/platform/box-glossary.md b/content/pages/platform/box-glossary.md index c36b046e6..4f318266b 100644 --- a/content/pages/platform/box-glossary.md +++ b/content/pages/platform/box-glossary.md @@ -17,7 +17,7 @@ to find out what a term means, this is your one stop page. | Anonymous User | | A user that is not logged in. | | App user | | Box [app user][app user] is a specific type of user within the Box Platform who is associated with applications or services that integrate with Box. App users are only accessible with the API, meaning they do not have login credentials. They can be created by a service account and are only applicable to applications leveraging server to server authentication. App users are tied to the application used to create them, and the user itself cannot be moved under another application. They can however collaborate on content outside of the application. | | Bookmark / web link | Symbolic link, Symlink, soft link, reference, relationship | A clickable reference that allows you to easily access external websites or specific locations within your content structure. | -| Box App Center | App Store | The first place for Box users to find out about applications that they can use in combination with Box. | +| Box Integrations | App Store | The first place for Box users to find out about applications that they can use in combination with Box. | | Box Command Line Interface | [Box CLI][CLI] | A user-friendly command line tool that allows both technical and non-technical users to leverage the Box API to perform routine or bulk actions. | | Box Custom Skill | Custom Skill, Box Skill | An application that performs custom processing for files uploaded to Box. Skills are designed to make it possible to use third-party machine learning services to automatically extract information from files uploaded to Box. | | [Box Embed][embed] | | An HTML-based framework that makes it possible to embed the Box Web App experience anywhere in the 3rd party applications. Box Embed provides the ability to upload, search, comment, share, tag, and edit files using Box Edit. | diff --git a/content/pages/platform/box-platform-101.md b/content/pages/platform/box-platform-101.md index a7b244d25..ab0f94dc4 100644 --- a/content/pages/platform/box-platform-101.md +++ b/content/pages/platform/box-platform-101.md @@ -97,8 +97,8 @@ web app, they should be able to access it using the API. ### Application Type There are three main types of applications that can be created in the developer -console. They include custom app, limited access app, and custom skills. You can -also create third party and web app integrations. +console. They include platform app, limited access app, and custom skills. You +can also create third party and web app integrations. ![Application Types](images/app_type.png)