<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Works AI_Makoto</title>
    <description>The latest articles on DEV Community by Works AI_Makoto (@works_ai_makoto_a67a7ff7e).</description>
    <link>https://dev.to/works_ai_makoto_a67a7ff7e</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2444379%2F3c27194d-894b-4718-abd7-816ab8fa1759.png</url>
      <title>DEV Community: Works AI_Makoto</title>
      <link>https://dev.to/works_ai_makoto_a67a7ff7e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/works_ai_makoto_a67a7ff7e"/>
    <language>en</language>
    <item>
      <title>AI Generation Workflow with Azure Speech Service and Dify: Full Automation of Podcast and Image Creation</title>
      <dc:creator>Works AI_Makoto</dc:creator>
      <pubDate>Sun, 24 Nov 2024 09:00:12 +0000</pubDate>
      <link>https://dev.to/works_ai_makoto_a67a7ff7e/ai-generation-workflow-with-azure-speech-service-and-dify-full-automation-of-podcast-and-image-ohh</link>
      <guid>https://dev.to/works_ai_makoto_a67a7ff7e/ai-generation-workflow-with-azure-speech-service-and-dify-full-automation-of-podcast-and-image-ohh</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Creative activities leveraging AI technology are becoming increasingly accessible. This time, we have created a workflow using Dify to automatically generate audio podcasts and images for children. This workflow generates stories based on user input and outputs them as audio files and images.&lt;/p&gt;

&lt;p&gt;In particular, this workflow was built with reference to a post by Dify.AI Japan on X. Here is the post:&lt;br&gt;
&lt;a href="https://x.com/DifyJapan/status/1859577258442363124" rel="noopener noreferrer"&gt;https://x.com/DifyJapan/status/1859577258442363124&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this article, we will cover the following topics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An explanation of the workflow built with Dify&lt;/li&gt;
&lt;li&gt;Prompt design tailored for creating children's content&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Overview of the Workflow
&lt;/h2&gt;

&lt;p&gt;The workflow we created is structured as shown in the image below.&lt;br&gt;
The ChatFlow created in this project is saved in the following repository:&lt;br&gt;
&lt;a href="https://github.com/aimakotoworks/TextToSpeech_Chatflow" rel="noopener noreferrer"&gt;https://github.com/aimakotoworks/TextToSpeech_Chatflow&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fievxgmbbxmka8k04b2pl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fievxgmbbxmka8k04b2pl.png" alt="Image description" width="800" height="247"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Key Components:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;LLM (Large Language Model)&lt;br&gt;
Based on the input text, the LLM generates a dialogue-style story. For example, if you provide the request, "A story about a boy and Santa Claus," it will create a narrative about a boy and Santa Claus.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;HTTP Request (Azure Speech Services)&lt;br&gt;
The generated story is converted into audio using Azure Speech Services. This service transforms input text into high-quality audio data. In particular, Azure Portal allows for easy creation of resources, as well as retrieval of endpoints and key information for seamless usage.&lt;br&gt;
&lt;a href="https://learn.microsoft.com/en-us/azure/ai-services/Speech-Service/regions" rel="noopener noreferrer"&gt;https://learn.microsoft.com/en-us/azure/ai-services/Speech-Service/regions&lt;/a&gt;&lt;br&gt;
Setting Up Azure TTS&lt;br&gt;
Creating a Resource&lt;br&gt;
Log in to Azure Portal, select "AI + Machine Learning" and then "Speech" to create a resource. During creation, you can select the region and pricing tier.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqe6whfeny9ti2tpt2m6l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqe6whfeny9ti2tpt2m6l.png" alt="Image description" width="369" height="99"&gt;&lt;/a&gt;&lt;br&gt;
Retrieving Endpoints and Keys&lt;br&gt;
After creating the resource, navigate to the "Keys and Endpoints" tab to obtain the necessary connection information. This information is required for communicating with Azure Speech Services via HTTP requests.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9h3zlfpovd0i7qcpjc6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr9h3zlfpovd0i7qcpjc6.png" alt="Image description" width="800" height="421"&gt;&lt;/a&gt;&lt;br&gt;
Choosing a Voice Model&lt;br&gt;
Azure TTS offers multiple voice models, such as "en-US-JennyNeural" and "en-US-AriaNeural". These models provide natural pronunciation and a wide range of expressive capabilities, allowing you to choose the most suitable voice for your use case.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;DALL-E 3&lt;br&gt;
Related images are generated based on the story. For instance, it can visualize scenes such as "Santa Claus and a boy."&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Prompt Design Highlights
&lt;/h2&gt;

&lt;p&gt;For this project, we utilized OpenAI's Playground Prompt Generator to set up detailed guidelines. &lt;br&gt;
&lt;a href="https://platform.openai.com/docs/guides/prompt-generation" rel="noopener noreferrer"&gt;https://platform.openai.com/docs/guides/prompt-generation&lt;/a&gt;&lt;br&gt;
Based on these instructions, we generated a dialogue-style podcast script tailored for children.&lt;/p&gt;
&lt;h2&gt;
  
  
  Overview of the Prompt
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Objective:
&lt;/h3&gt;

&lt;p&gt;To create a podcast for children using Azure's Text-To-Speech (TTS) service. The script is designed to be fun and approachable, ensuring children can learn while enjoying engaging, conversational content.&lt;/p&gt;
&lt;h3&gt;
  
  
  Writing Style Features:
&lt;/h3&gt;

&lt;p&gt;Playful and warm tone: Modeled as a friendly dialogue between characters.&lt;br&gt;
Balance of fun and learning: Topics are chosen to spark children's interest (e.g., science, nature, math, daily habits).&lt;br&gt;
Simple language: Content is adapted to suit preschoolers and early elementary school children.&lt;br&gt;
Key Points in Prompt Design&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;XML Structure&lt;br&gt;
Used SSML (Speech Synthesis Markup Language) to ensure smooth integration with Azure TTS.&lt;br&gt;
The  tag serves as the root element, while  tags distinguish dialogue for each character.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Character Setup&lt;br&gt;
Jenny (Narrator): The primary storyteller.&lt;br&gt;
Aria (Listener): Reacts with questions and expressions of excitement, adding rhythm to the conversation.&lt;br&gt;
Azure TTS voices "en-US-JennyNeural" and "en-US-AriaNeural" are used to create a clear distinction between characters' voices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Topic Progression&lt;br&gt;
Introduction: Clearly present a new topic to pique children's interest.&lt;br&gt;
Dialogue Format: Jenny explains the topic, while Aria reacts with curiosity and enthusiasm to maintain a smooth conversational flow.&lt;br&gt;
Conclusion: Summarize the lesson with a positive message to encourage children.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Error Prevention&lt;br&gt;
Ensure SSML XML structure is correctly formatted to avoid issues such as missing or invalid tags.&lt;br&gt;
Use syntax that is compatible with Azure TTS to avoid read errors.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prompt Example&lt;br&gt;
Below is a sample prompt actually used in this workflow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create a script for a podcast targeted at young children using Azure's Text-To-Speech (TTS) service. The writing style should be playful, warm, and engaging, similar to a dialogue between friendly characters. Use the specified XML format so that different "voices" can be assigned to the two characters in the podcast.

# Instructions

- Maintain a cheerful, conversational tone, avoiding complex words. Assume young children as your target audience.
- The script should use an alternating voice format between at least two characters. Be sure to guide children into learning while maintaining a playful and curious attitude.
- Each part of the dialogue must be enclosed in `&amp;lt;voice&amp;gt;&amp;lt;/voice&amp;gt;` tags, clearly identifying the speaker.
- Consider using two 'voices' provided by Azure TTS, such as "en-US-JennyNeural" and "en-US-AriaNeural."
  - Jenny is the primary narrator, while Aria asks questions and expresses excitement.
- Use the `&amp;lt;speak&amp;gt;` XML tag as the root element and ensure it’s well-formatted for TTS use.
- Explore fun topics like science, nature, mathematics, or daily habits in a sequence that makes learning fun.

# Steps

1. **Topic Introduction**: Introduce the new topic in a friendly and engaging way.
2. **Dialogue Sequence**: Alternate between characters:
    - The main character (Jenny) introduces information.
    - The secondary character (Aria) reacts, asks simple questions, or expresses curiosity.
3. **Wrap-Up &amp;amp; Encouragement**: End with a positive summary or encouraging note for children.

# Output Format

- Use SSML format with the `&amp;lt;speak&amp;gt;` and `&amp;lt;voice&amp;gt;` tags.
- Include alternate dialogue sections with at least two characters.
- Write complete and well-formed XML.

## Example

&amp;lt;speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US"&amp;gt;

&amp;lt;voice name="en-US-JennyNeural"&amp;gt;
    Hello, my little friends! Today, we are going on an adventure to learn all about one of the most magical creatures of the sea: the dolphin!
&amp;lt;/voice&amp;gt;

&amp;lt;voice name="en-US-AriaNeural"&amp;gt;
    Oooh, dolphins! I always wanted to learn about dolphins! Do they really love to jump out of the water?
&amp;lt;/voice&amp;gt;

&amp;lt;voice name="en-US-JennyNeural"&amp;gt;
    That's right, Aria! Dolphins love to leap out of the water. It helps them move faster and also looks like they’re having so much fun! They’re super strong swimmers—just like you when you try your best in the pool!
&amp;lt;/voice&amp;gt;

&amp;lt;voice name="en-US-AriaNeural"&amp;gt;
    Wow, that's so cool! How do dolphins talk to each other?
&amp;lt;/voice&amp;gt;

&amp;lt;voice name="en-US-JennyNeural"&amp;gt;
    Great question, Aria! Dolphins talk to each other using sounds like clicks, whistles, and even special calls. It's almost like they have their own secret language!
&amp;lt;/voice&amp;gt;

&amp;lt;voice name="en-US-AriaNeural"&amp;gt;
    Dolphins are so amazing! I want to learn their secret language too!
&amp;lt;/voice&amp;gt;

&amp;lt;voice name="en-US-JennyNeural"&amp;gt;
    Maybe one day! For now, it's just fun to know that every dolphin family has its very own way of communicating, just like we do with our families. Isn’t that amazing?
&amp;lt;/voice&amp;gt;

&amp;lt;voice name="en-US-AriaNeural"&amp;gt;
    Yes, it is! I love learning new things with you, Jenny.
&amp;lt;/voice&amp;gt;

&amp;lt;voice name="en-US-JennyNeural"&amp;gt;
    And I love sharing it with you, Aria! And remember, friends, keep being curious and asking questions. There's so much out there to discover!
&amp;lt;/voice&amp;gt;

&amp;lt;/speak&amp;gt;

# Notes

- Be sure to alternate voices for an engaging back-and-forth dialogue.
- Maintain an overall length for each script that would produce a 2-3 minute long audio.
- You may add other relevant voices if needed to enhance the storytelling, but always ensure they are in service to the topic’s narrative.
- The SSML structure should be correctly formed, as invalid XML will lead to errors during the TTS generation.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The prompts used for DALLE 3 were crafted based on the following detailed guidelines. These guidelines are specifically designed to generate cute and approachable illustrations tailored for children.&lt;/p&gt;

&lt;p&gt;Key aspects of these guidelines include:&lt;/p&gt;

&lt;h2&gt;
  
  
  Overall Tone:
&lt;/h2&gt;

&lt;p&gt;Creating a soft and gentle atmosphere that provides warmth and reassurance to children.&lt;/p&gt;

&lt;h2&gt;
  
  
  Specific Visual Elements:
&lt;/h2&gt;

&lt;p&gt;Including detailed instructions about the characters, scenes, and colors to be depicted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Simplicity and Friendliness:
&lt;/h2&gt;

&lt;p&gt;Avoiding complexity or anything frightening, while emphasizing cuteness and a heartwarming impression.&lt;br&gt;
Additionally, the prompts were constructed following these steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Summary of Key Elements:&lt;br&gt;
Concisely outline the main subject, characters, settings (location and background), and actions of the illustration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Selection of Friendly Language:&lt;br&gt;
Use clear and specific descriptions of charming elements such as "fluffy animals," "smiling children," or "soft pastel colors."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scene Setting:&lt;br&gt;
Suggest imaginative settings that excite children, like a "storybook village" or a "magical cloud world."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Character Descriptions:&lt;br&gt;
Provide detailed descriptions of the characters' expressions and features to enhance their approachability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Adjusting Sensory Details:&lt;br&gt;
Use expressions like "fluffy," "cozy," or "playful environment" to evoke a sense of softness and warmth.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create a prompt for DALLE 3 to generate an image based on a text description, emphasizing that the illustration should be cute, whimsical, and child-friendly.

Keep the following in mind:

- Imagery should be soft, approachable, and appropriate for children.
- Include specific visual elements, colors, characters, and settings that evoke warmth and friendliness.
- Refrain from anything that could appear frightening or overly complex.

# Steps 

1. Summarize the main components of the image to include key subjects, actions, and themes.
2. Use gentle, friendly language that specifies 'cute' elements, such as "cuddly animals," "smiling children," or "soft pastel colors." 
3. Add a setting that feels wholesome or magical, such as a "grassy meadow," "storybook village," or "fanciful cloud world."
4. Include friendly character descriptions, specifying expressions and playful features.
5. Adjust sensory details to evoke softness or gentleness (e.g., "fluffy," "cozy," "playful environment").

# Output Format

"Create an illustration of [main subject doing specific action] in a [setting description]. The illustration should be cute and child-friendly, with [light colors or specific tones]. The characters should be [appearance descriptors], and the scene should evoke feelings of [joy, warmth, safety, etc.]."

# Examples

**User Input**: "A dragon in the forest"

**DALLE Prompt**: "Create an illustration of a small, friendly dragon taking a nap in a sunlit forest clearing. The scene should be cute and child-friendly, with soft green colors, dappled sunlight, and playful animals like squirrels and birds nearby. The dragon should look cuddly, with round features and a gentle expression, evoking a sense of warmth and calm."

**User Input**: "A princess with a cat"

**DALLE Prompt**: "Create an illustration of a young princess sitting in a lovely garden, petting a smiling cat. The scene should be whimsical and child-friendly, with bright, cheerful colors like pinks, yellows, and greens. The princess should have a friendly expression, while the cat should look fluffy and comfortable, creating a sense of happiness and playfulness." 

**User Input**: "Space adventure"

**DALLE Prompt**: "Create an illustration of a young astronaut floating in space next to a friendly alien. They should both be smiling and waving towards each other. The scene should be cute and child-friendly, with bright stars and gentle pastel colors, and the spaceship in the background should be playful, resembling something from a child's dream."

# Notes

- The goal of the prompt is to ensure the AI generates images that are suitable for young children, avoiding sharp details, negative emotions, or anything that might be scary or unsettling.
- Focus on positive, nurturing interactions between characters.
- Colors should generally be bright, pastel, or soft, reinforcing a child-friendly tone.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How to Use
&lt;/h2&gt;

&lt;p&gt;Simply input a question like the following, and the AI will generate a story for you:&lt;/p&gt;

&lt;p&gt;Example Input:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm4xxarhgjnb7gv8j6yqv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm4xxarhgjnb7gv8j6yqv.png" alt="Image description" width="800" height="257"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Generated Output:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Audio:&lt;br&gt;
A touching story about a boy meeting Santa Claus and growing through their adventures together.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Image: &lt;br&gt;
A scene of Santa and the boy flying through the night sky.&lt;br&gt;
This process can be effectively utilized for creating children's podcasts or storybooks.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This workflow allows anyone to easily create stories and content for children. While we utilized Azure's TTS (Text-To-Speech) service for its high-quality audio generation, newer audio services like ElevenLabs can be integrated for further improvements. &lt;br&gt;
&lt;a href="https://elevenlabs.io/" rel="noopener noreferrer"&gt;https://elevenlabs.io/&lt;/a&gt;&lt;br&gt;
This flexibility enables users to select the best audio service based on their specific needs.&lt;/p&gt;

&lt;p&gt;Although this workflow was used to create content for children, Dify also supports file uploads. This feature can be leveraged to convert training materials or documents into podcast-style audio, making it an effective tool for learning during commutes or study sessions. Additionally, it can be used for promotional purposes, such as embedding corporate advertisements on websites.&lt;/p&gt;

&lt;p&gt;By harnessing AI technology, new creative possibilities emerge. We hope this workflow serves as inspiration for your creative projects, daily life, or even business applications. Give it a try and unlock its potential!&lt;/p&gt;

</description>
      <category>dify</category>
      <category>llm</category>
      <category>azure</category>
      <category>tts</category>
    </item>
    <item>
      <title>Use AI Tools with WSL! Step-by-Step Guide to Installing Dify on Windows 11</title>
      <dc:creator>Works AI_Makoto</dc:creator>
      <pubDate>Sun, 17 Nov 2024 14:06:27 +0000</pubDate>
      <link>https://dev.to/works_ai_makoto_a67a7ff7e/use-ai-tools-with-wsl-step-by-step-guide-to-installing-dify-on-windows-11-2doe</link>
      <guid>https://dev.to/works_ai_makoto_a67a7ff7e/use-ai-tools-with-wsl-step-by-step-guide-to-installing-dify-on-windows-11-2doe</guid>
      <description>&lt;p&gt;Dify is a platform that allows users to easily create AI-powered tools without needing programming knowledge. Through a visual interface, users can build AI workflows by simply dragging and dropping, helping to improve business efficiency and automate tasks.&lt;/p&gt;

&lt;p&gt;Here is the GitHub page for Dify.&lt;br&gt;
To run Dify, you'll need Docker and Docker Compose.&lt;br&gt;
&lt;a href="https://github.com/langgenius/dify" rel="noopener noreferrer"&gt;https://github.com/langgenius/dify&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I referred to the following site for the Docker installation.&lt;br&gt;
&lt;a href="https://docs.docker.com/engine/install/ubuntu/" rel="noopener noreferrer"&gt;https://docs.docker.com/engine/install/ubuntu/&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Install Docker
&lt;/h1&gt;
&lt;h2&gt;
  
  
  Add Docker Repository
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release &amp;amp;&amp;amp; echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null
sudo apt-get update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Install Docker Package
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Verify Docker Service Start
&lt;/h1&gt;
&lt;h2&gt;
  
  
  Confirm Successful Installation of Docker Engine
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo docker run hello-world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Add User to Docker Group
&lt;/h1&gt;
&lt;h2&gt;
  
  
  Add the Current User to the Docker Group
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo usermod -aG docker $USER
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Reload the current shell session to apply changes to the docker group.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;newgrp docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I referred to the following site for installing Docker Compose.&lt;br&gt;
&lt;a href="https://docs.docker.com/compose/install/linux/" rel="noopener noreferrer"&gt;https://docs.docker.com/compose/install/linux/&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Install Docker Compose
&lt;/h1&gt;
&lt;h2&gt;
  
  
  Install the docker-compose-plugin.
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get install docker-compose-plugin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Verify that the docker-compose-plugin has been installed.&lt;/p&gt;

&lt;p&gt;If "Docker Compose version vN.N.N" is displayed, the docker-compose-plugin has been successfully installed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker compose version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Install Dify
&lt;/h1&gt;

&lt;p&gt;Clone the Dify repository from GitHub.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/langgenius/dify.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Move to the directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd dify/docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy the environment file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cp .env.example .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start Dify using Docker Compose.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Access the following URL and verify that the Dify login screen is displayed.&lt;br&gt;
Right after the containers start, the page may not load correctly, so if that happens, please refresh your browser.&lt;br&gt;
&lt;a href="http://localhost/install" rel="noopener noreferrer"&gt;http://localhost/install&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F56vrit692x9pjhlcb575.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F56vrit692x9pjhlcb575.png" alt="Image description" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This blog content is available as a video on YouTube at the link below:&lt;br&gt;
&lt;a href="https://youtu.be/dK1sOVxACSo" rel="noopener noreferrer"&gt;https://youtu.be/dK1sOVxACSo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>dify</category>
      <category>ai</category>
      <category>llm</category>
    </item>
  </channel>
</rss>
