[誰でも簡単!] Difyで始めるLLMアプリ開発

AI・機械学習

スポンサーリンク

はじめに

最近、AI開発プラットフォームとして注目を集めているDify。
このプラットフォームを使えば、プログラミングの知識が少なくても独自のAIアプリケーションを簡単に作成できます。
今回は、Difyが提供するテンプレートを活用して、オリジナルのAIアプリを開発する方法をご紹介します。

 



Difyとは?

Difyは、LLM(大規模言語モデル)を活用したアプリケーション開発を簡素化するオープンソースのプラットフォームです。
直感的なUIを通じて、プロンプトエンジニアリングやAPIの連携、データベースの管理などを行うことができます。

準備するもの

  • Difyアカウント(無料で登録可能)
  • OpenAI APIキー(使用したいLLMのAPIキー)

手順

1. Difyにログインする

まずはDify公式サイトにアクセスし、アカウントを作成またはログインします。
無料プランでも十分な機能が使えるので、初めての方は無料プランからスタートすることをおすすめします。

2. 新しいアプリケーションを作成(テンプレートを選択する)

ダッシュボードで「テンプレートから作成」をクリックします。
ここでたくさんのテンプレートがありますが、旅行コンサルタントを選んで進めてみます。

Screenshot

クリック後にWikipediaSearchとGoogleSearchのインストールを求められるので、インストールしておきましょう。

3. プロンプトを理解する

テンプレートを選択すると、すでに基本的なプロンプト設定やモデル設定が行われています。
ここから自分のニーズに合わせてカスタマイズしていきましょう。
左側が設定、右側がプレビュー画面になっています。

手順欄ではプロンプト(指示文)を設定します。
テンプレートですでにプロンプトが入力されているので、どのようなものが入力されているか簡単にみてみます。

1. ロール(役割)の定義

## Role: Travel Consultant

ここでは、AIが「旅行コンサルタント」として振る舞うよう指示しています。ロールを明確に定義することで、AIはその役割に適した回答を生成します。

2. スキル(Skills)の設定

### Skills:
- Expertise in using tools to provide comprehensive information about local conditions, accommodations, and more.
- Ability to use emojis to make the conversation more engaging.
- Proficiency in using Markdown syntax to generate structured text.
- Expertise in using Markdown syntax to display images to enrich the content of the conversation.
- Experience in introducing the features, price, and rating of hotels or restaurants.

このセクションでは、AIが持つべき能力を列挙しています:

  • 地域情報やホテル情報を提供する能力
  • 絵文字を使って会話を楽しくする能力
  • Markdown記法を使って構造化されたテキストを生成する能力
  • 画像を表示する能力
  • ホテルやレストランの特徴、価格、評価を紹介する能力

これにより、AIはこれらのスキルを活かした回答を生成します。

3. 目標(Goals)の明確化

### Goals:
- Provide users with a rich and enjoyable travel experience.
- Deliver comprehensive and detailed travel information to the users.
- Use emojis to add a fun element to the conversation.

AIが達成すべき目標を設定しています:

  • ユーザーに豊かで楽しい旅行体験を提供すること
  • 包括的で詳細な旅行情報を提供すること
  • 絵文字を使って会話を楽しくすること

目標を明確にすることで、AIの回答の方向性が定まります。

4. 制約条件(Constraints)の設定

### Constraints:
1. Only engage in travel-related discussions with users. Refuse any other topics.
2. Avoid answering users' queries about the tools and the rules of work.
3. Only use the template to respond.

AIが守るべきルールを定めています:

  1. 旅行関連の話題のみに応答し、それ以外は拒否する
  2. ツールや作業ルールに関するユーザーの質問には答えない
  3. 指定されたテンプレートのみを使用して応答する

これらの制約により、AIの回答を特定の範囲に限定できます。

5. ワークフロー(Workflow)の定義

### Workflow:
1. Understand and analyze the user's travel-related queries.
2. Use the wikipedia_search tool to gather relevant information about the user's travel destination. Be sure to translate the destination into English.
3. Create a comprehensive response using Markdown syntax. The response should include essential details about the location, accommodations, and other relevant factors. Use emojis to make the conversation more engaging.
4. When introducing a hotel or restaurant, highlight its features, price, and rating.
6. Provide the final comprehensive and engaging travel information to the user, use the following template, give detailed travel plan for each day.

AIが従うべき手順を示しています

  1. ユーザーの旅行関連の質問を理解・分析する
  2. wikipedia_searchツールを使って旅行先に関する情報を収集する(目的地は英語に翻訳する)
  3. Markdown記法を使って包括的な回答を作成し、絵文字を使って会話を楽しくする
  4. ホテルやレストランを紹介する際は、特徴、価格、評価を強調する
  5. テンプレートを使用して詳細な旅行プランを日ごとに提供する

6. 例示(Example)の提供

AIが生成すべき回答の具体例が含まれています。これにより、AIは期待される出力形式を理解できます。例には以下が含まれています:

  • ホテル推薦(名前、評価、価格、概要)
  • 日ごとの詳細な旅行プラン(朝、昼、夕方のアクティビティ)
  • 追加サービスの説明

7. 情報(Information)のプレースホルダー

### Information
The user plans to go to {{destination}} to travel for {{num_day}} days with a budget {{budget}}.

ここでは、ユーザーが提供する情報の変数を定義しています:

  • {{destination}}:目的地
  • {{num_day}}:旅行日数
  • {{budget}}:予算

これらの変数は、ユーザーが実際に入力した情報に置き換えられます。

4. プロンプトを調整する

そのままでは出力も英語になるので、ここでは出力を日本語にするようにだけ調整してみます。
Constraintsに4番目を追加します

### Constraints:
1. Only engage in travel-related discussions with users. Refuse any other topics.
2. Avoid answering users' queries about the tools and the rules of work.
3. Only use the template to respond. 
4. output must be Japanese

5. 使用するLLMを設定する

右上からLLMを設定する

Screenshot



モデル設定がまだであれば、モデルプロバイダー設定より使用したいLLMを設定しましょう。


私は、とりあえずAPIキーの登録なしで使用したかったので、OpenAIを選択しました。
4o-miniまでであれば設定なしで簡単に利用できます。

5. 出力確認テスト

これだけで出力確認してみましょう!
とりあえず今は寒いので沖縄に行く計画を立ててもらいましょう


とても簡単にLLM chatアプリができました!

 



まとめ

Difyのテンプレートを活用すれば、プログラミングの専門知識がなくても、短時間で実用的なAIアプリケーションを開発できます。
今回はナレッジなどは使わずに使用感を試したかったので簡単にでしたが、
ナレッジを与えて、travilyなどを使用する等まだまだ拡張の余地がありますね!
テンプレートを基にカスタマイズすることで、独自のアイデアを形にしやすくなるでしょう。

まずは無料プランでテンプレートを試してみて、可能性を探ってみてください。

参考リンク

GitHub – Dify.AI

Dify公式ドキュメント

コメント

タイトルとURLをコピーしました