> For the complete documentation index, see [llms.txt](https://docs.digitalhumans.jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digitalhumans.jp/dev/miniprem/services/flowise.md).

# Flowise

{% hint style="info" %}
本ページの内容はデジタルヒューマン株式会社の正式サポート対象外です。参考情報としてご利用ください。
{% endhint %}

{% hint style="info" %}
**Flowise:** ミニプレム（MiniPrem）向けのビジュアル AI ワークフロービルダーです。ドラッグアンドドロップのインターフェースを介して、vLLM、メモリノード、会話チェーンを `http://localhost:3000` で接続できます。
{% endhint %}

Flowise は、AI ワークフローを作成・管理するためのビジュアルインターフェースを提供します。本ガイドでは、vLLM 連携を用いた Flowise のセットアップと使い方を解説します。

## Flowise へのアクセス

* **URL**: <http://localhost:3000>
* **デフォルト認証情報**:
  * ユーザー名: `user`
  * パスワード: `password`

## Flowise の主要概念

* **Chatflows（チャットフロー）**: 会話ワークフローのビジュアル表現です
* **Nodes（ノード）**: プロンプト、モデル、メモリなど、特定の機能を実行するコンポーネントです
* **Edges（エッジ）**: ノード間の接続で、データの流れを定義します
* **API**: チャットフローとプログラム的にやり取りするための RESTful エンドポイントです

## vLLM を用いたチャットフローの作成

### 1. Flowise UI へのアクセス

1. ブラウザを開き、次の URL にアクセスしてください: <http://localhost:3000>
2. ユーザー名 `user`、パスワード `password` でログインしてください

### 2. 新規チャットフローの作成

1. サイドバーの「Chatflows」をクリックしてください
2. 「+」ボタンをクリックして新しいチャットフローを作成してください
3. チャットフローに名前を付けてください（例: 「vLLM Gemma3 Chatflow」）

### 3. ノードの追加と設定

#### System Prompt ノード

1. ノードパネルから「System Prompt」ノードをキャンバスへドラッグアンドドロップしてください
2. 次の内容でノードを設定してください:
   * Prompt: "You are a helpful assistant powered by Gemma3. Provide concise and accurate responses."

#### vLLM ノード

1. ノードパネルから「vLLM」または「OpenAI Compatible」ノードをキャンバスへドラッグアンドドロップしてください
2. 次の内容でノードを設定してください:
   * Base URL: `http://vllm:8000/v1` （localhost ではなく、Docker コンテナ名を使用してください）
   * Model: `gemma-3-4b`
   * Temperature: `0.7`
   * Max Tokens: `1000`
   * その他の設定はデフォルト値のままにしてください

#### Buffer Memory ノード

1. ノードパネルから「Buffer Memory」ノードをキャンバスへドラッグアンドドロップしてください
2. 次の内容でノードを設定してください:
   * Memory Key: `chat_history`
   * Return Messages: `true` （チェック）
   * Max Token Limit: `2000`

#### Conversation Chain ノード

1. ノードパネルから「Conversation Chain」ノードをキャンバスへドラッグアンドドロップしてください
2. 追加の設定は不要です

#### Chat Trigger ノード

1. ノードパネルから「Chat Trigger」ノードをキャンバスへドラッグアンドドロップしてください
2. 追加の設定は不要です

### 4. ノードの接続

次のとおりにノードを接続してください:

1. System Prompt → Conversation Chain （"prompt" から "systemPrompt" へ）
2. vLLM → Conversation Chain （"model" から "llm" へ）
3. Buffer Memory → Conversation Chain （"memory" から "memory" へ）
4. Conversation Chain → Chat Trigger （"output" から "input" へ）

### 5. 保存とテスト

1. 右上の「Save」ボタンをクリックしてください
2. 「Chat」ボタンをクリックしてチャットフローをテストしてください

## Flowise API の利用

Flowise API を通じて、作成したチャットフローとやり取りできます。

### 認証

API リクエストには、次のヘッダーを追加してください:

```
"Authorization: Bearer YOUR_DEFAULT_TOKEN_HERE"
```

### チャットフローの予測エンドポイント

チャットフローへリクエストを送信するには、次のエンドポイントを使用します:

```
POST http://localhost:3000/api/v1/prediction/{chatflow-id}
```

リクエストボディの例:

```json
{
  "question": "こんにちは、自己紹介してください。",
  "overrideConfig": {
    "sessionId": "user-session-001"
  }
}
```

レスポンス例:

```json
{
  "text": "こんにちは。私は Gemma3 を搭載したアシスタントです。本日はどのようなご用件でしょうか。",
  "sessionId": "user-session-001"
}
```

### cURL による呼び出し例

```bash
curl -X POST http://localhost:3000/api/v1/prediction/<chatflow-id> \
  -H "Authorization: Bearer YOUR_DEFAULT_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "こんにちは、自己紹介してください。",
    "overrideConfig": {
      "sessionId": "user-session-001"
    }
  }'
```

### Python による呼び出し例

```python
import requests

API_URL = "http://localhost:3000/api/v1/prediction/<chatflow-id>"
HEADERS = {
    "Authorization": "Bearer YOUR_DEFAULT_TOKEN_HERE",
    "Content-Type": "application/json",
}

payload = {
    "question": "こんにちは、自己紹介してください。",
    "overrideConfig": {"sessionId": "user-session-001"},
}

response = requests.post(API_URL, headers=HEADERS, json=payload)
print(response.json())
```

## デジタルヒューマンとの連携

Flowise で構築したチャットフローは、デジタルヒューマンの会話バックエンドとして利用できます。

1. Flowise で対象のチャットフロー ID を確認してください
2. デジタルヒューマン側の設定で、会話エンドポイントを Flowise の予測 API に切り替えてください
3. セッション ID をデジタルヒューマンのセッションと一致させることで、会話履歴を継続できます

## トラブルシューティング

### Flowise UI に接続できない

* Docker コンテナが起動しているか確認してください: `docker ps | grep flowise`
* ポート `3000` が他のサービスで使用されていないか確認してください
* コンテナのログを確認してください: `docker logs flowise`

### vLLM への接続が失敗する

* Base URL に `localhost` ではなく Docker コンテナ名（`vllm`）を指定しているか確認してください
* vLLM コンテナが起動しており、`/v1/models` エンドポイントが応答するか確認してください
* 同一の Docker ネットワークに Flowise と vLLM が接続されているか確認してください

### チャットフローのレスポンスが遅い

* vLLM 側の GPU リソース使用率を確認してください
* `Max Tokens` の値を下げて、生成トークン数を制限してください
* `Buffer Memory` の `Max Token Limit` を調整して、コンテキスト長を最適化してください

## 参考リンク

* [Flowise 公式ドキュメント](https://docs.flowiseai.com/)
* [vLLM 公式ドキュメント](https://docs.vllm.ai/)
