DIAL-Native Applications
Introduction
DIAL-native applications adhere to the unified protocol of DIAL, a single protocol for all applications and models deployed in a specific DIAL instance. DIAL-native apps can be enabled in DIAL and used directly (via API or UI) or as building blocks in other apps.
Refer to Agentic Platform to learn more about agents in DIAL.
Schema-rich Applications
DIAL-native applications can be schema-rich.
Schema-rich applications are defined by a JSON schema that conforms to the main meta schema. JSON schema describes the application's structure, including properties and endpoints (completion, configuration, and other), URLs for application editor (enabling a UI wizard for creating/editing applications) and custom application UI to replace the standard chat UI, custom buttons.
Users can create instances of schema-rich applications with different properties via DIAL Core API. There is a method in DIAL SDK (application_properties = await request.request_dial_application_properties()
) that returns application properties with a configuration request to DIAL Core.
Unlike apps without schemas, where business logic properties are embedded in the application code or container environment and are difficult to change, schema-rich applications provide greater flexibility.
Application Types
Schema-rich applications are usually associated with a specific Application Type - as schema-rich template for creating custom implementations of specific application types.
The meta schema determines a possible structure of an application type schema, which is used to determine properties structure of specific applications of this type:
One of the main advantages of application types, is that they allow adding application wizards on UI for end-users to create/edit apps in a low and no-code manner.
☁️ DIAL SaaS edition includes application types such as Quick app, Code app and Mind Map. Users of DIAL Chat can use UI wizards to create apps of these types.
💾 In self-hosted deployments of DIAL, you can add new application types, featuring custom application UI (applicationTypeViewerUrl
) and wizards (applicationTypeEditorUrl
) and enabling end-users to create applications of that type. Refer to Agentic Platform to learn more about available application types.
Quick Apps
Quick apps are code-less and conceptually similar to OpenAI's GPTs. They can include tools such as client toolsets, web API toolsets, use apps and models deployed in DIAL as tools and URLs to files for RAG. For example, you can create an app with a toolset allowing it to call an external API to get a real-time weather forecast for a specific location. Another example is a RAG-like application that can generate responses based on predefined sources.
- Watch a Demo Video with an introduction to Quick Apps.
- Refer to User guide to learn how to add Quick Apps using the UI wizard.
- Refer to Quick App Configuration Guide to see configuration guidelines and a full configuration example for Quick app.
Code Apps
Code Apps allow you to develop, deploy and run your Python applications directly in the DIAL Chat UI. It is a useful tool if you need to quickly create an application for the POC, deploy it and share with the selected audience.
In DIAL Chat UI you can:
- Create and customize Code Apps using the built-in Python code editor directly in DIAL Chat.
- Deploy Code Apps without worrying about hosting or scalability.
- Implement essential endpoints for DIAL compatibility.
- Manage environment variables.
- Edit and publish Code Apps.
Limitations and security restrictions:
- Code Apps are deployed and maintained exclusively by DIAL platform, similarly, to handling lambda function by cloud providers.
- Code Apps do not have access to internet.
- Code Apps do not have state outside of DIAL APIs.
- You can use only Python libraries, databases, and models that are supported by DIAL.
- Code Apps cannot call each other or any external endpoints with the exception of DIAL Core, if it is allowed.
- All traffic is encrypted, and Code Apps are run in an isolated network.
- Watch a Demo Video with an introduction to Code Apps.
- Refer to User guide to learn how to add Code Apps.
Mind Maps
Mind Map enables users to explore information through an interactive knowledge graph and using natural language. You can use this application type to create an app which pulls data from various sources, including documents, URLs, and other data inputs and then presents it on UI as an interactive knowledge graph, facilitating intuitive and engaging user interactions with information. The home page of the DIALX landing website is built using this technology.
- Watch Demo Video to see DIAL Mind Map Studio in action.
- Refer to solutions to see implementations in specific industries: Caspase-2 Article Visualization, OMICS AI Assistant, Visualization of Cinematic Universe
Applications without Schemas
Applications without schemas are not tied to any specific application type. When enabling such an app, you must explicitly specify (in the API PUT request) standard parameters of the application and available endpoints the application offers. Properties that define the logic and behavior of the application are part of the application code and the container it runs in, meaning they cannot be modified through the DIAL Core API, contrary to schema-rich applications. For example, to enable two apps without schemas, you may need to launch two containers, whereas for schema-rich apps, you can make just two API calls.
Create Applications
You can create DIAL-native applications programmatically or using UI wizards.
Development
You can develop DIAL-native apps using DIAL SDK following DIAL API. The unified protocol of DIAL supports tool calling, seeds, token usage, streaming and more. Refer to DIAL Core to learn more about unified protocol features.
- Having your app running, refer to Tutorials for developers to learn how to enable it in DIAL and allow others to use it.
- Refer to Cookbook examples to learn how to call apps of different modalities.
- Refer to Video Demo to learn how to develop a simple application.
- Watch a Video Demo about the unified protocol of DIAL.
UI Wizards
Schema-rich applications can feature auto-generated or custom UI wizards allowing end-users to create apps of specific application types.
- Refer to User Guide to learn how to create applications using UI wizards.
- Refer to Tutorials for developers to learn how to enable schema-rich apps in DIAL.
Enable Applications in DIAL
Ready and deployed applications must be enabled to use them in DIAL.
Refer to Developer Tutorials to learn how to enable DIAL-native apps.
Prerequisites for enablement of schema-rich applications:
- A schema of the application type must be included in the DIAL Core configuration.
- Having a running container for each application type.
- These containers must be accessible via the endpoints specified in the JSON schema for their respective application types.
Prerequisites for enablement of for applications without schemas:
- You must have a running container with your app accessible for DIAL Core via the endpoints you provide in the PUT request.