---
title: Designing Prompts & Orchestrating Applications
description: Learn how to use Dify to orchestrate applications and practice Prompt Engineering. By leveraging two built-in application types, you can build high-value AI applications.
---

At the core of Dify is a declarative approach to defining AI applications. Everything—from prompts and context to plugins—can be described in a single YAML file (this is also why it’s called “Dify”). The end result is either a single API or a ready-to-use WebApp.

At the same time, Dify offers an intuitive visual interface for prompt orchestration, enabling developers to build application features in a WYSIWYG (What You See Is What You Get) manner based on prompts. Sounds easy, right?

Whether your AI application is simple or complex, well-crafted prompts can significantly improve model output quality, reduce error rates, and meet specific scenario requirements. Dify provides two common types of applications: chat-based and text generation-based. In this section, you’ll visually build an AI application through orchestration.

## Steps to Orchestrate an Application

1.	Define the application scenario and feature requirements
2.	Design and test prompts and model parameters
3.	Orchestrate prompts with user input
4.	Publish the application
5.	Monitor and iterate continuously

## Understanding the Differences Between Application Types

In Dify, chat-based and text generation-based applications differ slightly in how prompts are orchestrated. Chat-based apps must consider the “conversation lifecycle” to handle more complex user scenarios and context management.

Prompt Engineering has evolved into a promising discipline worth ongoing exploration. Keep reading to learn how to orchestrate both types of applications.

## Further Reading

1. [Learn Prompting](https://learnprompting.org/)
2. [ChatGPT Prompt Engineering for Developers](https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/)
3. [Awesome ChatGPT Prompts](https://github.com/f/awesome-chatgpt-prompts)

{/*
Contributing Section
DO NOT edit this section!
It will be automatically generated by the script.
*/}

---

[Edit this page](https://github.com/langgenius/dify-docs/edit/main/en/features/datasets/prompt-engineering.mdx) | [Report an issue](https://github.com/langgenius/dify-docs/issues/new?title=Documentation%20Issue%3A%20t-engineer&body=%23%23%20Issue%20Description%0A%3C%21--%20Please%20briefly%20describe%20the%20issue%20you%20found%20--%3E%0A%0A%23%23%20Page%20Link%0Ahttps%3A%2F%2Fgithub.com%2Flanggenius%2Fdify-docs%2Fblob%2Fmain%2Fen/features/datasets%2Fprompt-engineering.mdx%0A%0A%23%23%20Suggested%20Changes%0A%3C%21--%20If%20you%20have%20specific%20suggestions%20for%20changes%2C%20please%20describe%20them%20here%20--%3E%0A%0A%3C%21--%20Thank%20you%20for%20helping%20improve%20our%20documentation%21%20--%3E)

