Difyのテキストジェネレーターを使って誰でも簡単にAIアプリを作成する方法を、初心者にも分かりやすく解説します。2024年最新ドキュメントを元に進めていきますので、是非最後まで読んでみてください!
1. Difyとは
誰でも簡単にAIアプリを作成できるOSSのAIアプリ開発プラットフォームです。
DifyはオープンソースのAIアプリ開発プラットフォームです。 Backend as ServiceとLLMOpsの理念を融合し、開発者が迅速にAIアプリケーションを構築できるようにします。 同時に、プログラミングが得意でない方でも、自分のアイデアをすぐにAIアプリにできる直感的なインターフェースを提供しています。
2. テキストジェネレーターとは
Difyのテキストジェネレーターは、プロンプトを操作することで様々なアプリを簡単に作成できます。
例えば、翻訳アプリ、プログラミングコード生成アプリ、議事録作成アプリなどを作成することができます。チャットボットと異なり、ユーザーとAIとの連続した会話はありません。
テキスト生成型アプリケーションは、ユーザーが提供するプロンプトに基づいて高品質のテキストを自動生成するアプリケーションです。記事の要約や翻訳など、さまざまなタイプのテキストを生成することができます。
テキスト生成型アプリケーションは以下の機能をサポートしています:
- 一回実行。
- バッチ実行。
- 実行結果の保存。
- より類似した結果の生成。
3. アプリの作成
まずはアプリを作成します。めちゃめちゃ簡単です。
- Difyにログイン(アカウントがない場合は新規登録)します。
- スタジオ(https://cloud.dify.ai/apps)からアプリを作成します。
- 画面左のアプリを作成するの項目のうち、「最初から作成」をクリックします。
- テキストジェネレーターを選択し、アプリの名前を入力したら「作成する」をクリックします。
これでアプリが作成できました!簡単ですね。
4. 翻訳アプリを作成してみる
今回は多言語対応した翻訳アプリを作成することにします。手順を以下で紹介します。
4-1. プロンプト設定
多言語対応した翻訳ができるようにプロンプトを設定します。ユーザーが入力した内容(Content)を翻訳語の言語(Langage)へ翻訳するよう指示指示しています。
ユーザーが入力する内容と翻訳語の言語は変数を利用していますので、次のステップで変数設定をします。
以下の文章を{{Langage}}}に翻訳してください:
{{Content}}
翻訳する際は、以下の点に注意してください:
1. 原文の意味を正確に伝えること
2. 自然で流暢な{{Langage}}}になるよう心がけること
3. 文化的な違いがある場合は、適切に調整すること
4. 専門用語や固有名詞がある場合は、適切に処理すること
翻訳結果のみを出力し、説明は不要です。
4-2. 変数を設定
多言語対応させるためにプロンプトで利用するための変数を設定します。
今回は上記プロンプトで使用している「Content」「Langage」を変数として利用しています。設定内容は下表、図をご確認ください。
変数キー | ユーザー入力フィールド名 | フィールドタイプ |
---|---|---|
Content | 翻訳したい言葉 | 短文 |
Langage | 翻訳後の言語 | 選択(英語、スペイン語、中国語、韓国語、ドイツ語) |
こちらがLangageの変数設定内容。
変数を設定した後の「ユーザー入力フィールド」は下図となります。きちんと入力できるようになっていますね。
4-3. アプリ(翻訳)を実行
先ほど設定した翻訳したい言葉と翻訳後の言語を確認して「実行」をクリックする。出力テキストに英語に翻訳したテキストが生成されていることが確認できます。
右上の「公開→アプリを実行」をクリックすることでプレビュー画面ではなく、実際にユーザーが使用する画面を確認することもできます。
4-4. 1回きりの実行
これまでに紹介した翻訳アプリは1回きりの実行で、複数回試すには「翻訳したい言葉」「翻訳後の言語」を変更の上実行する必要があります。
翻訳する際に複数テキストをまとめて翻訳したい場合があると思います。次のステップで複数のテキストをまとめて翻訳する方法を紹介します。
5. バッチ実行(一括実行):複数テキストを処理
上記で話題に出した複数テキストを翻訳する場合、これまでの方法だと翻訳したい言葉を都度変更の上実行する必要があります。まとめてアプリで処理するためにはバッチ実行というものを利用します。
5-1. バッチ実行(一括実行)の設定
「公開→アプリを実行」をクリックした後、「一括実行」の画面に遷移します。CSVファイルをアップロードする画面が表示されていることが確認できます。
5-2. CSVファイルのアップロード
バッチ処理(一括実行)をするためにはCSVファイルが必要なので作成しアップロードします。まずは以下の形式でCSVファイルを作成します。
下図の「テンプレートをダウンロード」すると以下の形式だったのでそれに従い作成します。
■テンプレート内容
翻訳したい言葉,翻訳後の言語
,
作成したCSVファイル(今回はbatch.csv)をアップロードします。
■batch.csv
翻訳したい言葉,翻訳後の言語
ビックマック食べたい,英語
ビックマック食べたい,スペイン語
ビックマック食べたい,中国語
ビックマック食べたい,韓国語
ビックマック食べたい,ドイツ語
朝は眠い,ドイツ語
ラーメンおいしい,中国語
今日は天気がいい,韓国語
友達と映画を見に行く,スペイン語
コーヒーが欲しい,英語
週末は何をする?,ドイツ語
アップロードするとCSVファイル部分にファイル名が表示されます。
5-3. アプリの実行
作成したCSVファイル(今回はbatch.csv)をアップロードし「実行」すると下図のような結果となり、CSVファイルに入力したテキストに適応した翻訳後のテキストが表示されていることがわかります。
一応韓国語とかも確認してみましたが、あっていそうです。
6. 実行結果のダウンロード:バッチ実行(一括実行)
バッチ実行(一括実行)結果をダウンロードすることもできます。結果の右上の「ダウンロード」をクリックすると「result.csv」という名前で出力されます。
出力されたファイルを確認するとアプリが生成した翻訳後のテキストが新しい行として挿入されていることが確認できます。
■result.csv
翻訳したい言葉,翻訳後の言語,Completion 結果
ビックマック食べたい,英語,I want to eat a Big Mac.
ビックマック食べたい,スペイン語,Quiero comer una Big Mac.
ビックマック食べたい,中国語,我想吃汉堡。
ビックマック食べたい,韓国語,빅맥을 먹고 싶어요.
ビックマック食べたい,ドイツ語,Ich möchte einen Big Mac essen.
朝は眠い,ドイツ語,Am Morgen bin ich müde.
ラーメンおいしい,中国語,拉面很好吃。
今日は天気がいい,韓国語,오늘은 날씨가 좋아.
友達と映画を見に行く,スペイン語,Ir al cine con amigos.
コーヒーが欲しい,英語,I want coffee.
週末は何をする?,ドイツ語,Was machst du am Wochenende?
7. 回答結果の保存
AIによる回答結果を保存したいことがあるかと思います。テキストジェネレーターでもAIの回答を保存する機能があります。
7-1. 回答を保存する
先ほどもお見せしたAIの回答をよく見ると「コピー」「保存」という項目があるので「保存」をクリックします。今回は英語の「I want to eat a Big Mac.」を保存しました。
7-2. 保存した回答を確認する
「保存済み」のタブがあるので遷移すると、上記で保存した回答を確認することができます。便利ですね。
8. より類似した結果の生成(これに似たもの)
より類似した結果(これに似たもの)の生成では、現在の結果と似た内容を生成することができます。
8-1. 機能を有効化する
機能を有効化すると「これに似たもの」という機能が新たに表示されていることが確認できます。「この機能を使用すると、追加のトークンオーバーヘッドが発生します」とあるとおりLLMのトークンを消費します。
8-2. より類似した結果の生成を試してみる
機能を有効化してアプリを実行してみると、「コピー」「保存」に加え、「これに似たもの」が選択肢として表示されます。
「これに似たもの」をクリックすると、別の回答が表示されます。ただ、今回は文章が簡単すぎたのか全く同じ回答が表示されています。
8-3. より類似した結果の生成を試してみる(リベンジ)
「今日は良い天気で近くの公園に散歩に行きました。」を英語に翻訳して「これに似たもの」をクリックしたところ下図のとおり回答がありました。似た文脈で別の回答が生成されていることがわかると思います。
9. その他機能の追加
これまでに紹介した機能以外に「テキストから音声へ」「コンテンツのモデレーション」機能がありますが、テキスト読み上げ機能は以前の記事で紹介したため省略させていただきます。モデレーション機能はまた別の記事で紹介したいと思います。
10. まとめ
Difyのテキストジェネレーターを使用することで、プログラミングスキルがなくても、翻訳アプリや各種テキスト生成アプリを簡単に作成・カスタマイズできます。これにより業務効率の改善などにつなげることができると思うので是非挑戦してみてください。