Input: {"body":{"messages":[{"content":"You need to tag the input with the following labels based on the question asked:\nABSOLUTELY_NOT: You are absolutely sure that the answer is \"NO\" to the question.\nPROBABLY_NOT: You are leaning towards \"NO\" to the question.\nAMBIGUOUS: You are unsure about the answer to the question.\nPROBABLY_YES: You are leaning towards \"YES\" to the question.\nABSOLUTELY_YES: You are absolutely sure that the answer is \"YES\" to the question.\n\nYou need to return a mapping of the labels, an explanation and the answer for each label following the format below:\n```\n■is_about_animals:【explanation (where \"explanation\" is answering the question \"is the text about animals?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_lua_code:【explanation (where \"explanation\" is answering the question \"does the text contain Lua code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_python_code:【explanation (where \"explanation\" is answering the question \"does the text contain Python code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_js_code:【explanation (where \"explanation\" is answering the question \"does the text contain JavaScript code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_botpress:【explanation (where \"explanation\" is answering the question \"is the text about Botpress?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_rasa:【explanation (where \"explanation\" is answering the question \"is the text about Rasa?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_flows:【explanation (where \"explanation\" is answering the question \"does the text mention flows?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_api:【explanation (where \"explanation\" is answering the question \"does the text mention the Botpress API?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_enterprise:【explanation (where \"explanation\" is answering the question \"does the text mention Botpress Enterprise?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_workspaces:【explanation (where \"explanation\" is answering the question \"does the text mention workspaces?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_webchat:【explanation (where \"explanation\" is answering the question \"does the text mention the Webchat?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_hitl:【explanation (where \"explanation\" is answering the question \"does the text mention HITL (human in the loop)?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n■END■\n```\n\nundefined\n\n===\nYou should consider the Expert Examples below to help you make your decision.\nIn your \"Analysis\", please refer to the Expert Examples # to justify your decision.","role":"system"},{"content":"Input to tag:\n<|start_input|>\n conditions of either clause.\n`{ \"$or\": [{ \"price\": { \"$eq\": 1.99 } }, { \"price\": { \"$exists\": false } }] }\n`\n* `$not`: Inverts the effect of a query expression and returns documents that do not match the query expression.\n`{ \"$not\": { \"price\": { \"$eq\": 1.99 } } }\n`\nPlease note that these filters and operators can be used together to create complex queries to exactly fit your needs. You can also nest filters like so :\nJavaScript\n`{\n\"$and\": [\n{ \"price\": { \"$lte\": 19.99 }},\n{ \"$or\":  [\n{\"category\": { \"$eq\": \"Shoes\" }},\n{\"category\": { \"$eq\": \"Hats\"}}\n]\n}\n]\n}\n`\nUsing AI to generate filters\n[](#using-ai-to-generate-filters)\nThankfully, Botpress comes with artificial intelligence (AI) capabilities when it comes to filtering records. This means you can provide a human-like query, and the AI will intelligently decipher it and create the right filters for your query.\nThis can significantly simplify the construction of complex queries and reduce the likelihood of human errors in the process.\nJavaScript\n`` const leads = await LeadsTable.findRecords({\nfilter: AI`works either at ${workflow.company} OR is not in IT`,\nlimit: 10,\noffset: 0,\n})\n``\nThe query is written inside the backticks (\\`) that come after \\`filter: AI\\`. The AI expects a query string, and that's why backticks are used.\nRe-using filters (selectors)\n[](#re-using-filters-selectors)\nSelectors are filters that you can re-use. They don't have to be written again and again.\nFor example, you might use the query selector \"People with age greater than 18\" to find all users who are above 18.\n1. Create a query selector in the table and give it a name. (e.g. adults)\n2. Add query as `People with age greater than 18`\n3. use below code to find records and save it in a variable called `adults`\nJavaScript\n`// Find records in the table\nconst data = await Data1Table.findRecords({ selectorName: 'adults' })\nworkflow.adults = data\n`\nDifference between search and AI filters\n[](#difference-between-search-and-ai-filters)\nA standard `Search` in Botpress is employed to identify specific strings like a user's name. It gives precision-based results by matching specific sets of characters.\nOn the other hand, an `AI Filter` broadens the scope and is used primarily for filtering results rather than explicitly searching them. It helps you track down users based on certain criteria, such as age above 25.\nAlthough the AI Filter is not primarily designed for exact string hunting, it's flexible enough to allow it. For instance, you could use it to filter results for `Canada` as a country.\ngetRecord\n[](#getrecord)\nYou can use the `getRecord` function to retrieve a specific record from a table based on a unique identifier. For example, you might use the `getRecord` function to retrieve a user's profile information based on their unique user ID.\nJavascript\n`// 1 is the record ID and User is the variable name\nworkflow.User = data\n`\nupdateRecord\n[](#updaterecord)\nYou can use the `updateRecord` function to modify a specific record in a table. This will be useful when you need to update a specific field in the record. For example, you might use this function to update a user's profile information or to update the status of a transaction.\nJavaScript\n`// Update at record ID 8's Age to 45\nawait Data1Table.updateRecord(8, { Age: 45 })\n`\nupsertRecords\n[](#upsertrecords)\nThe `upsertRecords` function allows you to update or create records in a table in a single operation. It is useful for any situation where you need to update or insert data into a table without having to worry about whether the rows already exist.\n**Example:**\nJavaScript\n`// Update the name and address of the records with IDs 1 and 2.\nawait CustomersTable.upsertRecords('id', [\n{ id: 1, name: 'John Doe', address: '123 Main Street' },\n{ id: 2, name: 'Jane Doe', address: '456 Elm Street' },\n])\n`\nThis code will upsert the records into the CustomersTable. If the records with IDs 1 and 2 already exist in the table, the function will update the existing rows with the new name and address values. If the records with IDs 1 and 2 don't already exist in the table, the function will insert new rows into the table with the new name and address values.\nComputed Columns\n[](#computed-columns)\nColumns can be marked as \"Computed\" which allows the bot builder to observe changes in tables and generate computed values. This includes leveraging AI, as well as running code. This can be useful for a wide variety of use cases such as CRM enrichment, sentiment analysis, classification.\nTo use computed columns, simply create a column and toggle the **Computed** field as shown below.\n![](https://files.readme.io/9e0fcf39902935effd54aada7fbd08541413a97524fd4bfddbfba14767682abc-image.png)\nSelecting the basis of computation\n[](#selecting-the-basis-of-computation)\nTo compute columns, you must select what information you will base your computed columns on. To do so, click the **Dependencies** field and select all column names that you will use.\n![](https://files.readme.io/d12ec2ef7bca25fcf93d352f21a6c04367cdcc698e94c1ef075e312a7d44b250-image.png)\nIn the above example, we selected a column called **number**.\nAI-based computed columns\n[](#ai-based-computed-columns)\nYou can perform AI text generation tasks by filling the prompt and including rows like this {{propertyName}}.\n`Come up with the title for a story like the three little pigs for the number {{number}}\n`\nIn the above example, for the number 3, you might get \"The Three Clever Squirrels\" as a value in the cell.\nCode-based computed columns\n[](#code-based-computed-columns)\nTo run arbitrary code, select the **Execute code** tab. Then, click **Edit Code**.\n![](https://files.readme.io/b242c110986b59376f21e75c4599101299641fd90e353e75a1e6bff1b1e06681-image.png)\nYou will see a window with a code editor.\n![](https://files.readme.io/24d2a3f6ef6fed42ddce8db549e1f5c59c9f74a18659f9cc59b3e4473ce2384c-image.png)\nSimply add your code above. The proper syntax for accessing columns you've identified as dependencies is row\\[propertyName\\], and what is displayed as the cell value is what is returned by this function. You can call asynchronous functions within the function, and have the **axios** library available to perform HTTP requests.\nFor instance, the following code will return the fibonacci number of the row value for the column **number**.\njs\n`function fibonacci(n) {\nif (n <= 1) {\nreturn n\n}\nreturn fibonacci(n - 1) + fibonacci(n - 2)\n}\nif (!row.number) {\nreturn 0;\n}\nreturn fibonacci(row.number)\n`\nThere is currently an execution timeout of 2 minutes these.\nUpdating computed values\n[](#updating-computed-values)\nTo ensure computed values are always kept up to date, we recommend **Auto-compute** be toggled on.\n![](https://files.readme.io/9706d5aa10d2d152d1292bc92b1ef9c2c46a8ba6083b71290da5d8cacf487ec7-image.png)\nIf you do not have **Auto-compute** enabled, a grey icon will appear next to stale table cells.\n![](https://files.readme.io/916133b27eee9a61ee3ffda42e0cc26cb14e193706e12c36e078d6b4e800fff1-image.png)\nTo update the stale data, simply re-activate **Auto-compute**.\nImporting and Exporting\n[](#importing-and-exporting)\nImport a Table\n[](#import-a-table)\nYou can import a table from a CSV file. Click on the `Import Table` button above the table and select the CSV file you want to import. Botpress will automatically detect the column names and types from the CSV file and create the table structure for you.\nExport a Table\n[](#export-a-table)\nClick on the `Export Table` button to export the table. This will download the table as a CSV file to your computer.\n> ## ���\n>\n> Reminder\n>\n> Don't edit the CSV file directly to avoid data loss and import errors. Instead, make the changes in Botpress Studio and then export the updated table again.\n> ## ���\n>\n> Note\n>\n> When you export a bot the tables are exported as well so there is no need to export them separately unless you want to use them in another bot.\nUpdated 26 days ago\n---\n* [Table of Contents](#)\n* * [Creating a Table](#creating-a-table)  \n         * [Making Fields Searchable](#making-fields-searchable)  \n   * [Types of Fields (Columns)](#types-of-fields-columns)  \n   * [Filtering Records](#filtering-records)  \n         * [Logical Operators](#logical-operators)  \n         * [Types of Rules](#types-of-rules)  \n         * [Rule Groups](#rule-groups)  \n         * [Creating a Filter](#creating-a-filter)  \n         * [Manually Editing Filters](#manually-editing-filters)  \n   * [Operations on Tables - via the Interface](#operations-on-tables---via-the-interface)  \n         * [Add records to a table](#add-records-to-a-table)  \n         * [Update records in a table](#update-records-in-a-table)  \n         * [Delete records from a table](#delete-records-from-a-table)  \n   * [Operations on Tables - via Cards](#operations-on-tables---via-cards)  \n   * [Operations on Tables - via Botpress Client](#operations-on-tables---via-botpress-client)  \n         * [listTables](#listtables)  \n         * [Create Table Rows](#create-table-rows)  \n         * [Find & Filter Table Rows](#find--filter-table-rows)  \n         * [Projection & Aggregation](#projection--aggregation)  \n         * [Update Table Rows](#update-table-rows)  \n         * [Delete Table Rows](#delete-table-rows)  \n         * [Upsert Table Rows](#upsert-table-rows)  \n         * [Create Table](#create-table)  \n         * [Update Table](#update-table)  \n         * [Get Table](#get-table)  \n         * [Delet\n* [Update Table](#update-table)  \n         * [Get Table](#get-table)  \n         * [Delete Table](#delete-table)  \n   * [Operations on Tables - via Code](#operations-on-tables---via-code)  \n         * [createRecord](#createrecord)  \n         * [createRecords](#createrecords)  \n         * [deleteRecord](#deleterecord)  \n         * [deleteRecords](#deleterecords)  \n         * [findRecords](#findrecords)  \n         * [getRecord](#getrecord)  \n         * [updateRecord](#updaterecord)  \n         * [upsertRecords](#upsertrecords)  \n   * [Computed Columns](#computed-columns)  \n         * [Selecting the basis of computation](#selecting-the-basis-of-computation)  \n         * [AI-based computed columns](#ai-based-computed-columns)  \n         * [Code-based computed columns](#code-based-computed-columns)  \n         * [Updating computed values](#updating-computed-values)  \n   * [Importing and Exporting](#importing-and-exporting)  \n         * [Import a Table](#import-a-table)  \n         * [Export a Table](#export-a-table)[Jump to Content](#content)\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\n---\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\nGuides\nMoon (Dark Mode)Sun (Light Mode)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\nStudio Preferences\nSearch\n## Home\n* [Botpress Documentation](/docs/home)\n## Getting Started\n* [Build](/docs/build)\n* [Deploy](/docs/deploy)\n* [Monitor](/docs/monitor)\n## DASHBOARD\n* [Workspace](/docs/workspace)  \n   * [Home](/docs/home-1)  \n   * [Members](/docs/members)  \n   * [Audits](/docs/audits)  \n   * [Your integrations](/docs/your-integrations)  \n   * [Usage](/docs/usage-2)  \n   * [Settings](/docs/settings)  \n   * [Profile Setting](/docs/user-profile)\n* [Bot](/docs/bot)  \n   * [Overview](/docs/overview-1)  \n   * [Integrations](/docs/integrations-1)  \n   * [Webchat](/docs/webchat-1)  \n   * [Logs](/docs/logs)  \n   * [Conversations](/docs/conversations)  \n   * [Analytics](/docs/analytics-1)  \n   * [Events](/docs/events-2)  \n   * [Issues](/docs/issues)  \n   * [Configuration variables](/docs/configuration-variables-1)\n## STUDIO\n* [Interface](/docs/interface)  \n   * [Nodes](/docs/nodes)  \n   * [Home](/docs/home-2)  \n   * [Flows](/docs/studio-interface-flows)  \n   * [Knowledge Base](/docs/knowledge-base)  \n   * [Tables](/docs/tables)  \n   * [Agents](/docs/agents)  \n         * [Summary Agent](/docs/summary-agent)  \n         * [Personality Agent](/docs/personality-agent)  \n         * [Policy Agent](/docs/policy-agent)  \n         * [Translator Agent](/docs/translator-agent)  \n         * [Knowledge Agent](/docs/knowledge-agent)  \n         * [HITL Agent](/docs/hitl-agent)  \n         * [Vision Agent](/docs/vision-agent)  \n         * [Analytics Agent](/docs/analytics-agent)  \n   * [Library](/docs/library)  \n   * [Hooks](/docs/hooks)  \n   * [Integrations](/docs/integrations-3)  \n   * [Schemas](/docs/schemas)  \n   * [Card Hub](/docs/card-hub)  \n   * [Versions](/docs/versions-1)  \n   * [Chatbot Settings](/docs/chatbot-settings-1)  \n   * [Find](/docs/find)  \n   * [Variables](/docs/variables)  \n   * [Card Tray](/docs/card-tray)  \n   * [Debugger, Logs & JSON](/docs/debugger-logs-json)  \n   * [Emulator](/docs/emulator)  \n   * [Keyboard Shortcuts](/docs/keyboard-shortcuts)  \n   * [Commands](/docs/studio-commands)  \n   * [Studio Preferences](/docs/studio-preferences)  \n   * [Import & Export](/docs/import-export-bots)\n* [Cards](/docs/cards)  \n   * [Send Messages](/docs/send-messages)  \n   * [Execute](/docs/execute)  \n   * [Webchat](/docs/webchat-2)  \n   * [Flow Logic](/docs/flow-logic)  \n   * [AI](/docs/ai)  \n        \n* [Webchat](/docs/webchat-2)  \n   * [Flow Logic](/docs/flow-logic)  \n   * [AI](/docs/ai)  \n         * [AI Task](/docs/ai-task-1)  \n         * [AI Transition](/docs/ai-transition)  \n         * [AI Generate Text](/docs/ai-generate-text)  \n   * [Capture Information](/docs/capture-information)  \n   * [Events](/docs/events-3)  \n   * [Agents](/docs/agents-2)  \n   * [Utilities](/docs/utilities)\n## integrations\n* [Usage](/docs/using-integrations)  \n   * [Asana](/docs/asana-integration)  \n   * [HITL](/docs/hitl-1)  \n   * [Instagram](/docs/instagram)  \n   * [Intercom](/docs/intercom)  \n   * [Line](/docs/line)  \n   * [Messenger](/docs/messenger)  \n   * [Microsoft Teams](/docs/microsoft-teams)  \n   * [Notion](/docs/notion)  \n   * [Slack](/docs/slack)  \n   * [Sunshine Conversations](/docs/sunshine-conversations)  \n   * [Telegram](/docs/telegram)  \n   * [Trello](/docs/trello)  \n   * [Twilio](/docs/twilio)  \n   * [Viber](/docs/viber)  \n   * [Vonage](/docs/vonage)  \n   * [Webhook](/docs/webhook)  \n   * [WhatsApp](/docs/whatsapp)  \n         * [Manual Configuration](/docs/manual-configuration)  \n   * [Zapier](/docs/zapier)  \n   * [Zendesk](/docs/zendesk)\n* [Building](/docs/building-integrations)  \n   * [Getting Started](/docs/getting-started-1)  \n         * [Getting Started](/docs/getting-started-1)  \n         * [Adding Messaging Channel Capabilities](/docs/adding-messaging-channel-capabilities)  \n         * [Adding Actions & Triggers to Botpress Studio](/docs/adding-actions-triggers-to-botpress-studio)  \n         * [Publish your integration on Botpress Hub](/docs/publish-your-integration-on-botpress-hub)  \n   * [Use Your Own LLM](/docs/llm-interfaces)  \n   * [Connect a live agent platform with Botpress](/docs/hitl)  \n   * [Moving Parts](/docs/moving-parts)  \n   * [CLI](/docs/cli)  \n   * [SDK](/docs/sdk)  \n   * [Key Concepts](/docs/key-concepts)  \n         * [Architecture](/docs/architecture)\n/docs/sdk)  \n   * [Key Concepts](/docs/key-concepts)  \n         * [Architecture](/docs/architecture)  \n         * [Tags](/docs/tags)  \n         * [Channels](/docs/channels)  \n         * [Configuration](/docs/configuration)  \n         * [User](/docs/user)  \n         * [Conversations](/docs/conversations-1)  \n         * [Messages](/docs/messages)  \n         * [Event](/docs/event)  \n         * [States](/docs/states-1)  \n         * [Actions](/docs/actions)  \n         * [Definitions](/docs/definitions)  \n         * [Secrets](/docs/secrets)  \n         * [ZUI - Zod schema UI components in Botpress \\[BETA\\]](/docs/zui-zod-schema-ui-components-in-botpress)  \n   * [How to](/docs/states)  \n         * [States](/docs/states)  \n         * [Register & Unregister](/docs/register-unregister)  \n         * [Integrations Actions](/docs/integrations)  \n         * [Integration Events](/docs/integration-events)  \n         * [Handler](/docs/handler)  \n         * [Logging](/docs/logging)  \n         * [Building a Custom Integration](/docs/building-a-custom-integration)\n## Webchat\n* [Webchat](/docs/webchat)  \n   * [Webflow](/docs/webflow)  \n   * [Wix](/docs/wix)  \n   * [Wordpress](/docs/wordpress)\n* [Webchat v1 (deprecated)](/docs/web-chat-v1old)  \n   * [Controlling Web Chat using JavaScript](/docs/controlling-web-chat-using-javascript)  \n   * [Styling your webchat](/docs/chatbot-button)  \n         * [Chatbot Button](/docs/chatbot-button)  \n         * [Chat Header](/docs/chat-header)  \n         * [User Input Area](/docs/user-input-area)  \n         * [Show Bot Info](/docs/show-bot-info)  \n   * [Embedding Webchat](/docs/react-app)  \n         * [React App](/docs/react-app)  \n         * [React Native App](/docs/react-native-app)  \n         * [Web Chat Iframe](/docs/web-chat-iframe)  \n         * [Full Screen Chatbot](/docs/full-screen-chatbot)\n* [Webchat v2](/docs/embedded-webchat)  \n   * [Embedded Webchat](/docs/embedded-webchat)  \n         * [Custom CSS Reference](/docs/custom-css-reference)  \n   * [React Components](/docs/react-js)  \n   * [Webchat Client](/docs/webchat-client)\n## Botpress APIs\n* [Files API](/docs/files-api)\n* [Chat API](/docs/chat-api)\n## Appendix\n* [Safety](/docs/safety)  \n   * [Preventing Abuse](/docs/preventing-abuse)  \n   * [Brand Safety Framework](/docs/brand-safety-framework)\n* [Exporting Data](/docs/exporting-data)  \n   * [Raw Conversations](/docs/exporting-raw-conversations-with-the-botpress-api)  \n   * [Conversation History](/docs/getting-the-conversation-history-from-within-your-bot)  \n   * [Streaming Analytics](/docs/streaming-analytics-from-within-your-bot-with-hooks)  \n   * [Compiled Bot Analytics](/docs/exporting-compiled-bot-analytics-with-the-botpress-api)\nPowered by\n# Studio Preferences\n[ Suggest Edits](/edit/studio-preferences)\n![](https://files.readme.io/998d475-image.png)\nWorkflow - Snap to Grid\n[](#workflow---snap-to-grid)\nThe Snap to Grid feature in Botpress allows you to align nodes and connectors on the grid(flow-editor/canvas), making it easier to organize and visualize the flow of your chatbot.\nEnabled\n[](#enabled)\nTo enable Snap to Grid, follow these steps:\n1. Open the Botpress Studio and navigate to the Botpress Icon (top-left)\n2. Go to **Studio Preferences** \\-> Check the box -> **Workflow - Snap to Grid**.\nOnce Snap to Grid is enabled, the nodes and connectors will automatically align to the nearest grid lines when they are moved.\nNote that the Snap to Grid feature is optional and can be disabled at any time by unchecking the **Snap to Grid** box in the settings menu.\nDisabled\n[](#disabled)\nWhen the **Snap to Grid** feature is turned off, the workflow editor allows for more free-form movement of nodes and connections. Nodes and connections can be dragged and placed anywhere on the canvas, without being automatically aligned to the grid.\nThis can be useful for creating more complex and visually dynamic workflows that don't conform to a strict grid layout.\nHowever, it can also make it more difficult to align nodes and connections precisely, which may be necessary for ensuring the logical flow of the conversation.\nStudio Theme\n[](#studio-theme)\nThe Studio Theme feature allows you to change the color scheme of the Botpress Studio interface. This can be useful for customizing the look and feel of your chatbot, or for making it easier to distinguish between different bots in your workspace.\nAvailable themes include:\n1. System (default)\n2. Light\n3. Dark\nUpdated 4 months ago\n---\n* [Table of Contents](#)\n* * [Workflow - Snap to Grid](#workflow---snap-to-grid)  \n         * [Enabled](#enabled)  \n         * [Disabled](#disabled)  \n   * [Studio Theme](#studio-theme)[Jump to Content](#content)\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\n---\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\nGuides\nMoon (Dark Mode)Sun (Light Mode)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\nStreaming Analytics\nSearch\n## Home\n* [Botpress Documentation](/docs/home)\n## Getting Started\n* [Build](/docs/build)\n* [Deploy](/docs/deploy)\n* [Monitor](/docs/monitor)\n## DASHBOARD\n* [Workspace](/docs/workspace)  \n   * [Home](/docs/home-1)  \n   * [Members](/docs/members)  \n   * [Audits](/docs/audits)  \n   * [Your integrations](/docs/your-integrations)  \n   * [Usage](/docs/usage-2)  \n   * [Settings](/docs/settings)  \n   * [Profile Setting](/docs/user-profile)\n* [Bot](/docs/bot)  \n   * [Overview](/docs/overview-1)  \n   * [Integrations](/docs/integrations-1)  \n   * [Webchat](/docs/webchat-1)  \n   * [Logs](/docs/logs)  \n   * [Conversations](/docs/conversations)  \n   * [Analytics](/docs/analytics-1)  \n   * [Events](/docs/events-2)  \n   * [Issues](/docs/issues)  \n   * [Configuration variables](/docs/configuration-variables-1)\n## STUDIO\n* [Interface](/docs/interface)  \n   * [Nodes](/docs/nodes)  \n   * [Home](/docs/home-2)  \n   * [Flows](/docs/studio-interface-flows)  \n   * [Knowledge Base](/docs/knowledge-base)  \n   * [Tables](/docs/tables)  \n   * [Agents](/docs/agents)  \n         * [Summary Agent](/docs/summary-agent)  \n         * [Personality Agent](/docs/personality-agent)  \n         * [Policy Agent](/docs/policy-agent)  \n         * [Translator Agent](/docs/translator-agent)  \n         * [Knowledge Agent](/docs/knowledge-agent)  \n         * [HITL Agent](/docs/hitl-agent)  \n         * [Vision Agent](/docs/vision-agent)  \n         * [Analytics Agent](/docs/analytics-agent)  \n   * [Library](/docs/library)  \n   * [Hooks](/docs/hooks)  \n   * [Integrations](/docs/integrations-3)  \n   * [Schemas](/docs/schemas)  \n   * [Card Hub](/docs/card-hub)  \n   * [Versions](/docs/versions-1)  \n   * [Chatbot Settings](/docs/chatbot-settings-1)  \n   * [Find](/docs/find)  \n   * [Variables](/docs/variables)  \n   * [Card Tray](/docs/card-tray)  \n   * [Debugger, Logs & JSON](/docs/debugger-logs-json)  \n   * [Emulator](/docs/emulator)  \n   * [Keyboard Shortcuts](/docs/keyboard-shortcuts)  \n   * [Commands](/docs/studio-commands)  \n   * [Studio Preferences](/docs/studio-preferences)  \n   * [Import & Export](/docs/import-export-bots)\n* [Cards](/docs/cards)  \n   * [Send Messages](/docs/send-messages)  \n   * [Execute](/docs/execute)  \n   * [Webchat](/docs/webchat-2)  \n   * [Flow Logic](/docs/flow-logic)  \n   * [AI](/docs/ai)  \n        \n* [Webchat](/docs/webchat-2)  \n   * [Flow Logic](/docs/flow-logic)  \n   * [AI](/docs/ai)  \n         * [AI Task](/docs/ai-task-1)  \n         * [AI Transition](/docs/ai-transition)  \n         * [AI Generate Text](/docs/ai-generate-text)  \n   * [Capture Information](/docs/capture-information)  \n   * [Events](/docs/events-3)  \n   * [Agents](/docs/agents-2)  \n   * [Utilities](/docs/utilities)\n## integrations\n* [Usage](/docs/using-integrations)  \n   * [Asana](/docs/asana-integration)  \n   * [HITL](/docs/hitl-1)  \n   * [Instagram](/docs/instagram)  \n   * [Intercom](/docs/intercom)  \n   * [Line](/docs/line)  \n   * [Messenger](/docs/messenger)  \n   * [Microsoft Teams](/docs/microsoft-teams)  \n   * [Notion](/docs/notion)  \n   * [Slack](/docs/slack)  \n   * [Sunshine Conversations](/docs/sunshine-conversations)  \n   * [Telegram](/docs/telegram)  \n   * [Trello](/docs/trello)  \n   * [Twilio](/docs/twilio)  \n   * [Viber](/docs/viber)  \n   * [Vonage](/docs/vonage)  \n   * [Webhook](/docs/webhook)  \n   * [WhatsApp](/docs/whatsapp)  \n         * [Manual Configuration](/docs/manual-configuration)  \n   * [Zapier](/docs/zapier)  \n   * [Zendesk](/docs/zendesk)\n* [Building](/docs/building-integrations)  \n   * [Getting Started](/docs/getting-started-1)  \n         * [Getting Started](/docs/getting-started-1)  \n         * [Adding Messaging Channel Capabilities](/docs/adding-messaging-channel-capabilities)  \n         * [Adding Actions & Triggers to Botpress Studio](/docs/adding-actions-triggers-to-botpress-studio)  \n         * [Publish your integration on Botpress Hub](/docs/publish-your-integration-on-botpress-hub)  \n   * [Use Your Own LLM](/docs/llm-interfaces)  \n   * [Connect a live agent platform with Botpress](/docs/hitl)  \n   * [Moving Parts](/docs/moving-parts)  \n   * [CLI](/docs/cli)  \n   * [SDK](/docs/sdk)  \n   * [Key Concepts](/docs/key-concepts)  \n         * [Architecture](/docs/architecture)\n/docs/sdk)  \n   * [Key Concepts](/docs/key-concepts)  \n         * [Architecture](/docs/architecture)  \n         * [Tags](/docs/tags)  \n         * [Channels](/docs/channels)  \n         * [Configuration](/docs/configuration)  \n         * [User](/docs/user)  \n         * [Conversations](/docs/conversations-1)  \n         * [Messages](/docs/messages)  \n         * [Event](/docs/event)  \n         * [States](/docs/states-1)  \n         * [Actions](/docs/actions)  \n         * [Definitions](/docs/definitions)  \n         * [Secrets](/docs/secrets)  \n         * [ZUI - Zod schema UI components in Botpress \\[BETA\\]](/docs/zui-zod-schema-ui-components-in-botpress)  \n   * [How to](/docs/states)  \n         * [States](/docs/states)  \n         * [Register & Unregister](/docs/register-unregister)  \n         * [Integrations Actions](/docs/integrations)  \n\n<|end_input|>\n\nAnswer with this following format:\n```\n■is_about_animals:【explanation (where \"explanation\" is answering the question \"is the text about animals?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_lua_code:【explanation (where \"explanation\" is answering the question \"does the text contain Lua code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_python_code:【explanation (where \"explanation\" is answering the question \"does the text contain Python code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_js_code:【explanation (where \"explanation\" is answering the question \"does the text contain JavaScript code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_botpress:【explanation (where \"explanation\" is answering the question \"is the text about Botpress?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_rasa:【explanation (where \"explanation\" is answering the question \"is the text about Rasa?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_flows:【explanation (where \"explanation\" is answering the question \"does the text mention flows?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_api:【explanation (where \"explanation\" is answering the question \"does the text mention the Botpress API?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_enterprise:【explanation (where \"explanation\" is answering the question \"does the text mention Botpress Enterprise?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_workspaces:【explanation (where \"explanation\" is answering the question \"does the text mention workspaces?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_webchat:【explanation (where \"explanation\" is answering the question \"does the text mention the Webchat?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_hitl:【explanation (where \"explanation\" is answering the question \"does the text mention HITL (human in the loop)?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n■END■\n```\n\nFormat cheatsheet:\n```\n■label:【explanation】:x■\n```\n\nWhere `x` is one of the following: ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES\n\nRemember: In your `explanation`, please refer to the Expert Examples # (and quote them) that are relevant to ground your decision-making process.\nThe Expert Examples are there to help you make your decision. They have been provided by experts in the field and their answers (and reasoning) are considered the ground truth and should be used as a reference to make your decision when applicable.\nFor example, you can say: \"According to Expert Example #1, ...\"","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.label","promptSource":"zai:zai.label:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■is_about_animals:【The text discusses database filters, Botpress features, code examples, and UI navigation; there is no mention of animals or animal‑related topics.】:ABSOLUTELY_NOT■

■contains_lua_code:【All code snippets are explicitly labeled as JavaScript (or “js”) and use JavaScript syntax; no Lua syntax or Lua‑specific markers are present.】:ABSOLUTELY_NOT■

■contains_python_code:【The document contains only JavaScript snippets and no Python code blocks or Python‑style syntax.】:ABSOLUTELY_NOT■

■contains_js_code:【Multiple sections are labeled “JavaScript” and contain JavaScript code (e.g., `const data = await Data1Table.findRecords...`, a fibonacci function marked “js”).】:ABSOLUTELY_YES■

■is_botpress:【The entire passage is Botpress documentation – it repeatedly references Botpress, its Studio, tables, AI filters, and UI elements.】:ABSOLUTELY_YES■

■is_rasa:【There is no reference to Rasa anywhere in the text.】:ABSOLUTELY_NOT■

■has_flows:【The navigation tree includes an entry “Flows” and the UI section “Studio Interface – Flows” is listed, indicating that flows are mentioned.】:ABSOLUTELY_YES■

■has_api:【A heading “Botpress APIs” appears, and the text refers to API concepts such as “Botpress Client” and “Botpress API”.】:ABSOLUTELY_YES■

■has_enterprise:【The term “Enterprise” does not appear in the document.】:ABSOLUTELY_NOT■

■has_workspaces:【The dashboard navigation lists “Workspace” and describes workspace‑related pages, so workspaces are mentioned.】:ABSOLUTELY_YES■

■has_webchat:【Multiple sections discuss “Webchat”, including headings like “Webchat”, “Webchat v1 (deprecated)”, and “Webchat v2”.】:ABSOLUTELY_YES■

■has_hitl:【The text explicitly mentions “HITL” (Human in the Loop) in several places, such as the integrations list and the “HITL Agent” entry.】:ABSOLUTELY_YES■


Input: {"body":{"messages":[{"content":"You need to tag the input with the following labels based on the question asked:\nABSOLUTELY_NOT: You are absolutely sure that the answer is \"NO\" to the question.\nPROBABLY_NOT: You are leaning towards \"NO\" to the question.\nAMBIGUOUS: You are unsure about the answer to the question.\nPROBABLY_YES: You are leaning towards \"YES\" to the question.\nABSOLUTELY_YES: You are absolutely sure that the answer is \"YES\" to the question.\n\nYou need to return a mapping of the labels, an explanation and the answer for each label following the format below:\n```\n■is_about_animals:【explanation (where \"explanation\" is answering the question \"is the text about animals?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_lua_code:【explanation (where \"explanation\" is answering the question \"does the text contain Lua code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_python_code:【explanation (where \"explanation\" is answering the question \"does the text contain Python code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_js_code:【explanation (where \"explanation\" is answering the question \"does the text contain JavaScript code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_botpress:【explanation (where \"explanation\" is answering the question \"is the text about Botpress?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_rasa:【explanation (where \"explanation\" is answering the question \"is the text about Rasa?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_flows:【explanation (where \"explanation\" is answering the question \"does the text mention flows?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_api:【explanation (where \"explanation\" is answering the question \"does the text mention the Botpress API?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_enterprise:【explanation (where \"explanation\" is answering the question \"does the text mention Botpress Enterprise?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_workspaces:【explanation (where \"explanation\" is answering the question \"does the text mention workspaces?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_webchat:【explanation (where \"explanation\" is answering the question \"does the text mention the Webchat?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_hitl:【explanation (where \"explanation\" is answering the question \"does the text mention HITL (human in the loop)?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n■END■\n```\n\nundefined\n\n===\nYou should consider the Expert Examples below to help you make your decision.\nIn your \"Analysis\", please refer to the Expert Examples # to justify your decision.","role":"system"},{"content":"Input to tag:\n<|start_input|>\nbilling-manager)\nCan view and modify the Workspace's billing information.\nDeveloper\n[](#developer)\nCan create, view, and update bots in the Workspace. Can only delete bots they have created.\nManager\n[](#manager)\nCan create, view, and update bots in the Workspace. Can view audit records.\nAdministrator\n[](#administrator)\nCan add and remove Workspace collaborators, and manage all bots in the Workspace.\nOwner\n[](#owner)\nThe user who creates a Workspace is automatically its owner, and has the privileges of all roles.\n> ## ���\n>\n> Workspace ownership\n>\n> Workspace ownership cannot be moved or assigned to another user.\nUpdated about 1 month ago\n---\n* [Table of Contents](#)\n* * [Collaborator Roles](#collaborator-roles)  \n         * [Viewer](#viewer)  \n         * [Billing manager](#billing-manager)  \n         * [Developer](#developer)  \n         * [Manager](#manager)  \n         * [Administrator](#administrator)  \n         * [Owner](#owner)[Jump to Content](#content)\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\n---\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\nGuides\nMoon (Dark Mode)Sun (Light Mode)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\nKnowledge Base\nSearch\n## Home\n* [Botpress Documentation](/docs/home)\n## Getting Started\n* [Build](/docs/build)\n* [Deploy](/docs/deploy)\n* [Monitor](/docs/monitor)\n## DASHBOARD\n* [Workspace](/docs/workspace)  \n   * [Home](/docs/home-1)  \n   * [Members](/docs/members)  \n   * [Audits](/docs/audits)  \n   * [Your integrations](/docs/your-integrations)  \n   * [Usage](/docs/usage-2)  \n   * [Settings](/docs/settings)  \n   * [Profile Setting](/docs/user-profile)\n* [Bot](/docs/bot)  \n   * [Overview](/docs/overview-1)  \n   * [Integrations](/docs/integrations-1)  \n   * [Webchat](/docs/webchat-1)  \n   * [Logs](/docs/logs)  \n   * [Conversations](/docs/conversations)  \n   * [Analytics](/docs/analytics-1)  \n   * [Events](/docs/events-2)  \n   * [Issues](/docs/issues)  \n   * [Configuration variables](/docs/configuration-variables-1)\n## STUDIO\n* [Interface](/docs/interface)  \n   * [Nodes](/docs/nodes)  \n   * [Home](/docs/home-2)  \n   * [Flows](/docs/studio-interface-flows)  \n   * [Knowledge Base](/docs/knowledge-base)  \n   * [Tables](/docs/tables)  \n   * [Agents](/docs/agents)  \n         * [Summary Agent](/docs/summary-agent)  \n         * [Personality Agent](/docs/personality-agent)  \n         * [Policy Agent](/docs/policy-agent)  \n         * [Translator Agent](/docs/translator-agent)  \n         * [Knowledge Agent](/docs/knowledge-agent)  \n         * [HITL Agent](/docs/hitl-agent)  \n         * [Vision Agent](/docs/vision-agent)  \n         * [Analytics Agent](/docs/analytics-agent)  \n   * [Library](/docs/library)  \n   * [Hooks](/docs/hooks)  \n   * [Integrations](/docs/integrations-3)  \n   * [Schemas](/docs/schemas)  \n   * [Card Hub](/docs/card-hub)  \n   * [Versions](/docs/versions-1)  \n   * [Chatbot Settings](/docs/chatbot-settings-1)  \n   * [Find](/docs/find)  \n   * [Variables](/docs/variables)  \n   * [Card Tray](/docs/card-tray)  \n   * [Debugger, Logs & JSON](/docs/debugger-logs-json)  \n   * [Emulator](/docs/emulator)  \n   * [Keyboard Shortcuts](/docs/keyboard-shortcuts)  \n   * [Commands](/docs/studio-commands)  \n   * [Studio Preferences](/docs/studio-preferences)  \n   * [Import & Export](/docs/import-export-bots)\n* [Cards](/docs/cards)  \n   * [Send Messages](/docs/send-messages)  \n   * [Execute](/docs/execute)  \n   * [Webchat](/docs/webchat-2)  \n   * [Flow Logic](/docs/flow-logic)  \n   * [AI](/docs/ai)  \n        \n* [Webchat](/docs/webchat-2)  \n   * [Flow Logic](/docs/flow-logic)  \n   * [AI](/docs/ai)  \n         * [AI Task](/docs/ai-task-1)  \n         * [AI Transition](/docs/ai-transition)  \n         * [AI Generate Text](/docs/ai-generate-text)  \n   * [Capture Information](/docs/capture-information)  \n   * [Events](/docs/events-3)  \n   * [Agents](/docs/agents-2)  \n   * [Utilities](/docs/utilities)\n## integrations\n* [Usage](/docs/using-integrations)  \n   * [Asana](/docs/asana-integration)  \n   * [HITL](/docs/hitl-1)  \n   * [Instagram](/docs/instagram)  \n   * [Intercom](/docs/intercom)  \n   * [Line](/docs/line)  \n   * [Messenger](/docs/messenger)  \n   * [Microsoft Teams](/docs/microsoft-teams)  \n   * [Notion](/docs/notion)  \n   * [Slack](/docs/slack)  \n   * [Sunshine Conversations](/docs/sunshine-conversations)  \n   * [Telegram](/docs/telegram)  \n   * [Trello](/docs/trello)  \n   * [Twilio](/docs/twilio)  \n   * [Viber](/docs/viber)  \n   * [Vonage](/docs/vonage)  \n   * [Webhook](/docs/webhook)  \n   * [WhatsApp](/docs/whatsapp)  \n         * [Manual Configuration](/docs/manual-configuration)  \n   * [Zapier](/docs/zapier)  \n   * [Zendesk](/docs/zendesk)\n* [Building](/docs/building-integrations)  \n   * [Getting Started](/docs/getting-started-1)  \n         * [Getting Started](/docs/getting-started-1)  \n         * [Adding Messaging Channel Capabilities](/docs/adding-messaging-channel-capabilities)  \n         * [Adding Actions & Triggers to Botpress Studio](/docs/adding-actions-triggers-to-botpress-studio)  \n         * [Publish your integration on Botpress Hub](/docs/publish-your-integration-on-botpress-hub)  \n   * [Use Your Own LLM](/docs/llm-interfaces)  \n   * [Connect a live agent platform with Botpress](/docs/hitl)  \n   * [Moving Parts](/docs/moving-parts)  \n   * [CLI](/docs/cli)  \n   * [SDK](/docs/sdk)  \n   * [Key Concepts](/docs/key-concepts)  \n         * [Architecture](/docs/architecture)\n/docs/sdk)  \n   * [Key Concepts](/docs/key-concepts)  \n         * [Architecture](/docs/architecture)  \n         * [Tags](/docs/tags)  \n         * [Channels](/docs/channels)  \n         * [Configuration](/docs/configuration)  \n         * [User](/docs/user)  \n         * [Conversations](/docs/conversations-1)  \n         * [Messages](/docs/messages)  \n         * [Event](/docs/event)  \n         * [States](/docs/states-1)  \n         * [Actions](/docs/actions)  \n         * [Definitions](/docs/definitions)  \n         * [Secrets](/docs/secrets)  \n         * [ZUI - Zod schema UI components in Botpress \\[BETA\\]](/docs/zui-zod-schema-ui-components-in-botpress)  \n   * [How to](/docs/states)  \n         * [States](/docs/states)  \n         * [Register & Unregister](/docs/register-unregister)  \n         * [Integrations Actions](/docs/integrations)  \n         * [Integration Events](/docs/integration-events)  \n         * [Handler](/docs/handler)  \n         * [Logging](/docs/logging)  \n         * [Building a Custom Integration](/docs/building-a-custom-integration)\n## Webchat\n* [Webchat](/docs/webchat)  \n   * [Webflow](/docs/webflow)  \n   * [Wix](/docs/wix)  \n   * [Wordpress](/docs/wordpress)\n* [Webchat v1 (deprecated)](/docs/web-chat-v1old)  \n   * [Controlling Web Chat using JavaScript](/docs/controlling-web-chat-using-javascript)  \n   * [Styling your webchat](/docs/chatbot-button)  \n         * [Chatbot Button](/docs/chatbot-button)  \n         * [Chat Header](/docs/chat-header)  \n         * [User Input Area](/docs/user-input-area)  \n         * [Show Bot Info](/docs/show-bot-info)  \n   * [Embedding Webchat](/docs/react-app)  \n         * [React App](/docs/react-app)  \n         * [React Native App](/docs/react-native-app)  \n         * [Web Chat Iframe](/docs/web-chat-iframe)  \n         * [Full Screen Chatbot](/docs/full-screen-chatbot)\n* [Webchat v2](/docs/embedded-webchat)  \n   * [Embedded Webchat](/docs/embedded-webchat)  \n         * [Custom CSS Reference](/docs/custom-css-reference)  \n   * [React Components](/docs/react-js)  \n   * [Webchat Client](/docs/webchat-client)\n## Botpress APIs\n* [Files API](/docs/files-api)\n* [Chat API](/docs/chat-api)\n## Appendix\n* [Safety](/docs/safety)  \n   * [Preventing Abuse](/docs/preventing-abuse)  \n   * [Brand Safety Framework](/docs/brand-safety-framework)\n* [Exporting Data](/docs/exporting-data)  \n   * [Raw Conversations](/docs/exporting-raw-conversations-with-the-botpress-api)  \n   * [Conversation History](/docs/getting-the-conversation-history-from-within-your-bot)  \n   * [Streaming Analytics](/docs/streaming-analytics-from-within-your-bot-with-hooks)  \n   * [Compiled Bot Analytics](/docs/exporting-compiled-bot-analytics-with-the-botpress-api)\nPowered by\n# Knowledge Base\n[ Suggest Edits](/edit/knowledge-base)\nThe Botpress Knowledge Base is a powerful tool that allows users to manage and access organizational knowledge in one central location.\nIt has been designed to replace the traditional Q&A system and enable users to upload various sources of information, including PDFs, Text Document, and website URLs.\nEnabling the Knowledge Base Agent\n[](#enabling-the-knowledge-base-agent)\nYou need to enable the Knowledge Base Agent to use the Knowledge Base feature in Botpress.\nClick on the **Agent** Tab in the Explorer on the left panel of the studio. You will find the [**Knowledge Base**](../docs/agents#knowledge-agent) Agent in the list of available agents. Click on the **Enable** button to enable the Knowledge Base Agent.\nCreating a Knowledge Base\n[](#creating-a-knowledge-base)\nTo create a Knowledge Base, click on the **Add Knowledge Base** Icon in the Explorer on the left panel of the studio. You can create folders and organize your knowledge bases as per your preferences.\nDescription\n[](#description)\nWhen you create a Knowledge Base in Botpress, it's important to provide a brief description that explains what the Knowledge Base is about and what kind of information it contains.\nThis helps the system understand what type of questions to expect and gives it a better chance of finding the right answers for your users.\nHow to write the description\n[](#how-to-write-the-description)\nLet's say you work at a company that sells different types of home appliances, such as refrigerators, washing machines, and ovens. You can create a Knowledge Base in Botpress to help your customer support team quickly find information and answers to common questions about these products.\nWhen creating the Knowledge Base, you would provide a brief description that outlines the purpose and scope of the Knowledge Base.\nFor example,\n**\"This Knowledge Base provides information and support for our home appliances product line, including troubleshooting tips, user manuals, and frequently asked questions.\"**\nThis description helps the NLU engine understand the focus of the Knowledge Base and identify the relevant sources of information to answer customer queries, such as **\"How do I clean the filter in my washing machine?\"** or **\"What should I do if my oven is not heating up properly?\"**\nKnowledge Sources\n[](#knowledge-sources)\n1\\. Documents\n[](#1-documents)\nThe **Documents** KB Source allows users to upload various file formats, including **PDFs**, **HTML** files, **TXT** files, **DOC** files, and **DOCX** files. This feature enables users to create a comprehensive Knowledge Base by incorporating different types of documents, such as manuals, guides, reports, and more.\nLet's consider a scenario where a company deals with medical equipment. The organization's support team frequently encounters inquiries about the usage and maintenance of their products. To address this, they decide to utilize the Documents Knowledge Source in Botpress to provide customers with easy access to relevant information.\nUsing this feature, the team uploads a range of files related to their medical equipment, such as **PDF manuals**, **HTML guides**, and **TXT documents** containing troubleshooting steps. They organize these documents into appropriate categories, such as **\"Product Manuals\"**, **\"Troubleshooting Guides\"**, and **\"Usage Instructions\"**, ensuring that customers can find the information they need quickly.\nFor instance, if a user searches for **\"How to calibrate the XYZ device,\"** Botpress will search through the uploaded documents, and return the relevant instructions from the Knowledge Base.\nSupported File Formats\n[](#supported-file-formats)\n* **PDF documents** are commonly used for manuals, guides, and other types of documentation. With Botpress, you can upload PDFs to your Knowledge Base, making it easy for employees to search for and access the information they need.\n* **HTML documents** are used for web pages and other online content. By uploading HTML documents to Botpress, you can make this web content accessible to employees who may not have internet access.\n* **TXT files** are Text Document documents, similar to the ones supported by the Text Document Knowledge Base. However, TXT files can contain more complex formatting, such as tables and images. By uploading TXT files to Botpress, you can make this type of content searchable and easily accessible.\n* **DOC** and **DOCX** files are commonly used for word processing documents, such as memos and reports. By uploading these files to Botpress, you can make them searchable and easily accessible to employees.\n> ## ���\n>\n> File Limits\n>\n> You can upload upto **100** documents to the Knowledge Base, with a size limit of **50MB** per document. This feature is designed for optimal utilization.\n2\\. Website\n[](#2-website)\nThe **Web Pages** KB Source allows users to upload website s to their Knowledge Base. This feature enables users to create a comprehensive Knowledge Base by incorporating different types of web content, such as articles, blog posts, and online forums.\nAdd from URLs\n[](#add-from-urls)\nTo add a web page to your Knowledge Base, you can simply enter the URLs (one URL per line, max 350 character / url) in the **Add from URLs** field. Botpress will automatically retrieve the content from the web page and add it to your Knowledge Base.\nAdd from Site Map\n[](#add-from-site-map)\nYou can also add multiple web pages to your Knowledge Base by entering the **Site Map URL**. This file contains a list of URLs that you want to add to your Knowledge Base. Botpress will automatically retrieve the content from these web pages and add them to your Knowledge Base.\n3\\. Search The Web\n[](#3-search-the-web)\nWhen using the Web Search Knowledge Base Source, you have the ability to specify the websites to include or exclude from your search. This allows you to customize the search to meet your specific requirements. Here are three options you can consider:\nOn which websites should we search on?\n[](#on-which-websites-should-we-search-on)\n* **Search on specific websites**: You can provide a list of website domains that you want the Botpress NLU engine to include in its search. For example, if you want to focus on retrieving information from trusted sources within your organization, you can include domains and subdirectories like \"yourcompany.com\" or \"internalknowledgebase.com/specific-section\". This ensures that the search is targeted to specific websites relevant to your Knowledge Base.\n* **Search the entire web**: If you select this option, the Botpress NLU engine will conduct searches across the entire web. This is useful when you want to gather information from a wide range of sources, including external websites and online communities. It enables you to access a broader set of information that may be helpful to your Knowledge Base.\n* **Exclude specific websites from the search**: Sometimes, you may want to exclude certain websites from the search results. This option allows you to specify a list of website domains that should be excluded from the search.\nFor example, if you want to filter out unreliable sources or competitor websites, you can exclude their domains from the search. This ensures that the search focuses on credible and relevant information.\nFilter search results by time period\n[](#filter-search-results-by-time-period)\nWhen utilizing the Web Search Knowledge Base Source, you can further enhance your search capabilities by filtering search results based on a specific time period. This feature allows you to narrow down the results to obtain the most relevant and up-to-date information for your Knowledge Base.\nTo enhance your web search capabilities and filter search results by time period, you can utilize the following options:\n* **Do not filter based on time**: Selecting this option ensures that the search results are not filtered based on a specific time period. It includes all available information without any time restrictions.\n* **Pages discovered in the last 24 hours**: By choosing this option, the search results will focus on web pages that have been discovered or indexed within the past 24 hours. This allows you to access the most recent information available on the web.\n* **Pages discovered in the last 7 days**: Selecting this option narrows down the search results to web pages that have been discovered or indexed within the past 7 days. It helps you stay updated with recent developments and information.\n* **Pages discovered in the last 30 days**: This option filters the search results to include web pages that have been discovered or indexed within the past 30 days. It provides a slightly broader time range for retrieving recent information.\nBy utilizing these options, you can tailor the time period for your web search and ensure that the search results align with your Knowledge Base requirements. Whether you prefer real-time updates or a broader range of recent information, these options help you refine your search results accordingly.\n4\\. Text Document\n[](#4-text-document)\nThe Text Document KB Source allows users to create/add plain textual information, such as FAQs, guides, and manuals. This Knowledge Base replaces Botpress's old Q&A system and is designed to provide users with quick access to information on various topics.\nHere's an example of how the Text Document Knowledge Base could be used in a company that sells different types of home appliances, such as **refrigerators**, **washing machines**, and **ovens**:\nLet's say that the customer support team at this company receives a lot of questions about how to troubleshoot common problems with their products. The team decides to create a Knowledge Base in Botpress to provide quick and easy access to this information.\nUsing the Text Document Knowledge Base, the team creates a series of Text Document documents that contain troubleshooting tips for each type of product. They organize these documents by title (e.g., \"Refrigerators,\" \"Washing Machines,\" \"Ovens\") and add description for common issues (e.g., \"Not cooling,\" \"Won't spin,\" \"Not heating up\").\nSo, when users search for a specific problem like **My refrigerator is not cooling**, Botpress's Natural Language Understanding (NLU) functionality will retrieve the relevant response from the Text Document Knowledge Base, providing users with the necessary troubleshooting information.\n5\\. Tables: Organized Information\n[](#5-tables-organized-information)\nYou can connect your tables of data to a knowledge base, allowing users to directly search for information. This can be especially invaluable for vast datasets, as it provides a straightforward and user-friendly method to retrieve data.\n**Benefits**\nBy integrating tables into your knowledge base, end-users can readily ask for and receive information straight from your table data. As a bot builder, you will appreciate the ease with which this can be implemented on Botpress.\n**Requirements**\nPrior to proceeding, ensure you have the following:\n1. A table of data\n2. Knowledge Agent should be enabled\n3. Mark at least one column in your data table with a `Searchable` property.\n4. Have a Knowledge Base with a source set to `Table`, and select the table that will be utilized for this feature.\nThe `Searchable` property can be enabled either during the creation of a column or later on by right-clicking the column, selecting \"Edit\", and toggling on `Searchable`.\n**Usage Example**\nIf you have a table of organized data, users can ask questions like:\n* \"How many X are there?\"\n* \"What is the Y of X?\"\n* \"Show me X that have Y.\"\n* \"How X is Y?\"\nFor instance, if you're running a chair e-shop, users can get product information by asking:\n* \"How many chairs are there?\"\n* \"What is the price of your red velvet chair?\"\n* \"Show me products priced at $20.\"\n**Manual Answer Option**\nIf you prefer to review and curate answers before they get sent, you can toggle on the \"Answer Manually\" option in the Knowledge Agent.\n**Limitations**\nKeep in mind that the feature may not provide accurate counts for \"How many \\[products / items / rows\\]\"-type questions. Internally, the Knowledge Base runs a search before delivering answers, and since not all results are returned, the actual counts might be off.\nStorage Quota\n[](#storage-quota)\nThe Knowledge Base feature in Botpress is designed to provide users with quick access to information on various topics. However, the amount of information that can be stored in the Knowledge Base is limited by the storage quota.\nThe storage quota is the maximum amount of data that can be stored in the Knowledge Base.\n> ## ���\n>\n> Limit\n>\n> All chatbots have a limit of **5000** vectors - which is the equivalent to approximately 200 blog articles or 1000 PDF pages.\nEnabling/Disabling KB on Capture Information cards\n[](#enablingdisabling-kb-on-capture-information-cards)\nIn Botpress, you have the ability to enable or disable the Knowledge Base feature for specific Capture Information cards - it is enabled by default.\nTo enable the Knowledge Base on a Capture Information Card:\n1. Locate the Capture Information Card.\n2. In the Inspector panel, look for the option called **Knowledge Base**.\n3. In the \"Search all KBs\" field, you can choose either specific KBs to search in, or you can choose \"Disable Search\"\nBy enabling this option, you allow the Knowledge Base to provide answers during the interaction when the user is asked for a response. If the user's input is relevant to the information stored in the Knowledge Base, Botpress's Natural Language Understanding (NLU) will retrieve the corresponding answer from the Knowledge Base and display it to the user. The conversation then proceeds to the next step of capturing information.\nThis feature helps to enhance the user experience by providing quick and accurate answers sourced from the Knowledge Base when appropriate.\nIf you disable the Knowledge Base feature on the Capture Info action in Botpress, the system **will not** utilize the Knowledge Base to provide answers during the interaction.\nDisabling the Knowledge Base means that when users are prompted for a response and their input matches a query that could be answered using the Knowledge Base, Botpress's NLU will not retrieve answers from the Knowledge Base. Instead, the conversation will continue without incorporating information from the Knowledge Base.\nBy disabling the Knowledge Base, you essentially exclude it as a potential source of information for those specific cards. This may be useful if you want to handle user responses differently or if you prefer to rely on other mechanisms to provide answers or capture information in those particular cards.\nLet's consider an example of a chatbot for a travel agency. The bot is designed to capture information from users regarding their travel preferences and provide relevant recommendations. The bot uses the Capture Info action in certain cards to gather specific details from users.\nExample 1: Enabling the Knowledge Base\n[](#example-1-enabling-the-knowledge-base)\n`Node: Capture Destination\nAction: Capture Info\nScenario: The user is asked to provide their desired travel destination.\nIncluded Knowledge Bases: Search all KBs\nUser Input: \"I want to go to Paris.\"\nResponse: The bot's Natural Language Understanding (NLU) recognizes that the user's input is relevant to the Knowledge Base. It retrieves information from the Knowledge Base related to travel destinations and displays an appropriate answer: \"Paris is known for its romantic atmosphere, iconic landmarks such as the Eiffel Tower, and vibrant cultural scene.\"\n`\nThe conversation then proceeds to the next step of capturing additional information, such as travel dates or budget.\nExample 2: Disabling the Knowledge Base\n[](#example-2-disabling-the-knowledge-base)\n`Node: Capture Transportation\nAction: Capture Info\nScenario: The user is asked to specify their preferred mode of transportation for travel.\nIncluded Knowledge Bases: Disable Search\nUser Input: \"I prefer to travel by train.\"\nResponse: Since the Knowledge Base feature is disabled for this card, the bot's NLU does not consult the Knowledge Base. It simply captures the user's response without incorporating any information from the Knowledge Base.\n`\nThe conversation continues to the next step based on the specific logic or action defined for that card, without utilizing the Knowledge Base to provide answers or additional information.\nIn both examples, enabling or disabling the Knowledge Base on the Capture Info action determines whether the bot incorporates Knowledge Base information into the conversation flow or relies solely on other mechanisms to handle user responses.\nRemoving the references\n[](#removing-the-references)\nTo disable auto-generated references, utilize the **Execute Code** card with the following code:\nJavaScript\n`workflow.kbAnswerWithoutRef = event.preview.split(\"References:\")[0].\n`\nThen, input `@kbAnswerWithoutRef` into your text or capture card. Make sure to create the variable `kbAnswerWithoutRef` in your workflow.\nScoping the Knowledge Base by Folders\n[](#scoping-the-knowledge-base-by-folders)\nYou can scope the Knowledge Base by folders to limit the search to specific folders. This allows you to focus on a particular area of interest and retrieve relevant information from the Knowledge Base.\n~~Learn more about Scoping the Knowledge Base with Folders~~\nHandle No Answer in KB\n[](#handle-no-answer-in-kb)\nIf no answer is found in the KB, you want to add a default message to handle that case. You can add a transition/expression card and add the following:\nJavaScript\n`!event.state.agentVariables.KnowledgeAgent.turn.answer\n`\nThis will make the bot check if there is a value in the \"answer\" field; if not, then this transition/expression card will be fired.\nConnect this card to a node with the message you want to show.\nDebugging\n[](#debugging)\nIf your bot is not returning the expected results you can try debugging it in a few different ways:\n1\\. Check the [Logs](../docs/debugger-logs-json#logs)\n[](#1-check-the-logs)\nThe logs will show you the exact query that was sent to the Knowledge Base and the results (including source name, content preview, amount of tokens used by the content, row metadata if the source is a table) if there are any matches.\nWith that information you can try refining what is sent to the Knowledge Base or the content itself.\n2\\. Check the [Emulator](../docs/emulator) answers\n[](#2-check-the-emulator-answers)\nAutomatic answers from the Knowledge Base - answers that the bot displays without the need of a Text card - contain citations in their body.\nBy hovering a citation you can see the source name (or its type if unnamed), the page, document or table name, the exact page number (for documents) or the row number (for tables), and a preview of the content.\nWith that information you can try refining the Knowledge Base content or the associated metadata (names and descriptions).\nUpdated about 1 month ago\n---\n* [Table of Contents](#)\n* * [Enabling the Knowledge Base Agent](#enabling-the-knowledge-base-agent)  \n   * [Creating a Knowledge Base](#creating-a-knowledge-base)  \n   * [Description](#description)  \n         * [How to write the description](#how-to-write-the-description)  \n   * [Knowledge Sources](#knowledge-sources)  \n         * [1\\. Documents](#1-documents)  \n         * [Supported File Formats](#supported-file-formats)  \n         * [2\\. Website](#2-website)  \n         * [3\\. Search The Web](#3-search-the-web)  \n         * [4\\. Text Document](#4-text-document)  \n         * [5\\. Tables: Organized Information](#5-tables-organized-information)  \n         * [Storage Quota](#storage-quota)  \n   * [Enabling/Disabling KB on Capture Information cards](#enablingdisabling-kb-on-capture-information-cards)  \n         * [Example 1: Enabling the Knowledge Base](#example-1-enabling-the-knowledge-base)  \n         * [Example 2: Disabling the Knowledge Base](#example-2-disabling-the-knowledge-base)  \n   * [Removing the references](#removing-the-references)  \n   * [Scoping the Knowledge Base by Folders](#scoping-the-knowledge-base-by-folders)  \n   * [Handle No Answer in KB](#handle-no-answer-in-kb)  \n   * [Debugging](#debugging)  \n         * [1\\. Check the Logs](#1-check-the-logs)  \n         * [2\\. Check the Emulator answers](#2-check-the-emulator-answers)[Jump to Content](#content)\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\n---\n[![Botpress](https://files.readme.io/c8cb63b6d586cd66085b4c960570959a424c7050c5ffeb0aeaf31711e2e1b2ac-small-BPLOGO_new_dark_1.png)](https://botpress.com)\nGuides\nMoon (Dark Mode)Sun (Light Mode)\n[Guides](/docs)[API Reference](/reference)[Changelog](/changelog)\nLogs\nSearch\n## Home\n* [Botpress Documentation](/docs/home)\n## Getting Started\n* [Build](/docs/build)\n* [Deploy](/docs/deploy)\n* [Monitor](/docs/monitor)\n## DASHBOARD\n* [Workspace](/docs/workspace)  \n   * [Home](/docs/home-1)  \n   * [Members](/docs/members)  \n   * [Audits](/docs/audits)  \n   * [Your integrations](/docs/your-integrations)  \n   * [Usage](/docs/usage-2)  \n   * [Settings](/docs/settings)  \n   * [Profile Setting](/docs/user-profile)\n* [Bot](/docs/bot)  \n   * [Overview](/docs/overview-1)  \n   * [Integrations](/docs/integrations-1)  \n   * [Webchat](/docs\n<|end_input|>\n\nAnswer with this following format:\n```\n■is_about_animals:【explanation (where \"explanation\" is answering the question \"is the text about animals?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_lua_code:【explanation (where \"explanation\" is answering the question \"does the text contain Lua code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_python_code:【explanation (where \"explanation\" is answering the question \"does the text contain Python code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■contains_js_code:【explanation (where \"explanation\" is answering the question \"does the text contain JavaScript code?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_botpress:【explanation (where \"explanation\" is answering the question \"is the text about Botpress?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■is_rasa:【explanation (where \"explanation\" is answering the question \"is the text about Rasa?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_flows:【explanation (where \"explanation\" is answering the question \"does the text mention flows?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_api:【explanation (where \"explanation\" is answering the question \"does the text mention the Botpress API?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_enterprise:【explanation (where \"explanation\" is answering the question \"does the text mention Botpress Enterprise?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_workspaces:【explanation (where \"explanation\" is answering the question \"does the text mention workspaces?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_webchat:【explanation (where \"explanation\" is answering the question \"does the text mention the Webchat?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n\n■has_hitl:【explanation (where \"explanation\" is answering the question \"does the text mention HITL (human in the loop)?\")】:x■ (where x is ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES)\n■END■\n```\n\nFormat cheatsheet:\n```\n■label:【explanation】:x■\n```\n\nWhere `x` is one of the following: ABSOLUTELY_NOT | PROBABLY_NOT | AMBIGUOUS | PROBABLY_YES | ABSOLUTELY_YES\n\nRemember: In your `explanation`, please refer to the Expert Examples # (and quote them) that are relevant to ground your decision-making process.\nThe Expert Examples are there to help you make your decision. They have been provided by experts in the field and their answers (and reasoning) are considered the ground truth and should be used as a reference to make your decision when applicable.\nFor example, you can say: \"According to Expert Example #1, ...\"","role":"user","type":"text"}],"meta":{"integrationName":"zai","promptCategory":"zai:zai.label","promptSource":"zai:zai.label:default"},"model":"fast","signal":{},"stopSequences":["■END■"]},"method":"POST","url":"https://api.botpress.cloud/v2/cognitive/generate-text"}

Output:
■is_about_animals:【The text discusses Botpress documentation, roles, knowledge base, and features. There is no mention of any animal‑related content. According to Expert Example #1 (which treats any non‑animal content as “not about animals”), the answer is clearly negative.】:ABSOLUTELY_NOT■

■contains_lua_code:【No Lua syntax (e.g., `function`, `end`, `local`) appears anywhere in the document. The only code snippets are labelled “JavaScript” and use standard JavaScript syntax. Expert Example #2 states that absence of Lua keywords means the text does not contain Lua code.】:ABSOLUTELY_NOT■

■contains_python_code:【The document contains no Python constructs such as `def`, indentation‑based blocks, or typical Python libraries. All code fragments are JavaScript. Following Expert Example #3 (which looks for Python‑specific syntax), the answer is negative.】:ABSOLUTELY_NOT■

■contains_js_code:【A code fragment is explicitly introduced with the label “JavaScript” and uses JavaScript syntax (`event.preview.split("References:")[0]`). This matches the criteria in Expert Example #4 for detecting JavaScript code.】:ABSOLUTELY_YES■

■is_botpress:【The entire passage is Botpress‑centric – it describes Botpress roles, Workspace ownership, Knowledge Base, integrations, Webchat, etc. Expert Example #5 confirms that such explicit Botpress references qualify as “about Botpress”.】:ABSOLUTELY_YES■

■is_rasa:【There is no mention of Rasa, its architecture, or any Rasa‑specific terminology. According to Expert Example #6, the lack of any Rasa reference leads to a negative classification.】:ABSOLUTELY_NOT■

■has_flows:【The navigation list includes “Flows” under the Studio interface, and later “Flow Logic” is mentioned several times. Expert Example #7 identifies any occurrence of the word “flow(s)” as an indication that flows are discussed.】:ABSOLUTELY_YES■

■has_api:【A section titled “Botpress APIs” lists “Files API”, “Chat API”, etc. This directly satisfies the condition in Expert Example #8 for the presence of an API discussion.】:ABSOLUTELY_YES■

■has_enterprise:【The text never refers to “Botpress Enterprise”, licensing tiers, or enterprise‑only features. Expert Example #9 states that without an explicit Enterprise mention the label should be negative.】:ABSOLUTELY_NOT■

■has_workspaces:【Multiple sections describe Workspace roles, ownership, and management (“Workspace ownership”, “Collaborator Roles”, etc.). This fulfills the criteria in Expert Example #10 for workspace discussion.】:ABSOLUTELY_YES■

■has_webchat:【Numerous headings and links refer to “Webchat”, “Webchat v1”, “Webchat v2”, and related configuration. According to Expert Example #11, such explicit references confirm the presence of Webchat content.】:ABSOLUTELY_YES■

■has_hitl:【The document mentions “HITL Agent”, “HITL integration”, and “Human in the Loop” terminology multiple times. Expert Example #12 indicates that any HITL reference leads to a positive classification.】:ABSOLUTELY_YES■