Per default, the chatbot uses an Azure OpenAI deployment provided by Creative Data, it is not necessary to create an account, or to provide an API key. If you prefer to use your own model deployment, the Pro and Premium licenses allow users to connect to an owned model through an API key. Currently, options include OpenAI and Azure OpenAI, with Azure OpenAI offering enhanced data protection through robust enterprise-grade security measures, read more here.
All interactions with the chatbot are securely processed through the services REST API using the HTTPS protocol. Conversation data, such as uploaded documents or history, is only kept and processed until the conversation resets or the session expires. User authentication is done through Microsoft EntraID, and external data (such as the connected semantic model) is accessed on behalf of the user through Power BI’s REST API. The On-Behalf-Of flow respects user permissions and row-level security, you can learn more about it here. No data is ever shared with other platforms or services.
Interacting with semantic models through natural language offers a highly intuitive and powerful way to extract insights. The LLM Chatbot offers a way to directly interact with datasets through the language model: a connection to a users semantic model through the Power BI API. This feature is only available for users with a Pro or Premium license.
To ensure the security of this feature, the LLM Chatbot visual queries connected semantic models using the Power BI API. These queries are automatically generated as DAX queries based on user input. DAX query results are processed in the backend, and the LLM receives the schema and resulting rows to answer questions about the dataset. Since using the Power BI API to execute DAX queries requires permission, the tenant’s Fabric administrator must activate in Fabric the switch Allow custom visuals to get user Microsoft Entra access tokens. Users need read access to the semantic model.
File processing operations are performed in the service backend. Text extracted from the uploaded files is initially uploaded to the model deployment to generate embeddings (learn more about Embeddings - OpenAI). Embedded files are stored in the backend, limited to a user and a conversation thread. All files are deleted upon conversation reset or session expiry.
The chatbot can perform multiple operations in regards to documents. Semantic searches only send to the model the relevant fragments found to answer questions in natural language, while summaries require providing the full document.
The chatbot can also answer questions about datasets in tabular formats that are uploaded directly to the conversation. This is done by running LLM-generated code over the dataset in an isolated subprocess inside the backend, which cannot act outside this scope. This subprocess has no network, file system or process access, and strict time and memory limits. Datasets are uploaded and stored in the same manner as text documents. Unlike documents, they are never sent to the model to generate embeddings, and the model only receives the schema. The model answers from the code results.