> For the complete documentation index, see [llms.txt](https://docs.allganize.ai/alli-llm-app-market/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.allganize.ai/alli-llm-app-market/first/start-guide/hands-on-b-llm-app.md).

# 5. 【ハンズオンB】LLM実行型アプリを作る

ドキュメント検索回答（RAG）を使わず、**LLMの能力だけで動く対話型アプリ**を**30分で作成します**。\
文章のブラッシュアップ・LLMとのアイディア壁打ち・ユーザーが会話上でアップロードしたドキュメントの処理などに適しています。

## 5-1. この章で作成するアプリ <a href="#app-to-build" id="app-to-build"></a>

「**入力されたメモテキストから議事録を作成する会話型アプリ」**&#x3092;作成します。

{% hint style="success" %}
💡 **アプリの設計に迷ったら**：アプリマーケットには「音声からファイルから議事録作成」「アップロードしたドキュメントに任意の指示」「契約書条項の抽出と比較」など、RAGを使わない会話型アプリのテンプレートが多数あります。\
ご参考：[デフォルトアプリ](/alli-llm-app-market/manual/for_admin/default-apps.md)
{% endhint %}

{% stepper %}
{% step %}

### 会話型アプリを新規作成 <a href="#create-new-app" id="create-new-app"></a>

1. 左メニューから **「アプリ管理」** を開く
2. **\[+新しいアプリを作成]** をクリック
3. **\[会話型アプリを作成]** を選択

<figure><img src="/files/dl8s0iEoHSdw4h6KjhKC" alt=""><figcaption></figcaption></figure>

4. アプリ名を入力（例：`メモテキストから議事録作成＿スタートガイド検証`）\
   ※アプリ名入力後は、キーボードで\[Enter]ボタンを押すとアプリ名が保存されます

<figure><img src="/files/XMNLilUrP6nLH0pvWpC4" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### 会話応答ノードを設置 <a href="#place-conversation-node" id="place-conversation-node"></a>

ユーザーが入力したメモを受け取り、変数として保存するため「**会話応答ノード」**&#x3092;設置します。\
ここで保存した内容を、次のステップのLLM実行ノードへ渡します。

1. チャットフロー編集画面の上部パネルか&#x3089;**「会話応答ノード」**&#x3092;選択
2. **Startノード → 会話応答ノード** の順に線でつなぐ
3. 会話応答ノードを以下のとおり設定する

<figure><img src="/files/O6dm5nyc4qqFeacKw6Ab" alt=""><figcaption></figcaption></figure>

| 設定項目        | 設定例                                 |
| ----------- | ----------------------------------- |
| メッセージ       | 「議事録にしたいメモや文字起こしを貼り付けてください。」と入力     |
| 応答追加        | ON                                  |
| 応答形式        | テキスト                                |
| 応答内容を保存する変数 | <p>＠QUERY　<br>※任意の文字列タイプの変数でも可能</p> |

{% hint style="info" %}
**変数とは？**（このあとも登場します）

変数は、ユーザーが入力した内容やLLMの応答結果を一時的に入れておく「名前付きの箱」です。\
会話応答ノードで受け取ったメモを「@QUERY」という箱に入れておくと、後続のノードから「@QUERY の中身」として何度でも呼び出せます。\
\
このアプリでは、Step 2の会話応答ノードでユーザーのメモを @QUERY に保存し、Step 4のLLM実行ノードのプロンプト内に {QUERY} の記載を挿入します。\
これにより「ユーザーが貼り付けたメモ」がそのままプロンプトに渡され、議事録が生成されます。\
\
※変数に関する詳細の仕様は、[ユーザーガイド > プロジェクト設定 > 変数 ](/alli-llm-app-market/manual/project-settings/variables.md)をご参照ください
{% endhint %}
{% endstep %}

{% step %}

### LLM実行ノードを設置 <a href="#place-llm-node" id="place-llm-node"></a>

プロンプトベースでLLMを実行す&#x308B;**「LLM実行ノード」**&#x3092;設置します。

1. チャットフロー編集画面の上部パネルから、**「LLM実行ノード」**&#x3092;選択
2. **Startノード → 会話応答ノード → LLM実行ノード** の順に線でつなぐ
3. LLM実行ノードを以下のとおり設定する

<figure><img src="/files/zK6l2L5AizBr4OJngEJA" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="162.70367431640625">設定項目</th><th width="253.1851806640625">設定例</th><th>補足</th></tr></thead><tbody><tr><td>ベースモデル</td><td>利用可能なモデルからご自由にお選びください</td><td>1つ選んでまず動作確認。<br>※社内指針等に応じて適切なモデルを設定してください</td></tr><tr><td>プロンプト</td><td>※次のステップで説明</td><td>作成済みのプロンプトを利用する場合は、プルダウンで対象プロンプトを選択</td></tr><tr><td>生成された結果でメンバーに回答</td><td>ON</td><td>LLMの生成結果をチャット上に表示する機能</td></tr></tbody></table>
{% endstep %}

{% step %}

### プロンプトを作成/設定する <a href="#create-prompt" id="create-prompt"></a>

アウトプット生成の核となる**プロンプト**を作成し、「LLM実行ノード」に設定します。

1. **LLM実行ノードの設定画面内のプロンプト欄で\[＋追加]を押す**

<figure><img src="/files/946djaOUbvrsxBOEhXux" alt=""><figcaption></figcaption></figure>

2. **プロンプト内で用いる変数を先に追加する：**
   1. プロンプト作成画面下部にある、動的インプット欄の\[+追加]を押す\
      ![](/files/sL6rU2xcrzpv2vB0MvcV)
   2. 「変数の値を設定」欄で、会話応答ノード（ステップ2）で設定した変数「@QUERY」を選択する
   3. 「項目」欄にプロンプト内でのこの変数の表示名を記入する（例：`QUERY`）\
      ※基本的には変数名と同じ文字列の入力で大丈夫です\
      ![](/files/DxnWim78Wxx5pTp0x164)
   4. \[追加]ボタンを押す
3. **プロンプト名を入力する**（例：`メモテキストから議事録作成`）
4. **プロンプトの説明文を入力する**（任意）\
   （例：`ユーザーが入力したメモや文字起こしから議事録を作成。`）
5. **プロンプト内容を入力する：**\
   以下の内容をそれぞれシステムプロンプト、ユーザープロンプトに入力する

▼プロンプト内容(システム)

```
# 役割
あなたは、会議メモや文字起こしを、正確で読みやすい議事録に整理するプロのビジネスアシスタントです。
ユーザーから渡される未整形のメモ（会議メモ・文字起こし）を読み取り、
社内で共有できる議事録に整理してください。

# 出力フォーマット
以下の見出し構成で、Markdown形式で出力してください。
該当する情報がない見出しは省略して構いません。

## 会議概要
- 日時・参加者など、メモから読み取れる基本情報を記載

## 決定事項
- 会議で確定した事項を箇条書きで記載

## ネクストアクション（ToDo）
| 担当 | 内容 | 期限 |
|---|---|---|
- メモから読み取れるタスクを表に整理する

## 論点・申し送り事項
- 決定に至らなかった論点、懸念、保留事項を記載

# ルール
- メモに書かれていない事実・数値・固有名詞を創作しない
- 担当・期限が不明な場合は、断定せず「未定」または「要確認」と記載する
- 口語や言い回しは、簡潔なビジネス文体に整える
- 1項目1文を目安に、要点を簡潔にまとめる
```

▼プロンプト内容(ユーザー)　\
※変数の入力は、プロンプト入力欄の下部にあるグレーのチップを選択して入力可能です

```
# メモ
{QUERY}
```

{% hint style="success" %}
**💡システムプロンプトとユーザープロンプトの使い分け**

プロンプト作成画面は、役割の違う2つの欄に分かれています。

**■システムプロンプト：**\
AIの「役割・前提・守るべきルール」など動作の土台を記載する欄です。会話全体を通して効き続け、毎回変わらない指示を書きます。\
このアプリでは「あなたはプロのビジネスアシスタントです」という役割や、議事録の整理ルールがこれにあたります。

**■ユーザープロンプト：**\
AIに実際に処理してほしい「その都度の入力」を記載する欄です。ここに変数 `{QUERY}`（ユーザーが貼り付けたメモ）を置くことで、入力されたメモが毎回ここに差し込まれて処理されます。

**使い分けの考え方：**&#x5909;わらない指示（役割・ルール）」はシステムプロンプトへ、「毎回変わる入力データ」はユーザープロンプトへ、と分けます。両者を分離しておくと、動作ルールと処理対象のコンテキスト情報をAIが判別しやすくなり、出力が安定しやすくなります。
{% endhint %}

{% hint style="success" %}
💡 プロンプト設計のコツは [プロンプト作成の基礎](https://docs.allganize.ai/alli-llm-app-market/practice/basics-of-prompt) を参照してください。
{% endhint %}

6. **入力が完了したら、\[作成]ボタンを押す**
   {% endstep %}

{% step %}

### LLM実行ノードの設定を保存する <a href="#save-llm-node" id="save-llm-node"></a>

プロンプトの反映が完了したら、LLM実行ノードの設定画面下部&#x306E;**\[更新]**&#x3092;押す

<figure><img src="/files/ulBRBGyNr2VAwbW5gSa3" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### プレビューで動作確認 <a href="#preview-and-test" id="preview-and-test"></a>

1. 画面右上の **「プレビュー」** をクリック

<figure><img src="/files/kfB9XGgpzopekhSY1fZV" alt=""><figcaption></figcaption></figure>

2. 議事録のもとになるメモや文字起こしのサンプルを入力

<figure><img src="/files/oihFDMEXCb5YXe8oDLkC" alt=""><figcaption></figcaption></figure>

3. AIが生成した議事録を確認（「決定事項」「ToDo（担当・期限）」「議論の要点」に整理されているか）

<figure><img src="/files/pX7kpGzVtnzXzaC0nTYP" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}

### 期待通りに出力されないとき

* プロンプトの指示が曖昧 → ルールを具体化（例：「担当と期限を必ず明記」「議論の要点は3点以内」）
* モデルを変更して出力を比較
* 改善しない場合は「[プロンプト作成の基礎](/alli-llm-app-market/practice/basics-of-prompt.md)」を参照
  {% endhint %}
  {% endstep %}

{% step %}

### 下書き保存 <a href="#save-draft" id="save-draft"></a>

* チャットフローの編集内容は、**自動保存**されます。
* アプリ管理画面に戻り、「ドラフト」タブに作成したアプリが保存されていることを確認します。
* 公開作業は [6章 ](/alli-llm-app-market/first/start-guide/publish-and-share.md)で行います　※チャットフロー上から公開を進めることも可能です。
  {% endstep %}
  {% endstepper %}

## 5-2. ここまでで完成するもの <a href="#what-you-built" id="what-you-built"></a>

✅ RAGを使わず、LLMの性能のみで動く会話型アプリの**ドラフト版**（公開はまだ）

ここまでで、RAG型（4章）と合わせれば、Alliで作成できる代表的な2タイプの会話型アプリを経験したことになります。

## ✅この章のチェックリスト <a href="#checklist" id="checklist"></a>

* [ ] 会話型アプリを新規作成した
* [ ] 会話応答ノード＋LLM実行ノードでフローを構築した
* [ ] プロンプトを記述し、ユーザー入力変数を埋め込んだ
* [ ] プレビューで動作確認した
* [ ] ドラフトに保存した


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.allganize.ai/alli-llm-app-market/first/start-guide/hands-on-b-llm-app.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
