mirror of
https://github.com/langgenius/dify-docs.git
synced 2026-03-27 13:28:32 +07:00
Merge branch 'docs/knowledge' into docs/migration-3.17
This commit is contained in:
31
docs.json
31
docs.json
@@ -82,7 +82,8 @@
|
||||
"en-us/user-guide/build-app/flow-app/shotcut-key",
|
||||
"en-us/user-guide/build-app/flow-app/orchestrate-node",
|
||||
"en-us/user-guide/build-app/flow-app/file-upload",
|
||||
"en-us/user-guide/build-app/flow-app/additional-features"
|
||||
"en-us/user-guide/build-app/flow-app/additional-features",
|
||||
"en-us/user-guide/build-app/flow-app/application-publishing"
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -121,9 +122,11 @@
|
||||
{
|
||||
"group": "Management",
|
||||
"pages": [
|
||||
"en-us/user-guide/management/app-management",
|
||||
"en-us/user-guide/management/team-members-management",
|
||||
"en-us/user-guide/management/personal-account-management"
|
||||
"en-us/management/app-management",
|
||||
"en-us/management/team-members-management",
|
||||
"en-us/management/personal-account-management",
|
||||
"en-us/management/subscription-management",
|
||||
"en-us/management/version-control"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -296,7 +299,8 @@
|
||||
},
|
||||
"zh-cn/user-guide/build-app/flow-app/orchestrate-node",
|
||||
"zh-cn/user-guide/build-app/flow-app/file-upload",
|
||||
"zh-cn/user-guide/build-app/flow-app/additional-feature"
|
||||
"zh-cn/user-guide/build-app/flow-app/additional-feature",
|
||||
"zh-cn/user-guide/build-app/flow-app/application-publishing"
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -335,9 +339,10 @@
|
||||
{
|
||||
"group": "管理",
|
||||
"pages": [
|
||||
"zh-cn/user-guide/management/app-management",
|
||||
"zh-cn/user-guide/management/team-members-management",
|
||||
"zh-cn/user-guide/management/personal-account-management"
|
||||
"zh-cn/management/app-management",
|
||||
"zh-cn/management/team-members-management",
|
||||
"zh-cn/management/personal-account-management",
|
||||
"zh-cn/management/version-control"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -526,7 +531,8 @@
|
||||
},
|
||||
"ja-jp/user-guide/build-app/flow-app/orchestrate-node",
|
||||
"ja-jp/user-guide/build-app/flow-app/file-upload",
|
||||
"ja-jp/user-guide/build-app/flow-app/additional-feature"
|
||||
"ja-jp/user-guide/build-app/flow-app/additional-feature",
|
||||
"ja-jp/user-guide/build-app/flow-app/application-publishing"
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -565,9 +571,10 @@
|
||||
{
|
||||
"group": "管理",
|
||||
"pages": [
|
||||
"ja-jp/user-guide/management/app-management",
|
||||
"ja-jp/user-guide/management/team-members-management",
|
||||
"ja-jp/user-guide/management/personal-account-management"
|
||||
"ja-jp/management/app-management",
|
||||
"ja-jp/management/team-members-management",
|
||||
"ja-jp/management/personal-account-management",
|
||||
"ja-jp/management/version-control"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
42
en-us/management/app-management.mdx
Normal file
42
en-us/management/app-management.mdx
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
title: App Management
|
||||
---
|
||||
|
||||
### Editing Application Information
|
||||
|
||||
After creating an application, if you want to modify the application name or description, you can click "Edit info" in the upper left corner of the application to revise the application's icon, name, or description.
|
||||
|
||||
.png)
|
||||
|
||||
### Duplicating Application
|
||||
|
||||
All applications support copying. Click "Duplicate" in the upper left corner of the application.
|
||||
|
||||
### Switch to Workflow Orchestrate
|
||||
|
||||
### Exporting Application
|
||||
|
||||
Applications created in Dify support export in DSL format files, allowing you to import the configuration files into other Dify teams freely. You can export DSL files using either of the following two methods:
|
||||
|
||||
* Click "Export DSL" in the application menu button on the "Studio" page
|
||||
* After entering the application's orchestration page, click "Export DSL" in the upper left corner
|
||||
|
||||

|
||||
|
||||
The DSL file does not include authorization information already filled in [Tool](/en-us/user-guide/build-app/flow-app/nodes/tools) nodes, such as API keys for third-party services. 
|
||||
|
||||
If the environment variables contain variables of the `Secret` type, a prompt will appear during file export asking whether to allow the export of this sensitive information.
|
||||
|
||||

|
||||
|
||||
<Note>
|
||||
Dify DSL is an AI application engineering file standard defined by Dify.AI in v0.6 and later. The file format is YML. This standard covers the basic description of the application, model parameters, orchestration configuration, and other information.
|
||||
</Note>
|
||||
|
||||
### Deleting Application
|
||||
|
||||
If you want to remove an application, you can click "Delete" in the upper left corner of the application.
|
||||
|
||||
<Note>
|
||||
⚠️ The deletion of an application cannot be undone. All users will be unable to access your application, and all prompts, orchestration configurations, and logs within the application will be deleted.
|
||||
</Note>
|
||||
57
en-us/management/personal-account-management.mdx
Normal file
57
en-us/management/personal-account-management.mdx
Normal file
@@ -0,0 +1,57 @@
|
||||
---
|
||||
title: Personal Account Management
|
||||
---
|
||||
|
||||
## Modifying Personal Information
|
||||
|
||||
To update your personal account information:
|
||||
|
||||
1. Navigate to the Dify team homepage
|
||||
2. Click on your avatar in the upper right corner
|
||||
3. Select **"My Account"**
|
||||
|
||||
You can modify the following details:
|
||||
|
||||
* Avatar
|
||||
* Username
|
||||
* Email
|
||||
* Password
|
||||
|
||||
<Frame>
|
||||
<img src="/images/assets/image (1).png" alt="Personal Account Management" />
|
||||
</Frame>
|
||||
|
||||
### Integrations
|
||||
|
||||
You can link your GitHub and Google accounts as login methods for your Dify team. Click on your avatar in the upper right corner of the Dify team homepage, then click **"Integrations"** to set up these links.
|
||||
|
||||
### Changing Display Language
|
||||
|
||||
To change the display language, click on your avatar in the upper right corner of the Dify team homepage, then click **"Language"**. Dify supports the following languages:
|
||||
|
||||
* English
|
||||
* Simplified Chinese
|
||||
* Traditional Chinese
|
||||
* Portuguese (Brazil)
|
||||
* French (France)
|
||||
* Japanese (Japan)
|
||||
* Korean (South Korea)
|
||||
* Russian (Russia)
|
||||
* Italian (Italy)
|
||||
* Thai (Thailand)
|
||||
* Indonesian
|
||||
* Ukrainian (Ukraine)
|
||||
|
||||
Dify welcomes community volunteers to contribute additional language versions. Visit the [GitHub repository](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) to contribute!
|
||||
|
||||
### Deleting Personal Account
|
||||
|
||||
For team data security considerations, self-service online deletion of personal account information is not currently supported. If you need to completely delete your account, please include the following information in an email and send it to support@dify.ai.
|
||||
|
||||
```
|
||||
Delete account: your-email
|
||||
```
|
||||
|
||||
<Frame>
|
||||
<img src="/images/assets/image (2).png" alt="Delete personal account" />
|
||||
</Frame>
|
||||
61
en-us/management/subscription-management.mdx
Normal file
61
en-us/management/subscription-management.mdx
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
title: Subscription Management
|
||||
---
|
||||
|
||||
### Upgrading Dify Team Subscription
|
||||
|
||||
Team owners and administrators can upgrade the team subscription plan. Click the **"Upgrade"** button in the upper right corner of the Dify team homepage, select an appropriate package, and complete the payment to upgrade the team's subscription.
|
||||
|
||||
### Managing Dify Team Subscription
|
||||
|
||||
After subscribing to Dify's paid services (Professional or Team plan), team owners and administrators can navigate to **"Settings"** → **"Billing"** to manage the team's billing and subscription details.
|
||||
|
||||
On the billing page, you can view the usage statistics for various team resources.
|
||||
|
||||

|
||||
|
||||
### Frequently Asked Questions
|
||||
|
||||
#### 1. How to upgrade/downgrade the team plan or cancel a subscription?
|
||||
|
||||
Team owners and administrators can navigate to **Settings** → **Billing**, then click on **Manage billing and subscription** to change the subscription plan.
|
||||
|
||||
* Upgrading from Professional to Team plan requires paying the difference for the current month and takes effect immediately.
|
||||
* Downgrading from Team to Professional plan takes effect immediately.
|
||||
|
||||

|
||||
|
||||
Upon cancellation of the subscription plan, **the team will automatically transition to the Sandbox/Free plan at the end of the current billing cycle**. Subsequently, any team members and resources exceeding the Sandbox/Free plan limitations will become inaccessible.
|
||||
|
||||
#### 2. What changes will occur to the team's available resources after upgrading the subscription plan?
|
||||
|
||||
| Resource | Free | Professional | Team |
|
||||
| ---------------------------------------------------------------------------- | --------- | -------------- | --------------- |
|
||||
| Team member limit | 1 | 3 | Unlimited |
|
||||
| Application limit | 10 | 50 | Unlimited |
|
||||
| Vector space capacity | 5MB | 200MB | 1GB |
|
||||
| [Marked replies](https://docs.dify.ai/guides/biao-zhu/logs) for applications | 10 | 2000 | 5000 |
|
||||
| Document uploads for knowledge base | 50 | 500 | 1000 |
|
||||
| OpenAI conversation quota | 200 total | 5000 per month | 10000 per month |
|
||||
|
||||
Note:
|
||||
|
||||
* When upgrading from Free to Professional, all resources are increased as shown in the table.
|
||||
* When upgrading from Professional to Team, resources are further expanded, with some becoming unlimited.
|
||||
|
||||
After upgrading the subscription plan:
|
||||
|
||||
* The OpenAI conversation quota will be reset to the new limit for the current billing cycle.
|
||||
* Previously used computational resources (e.g., vector space usage, document uploads) will not be reset or removed.
|
||||
|
||||
#### 3. What if I forget to renew subscription on time?
|
||||
|
||||
If you forget to renew your subscription, the team will automatically downgrade to the Sandbox/Free version. Except for the team owner, others will not be able to continue accessing the team. Excess computational resources within the team (such as documents, vector space, etc.) will also be locked.
|
||||
|
||||
#### 4. Will deleting the team owner's account affect the team?
|
||||
|
||||
A team needs to be bound to one team owner. If the team ownership is not transferred to another team member in time, all data of the current team will be deleted along with the owner's account.
|
||||
|
||||
#### 5. What are the differences between the subscription versions?
|
||||
|
||||
For a detailed feature comparison, please refer to the [Dify pricing](https://dify.ai/pricing).
|
||||
58
en-us/management/team-members-management.mdx
Normal file
58
en-us/management/team-members-management.mdx
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
title: Team Members Management
|
||||
---
|
||||
|
||||
This guide explains how to manage members within a Dify team. The team member limits for different Dify versions are below.
|
||||
|
||||
### Adding Members
|
||||
|
||||
<Note>
|
||||
Only team owners have permission to invite team members.
|
||||
</Note>
|
||||
|
||||
To add a member, the team owner can click on the avatar in the upper right corner, then select **"Members"** → **"Add"**. Enter the email address and assign member permissions to complete the process.
|
||||
|
||||

|
||||
|
||||
Invited members can complete their registration through either a URL link or an email invitation.
|
||||
|
||||
### Member Permissions
|
||||
|
||||
Team members are divided into owners, administrators, editors, and members.
|
||||
|
||||
* **Owner**
|
||||
* Role description: The first member of the team, with the highest level of permissions, responsible for the operation and management of the entire team.
|
||||
* Permission overview: Has permissions to manage team members, adjust member permissions, set model providers, create and delete applications, create knowledge bases, set tool libraries, etc.
|
||||
* **Administrator**
|
||||
* Role description: Team administrator, responsible for managing team members and model providers.
|
||||
* Permission overview: Cannot adjust member permissions; has permissions to add or remove team members, set model providers, create, edit and delete applications, create knowledge bases, set tool libraries, etc.
|
||||
* **Editor**
|
||||
* Role description: Regular team member, responsible for collaboratively creating and editing applications.
|
||||
* Permission overview: Cannot manage team members, set model providers, or set tool libraries; has permissions to create, edit and delete applications, create knowledge bases.
|
||||
* **Member**
|
||||
* Role description: Regular team member, only allowed to view and use applications created within the team.
|
||||
* Permission overview: Only has permissions to use applications within the team and use tools.
|
||||
|
||||
### Removing Members
|
||||
|
||||
<Note>
|
||||
Only team owners have permission to remove team members.
|
||||
</Note>
|
||||
|
||||
To remove a member, click on the avatar in the upper right corner of the Dify team homepage, navigate to **"Settings"** → **"Members"**, select the member to be removed, and click **"Remove from team"**.
|
||||
|
||||

|
||||
|
||||
### Frequently Asked Questions
|
||||
|
||||
#### 1. How can I transfer team ownership?
|
||||
|
||||
Team owners have the highest level of permissions. To maintain the stability of the team structure, team ownership cannot be manually transferred once established.
|
||||
|
||||
#### 2. How can I delete a team?
|
||||
|
||||
For team data security reasons, team owners cannot delete their teams on their own.
|
||||
|
||||
#### 3. How can I delete a team member's account?
|
||||
|
||||
Neither team owners nor administrators can delete a team member's account. Account deletion requires the account owner to actively request it, and cannot be performed by others. As an alternative to account deletion, removing a member from the team will revoke that user's access to the team.
|
||||
252
en-us/management/version-control.mdx
Normal file
252
en-us/management/version-control.mdx
Normal file
@@ -0,0 +1,252 @@
|
||||
---
|
||||
title: Version Control
|
||||
---
|
||||
|
||||
This article explains how to manage versions in Dify's Chatflow and Workflow.
|
||||
|
||||
## Overview
|
||||
|
||||
**Version Control Panel** allows you to track changes, publish updates, and restore previous versions of your applications.
|
||||
|
||||
## Key Concepts
|
||||
|
||||
- **Current Draft**: Your working version where you make changes.
|
||||
|
||||
<img
|
||||
src="https://assets-docs.dify.ai/2025/03/38296a597c0ca31b5fb70be2234f2363.png"
|
||||
width="400"
|
||||
alt="current_draft"
|
||||
/>
|
||||
|
||||
- **Published Version**: Any version released to production.
|
||||
|
||||
- **Latest Version**: The current production version.
|
||||
|
||||
<img
|
||||
src="https://assets-docs.dify.ai/2025/03/e4c06a0817c30cf9e8893487c889cb02.png"
|
||||
width="350"
|
||||
alt="latest_version"
|
||||
/>
|
||||
|
||||
- **Previous Version**: Any older published version.
|
||||
|
||||
<img
|
||||
src="https://assets-docs.dify.ai/2025/03/4cd05033b93d84b53496f3d02e88601f.png"
|
||||
width="200"
|
||||
alt="prevous_version"
|
||||
/>
|
||||
|
||||
- **Restore**: Return to any earlier version of your application.
|
||||
|
||||
<img
|
||||
src="https://assets-docs.dify.ai/2025/03/607a69b5355886b9ae8d23a08e818e35.jpg"
|
||||
width="200"
|
||||
alt="restore_feature"
|
||||
/>
|
||||
|
||||
## Features
|
||||
|
||||
- **View all versions**: Access and review details of all published versions.
|
||||
|
||||
- **Find specific versions**: Use filters to find a specific version.
|
||||
|
||||
- **Publish new versions**: Release new application versions with custom names and release notes.
|
||||
|
||||
- **Edit published versions**: Edit the title and release notes of a published version.
|
||||
|
||||
- **Delete previous versions**: Remove outdated versions to keep the list organized.
|
||||
|
||||
- **Restore published versions**: Load a published version into drafts for modifications.
|
||||
|
||||
## How to View All Versions
|
||||
|
||||
To view all versions:
|
||||
|
||||
1. Click the history icon to enter the Version Control Panel.
|
||||
|
||||

|
||||
|
||||
2. View versions in chronological order with titles, release notes, publish dates, and publishers.
|
||||
|
||||
3. *(Optional)* Click **Load More** to view more historical versions.
|
||||
|
||||

|
||||
|
||||
## How to Find a Specific Version
|
||||
|
||||
**To find versions you published**:
|
||||
|
||||
1. Click the filter icon to open the filter dialog.
|
||||
|
||||
2. Choose between:
|
||||
- **All**: Shows versions published by you and other users
|
||||
- **Only yours**: Shows only versions you published
|
||||
|
||||
<img
|
||||
src="https://assets-docs.dify.ai/2025/03/0bf8fef8858671a8fef160f49dd83dad.jpg"
|
||||
width="200"
|
||||
className="mx-auto"
|
||||
alt="all_or_only_yours"
|
||||
/>
|
||||
|
||||
**To find named versions**:
|
||||
|
||||
Toggle **Only show named versions** to display only the versions with custom names.
|
||||
|
||||
<img
|
||||
src="https://assets-docs.dify.ai/2025/03/2473121caa2e25ad1a76ee42a4127fb4.jpg"
|
||||
width="200"
|
||||
className="mx-auto"
|
||||
alt="only_show_named_versions"
|
||||
/>
|
||||
|
||||
## How to Publish a New Version
|
||||
|
||||
To publish a new version:
|
||||
|
||||
1. Click **Publish > Publish Update** to release the current version.
|
||||
|
||||

|
||||
|
||||
2. The newly published version will be marked as `Latest` in the panel.
|
||||
|
||||

|
||||
|
||||
## How to Edit a Published Version
|
||||
|
||||
To edit a published version:
|
||||
|
||||
1. In the Version Control Panel, find the version you want to edit.
|
||||
|
||||
2. Click its action menu icon.
|
||||
|
||||
3. Choose either:
|
||||
- **Name this version** for versions with default names.
|
||||
|
||||
<img
|
||||
src="https://assets-docs.dify.ai/2025/03/ac149f63da6611d7080d305dd3fad65c.jpg"
|
||||
width="200"
|
||||
className="mx-auto"
|
||||
alt="name_this_version"
|
||||
/>
|
||||
|
||||
- **Edit version info** for versions with custom names.
|
||||
|
||||
<img
|
||||
src="https://assets-docs.dify.ai/2025/03/1d840edf979132a9bbf1e065f95e663c.jpg"
|
||||
width="200"
|
||||
className="mx-auto"
|
||||
alt="edit_version_info_1"
|
||||
/>
|
||||
|
||||
4. Confirm **Publish**.
|
||||
|
||||

|
||||
|
||||
## How to Delete a Previous Version
|
||||
|
||||
To delete a Previous version:
|
||||
|
||||
1. Find the published version you want to delete.
|
||||
|
||||
2. Click the action menu icon and select **Delete**.
|
||||
|
||||
<img
|
||||
src="https://assets-docs.dify.ai/2025/03/25ad1999fc9f6f44fcac04526ac5563a.jpg"
|
||||
width="200"
|
||||
className="mx-auto"
|
||||
alt="delete_version"
|
||||
/>
|
||||
|
||||
3. Confirm **Delete**.
|
||||
|
||||

|
||||
|
||||
<Warning>
|
||||
- The **Current Draft** cannot be deleted
|
||||
- The **Latest Version** (marked as "Latest") cannot be deleted
|
||||
</Warning>
|
||||
|
||||
## How to Restore a Published Version
|
||||
|
||||
To restore a published version:
|
||||
|
||||
1. Find the published version you want to restore.
|
||||
|
||||
2. Click its action menu icon and select **Restore**.
|
||||
|
||||
<img
|
||||
src="https://assets-docs.dify.ai/2025/03/c96b714accc29df8e46e711782a7a6a9.jpg"
|
||||
width="200"
|
||||
className="mx-auto"
|
||||
alt="restore_version"
|
||||
/>
|
||||
|
||||
3. Confirm **Restore**. The system will load the selected version into your current draft.
|
||||
|
||||

|
||||
|
||||
## Version Control Workflow
|
||||
|
||||
Here is how versions work through a typical workflow:
|
||||
|
||||
> Note: Matching colors indicate identical version content.
|
||||
|
||||
### Phase 1: Initial Draft
|
||||
|
||||
- System creates a **Draft** (Version A).
|
||||
|
||||

|
||||
|
||||
### Phase 2: First Release
|
||||
|
||||
- Version A is published, becoming the **Latest Version**.
|
||||
- System creates a new **Draft** (Version B).
|
||||
|
||||

|
||||
|
||||
### Phase 3: Second Release
|
||||
|
||||
- Version B is published, becoming the **Latest Version**.
|
||||
- Version A becomes a **Previous Version**.
|
||||
- System creates a new **Draft** (Version C).
|
||||
|
||||

|
||||
|
||||
### Phase 4: Restore
|
||||
|
||||
- Version A is restored to **Draft**, replacing Version C.
|
||||
- Version B remains the **Latest Version**.
|
||||
|
||||

|
||||
|
||||
### Phase 5: Publish a Restored Version
|
||||
|
||||
- Restored Version A is published, becoming the **Latest Version**.
|
||||
- Previous Versions A and B become **Previous Versions**.
|
||||
- System creates a new **Draft** (Version D).
|
||||
|
||||

|
||||
|
||||
### Complete Workflow Demo
|
||||
|
||||

|
||||
|
||||
## FAQ
|
||||
|
||||
- **What are the different version types?**
|
||||
|
||||
| Type | Description | Access | Deletion | Restoration |
|
||||
|------|-------------|---------|-----------|-------------|
|
||||
| Current Draft | Current work in progress | Requires publishing to go live | Not accessible online | Not deletable |
|
||||
| Latest Version | Current live version | Requires new draft for updates | Live and accessible | Can be restored |
|
||||
| Previous Version | Previous published versions | Can restore to draft | Stored in history only | Can be restored |
|
||||
| Published Version | Includes both latest and previous versions | / | / | / |
|
||||
|
||||
- **What happens to my current draft when restoring a previous version?**
|
||||
|
||||
When restoring a previous version, that version's content becomes your new draft. Your current draft will be lost, so please review changes carefully before proceeding.
|
||||
|
||||
- **Which apps support version control?**
|
||||
|
||||
Version control is currently available for **Chatflow** and **Workflow** applications only. It is not yet supported for **Chatbot**, **Text Generator**, or **Agents**.
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
title: Application Publishing
|
||||
---
|
||||
|
||||
After completing debugging, clicking "Publish" in the upper right corner allows you to save and quickly release the workflow as different types of applications.
|
||||
|
||||

|
||||
|
||||
Conversational applications can be published as:
|
||||
|
||||
* Run App
|
||||
* Embed into Site
|
||||
* Access API Reference
|
||||
|
||||
Workflow applications can be published as:
|
||||
|
||||
* Run App
|
||||
* Batch Run App
|
||||
* Access API Reference
|
||||
|
||||
<Info>
|
||||
To manage multiple versions of Chatflow/Workflow, see [Version Control](../../../management/version-control).
|
||||
</Info>
|
||||
39
ja-jp/introduction.mdx
Normal file
39
ja-jp/introduction.mdx
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
title: Difyエンタプライス版へようこそ
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
Dify エンタープライズ版は、大規模な組織やチーム向けのプライベートデプロイメントAIミドルウェアソリューションであり、企業内でのAI+時代への移行を促進することを目的としています。
|
||||
|
||||
Dify はノーコード設計理念を採用しており、ビジネス担当者が深いプログラミング知識を必要とせずに直接AIアプリケーションを構築およびデプロイできるようにします。
|
||||
エンタープライズ版サービスには強力な管理バックエンドが装備されており、詳細な権限管理とワークスペース管理をサポートし、チームの協力効率とデータセキュリティを確保します。また、包括的なデータ監視サービスも提供しており、管理人がAIアプリケーションのパフォーマンスとデータ使用状況をリアルタイムで把握し、意思決定のためのデータサポートを提供します。
|
||||
|
||||
プライベートデプロイメントオプションと企業レベルのセキュリティ標準に準拠した設計により、Dify エンタープライズ版はデータセキュリティを確保しながら、組織に安定した信頼性のある拡張可能なAIインフラストラクチャを提供し、AI時代において競争優位性を維持するのに役立ちます。
|
||||
|
||||
## 製品の利点
|
||||
|
||||
私たちの企業向けソリューションには以下の利点があります:
|
||||
|
||||
- 高度なチーム管理: 企業のDifyプラットフォーム内の「ワークスペース」と「チームメンバー」を柔軟に管理し、管理人はアクセス権とチーム構造を簡単に制御できます。
|
||||
- 企業レベルのアクセスセキュリティ: 企業内のSSO(シングルサインオン)システムと統合し、安全で信頼性のある認証を確保し、潜在的なデータリスクを回避します。
|
||||
- ブランド変更が可能です:製品のロゴやブランド情報を自由に変更し、あなた専用のプラットフォームとして利用できます。
|
||||
- 複数テナントの作成が可能です:複数のワークスペースを作成・所有でき、異なる部署やアクショングループのニーズを効果的にサポートします。
|
||||
- モデルの負荷分散機能を提供します:適切なモデルに対して負荷分散を行い、モデルのQPS制限を超えて、より広範囲なシーンにサービスを提供します。
|
||||
## 適用シナリオ
|
||||
|
||||
- 高データセキュリティ要件: 金融、医療部門など、データセキュリティに非常に高い要件を持つ業界や企業向け。Dify エンタープライズ版は以下を提供します:
|
||||
- エンドツーエンドの暗号化伝送
|
||||
- 厳格なデータアクセス制御
|
||||
- ローカルデプロイメントオプション、機密データが企業内ネットワークを離れないことを確保
|
||||
- 大規模なAIアプリケーションのデプロイメントと管理: 企業内で大規模にAIアプリケーションをデプロイおよび管理する必要がある組織向け。
|
||||
- 中央集権的なAI資産管理、モデル、データセット、アプリケーションを含む。管理人は企業内の複数のAIアプリケーションの運用状況を簡単に確認および監視できます。
|
||||
- モデルニュートラル、管理人がオープンソース/クローズドソースのAI大規模モデルを自分で接続し、ビジネスシナリオに迅速に適用できる
|
||||
- 使いやすく、ビジネス担当者が迅速に製品プロトタイプの開発とテストを行うことをサポート
|
||||
- 権限管理システム、リソース共有を確保しながら機密情報を保護
|
||||
- 広範なAI能力統合シナリオ: AI能力を既存のビジネスプロセスやシステムにシームレスに統合する必要がある企業向け。
|
||||
- 豊富なAPIポートを提供し、企業システムとの統合をサポート
|
||||
- カスタムワークフローエンジン、複雑なビジネスロジックを実現
|
||||
- 多言語サポート、国際化ニーズを満たす
|
||||
- 高並列性、高可用性の要件: システムの安定性とパフォーマンスに高い要求がある大規模企業やインターネット企業向け。
|
||||
- 分散アーキテクチャ、水平スケーリングをサポート
|
||||
- 負荷分散とフェイルオーバーメカニズム、サービスの高可用性を確保
|
||||
44
ja-jp/management/app-management.mdx
Normal file
44
ja-jp/management/app-management.mdx
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
title: アプリの管理
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
## [アプリ情報の編集](#edit-app-info)
|
||||
|
||||
アプリを作成した後に、アプリ名や説明を変更したい場合は、アプリの左上隅にある「情報の編集」をクリックしてください。これにより、アプリのアイコン、名前、または説明を修正できます。
|
||||
|
||||
<Frame caption="アプリ情報の編集"><img src="/ja-jp/img/image (92).png" alt="" /></Frame>
|
||||
|
||||
## [アプリの複製](#copy-app)
|
||||
|
||||
すべてのアプリは複製が可能です。アプリの左上隅にある「複製」をクリックしてください。
|
||||
|
||||
## [アプリのエクスポート](#export-app)
|
||||
|
||||
Difyで作成されたアプリはDSL形式でエクスポートをサポートしており、設定ファイルを任意のDifyチームに自由にインポートできます。
|
||||
|
||||
DSLファイルは次の2つの方法でエクスポートできます:
|
||||
|
||||
* シナリオページ中のアプリカードの右下隅の"DSLをエクスポート"をクリックする。
|
||||
* アプリ内のオーケストレートページに入れるあど、左上隅の"DSLをエクスポート"のボタンをクリックする。
|
||||
|
||||

|
||||
|
||||
DSLファイルは以下の機密情報を含まれません:
|
||||
|
||||
* APIキーなどの第三者ツールの認証情報
|
||||
* 環境変数に`Secret`が含まれる場合、DSLをエクスポートするときに機密情報のエクスポートを許可するかどうかを尋ねるメッセージが表示されます。
|
||||
|
||||

|
||||
|
||||
<Tip>
|
||||
Dify DSLは、Dify.AIによってv0.6以降で定義されたAIアプリエンジニアリングファイル標準です。ファイル形式はYMLで、アプリの基本的な説明、モデルパラメータ、オーケストレーション構成などをカバーしています。
|
||||
</Tip>
|
||||
|
||||
## アプリの削除
|
||||
|
||||
アプリを削除したい場合は、アプリの左上隅にある「削除」をクリックしてください。
|
||||
|
||||
<Tip>
|
||||
⚠️ アプリの削除は取り消すことができません。すべてのユーザーがあなたのアプリにアクセスできなくなり、アプリ内のすべてのプロンプト、オーケストレーション構成、ログが削除されます。
|
||||
</Tip>
|
||||
38
ja-jp/management/personal-account-management.mdx
Normal file
38
ja-jp/management/personal-account-management.mdx
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: 個人アカウントの管理
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
## 個人情報の変更
|
||||
|
||||
次の詳細を変更できます:
|
||||
|
||||
* アバター
|
||||
* ユーザー名
|
||||
* メールアドレス
|
||||
* パスワード
|
||||
|
||||
<Frame><img src="/ja-jp/img/image (1).png" alt="" /></Frame>
|
||||
|
||||
### ログインをバインドする方法
|
||||
|
||||
GitHubやGoogleアカウントのアカウントを利用しDifyチームにログインができます。これらを設定するには、Difyチームのホームページで右上隅のアバターをクリックし、**「統合」** を選択してください。
|
||||
|
||||
### 表示言語の変更
|
||||
|
||||
表示言語を変更するには、Difyチームのホームページで右上隅のアバターをクリックし、**「言語」** を選択します。Difyは以下の言語をサポートしています:
|
||||
|
||||
* 英語
|
||||
* 中国語(簡体字)
|
||||
* 中国語(繁体字)
|
||||
* ポルトガル語(ブラジル)
|
||||
* フランス語(フランス)
|
||||
* 日本語(日本)
|
||||
* 韓国語(韓国)
|
||||
* ロシア語(ロシア)
|
||||
* イタリア語(イタリア)
|
||||
* タイ語(タイ)
|
||||
* インドネシア語
|
||||
* ウクライナ語(ウクライナ)
|
||||
|
||||
Difyはコミュニティのボランティアによる追加の言語バージョンの提供を歓迎しています。貢献をご希望の方は、[GitHubリポジトリ](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md)をご覧ください。
|
||||
63
ja-jp/management/team-members-management.mdx
Normal file
63
ja-jp/management/team-members-management.mdx
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
title: チームメンバーの管理
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
このガイドでは、Difyチーム内のメンバーを管理する方法について説明します。
|
||||
|
||||
### メンバーの追加
|
||||
|
||||
<Tip>
|
||||
チームの所有者のみがチームメンバーを追加する権限を持っています。
|
||||
</Tip>
|
||||
|
||||
メンバーを追加するには、チームの所有者は右上隅のアバターをクリックし、**"メンバー"** → **"追加"** を選択します。メールアドレスを入力し、メンバー権限を割り当ててプロセスを完了します。
|
||||
|
||||
<Frame caption="チームメンバーへの権限の割り当て">
|
||||
<img src="/ja-jp/img/team-members-management-01.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
追加されたメンバーは、URLリンクまたはメール招待を通じて登録を完了することができます。
|
||||
|
||||
### メンバーの権限
|
||||
|
||||
チームメンバーは、所有者、管理人、編集者、メンバーに分類されます。
|
||||
|
||||
* **所有者**
|
||||
* ロールの説明: チームの最初のメンバーで、最も高いレベルの権限を持ち、チーム全体の運営と管理を担当します。
|
||||
* 権限の概要: チームメンバーの管理、メンバー権限の調整、モデルプロバイダーの設定、アプリケーションの作成と削除、ナレッジベースの作成、ツールライブラリの設定などの権限を持ちます。
|
||||
* **管理人**
|
||||
* ロールの説明: チームの管理人で、チームメンバーとモデルプロバイダーの管理を担当します。
|
||||
* 権限の概要: メンバー権限を調整することはできませんが、チームメンバーの追加や削除、モデルプロバイダーの設定、アプリケーションの作成、編集、削除、ナレッジベースの作成、ツールライブラリの設定などの権限を持ちます。
|
||||
* **編集者**
|
||||
* ロールの説明: 通常のチームメンバーで、共同でアプリケーションの作成と編集を担当します。
|
||||
* 権限の概要: チームメンバーの管理、モデルプロバイダーの設定、ツールライブラリの設定はできません。アプリケーションの作成、編集、削除、ナレッジベースの作成などの権限を持ちます。
|
||||
* **メンバー**
|
||||
* ロールの説明: 通常のチームメンバーで、チーム内で作成されたアプリケーションの閲覧と使用のみが許可されます。
|
||||
* 権限の概要: チーム内でのアプリケーションの使用とツールの使用のみが許可されます。
|
||||
|
||||
### メンバーの削除
|
||||
|
||||
<Tip>
|
||||
チームの所有者のみがチームメンバーを削除する権限を持っています。
|
||||
</Tip>
|
||||
|
||||
メンバーを削除するには、Difyチームのホームページの右上隅のアバターをクリックし、**"設定"** → **"メンバー"** に移動し、削除するメンバーを選択して **"チームから削除"** をクリックします。
|
||||
|
||||
<Frame caption="メンバーの削除">
|
||||
<img src="/ja-jp/img/team-members-management-02.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
### よくある質問
|
||||
|
||||
#### 1. チームオーナーを変更するにはどうすればよいですか?
|
||||
|
||||
チームオーナーは最高権限を持ち、チーム構造の安定性を維持するため、一度設定されたチームオーナーは手動で変更することができません。
|
||||
|
||||
#### 2. チームを削除するにはどうすればよいですか?
|
||||
|
||||
チームデータのセキュリティ上の理由から、チームオーナーは自身のチームを自己削除することはできません。
|
||||
|
||||
#### 3. チームメンバーのアカウントを削除するにはどうすればよいですか?
|
||||
|
||||
チームオーナー/管理者はチームメンバーのアカウントを削除することはできません。アカウントの削除はアカウント所有者自身が申請する必要があり、他者が削除することはできません。アカウントを削除する代わりに、メンバーをチームから削除することで、そのユーザーのチームへのアクセス権限を無効にすることができます。
|
||||
189
ja-jp/management/version-control.mdx
Normal file
189
ja-jp/management/version-control.mdx
Normal file
@@ -0,0 +1,189 @@
|
||||
---
|
||||
title: バージョン管理
|
||||
---
|
||||
|
||||
## はじめに
|
||||
|
||||
バージョン管理とは、**Difyのチャットフローやワークフロー管理インターフェース**の核となる機能です。この機能により、ユーザーはアプリの複数バージョンを効率的に管理および公開することができます。
|
||||
|
||||
バージョン管理機能を使用することで、ユーザーは**下書きバージョン**と**公開バージョン**を明確に区別し、必要に応じて**過去のバージョン**にロールバックすることが可能です。これにより、アプリの改良と管理がより簡単で直感的になり、継続的な更新と安定性が確保されます。
|
||||
|
||||
## 関連用語の説明
|
||||
|
||||
- **下書きバージョン(Current Draft)**: Difyのチャットフローやワークフロー管理インターフェースにおいて、**現在の作業状態を示す唯一のバージョン**です。ユーザーはこのバージョンでチャットフローやワークフローの編集、修正、プレビューを行うことができます。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/38296a597c0ca31b5fb70be2234f2363.png" width="400" className="mx-auto" alt="current_draft"/>
|
||||
|
||||
- **公開バージョン(Published Version)**: ユーザーがオンラインに公開したすべてのバージョンの総称です。最新の公開バージョンと過去の公開バージョンの総称です。公開操作を実行するたびに、新しい公開バージョンが生成されます。
|
||||
|
||||
- **最新公開バージョン(Latest Version)**: ユーザーが最後にオンラインに公開したバージョンです。Difyのバージョン管理インターフェースでは、これを`Latest`としてマークし、他の過去の公開バージョンと区別しています。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/e4c06a0817c30cf9e8893487c889cb02.png" width="350" className="mx-auto" alt="latest_version"/>
|
||||
|
||||
- **過去の公開バージョン(Previous Version)**: 以前に公開されたが、現在は最新ではなくなったバージョンを指します。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/4cd05033b93d84b53496f3d02e88601f.png" width="200" className="mx-auto" alt="prevous_version"/>
|
||||
|
||||
- **バージョンの復元(Restore)**: バージョン管理の復元機能を使用すると、アプリを特定の過去のバージョンに戻すことができます。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/607a69b5355886b9ae8d23a08e818e35.jpg" width="200" className="mx-auto" alt="restore"/>
|
||||
|
||||
## 主な機能
|
||||
|
||||
- **バージョン一覧の表示**: バージョン管理インターフェースで、公開されたすべてのバージョンとその詳細情報を確認できます。
|
||||
|
||||
- **バージョンの検索**: フィルター機能を使用して、必要なバージョンを素早く見つけることができます。
|
||||
|
||||
- **新バージョンの公開**: 新しいアプリバージョンを公開し、名前と説明を付けることができます。
|
||||
|
||||
- **公開バージョン情報の編集**: 公開済みバージョンの名前や説明を後から編集することができます。
|
||||
|
||||
- **過去バージョンの削除**: 不要になった過去のバージョンを削除し、バージョンリストを整理できます。
|
||||
|
||||
- **過去バージョンへのロールバック**: バージョン復元機能を使用して、過去のバージョンの内容を下書きに読み込み、必要に応じて修正することができます。
|
||||
|
||||
## バージョン一覧の表示方法
|
||||
|
||||
1. 右上の**バージョン管理**ボタンをクリックして、バージョン管理インターフェースにアクセスします。
|
||||
|
||||

|
||||
|
||||
2. バージョン管理インターフェースには、時系列の降順で並べられたバージョンリストが表示されます。各バージョンの**名前、説明情報、公開日時、公開者**を確認できます。
|
||||
|
||||
3. *(オプション)* バージョンリストが多数ある場合は、**さらに読み込む**ボタンをクリックすると、より多くのバージョン履歴を表示できます。
|
||||
|
||||

|
||||
|
||||
## 特定のバージョンを検索する方法
|
||||
|
||||
- **自分が公開したバージョンを探す**: **フィルター**ボタンをクリックするとフィルターオプションが表示されます。以下の2つの選択肢があります:
|
||||
|
||||
- **すべてのバージョン**: あなた自身と他のユーザーが公開したすべてのバージョンを表示します。
|
||||
- **自分が公開したバージョン**: あなたが公開したバージョンのみを表示します。
|
||||
必要に応じて、適切なフィルターを選択して、対応するバージョンをご確認いただけます。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/0bf8fef8858671a8fef160f49dd83dad.jpg" width="200" className="mx-auto" alt="all_or_only_yours"/>
|
||||
|
||||
- **名前付きバージョンを検索**: 名前が付けられたバージョンのみを表示したい場合は、**名前付きバージョンを検索**オプションをクリックしてください。このオプションを有効にすると、名前付きバージョンのみがバージョンリストに表示され、名前のないバージョンは非表示になります。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/2473121caa2e25ad1a76ee42a4127fb4.jpg" width="200" className="mx-auto" alt="only_show_named_versions"/>
|
||||
|
||||
## 新しいバージョンの公開方法
|
||||
|
||||
1. チャットフロー/ワークフローの作成が完了したら、画面右上の**公開する > 公開更新**をクリックすると、現在のバージョンが公開されます。
|
||||
|
||||

|
||||
|
||||
2. 公開後、この最新バージョンは`Latest`としてマークされ、関連情報がバージョン管理インターフェースに表示されます。
|
||||
|
||||

|
||||
|
||||
## 公開済みバージョンの情報編集方法
|
||||
|
||||
1. バージョン管理インターフェースで、編集したいバージョンを見つけ、そのバージョンの右上にあるアクションメニューをクリックします。
|
||||
|
||||
- 以前にデフォルト名でバージョンを保存した場合は、**このバージョンに名前を付ける**をクリックします。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/ac149f63da6611d7080d305dd3fad65c.jpg" width="200" className="mx-auto" alt="name_this_version"/>
|
||||
|
||||
- すでに名前を付けている場合は、**バージョン情報を編集**をクリックして、バージョン名と説明を修正できます。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/1d840edf979132a9bbf1e065f95e663c.jpg" width="200" className="mx-auto" alt="edit_version_info_1"/>
|
||||
|
||||
2. **公開する**をクリックして、バージョン情報を公開します。
|
||||
|
||||

|
||||
|
||||
## 履歴バージョンを削除するには?
|
||||
|
||||
1. バージョン管理画面で、削除したい公開済みバージョンを見つけ、そのバージョンの右上にある操作メニューをクリックします。
|
||||
|
||||
2. **削除**を選択すると、確認ダイアログが表示されます。
|
||||
|
||||
3. **削除**をクリックすると、そのバージョンがバージョン管理画面から削除されます。
|
||||
|
||||

|
||||
|
||||
<Info>
|
||||
- **下書きバージョン**(Current Draft)は、現在のチャットフロー/ワークフロー画面で編集中のバージョンであり、削除できません。
|
||||
- **最新公開バージョン**(「Latest」とマークされているバージョン)は、ユーザーが最後に公開したバージョンであり、削除できません。
|
||||
</Info>
|
||||
|
||||
## 特定の公開済みバージョンに戻すには?
|
||||
|
||||
1. バージョン管理画面で、ロールバックしたい履歴バージョンを見つけ、そのバージョンの右上にある操作メニューをクリックします。
|
||||
|
||||
2. **ロールバック**を選択すると、確認ダイアログが表示されます。
|
||||
|
||||
3. **ロールバック**をクリックすると、現在の下書きバージョンがその履歴バージョンに置き換えられます。
|
||||
|
||||

|
||||
|
||||
## 使用シナリオ
|
||||
|
||||
以下では、典型的なユースケースを通じて、各バージョン間の関係を説明します。
|
||||
|
||||
> 同じ色は同じバージョン内容を表します。
|
||||
|
||||
### ステージ1
|
||||
|
||||
- システムが自動的に**下書きバージョン** Version Aを作成します。
|
||||
|
||||

|
||||
|
||||
### ステージ2:初回公開
|
||||
|
||||
- Version Aが公開され、**最新公開バージョン**になります。
|
||||
- システムが自動的に**下書きバージョン** Version Bを作成します。
|
||||
|
||||

|
||||
|
||||
### ステージ3:再公開
|
||||
|
||||
- Version Bが公開され、**最新公開バージョン**になります。
|
||||
- Version Aは**履歴公開バージョン**になります。
|
||||
- システムが自動的に**下書きバージョン** Version Cを作成します。
|
||||
|
||||

|
||||
|
||||
### ステージ4:ロールバック操作
|
||||
|
||||
- Version Aが**下書きバージョン**として復元され、Version Cが上書きされます。
|
||||
- Version Bは引き続き**最新公開バージョン**です。
|
||||
|
||||

|
||||
|
||||
### ステージ5:ロールバック後の公開
|
||||
|
||||
- 復元されたVersion Aが公開され、**最新公開バージョン**になります。
|
||||
- 以前のVersion AとVersion Bは**履歴公開バージョン**になります。
|
||||
- システムが自動的に**下書きバージョン** Version Dを作成します。
|
||||
|
||||

|
||||
|
||||
### 全体フロー
|
||||
|
||||

|
||||
|
||||
## よくある質問
|
||||
|
||||
- **下書きバージョン、公開済みバージョン、最新公開バージョン、履歴公開バージョンの違いは何ですか?**
|
||||
|
||||
| 定義 | 操作方法 | オンラインアクセス | 削除可能か | ロールバック可能か |
|
||||
|------|---------|-----------------|------------|----------------|
|
||||
| 下書きバージョン | 編集・修正を行い、公開(Publish)操作でオンライン環境に反映させることができます。 | 不可(公開操作後のみアクセス可能) | 削除できません。 | ロールバックできません。 |
|
||||
| 最新公開バージョン | 直接編集はできません。新しいドラフトバージョンを作成し、公開することで更新できます。 | 可能(現在のオンラインバージョン) | 削除できません。 | 可能 |
|
||||
| 過去の公開バージョン | ロールバック(Restore)操作で過去のバージョンをドラフトバージョンに読み込み、編集・公開できます。 | 不可(バージョンリストにのみ存在) | 削除できません。 | 可能 |
|
||||
| 公開済みバージョン | 最新公開バージョンと過去の公開バージョンの総称です。 | - | - | - |
|
||||
|
||||
## よくある質問
|
||||
|
||||
- **履歴バージョンへのロールバック後、現在の下書きは消えてしまいますか?**
|
||||
|
||||
履歴バージョンにロールバックすると、選択したバージョンが新しい下書きとして自動的に作成されます。この下書きで編集を行い、公開することができます。
|
||||
|
||||
そのため、ロールバック操作を行うと、既存の下書きは失われますのでご注意ください。
|
||||
|
||||
- **バージョン管理機能は、どのタイプのアプリで利用できますか?**
|
||||
|
||||
現在、バージョン管理機能は**チャットフロー**と**ワークフロー**のみ対応しています。**チャットアシスタント**、**テキスト生成**、**エージェント**には対応していません。
|
||||
82
ja-jp/user-guide/build-app/agent.mdx
Normal file
82
ja-jp/user-guide/build-app/agent.mdx
Normal file
@@ -0,0 +1,82 @@
|
||||
---
|
||||
title: エージェント
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### 定義
|
||||
|
||||
エージェントアシスタントは、大規模言語モデルの推論能力を活用し、複雑な人間のタスクを自律的に目標設定、タスク分解、ツールの呼び出し、プロセスのイテレーションを行い、人間の介入なしでタスクを完了することができます。
|
||||
|
||||
### エージェントアシスタントの使い方
|
||||
|
||||
迅速に使い始めるために、「探索」でエージェントアシスタントのアプリケーションテンプレートを見つけて自分のワークスペースに追加するか、それを基にカスタマイズすることができます。新しいDifyスタジオでは、ゼロから自分専用のエージェントアシスタントを編成し、財務報告書の分析、レポートの作成、ロゴデザイン、旅行計画などのタスクを完了する手助けをすることができます。
|
||||
|
||||
<Frame caption="探索 - エージェントアシスタントアプリケーションテンプレート">
|
||||
<img src="/ja-jp/img/jp-agent-1.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
エージェントアシスタントの推論モデルを選択します。エージェントアシスタントのタスク完了能力はモデルの推論能力に依存しますので、より強力な推論能力を持つモデルシリーズ、例えばgpt-4を選択することをお勧めします。これにより、より安定したタスク完了効果が得られます。
|
||||
|
||||
<Frame caption="エージェントアシスタントの推論モデルを選択">
|
||||
<img src="/ja-jp/img/jp-agent-2.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
「プロンプト」でエージェントアシスタントの指示を作成できます。より良い結果を得るために、指示の中でタスクの目標、ワークフロー、リソース、制約などを明確にすることが重要です。
|
||||
|
||||
<Frame caption="エージェントアシスタントの指示プロンプトを編成">
|
||||
<img src="/ja-jp/img/jp-agent-3.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
### アシスタントに必要なツールを追加
|
||||
|
||||
「コンテキスト」では、エージェントアシスタントが参照できるナレッジベースツールを追加できます。これにより、外部の背景知識を取得することができます。
|
||||
|
||||
「ツール」では、使用する必要があるツールを追加できます。ツールはLLMの能力を拡張し、例えばネット検索、科学計算、画像の作成などが可能になります。これにより、LLMは外部世界と接続する能力を持つようになります。Difyは2種類のツールタイプを提供しています:**ファーストパーティツール**と**カスタムツール**です。
|
||||
|
||||
Difyエコシステムが提供するファーストパーティ内蔵ツールを直接使用するか、カスタムAPIツール(現在はOpenAPI / SwaggerおよびOpenAIプラグイン規格をサポート)を簡単にインポートすることができます。
|
||||
|
||||
<Frame caption="アシスタントに必要なツールを追加">
|
||||
<img src="/ja-jp/img/jp-agent-4.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
**ツール** 機能を使用すると、Dify でより強力な AIアプリを作成できます。たとえば、エージェントアシスタントに適したツールを編成して、推論、ステップ分解、ツール呼び出しを通じて複雑なタスクを完了できるようにすることができます。
|
||||
|
||||
さらに、このツールにより、アプリと他のシステムやサービスの統合が簡素化され、コードの実行や独自の情報ソースへのアクセスなど、外部環境とのやり取りが可能になります。チャット ボックスで呼び出したいツールの名前を言うだけで、自動的にアクティブ化されます。
|
||||
|
||||

|
||||
|
||||
### エージェントの設定
|
||||
|
||||
DifyではエージェントアシスタントにFunction Calling(関数呼び出し)とReActの2つの推論モードを提供しています。関数呼び出しをサポートするモデルシリーズ(例:gpt-3.5/gpt-4)はより良い、安定したパフォーマンスを持っています。関数呼び出しをサポートしていないモデルシリーズには、ReAct推論フレームワークで類似の効果を実現しています。
|
||||
|
||||
エージェント設定では、アシスタントのイテレーション制限を変更できます。
|
||||
|
||||
<Frame caption="Function Calling モード">
|
||||
<img src="/ja-jp/img/jp-agent-5.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
<Frame caption="ReAct モード">
|
||||
<img src="/ja-jp/img/jp-agent-6.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
### 会話のオープニング設定
|
||||
|
||||
エージェントアシスタントの会話オープニングとオープニング質問を設定できます。設定された会話オープニングは、ユーザーが初めて対話を開始する際に、アシスタントが完了できるタスクや提案される質問の例を表示します。
|
||||
|
||||
<Frame caption="会話のオープニングとオープニング質問を設定">
|
||||
<img src="/ja-jp/img/jp-agent-7.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
### デバッグとプレビュー
|
||||
|
||||
エージェントアシスタントの編成が完了したら、アプリとして公開する前にデバッグとプレビューを行い、アシスタントのタスク完了効果を確認できます。
|
||||
|
||||
<Frame caption="デバッグとプレビュー">
|
||||
<img src="/ja-jp/img/jp-agent-8.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
### アプリの公開
|
||||
|
||||
<Frame caption="アプリをWebアプリとして公開">
|
||||
<img src="/ja-jp/img/jp-agent-9.png" alt="" />
|
||||
</Frame>
|
||||
87
ja-jp/user-guide/build-app/chatbot.mdx
Normal file
87
ja-jp/user-guide/build-app/chatbot.mdx
Normal file
@@ -0,0 +1,87 @@
|
||||
---
|
||||
title: 会話型アプリケーション
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
会話型アプリケーションは、ユーザーとの継続的な対話を一問一答形式で行います。
|
||||
|
||||
## 適用シーン
|
||||
|
||||
会話型アプリケーションは、カスタマーサービス、オンライン教育、医療、金融サービスなどの分野で利用されることがあります。これらのアプリケーションは、組織の業務の効率を向上させたり、人件費を削減したり、ユーザーエクスペリエンスを高めるのに寄与します。
|
||||
|
||||
## 編成方法
|
||||
|
||||
会話型アプリケーションの作成には、プロンプト、変数、コンテキスト、オープニングダイアログ、次の質問の提案などが含まれています。
|
||||
|
||||
ここでは、**面接官**用のアプリケーションを例に使って、会話型アプリケーションの編成方法を紹介します。
|
||||
|
||||
### アプリケーションの作成
|
||||
|
||||
ホームページで「最初から作成」をクリックしてアプリケーションを作成します。アプリケーション名を入力し、アプリタイプは**チャットボット**を選択します。
|
||||
|
||||
<Frame caption="チャットボットの作成"><img src="/ja-jp/img/jp-create-chatbox.png" alt="" /></Frame>
|
||||
|
||||
### アプリケーションの編成
|
||||
|
||||
アプリケーションを作成すると、自動的にアプリケーションの監視ページに移動します。左側のメニューから編成をクリックしてアプリケーションを編成します。
|
||||
|
||||
<Frame caption="アプリケーションの編成"><img src="/ja-jp/img/jp-create-prompt.png" alt="" /></Frame>
|
||||
|
||||
**プロンプトの記入**
|
||||
|
||||
プロンプトは、AIが専門的な回答を行う範囲を制限し、回答をより正確にします。組み込みのプロンプトジェネレータを使用して、適切なプロンプトを作成することができます。プロンプト内には、たとえば `{{input}}` のようなフォーム変数を挿入することができます。変数内の値は、ユーザーが入力した値に置き換えられます。
|
||||
|
||||
例:
|
||||
1. インタビューシナリオの指示を入力します。
|
||||
2. プロンプトが自動的に右側の内容欄に生成されます。
|
||||
3. カスタム変数をプロンプトに挿入することで、特定の要望や詳細に応じてカスタマイズが可能です。
|
||||
|
||||
ユーザーエクスペリエンスを向上させるために、オープニングダイアログを追加することができます:`こんにちは、{{name}}さん。私はあなたの面接官、Bobです。準備はできていますか?`。ページ下部の「機能の追加」ボタンをクリックして、「オープニングダイアログ」機能を開きます
|
||||
|
||||
オープニングダイアログを追加する方法は、底の「機能を追加」ボタンをクリックして、「会話の開始」機能を開きます:
|
||||
|
||||
<Frame><img src="/ja-jp/img/jp-conversation-remarkers.png" alt="" /></Frame>
|
||||
|
||||
オープニングステートメントを編集する際に、いくつかのオープニング質問を追加することもできます:
|
||||
|
||||

|
||||
|
||||
#### コンテキストの追加
|
||||
|
||||
AIの対話範囲を[ナレッジベース](/knowledge-base/)内に制限したい場合、企業内のカスタマーサービス用語規準などを「コンテキスト」で参照することができます。
|
||||
|
||||

|
||||
|
||||
#### デバッグ
|
||||
|
||||
右側にユーザー入力項目を入力し、内容を入力してデバッグします。
|
||||
|
||||

|
||||
|
||||
回答結果が望ましくない場合は、プロンプトやモデルを調整することができます。また、複数のモデルを同期してデバッグすることもでき、適切な構成を組み合わせることができます。
|
||||
|
||||

|
||||
|
||||
**複数のモデルでのデバッグ:**
|
||||
|
||||
単一モデルでのデバッグが効率的ではない場合、**「複数のモデルでのデバッグ」**機能を使用して、複数のモデルの回答効果を一括確認することもできます。
|
||||
|
||||

|
||||
|
||||
最大4つの大きなモデルを同時に追加できます。
|
||||
|
||||

|
||||
|
||||
> ⚠️ 複数モデルでデバッグ機能を使用する際に、一部の大きなモデルしか表示されない場合は、他の大きなモデルのキーが追加されていないためです。["新しいプロバイダーの追加"](../models/new-provider)で、複数のモデルのキーを手動で追加できます。
|
||||
|
||||
#### アプリケーションの公開
|
||||
|
||||
アプリケーションのデバッグが完了したら、右上の**公開**ボタンをクリックして独立したAIアプリケーションを生成します。公開URLを使用してアプリケーションを体験するだけでなく、APIベースの開発やWebサイトへの組み込みなども行うことができます。詳細については[公開](../application-publishing/based-on-frontend-templates)を参照してください。
|
||||
|
||||
公開されたアプリケーションをカスタマイズしたい場合は、当社のオープンソースの[WebAppテンプレート](https://github.com/langgenius/webapp-conversation)をForkしてください。テンプレートをベースに、シチュエーションやスタイルに合わせたアプリケーションを作成できます。
|
||||
|
||||
### よくある質問
|
||||
|
||||
**チャットアシスタント内にサードパーティツールを追加するにはどうすればよいですか?**
|
||||
|
||||
チャット アシスタント タイプのアプリケーションは、サードパーティ ツールの追加をサポートしていません。[エージェント](../build-app/agent) 内でサードパーティ ツールを追加できます。アプリケーション。
|
||||
134
ja-jp/user-guide/build-app/flow-app/additional-feature.mdx
Normal file
134
ja-jp/user-guide/build-app/flow-app/additional-feature.mdx
Normal file
@@ -0,0 +1,134 @@
|
||||
---
|
||||
title: 追加機能
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
ワークフローとチャットフローアプリは、ユーザーのインタラクション体験を向上させるためにさまざまな機能を追加しています。たとえば、ファイルのアップロード機能を追加したり、LLMアプリに自己紹介セクションを組み込んだり、ウェルカムメッセージを活用することで、ユーザはより充実したインタラクションを楽しむことができます。
|
||||
|
||||
アプリの右上隅にある **「機能」** ボタンをクリックすると、追加機能を利用できます。
|
||||
|
||||
<iframe
|
||||
src="https://app.arcade.software/share/a0tbwuEIT5I3y5RdHsJp"
|
||||
frameborder="0"
|
||||
width="100%"
|
||||
height="500px"
|
||||
allowfullscreen
|
||||
></iframe>
|
||||
|
||||
### ワークフロー
|
||||
|
||||
> ワークフロー アプリにファイル アップロード機能を追加するこの方法は推奨されなくなりました
|
||||
|
||||
ワークフロータイプのアプリは、**「画像のアップロを選択し、設定を完了ード」**機能のみをサポートしています。この機能を有効にすると、ワークフローアプリの使用ページに画像のアップロードエントリが表示されます。
|
||||
|
||||
<iframe
|
||||
src="https://app.arcade.software/share/DqlK9RV79K25ElxMq1BJ"
|
||||
frameborder="0"
|
||||
width="100%"
|
||||
height="500px"
|
||||
allowfullscreen
|
||||
></iframe>
|
||||
|
||||
**使用方法:**
|
||||
|
||||
**ユーザー向け:** 画像のアップロード機能が有効化されたアプリの使用ページには、アップロードボタンが表示されます。このボタンをクリックするか、ファイルのリンクを貼り付けることで画像をアップロードし、LLMから画像に関する回答を受け取ることができます。
|
||||
|
||||
**開発者向け:** 画像のアップロード機能を有効化すると、ユーザーがアップロードした画像ファイルは`sys.files`変数に保存されます。次に、LLMノードを追加し、視覚能力を持つ大規模モデルを選択してVISION機能を有効化し、`sys.files`変数を選択することで、LLMがその画像ファイルを読み取れるようになります。
|
||||
|
||||
最後に、ENDノードでLLMノードの出力変数を選択し、設定を完了させます。
|
||||
|
||||
<Frame caption="視覚分析能力の有効化">
|
||||
<img src="/ja-jp/user-guide/.gitbook/assets/image (7).png" alt="LLM节点中开启视觉分析能力的设置界面" />
|
||||
</Frame>
|
||||
|
||||
### チャットフロー
|
||||
|
||||
チャットフロータイプのアプリは、以下の機能をサポートしています:
|
||||
|
||||
* **冒頭の対話**
|
||||
|
||||
AIが自動的に一文を送信し、歓迎メッセージやAIの自己紹介などでユーザーとの距離を縮めます。
|
||||
* **次の質問の提案**
|
||||
|
||||
対話が完了した後に、自動的に次の質問の提案を追加することで、対話のトピックの深さと頻度を向上させます。
|
||||
* **テキストから音声への変換**
|
||||
|
||||
テキストボックスに音声再生ボタンを追加し、TTSサービスを利用してテキストを読み上げます。
|
||||
* **ファイルのアップロード**
|
||||
|
||||
ドキュメント、画像、音声、映像、その他のファイル形式をサポートしています。この機能を有効にすると、アプリのユーザーは対話の過程でいつでもファイルをアップロードおよび更新できます。最大10個のファイルを同時にアップロードでき、各ファイルのサイズ上限は15MBです。
|
||||
|
||||
<Frame caption="ファイルのアップロード機能">
|
||||
<img src="/ja-jp/user-guide/.gitbook/assets/image (8).png" alt="Chatflow应用中文件上传功能的设置界面" />
|
||||
</Frame>
|
||||
|
||||
* **引用と帰属**
|
||||
|
||||
[「知識検索」](node/knowledge-retrieval)ノードと組み合わせることで、LLMが応答した際の参照元ドキュメントと帰属部分を表示します。
|
||||
|
||||
* **コンテンツの審査**
|
||||
|
||||
審査APIを利用して適切な単語リストを維持し、LLMが安全なコンテンツを応答および出力できるようにします。詳細については[適切なコンテンツの審査](../application-orchestrate/app-toolkits/moderation-tool)を参照してください。
|
||||
|
||||
**使用方法:**
|
||||
|
||||
**ファイルのアップロード**機能以外のチャットフローアプリ内の機能は比較的簡単に使用できます。有効化すると、直感的にアプリのインタラクションページで利用可能です。
|
||||
|
||||
このセクションでは、主に**ファイルのアップロード**機能の具体的な使用方法に焦点を当てます:
|
||||
|
||||
**ユーザー向け:** ファイルのアップロード機能が有効化されたチャットフローアプリでは、対話ボックスの右側に「クリップ」アイコンが表示されます。このアイコンをクリックすることでファイルをアップロードし、LLMと対話できます。
|
||||
|
||||
<Frame caption="ファイルのアップロードの使用">
|
||||
<img src="/ja-jp/user-guide/.gitbook/assets/image (9).png" alt="Chatflow应用中使用文件上传功能的界面" />
|
||||
</Frame>
|
||||
|
||||
**アプリ開発者向け:**
|
||||
|
||||
ファイルアップロード機能を有効にすると、ユーザーがアップロードしたファイルは `sys.files` 変数に保存されます。この変数は、ユーザーが同じ会話ラウンドで新しいメッセージを送信した後に更新されます。
|
||||
|
||||
アップロードされるファイルの種類に応じて、アプリケーションの設定方法が異なります。
|
||||
|
||||
* **ドキュメントファイル**
|
||||
|
||||
LLMは直接ドキュメントファイルを読み取る機能を持っていないため、[ドキュメント抽出機](node/doc-extractor) ノードを使用して `sys.files` 変数内のファイルを前処理する必要があります。設定手順は以下の通りです:
|
||||
|
||||
1. Features 機能を有効にし、ファイルタイプで "ドキュメント" のみを選択します。
|
||||
2. [ドキュメント抽出機](node/doc-extractor) ノードの入力変数で `sys.files` 変数を選択します。
|
||||
3. LLM ノードを追加し、システムプロンプトでドキュメント抽出機ノードの出力変数を選択します。
|
||||
4. 最後に "直接返信" ノードを追加し、LLM ノードの出力変数を記入します。
|
||||
|
||||
この方法で構築された チャットフロー アプリは、アップロードされたファイルの内容を記憶しません。アプリのユーザーは毎回チャットボックスでドキュメントファイルをアップロードする必要があります。アプリがアップロードされたファイルを記憶する場合は、[「ファイルアップロード:開始ノードに変数を追加」](./file-upload#1-2)を参照してください。
|
||||
|
||||
<Frame caption="文書ファイルの整理">
|
||||
<img src="/ja-jp/user-guide/.gitbook/assets/image (372).png" alt="处理文档文件的工作流编排示意图" />
|
||||
</Frame>
|
||||
|
||||
* **画像ファイル**
|
||||
|
||||
一部のLLMは画像から情報を直接取得できるため、画像を処理するための追加ノードは不要です。
|
||||
|
||||
設定手順は以下の通りです:
|
||||
|
||||
1. Features 機能を有効にし、ファイルタイプで "画像" のみを選択します。
|
||||
2. LLM ノードを追加し、VISION 機能を有効にして `sys.files` 変数を選択します。
|
||||
3. 最後に "直接返信" ノードを追加し、LLM ノードの出力変数を記入します。
|
||||
|
||||
<Frame caption="ビジョン分析能力をを开启视觉分析能力">
|
||||
<img src="/ja-jp/user-guide/.gitbook/assets/image (3) (2).png" alt="LLM节点中开启视觉分析能力的设置界面" />
|
||||
</Frame>
|
||||
|
||||
* **複合ファイルタイプ**
|
||||
|
||||
ドキュメントファイルと画像ファイルを同時に処理したい場合は、[リスト操作](node/list-operator) ノードを使用して `sys.files` 変数内のファイルを前処理し、より詳細な変数を抽出して対応する処理ノードに送信する必要があります。設定手順は以下の通りです:
|
||||
|
||||
1. Features 機能を有効にし、ファイルタイプで "画像" および "ドキュメントファイル" を選択します。
|
||||
2. 二つのリスト操作ノードを追加し、"フィルタリング" 条件で画像とドキュメント変数を抽出します。
|
||||
3. ドキュメントファイル変数を抽出し、"ドキュメント抽出機" ノードに渡し、画像ファイル変数を抽出し、LLM ノードに渡します。
|
||||
4. 最後に "直接返信" ノードを追加し、LLM ノードの出力変数を記入します。
|
||||
|
||||
アプリユーザーが文書ファイルと画像を同時にアップロードした場合、文書ファイルは自動的に文書抽出機ノードに送られ、画像ファイルはLLMノードに送られて、ファイルを共同で処理することができます。
|
||||
|
||||
* **音声・動画ファイル**
|
||||
|
||||
LLMは音声・動画ファイルを直接読み取る機能をサポートしておらず、Difyプラットフォームにも関連するファイル処理ツールは組み込まれていません。アプリ開発者は[外部データツール](../extension/api-based-extension/external-data-tool)を参照して、ファイル情報を自分で処理することができます。
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
title: アプリケーション公開
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
デバッグが完了したら、右上の「公開する」をクリックして、このワークフローを保存し、さまざまなタイプのアプリとして素早く公開することができます。
|
||||
|
||||

|
||||
|
||||
対話型アプリは以下の形式で公開できます:
|
||||
|
||||
* 直接実行
|
||||
* Webサイトに埋め込む
|
||||
* APIアクセス
|
||||
|
||||
ワークフローアプリは以下の形式で公開できます:
|
||||
|
||||
* 直接実行
|
||||
* バッチ処理
|
||||
* APIアクセス
|
||||
* ツールとして公開
|
||||
|
||||
<Info>
|
||||
複数バージョンのチャットフローやワークフローを管理する場合は、[バージョン管理](../../management/version-control)を参照してください。
|
||||
</Info>
|
||||
34
ja-jp/user-guide/build-app/flow-app/concepts.mdx
Normal file
34
ja-jp/user-guide/build-app/flow-app/concepts.mdx
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
title: キーコンセプト
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### ノード
|
||||
|
||||
**ノードはワークフローの重要な構成要素**であり、異なる機能を持つノードを接続することで、ワークフローの一連の操作を実行します。
|
||||
|
||||
ワークフローの主要なノードについては[ノード説明](./nodes/start)を参照してください。
|
||||
|
||||
***
|
||||
|
||||
### 変数
|
||||
|
||||
変数はワークフロー内のノードの入力と出力をリンクするために使用され、プロセス全体で複雑な処理ロジックを可能にします。詳細については、[変数](./variables)を参照してください。
|
||||
|
||||
***
|
||||
|
||||
### チャットフローとワークフロー
|
||||
|
||||
**アプリケーションシナリオ**
|
||||
|
||||
- **チャットフロー**:顧客サービスや意味検索、その他の応答を構築する際に、対話型シナリオに適した複数段階のロジックが必要なアプリケーションです。
|
||||
- **ワークフロー**:自動化やバッチ処理のシナリオに適しており、高品質な翻訳、データ分析、コンテンツ生成、電子メールの自動化などに利用されます。
|
||||
|
||||
**使用エントリーポイント**
|
||||
|
||||
**利用可能なノードの違い**
|
||||
|
||||
1. **終了ノード**はワークフローの終了を示すもので、プロセスが完了した後にのみ選択可能です。
|
||||
2. **回答ノード**はチャットフローに属し、テキストコンテンツを柔軟に出力でき、プロセスの途中でも出力が可能です。
|
||||
3. チャットフローにはチャットメモリ(Memory)が組み込まれており、多段階の対話履歴を保存・転送するために利用されます。この機能は、LLMや問題分類などのノード内で有効です。一方、ワークフローにはMemoryに関連する構成がなく、利用することはできません。
|
||||
4. チャットフローの開始ノードには、`sys.query`、`sys.files`、`sys.conversation_id`、`sys.user_id`といった組み込み変数が含まれています。ワークフローの開始ノードには、`sys.files`と`sys.user_id`の組み込み変数が含まれています。
|
||||
37
ja-jp/user-guide/build-app/flow-app/create-flow-app.mdx
Normal file
37
ja-jp/user-guide/build-app/flow-app/create-flow-app.mdx
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
title: アプリケーションの作り方法
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
## チャットフロー
|
||||
|
||||
**応用シーン:**
|
||||
|
||||
対話型シナリオに向いており、カスタマーサービス、セマンティック検索、その他の応答を構築する際に多段階のロジックが必要な対話式アプリケーションに適しています。
|
||||
|
||||
一般的なインタラクションパス: 指示を与える → コンテンツを生成する → コンテンツについて複数のディスカッションを行う → 結果を再生成する → 終了
|
||||
|
||||
スタジオページでで、左側の「最初から作成」をクリックし、「チャットボットのチャットフロー」を選択します。
|
||||
|
||||

|
||||
|
||||
## ワークフロー
|
||||
|
||||
**応用シーン:**
|
||||
|
||||
自動化およびバッチ処理のシナリオに向いており、高品質な翻訳、データ分析、コンテンツ生成、電子メール自動化などのアプリケーションに適しています。
|
||||
|
||||
一般的なインタラクションパス: 指示を与える → コンテンツを生成する → 終了
|
||||
|
||||
スタジオページでで、左側の「最初から作成」をクリックし、「ワークフロー」を選択します。
|
||||
|
||||

|
||||
|
||||
## チャットフローとワークフローの違い
|
||||
|
||||
**利用可能なノードの違い**
|
||||
|
||||
1. 終了ノードはワークフローの終了ノードであり、プロセス終了時にのみ選択できます。
|
||||
2. 回答ノードはチャットフロー用で、テキスト内容をストリーミング出力するために使用され、プロセスの中間ステップでも出力をサポートします。
|
||||
3. チャットフローにはチャットメモリ(Memory)が内蔵されており、複数回の対話の履歴メッセージを保存および伝達するために使用されます。これはLLMや問題分類などのノードで有効にすることができますが、ワークフローにはメモリ関連の設定がなく、有効にできません。
|
||||
4. チャットフローの開始ノードに内蔵されている変数には、`sys.query`、`sys.files`、`sys.conversation_id`、`sys.user_id`が含まれます。ワークフローの開始ノードに内蔵されている変数には、`sys.files`、`sys_id`が含まれます。
|
||||
201
ja-jp/user-guide/build-app/flow-app/file-upload.mdx
Normal file
201
ja-jp/user-guide/build-app/flow-app/file-upload.mdx
Normal file
@@ -0,0 +1,201 @@
|
||||
---
|
||||
title: ファイルアップロード
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
多くの専門的なコンテンツは文書ファイルに保存されており、学術報告書や法的契約などが含まれます。LLMは入力源としてテキストや画像に限定されており、ファイル内の豊富なコンテキスト情報を取得することが難しいため、多くのユーザーは大量の情報を手動でコピー&ペーストしてLLMと対話しなければならず、適用範囲は制限されます。
|
||||
|
||||
ファイルアップロード機能を利用することで、ファイルをFile変数の形式でワークフローアプリにアップロード、解析、参照、ダウンロードすることができます。**これにより、開発者は画像、音声、映像を理解し処理する複雑なタスクを簡単に構築できるようになります。**
|
||||
|
||||
### 適用シーン
|
||||
|
||||
1. **文書分析**: 学術研究報告書をアップロードすると、LLMは迅速にポイントを要約し、ファイルの内容に基づいて関連する質問に回答します。
|
||||
2. **コードレビュー**: 開発者がコードファイルをアップロードし、最適化の提案やバグの検出を受けることができます。
|
||||
3. **学習サポート**: 学生が課題や学習資料をアップロードし、個別の説明やガイダンスを得ることができます。
|
||||
4. **法的支援**: 完全な契約書のテキストをアップロードし、LLMが条項をレビューし、潜在的なリスクを指摘します。
|
||||
|
||||
### ファイルのアップロードとナレッジベースの違い
|
||||
|
||||
ファイルのアップロードとナレッジベースは、言語モデル(LLM)に追加のコンテキスト情報を提供する手段ですが、それぞれの使用シーンや機能には明確な違いがあります。
|
||||
|
||||
1. **情報のソース**:
|
||||
* ファイルのアップロード:エンドユーザーは対話中に動的にファイルをアップロードし、即座に個別化されたコンテキストを提供します。
|
||||
* ナレッジベース:アプリケーション開発者が事前に設定・管理した、比較的固定された情報セットを含みます。
|
||||
2. **柔軟性**:
|
||||
* ファイルのアップロード:柔軟性が高く、ユーザーは特定のニーズに応じて様々なタイプのファイルをアップロードできます。
|
||||
* ナレッジベース:内容は比較的固定されていますが、複数のセッションで再利用が可能です。
|
||||
3. **情報処理**:
|
||||
* ファイルのアップロード:ファイルの内容をLLMが理解できるテキストに変換するためには、ドキュメントエクストラクターなどのツールが必要です。このツールは、ファイルから必要な情報を抽出し、モデルが処理できる形式に整えます。
|
||||
* ナレッジベース:通常、前処理とインデックス作業が完了しているため、直接検索して情報を取得できます。
|
||||
4. **アプリケーションシーン**:
|
||||
* ファイルのアップロード:ユーザー固有の文書を処理する必要があるシーンで非常に有効です。例えば、文書分析やパーソナライズされた学習支援などが挙げられます。
|
||||
* ナレッジベース:大量の事前設定情報にアクセスする必要がある場合に適しています。たとえば、カスタマーサービスや製品相談などです。
|
||||
5. **データの永続性**:
|
||||
* ファイルのアップロード:通常は一時的な使用であり、システムに長期間保存されることはありません。
|
||||
* ナレッジベース:アプリケーションの一部として長期間存在し、継続的に更新・メンテナンスされることが可能です。
|
||||
|
||||
### はじめに
|
||||
|
||||
Difyは、[チャットフロー](key-concept#chatflow-he-workflow) と [ワークフロー](key-concept#chatflow-he-workflow) タイプのアプリでファイルをアップロードし、LLMに処理させる[変数](variables)をサポートしています。アプリ開発者は、以下の2つの方法でアプリにファイルアップロード機能を追加できます:
|
||||
|
||||
* ワークフローアプリの場合
|
||||
* [開始ノード](node/start)にファイル変数を追加する
|
||||
* チャットフローアプリの場合
|
||||
* [追加機能](additional-features)でファイルアップロードを有効にする(チャットフローのみ対応)
|
||||
* [開始ノード](node/start)にファイル変数を追加する
|
||||
* これらの機能は同時に設定可能で、お互いに独立して動作します。ファイルアップロード機能(アップロード方法や数量制限を含む)は、開始ノードのファイル変数に影響を与えません。例えば、開始ノードでのみファイル変数を作成したい場合は、ファイルアップロード機能を追加で有効にする必要はありません。
|
||||
|
||||
これらの方法は、さまざまなシーンの要件を満たすために、アプリケーションに柔軟なファイルアップロードオプションを提供します。
|
||||
|
||||
#### ファイルタイプ
|
||||
|
||||
以下のファイルタイプとフォーマットがサポートされています:
|
||||
|
||||
<table data-header-hidden>
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="227"></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>ファイルタイプ</td>
|
||||
<td>サポートされるフォーマット</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>文書</td>
|
||||
<td>TXT, MARKDOWN, PDF, HTML, XLSX, XLS, DOCX, CSV, EML, MSG, PPTX, PPT, XML, EPUB.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>画像</td>
|
||||
<td>JPG, JPEG, PNG, GIF, WEBP, SVG.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>音声</td>
|
||||
<td>MP3, M4A, WAV, WEBM, AMR.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>映像</td>
|
||||
<td>MP4, MOV, MPEG, MPGA.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>その他</td>
|
||||
<td>カスタム拡張子がサポートされます。</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
#### 方法1:チャットボックスでファイルアップロードを有効にする(チャットフローのみ対応)
|
||||
|
||||
1. チャットフローアプリの右上隅にある **「機能」** ボタンをクリックして、アプリにさらに機能を追加できます。
|
||||
|
||||
この機能を有効にすると、アプリユーザーは対話中にいつでもファイルをアップロードおよび更新できます。最大10個のファイルを同時にアップロードでき、各ファイルのサイズ上限は15MBです。
|
||||
|
||||
<Frame caption="ファイルアップロード機能">
|
||||
<img src="/ja-jp/user-guide/.gitbook/assets/image (379).png" alt="Chatflow应用中文件上传功能的设置界面" />
|
||||
</Frame>
|
||||
|
||||
機能を有効にしても、LLM(大規模言語モデル)がファイルを直接読み取ることはできません。ファイルをLLMが理解できるテキスト形式に変換するには、が必要です。
|
||||
|
||||
* 音声ファイルについては、`gpt-4o-audio-preview`などのマルチモーダル入力に対応したモデルを使用することで、音声を直接処理できます。この場合、追加のエクストラクタは必要ありません。
|
||||
* 映像やその他のファイルタイプについては、対応するエクストラクタがまだ用意されておらず、外部ツールを統合するためには開発者が外部ツールにアクセスする必要があります。[外部ツール](../tools/advanced-tool-integration)を接続して処理する必要があります。
|
||||
|
||||
2. [テキスト抽出ツール](node/doc-extractor)ノードを追加し、入力変数で `sys.files` 変数を選択します。
|
||||
3. LLMノードを追加し、システムプロンプトでテキスト抽出ツールノードの出力変数を選択します。
|
||||
4. 最後に「直接応答」ノードを追加し、LLMノードの出力変数を入力します。
|
||||
|
||||
<Frame caption="ファイルアップロードののワークフロー">
|
||||
<img src="/ja-jp/user-guide/.gitbook/assets/image (380).png" alt="包含文件上传的工作流示意图" />
|
||||
</Frame>
|
||||
|
||||
有効にすると、ユーザーは対話ボックスでファイルをアップロードして対話できます。ただし、この方法では、LLMアプリはファイルの内容を記憶する能力を持ちません。各対話ごとにファイルをアップロードする必要があります。
|
||||
|
||||
<Frame caption="会話ボックスでのファイルのアップロード">
|
||||
<img src="/ja-jp/user-guide/.gitbook/assets/image (381).png" alt="对话框中上传文件的界面" />
|
||||
</Frame>
|
||||
|
||||
LLMが対話中にファイル内容を記憶する機能を追加したい場合は、方法2を参照してください。
|
||||
|
||||
#### 方法2:ファイル変数を追加してファイルアップロード機能を有効にする
|
||||
|
||||
#### 1. 「開始」ノードにファイル変数を追加する
|
||||
|
||||
アプリの[「開始」](node/start)ノードに、**「単一ファイル」**または **「ファイルリスト」** といったフィールドタイプの変数を追加します。
|
||||
|
||||
* **単一ファイル**
|
||||
|
||||
ユーザーが1つのファイルだけをアップロードできるようにします。
|
||||
|
||||
* **ファイルリスト**
|
||||
|
||||
ユーザーが複数のファイルを一度にアップロードできるようにします。
|
||||
|
||||
> 操作を簡単にするため、ここでは「単一ファイル」変数の例を用います。
|
||||
|
||||
#### ファイルの解析方法
|
||||
|
||||
ファイル変数の使用方法には主に2つのアプローチがあります:
|
||||
|
||||
1. ツールノードを利用してファイルの内容を変換する:
|
||||
* ドキュメント形式のファイルの場合、「ドキュメントエクストラクタ」ノードを使ってファイルの内容をテキスト形式に変換できます。
|
||||
* この方法は、ファイルの内容をモデルが理解できる形式(例: string、array[string]など)に変換する必要がある場合に適しています。
|
||||
2. LLMノード内でファイル変数を直接使用する:
|
||||
* 特定の種類のファイル(例: 画像)の場合、LLMノード内でファイル変数を直接使用することができます。
|
||||
* たとえば、画像形式のファイル変数を使用する場合、LLMノードで視覚機能を有効にし、変数セレクターで該当するファイル変数を直接参照できます。
|
||||
|
||||
どちらの方法を選ぶかは、ファイルの種類と具体的な要件によります。以下で、これら2つの方法の具体的な手順について詳しく説明します。
|
||||
|
||||
#### 2. テキスト抽出ツールノードの追加
|
||||
|
||||
ファイルをアップロードすると、そのファイルは「単一ファイル」変数に保存されます。しかし、LLMは変数内のファイルを直接読み込むことができないため、まず[**「テキスト抽出ツール」**](node/doc-extractor)ノードを追加する必要があります。
|
||||
|
||||
「開始」ノード内のファイル変数を **「テキスト抽出ツール」** ノードの入力変数として使用します。
|
||||
|
||||
<Frame caption="入力変数を追加する">
|
||||
<img src="/images/assets/image-4.png" alt="入力変数を追加する" />
|
||||
</Frame>
|
||||
|
||||
「テキスト抽出ツール」ノードの出力変数をLLMノードのシステムプロンプトに貼り付けます。
|
||||
|
||||
<Frame caption="システムプロンプトの単語を貼り付けます">
|
||||
<img src="/images/assets/image-5.png" alt="システムプロンプトの単語を貼り付けます" />
|
||||
</Frame>
|
||||
|
||||
これらの設定が完了すると、ユーザーはWebApp内でファイルのURLを貼り付けるか、ローカルファイルをアップロードでき、その後、ドキュメントの内容に基づいてLLMとの対話が可能になります。ユーザーは対話の過程でいつでもファイルを置き換えることができ、LLMは常に最新のファイル内容を取得します。
|
||||
|
||||
<Frame caption="URL を貼り付けて会話を開始します">
|
||||
<img src="/images/assets/image-6.png" alt="WebApp中粘贴URL进行对话的界面" />
|
||||
</Frame>
|
||||
|
||||
**LLMノードでファイル変数を参照する方法**
|
||||
|
||||
特定の種類のファイル(例: 画像)の場合、LLMノード内でファイル変数を直接使用できます。この方法は、視覚的解析が必要な場面に特に適しています。具体的な手順は以下の通りです:
|
||||
|
||||
1. LLMノードで視覚機能を有効にします。これにより、モデルが画像入力を処理できるようになります(モデルが視覚機能をサポートしている必要があります)。
|
||||
2. LLMノードの変数セレクターで、以前に作成したファイル変数を直接参照します。ファイルのアップロードによって作成されたファイル変数を選択する場合は、sys.files変数を選択します。
|
||||
3. システムプロンプトで、モデルに画像入力の処理方法を指示します。たとえば、モデルに画像の内容を説明させたり、画像に関する質問に答えさせたりできます。
|
||||
|
||||
以下は設定の例です:
|
||||
|
||||
<Frame caption="LLM ノードでファイル変数を直接使用する">
|
||||
<img src="/ja-jp/img/file-upload-qs-1.avif" alt="LLM节点中直接使用文件变量的配置界面" />
|
||||
</Frame>
|
||||
|
||||
LLMノード内でファイル変数を直接使用する際は、そのファイル変数が画像ファイルのみを含むようにする必要があります。それ以外の場合、エラーが発生する可能性があります。ユーザーが異なる種類のファイルをアップロードする可能性がある場合は、フィルタリングを行うためにリスト操作を使用することが重要です。
|
||||
|
||||
#### ファイルのダウンロード方法
|
||||
|
||||
ファイル変数をanswerノードまたはendノードに配置すると、アプリケーションがそのノードに到達した際に、セッションボックスにファイルダウンロードカードが表示されます。このカードをクリックすることで、ファイルをダウンロードできます。
|
||||
|
||||
<Frame caption="ファイルダンロード">
|
||||
<img src="/ja-jp/img/file-upload-qs-2.avif" alt="会话框中的文件下载卡片界面" />
|
||||
</Frame>
|
||||
|
||||
### 上級者向けの使用方法
|
||||
|
||||
アプリが複数のファイル形式に対応できるようにしたい場合、例えば、ユーザーがドキュメントファイル、画像、音声、動画ファイルを同時にアップロードできるようにするには、「開始」ノードに「ファイルリスト」変数を追加し、「リスト操作」ノードを使用して異なるファイルタイプを処理する必要があります。詳細については、[リスト操作](node/list-operator)ノードを参照してください。
|
||||
|
||||
<Frame caption="複数のファイルタイプの処理">
|
||||
<img src="/ja-jp/user-guide/.gitbook/assets/image (3).png" alt="处理多种文件类型的工作流示意图" />
|
||||
</Frame>
|
||||
7
ja-jp/user-guide/build-app/flow-app/nodes/README.mdx
Normal file
7
ja-jp/user-guide/build-app/flow-app/nodes/README.mdx
Normal file
@@ -0,0 +1,7 @@
|
||||
# 节点说明
|
||||
|
||||
**节点是工作流中的关键构成**,通过连接不同功能的节点,执行工作流的一系列操作。
|
||||
|
||||
### 核心节点
|
||||
|
||||
<table data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><a href="start.md"><strong>开始(Start)</strong></a></td><td>定义一个 workflow 流程启动的初始参数。</td><td></td></tr><tr><td><a href="end.md"><strong>结束(End)</strong></a></td><td>定义一个 workflow 流程结束的最终输出内容。</td><td></td></tr><tr><td><a href="answer.md"><strong>回复(Answer)</strong></a></td><td>定义一个 Chatflow 流程中的回复内容。</td><td></td></tr><tr><td><a href="llm.md"><strong>大语言模型(LLM)</strong></a></td><td>调用大语言模型回答问题或者对自然语言进行处理。</td><td></td></tr><tr><td><a href="knowledge-retrieval.md"><strong>知识检索(Knowledge Retrieval)</strong></a></td><td>从知识库中检索与用户问题相关的文本内容,可作为下游 LLM 节点的上下文。</td><td></td></tr><tr><td><a href="question-classifier.md"><strong>问题分类(Question Classifier)</strong></a></td><td>通过定义分类描述,LLM 能够根据用户输入选择与之相匹配的分类。</td><td></td></tr><tr><td><a href="ifelse.md"><strong>条件分支(IF/ELSE)</strong></a></td><td>允许你根据 if/else 条件将 workflow 拆分成两个分支。</td><td></td></tr><tr><td><a href="code.md"><strong>代码执行(Code)</strong></a></td><td>运行 Python / NodeJS 代码以在工作流程中执行数据转换等自定义逻辑。</td><td></td></tr><tr><td><a href="template.md"><strong>模板转换(Template)</strong></a></td><td>允许借助 Jinja2 的 Python 模板语言灵活地进行数据转换、文本处理等。</td><td></td></tr><tr><td><a href="variable-assigner.md"><strong>变量聚合(Variable Aggregator)</strong></a></td><td>将多路分支的变量聚合为一个变量,以实现下游节点统一配置。</td><td></td></tr><tr><td><a href="parameter-extractor.md"><strong>参数提取器(Parameter Extractor)</strong></a></td><td>利用 LLM 从自然语言推理并提取结构化参数,用于后置的工具调用或 HTTP 请求。</td><td></td></tr><tr><td><a href="iteration.md"><strong>迭代(Iteration)</strong></a></td><td>对列表对象执行多次步骤直至输出所有结果。</td><td></td></tr><tr><td><a href="http-request.md"><strong>HTTP 请求(HTTP Request)</strong></a></td><td>允许通过 HTTP 协议发送服务器请求,适用于获取外部检索结果、webhook、生成图片等情景。</td><td></td></tr><tr><td><a href="tools.md"><strong>工具(Tools)</strong></a></td><td>允许在工作流内调用 Dify 内置工具、自定义工具、子工作流等。</td><td></td></tr><tr><td><a href="variable-assignment.md"><strong>变量赋值(Variable Assigner)</strong></a></td><td>变量赋值节点用于向可写入变量(例如会话变量)进行变量赋值。</td><td></td></tr></tbody></table>
|
||||
20
ja-jp/user-guide/build-app/flow-app/nodes/answer.mdx
Normal file
20
ja-jp/user-guide/build-app/flow-app/nodes/answer.mdx
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: 直接返信
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### 定義
|
||||
|
||||
チャットフローアプリのプロセス内で返信内容を定義します。
|
||||
|
||||
テキストエディタを使用して返信フォーマットを自由に定義できます。固定のテキスト内容をカスタマイズしたり、前のステップで出力された変数を返信内容として使用したり、カスタマイズしたテキストと変数を組み合わせて返信することができます。
|
||||
|
||||
ノードを随時追加して内容をストリーミング形式で会話に返信し、所見即所得の設定モードをサポートし、テキストと画像の混在も可能です。例えば:
|
||||
|
||||
1. LLMノードの返信内容を出力
|
||||
2. 生成された画像を出力
|
||||
3. 純テキストを出力
|
||||
|
||||
<Info>
|
||||
直接返信ノードは最終出力ノードとして使用しなくてもよく、プロセスの中間ステップでストリーミング出力結果を出力することができます。
|
||||
</Info>
|
||||
94
ja-jp/user-guide/build-app/flow-app/nodes/code.mdx
Normal file
94
ja-jp/user-guide/build-app/flow-app/nodes/code.mdx
Normal file
@@ -0,0 +1,94 @@
|
||||
---
|
||||
title: コード
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
## 紹介
|
||||
|
||||
コードノードは、Python / NodeJSコードを実行してワークフロー内でデータ変換を行うことをサポートします。これにより、Arithmetic、JSON変換、テキスト処理などのシナリオでワークフローが簡素化されます。
|
||||
|
||||
このノードは開発者の柔軟性を大幅に向上させ、ワークフロー内にカスタムPythonまたはJavascriptスクリプトを埋め込んで、事前設定されたノードでは達成できない方法で変数を操作することができます。設定オプションを使用して、必要な入力変数と出力変数を指定し、対応する実行コードを記述できます。
|
||||
|
||||

|
||||
|
||||
## 設定
|
||||
|
||||
他のノードの変数をコードノードで使用する必要がある場合は、`入力変数`で変数名を定義し、これらの変数を参照する必要があります。[変数参照](../key-concept#変数)を参考にしてください。
|
||||
|
||||
## 使用シナリオ
|
||||
|
||||
コードノードを使用して、以下の一般的な操作を実行できます:
|
||||
|
||||
### 構造化データ処理
|
||||
|
||||
ワークフローでは、しばしば非構造化データの処理が必要です。例えば、JSON文字列の解析、抽出、変換などです。典型的な例として、HTTPノードのデータ処理があります。一般的なAPI応答構造では、データが多層のJSONオブジェクトにネストされていることがあり、特定のフィールドを抽出する必要があります。コードノードはこれらの操作を支援します。以下は、HTTPノードから返されたJSON文字列から`data.name`フィールドを抽出する簡単な例です:
|
||||
|
||||
```python
|
||||
def main(http_response: str) -> str:
|
||||
import json
|
||||
data = json.loads(http_response)
|
||||
return {
|
||||
# 出力変数にresultを宣言することに注意
|
||||
'result': data['data']['name']
|
||||
}
|
||||
```
|
||||
|
||||
### 数学計算
|
||||
|
||||
ワークフロー内で複雑な数学計算を行う必要がある場合、コードノードを使用できます。例えば、複雑な数学公式の計算やデータの統計分析です。以下は、配列の平方差を計算する簡単な例です:
|
||||
|
||||
```python
|
||||
def main(x: list) -> float:
|
||||
return {
|
||||
# 出力変数にresultを宣言することに注意
|
||||
'result' : sum([(i - sum(x) / len(x)) ** 2 for i in x]) / len(x)
|
||||
}
|
||||
```
|
||||
|
||||
### データの結合
|
||||
|
||||
時には、複数のデータソースを結合する必要がある場合があります。例えば、複数の知識検索、データサーチ、API呼び出しなどです。コードノードはこれらのデータソースを統合するのに役立ちます。以下は、2つのナレッジベースのデータを結合する簡単な例です:
|
||||
|
||||
```python
|
||||
def main(knowledge1: list, knowledge2: list) -> list:
|
||||
return {
|
||||
# 出力変数にresultを宣言することに注意
|
||||
'result': knowledge1 + knowledge2
|
||||
}
|
||||
```
|
||||
|
||||
## ローカルデプロイ
|
||||
|
||||
ローカルデプロイのユーザーである場合、悪意のあるコードが実行されないようにするためのサンドボックスサービスを起動する必要があります。このサービスを起動するにはDockerサービスを使用します。サンドボックスサービスの詳細は[こちら](https://github.com/langgenius/dify/tree/main/docker/docker-compose.middleware.yaml)から確認できます。また、`docker-compose`を使用してサービスを直接起動することもできます:
|
||||
|
||||
```bash
|
||||
docker-compose -f docker-compose.middleware.yaml up -d
|
||||
```
|
||||
|
||||
> システムにDocker Compose V2がインストールされている場合は、`docker compose`を使用し;V1の場合、`docker-compose`を使用しください。`$docker compose version` でこれに該当するかどうかを確認してください。詳細は[こちら](https://docs.docker.com/compose/#compose-v2-and-the-new-docker-compose-command)をご覧ください。
|
||||
|
||||
## セキュリティポリシー
|
||||
|
||||
Python3とJavascriptのいずれであっても、その実行環境は安全性を確保するために厳密に隔離(サンドボックス化)されています。これにより、ファイルシステムへの直接アクセス、ネットワークリクエストの実行、OSレベルのコマンドの実行など、システムリソースを大量に消費する可能性がある機能を使用することはできません。これらの制限により、コードの安全な実行が保証され、システムリソースの過剰消費が防止されます。
|
||||
|
||||
### よくある質問
|
||||
|
||||
**コード ノードにコードを入力した後にコードを保存できないのはなぜですか?**
|
||||
|
||||
コードに危険な動作がないか確認してください。例えば:
|
||||
|
||||
```python
|
||||
def main() -> dict:
|
||||
return {
|
||||
"result": open("/etc/passwd").read(),
|
||||
}
|
||||
```
|
||||
|
||||
このコードには次の問題が含まれています。
|
||||
|
||||
* **不正なファイル アクセス:** コードは、ユーザー アカウント情報を保存する Unix/Linux システムの重要なシステム ファイルである`/etc/passwd`ファイルを読み取ろうとしました。
|
||||
* **機密情報の漏洩:** `/etc/passwd`ファイルには、ユーザー名、ユーザー ID、グループ ID、ホーム ディレクトリのパスなど、システム ユーザーの重要な情報が含まれています。直接アクセスすると情報が漏洩する可能性があります。
|
||||
|
||||
危険なコードはCloudflare WAFによって自動的にブロックされます。ブロックされているかどうかは、「Webデバッグツール」の「ネットワーク」から確認できます。
|
||||
|
||||

|
||||
67
ja-jp/user-guide/build-app/flow-app/nodes/doc-extractor.mdx
Normal file
67
ja-jp/user-guide/build-app/flow-app/nodes/doc-extractor.mdx
Normal file
@@ -0,0 +1,67 @@
|
||||
---
|
||||
title: テキスト抽出ツール
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### 定義
|
||||
|
||||
LLM(大規模言語モデル)は文書の内容を直接読み取ることができません。そのため、ユーザーがアップロードした文書を”テキスト抽出ツールノード”を介して解析し、文書ファイルの情報を読み取り、テキストに変換して内容をLLMに送信する必要があります。
|
||||
|
||||
### 適用シナリオ
|
||||
|
||||
* ファイルに対話できるLLMアプリを構築する、例えばChatPDFやChatWord;
|
||||
* ユーザーがアップロードしたファイルの内容を分析およびチェックする;
|
||||
|
||||
### ノードの機能
|
||||
|
||||
テキスト抽出ツールノードは、情報を処理する中心的な役割を果たします。入力変数内のファイルを識別して読み取り、情報を抽出し、string型の出力変数に変換して、下流のノードが呼び出すために提供します。
|
||||
|
||||

|
||||
|
||||
テキスト抽出ツールノードは、入力変数と出力変数に分かれています。
|
||||
|
||||
#### 入力変数
|
||||
|
||||
テキスト抽出ツールは以下のデータ構造の変数のみを受け入れます:
|
||||
|
||||
* `File`,1つのファイル
|
||||
* `Array[File]`,複数のファイル
|
||||
|
||||
テキスト抽出ツールは、テキスト、Markdown、PDF、HTML、DOCX形式のファイルなどの文書タイプから情報を抽出できますが、画像、音声、映像などの形式のファイルは処理できません。
|
||||
|
||||
#### 出力変数
|
||||
|
||||
出力変数は`text`という固定の名前です。出力変数の型は入力変数に依存します:
|
||||
|
||||
* 入力変数が`File`の場合、出力変数は`string`です。
|
||||
* 入力変数が`Array[File]`の場合、出力変数は`array[string]`です。
|
||||
|
||||
> Array配列変数は通常、リスト操作ノードと組み合わせて使用されます。詳細については、[リスト操作](./list-operator)を参照してください。
|
||||
|
||||
### 設定例
|
||||
|
||||
典型的なファイルインタラクションの質疑応答シナリオでは、テキスト抽出ツールはLLMノードの前段階として機能し、アプリのファイル情報を抽出し、LLMノードに渡してユーザーのファイルに関する質問に回答します。
|
||||
|
||||
このセクションでは、典型的なChatPDFサンプルワークフローテンプレートを用いて、テキスト抽出ツールノードの使用方法を説明します。
|
||||
|
||||

|
||||
|
||||
**設定手順:**
|
||||
|
||||
1. アプリでファイルアップロード機能を有効にします。 [“スタート”](./start) ノードで**単一ファイル変数**を追加し、`pdf`と名付けます。
|
||||
2. テキスト抽出ツールノードを追加し、入力変数で`pdf`変数を選択します。
|
||||
3. LLMノードを追加し、システムプロンプトでテキスト抽出ツールノードの出力変数を選択します。LLMはこの出力変数を使用してファイルの内容を読み取ることができます。
|
||||
|
||||

|
||||
|
||||
4. エンドノードを設定し、LLMノードの出力変数を選択します。
|
||||
|
||||
設定が完了すると、アプリケーションはファイルアップロード機能を持ち、ユーザーはPDFファイルをアップロードして対話を展開できるようになります。
|
||||
|
||||
<Frame>
|
||||
<img src="/ja-jp/img/0ae3f13cf725cb2c52c72cc354e592ee.png" alt="ドキュメント抽出ノードの設定" />
|
||||
</Frame>
|
||||
|
||||
<Tip>
|
||||
チャット対話でファイルをアップロードしLLMと対話する方法については、[追加機能](../additional-feature)を参照してください。
|
||||
</Tip>
|
||||
30
ja-jp/user-guide/build-app/flow-app/nodes/end.mdx
Normal file
30
ja-jp/user-guide/build-app/flow-app/nodes/end.mdx
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: 終了
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### 定義
|
||||
|
||||
ワークフローの最終出力内容を定義します。すべてのワークフローは、完全に実行された後、最終結果を出力するための少なくとも1つの終了ノードを必要とします。
|
||||
|
||||
終了ノードはプロセスの終了ノードであり、その後に他のノードを追加することはできません。ワークフローアプリケーションでは、終了ノードに到達して初めて実行結果が出力されます。プロセスに条件分岐がある場合、複数の終了ノードを定義する必要があります。
|
||||
|
||||
終了ノードは1つ以上の出力変数を宣言する必要があります。この宣言の際、任意の上流ノードの出力変数を参照することができます。
|
||||
|
||||
|
||||
***
|
||||
|
||||
### シナリオ
|
||||
|
||||
以下の[長編ストーリー生成ワークフロー](./iteration#1)では、終了ノードで宣言された変数 `Output` は上流のコードノードの出力です。つまり、このワークフローはCode3ノードが実行された後に終了し、Code3の実行結果を出力します。
|
||||
|
||||

|
||||
|
||||
**単一ルートの実行例:**
|
||||
|
||||

|
||||
|
||||
**複数ルートの実行例:**
|
||||
|
||||

|
||||
|
||||
36
ja-jp/user-guide/build-app/flow-app/nodes/http-request.mdx
Normal file
36
ja-jp/user-guide/build-app/flow-app/nodes/http-request.mdx
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
title: HTTPリクエスト
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### 定義
|
||||
|
||||
HTTP プロトコルを介してサーバーにリクエストを送信することを可能にし、外部データの取得、ウェブフック、画像生成、ファイルのダウンロードなどのシナリオに適用されます。指定されたネットワークアドレスにカスタマイズされたHTTPリクエストを送信し、さまざまな外部サービスとの連携を実現します。
|
||||
|
||||
このノードは一般的なHTTPリクエストメソッドをサポートしています:
|
||||
|
||||
* **GET**、リソースをサーバーにリクエストするために使用されます。
|
||||
* **POST**、データをサーバーに送信するために使用され、通常はフォームの送信やファイルのアップロードに使用されます。
|
||||
* **HEAD**、GETリクエストに似ていますが、サーバーはリソースの本体を返さず、レスポンスヘッダーのみを返します。
|
||||
* **PATCH**、リクエスト-レスポンスチェーンの各ノードで伝送経路を取得するために使用されます。
|
||||
* **PUT**、リソースをサーバーにアップロードするために使用され、通常は既存のリソースの更新や新しいリソースの作成に使用されます。
|
||||
* **DELETE**、指定されたリソースをサーバーに削除するようにリクエストするために使用されます。
|
||||
|
||||
HTTPリクエストのURL、リクエストヘッダー、クエリパラメータ、リクエストボディの内容、および認証情報などを設定することができます。
|
||||
|
||||
<Frame caption="HTTP リクエスト設定">
|
||||
<img src="/ja-jp/img/jp-http-request.png" alt="长故事迭代生成应用流程图" />
|
||||
</Frame>
|
||||
|
||||
|
||||
***
|
||||
|
||||
### シナリオ
|
||||
|
||||
このノードの便利な特性の一つは、シナリオに応じてリクエストの異なる部分に動的に変数を挿入できることです。例えば、カスタマーレビュープロセスを処理する際に、ユーザー名や顧客ID、レビュー内容などの変数をリクエストに埋め込むことで、カスタマイズされた自動返信情報を作成したり、特定の顧客情報を取得して関連リソースを特定のサーバーに送信したりすることができます。
|
||||
|
||||
<Frame caption="カスタマーレビューの分類">
|
||||
<img src="/ja-jp/img/customer-feedback-classification.png" alt="长故事迭代生成应用流程图" />
|
||||
</Frame>
|
||||
|
||||
HTTP HTTPリクエストの戻り値には、レスポンスボディ、ステータスコード、レスポンスヘッダー、ファイルが含まれます。特に、レスポンスにファイル(現在は画像タイプのみ)が含まれている場合、このノードはファイルを自動的に保存し、後続のプロセスで使用できるようにします。この設計により、処理効率が向上し、ファイルを含むレスポンスの処理がシンプルで直接的になります。
|
||||
55
ja-jp/user-guide/build-app/flow-app/nodes/ifelse.mdx
Normal file
55
ja-jp/user-guide/build-app/flow-app/nodes/ifelse.mdx
Normal file
@@ -0,0 +1,55 @@
|
||||
---
|
||||
title: 条件分岐
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### 定義
|
||||
|
||||
if/else 条件に基づいてチャットフローとワークフローを2つの分岐に分けることができます。
|
||||
|
||||
### ノードの機能
|
||||
|
||||
条件分岐の動作メカニズムには、次の6つのパスが含まれます:
|
||||
|
||||
* IFの条件:変数を選び、条件と満たすべき値を設定します;
|
||||
* IFの条件が `True` と判断された場合、IFパスを実行します;
|
||||
* IFの条件が `False` と判断された場合、ELSEパスを実行します;
|
||||
* ELIFの条件が `True` と判断された場合, ELIFパスを実行します;
|
||||
* ELIFの条件が `False` と判断された場合, 次のELIFパスを判断します、もしくは最後のELIFパスを実行します;
|
||||
|
||||
**条件の種類**
|
||||
|
||||
次の条件タイプの設定をサポートします:
|
||||
|
||||
* 含む(Contains)
|
||||
* 含まない(Not contains)
|
||||
* ..から始まる(Start with)
|
||||
* ..から終わる(End with)
|
||||
* である(Is)
|
||||
* ではない(Is not)
|
||||
* 空である(Is empty)
|
||||
* 空ではない(Is not empty)
|
||||
|
||||
***
|
||||
|
||||
### シナリオ
|
||||
|
||||
<Frame>
|
||||
<img src="/ja-jp/img/jp-ifelse.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
**テキスト要約ワークフロー**を例に、各条件を説明します。
|
||||
|
||||
* IFの条件:開始ノードの`summarystyle`変数を選び、条件を **含む** として `技術` を設定します;
|
||||
* IFの条件が `True` と判断された場合、IFパスを実行し、技術関連の知識をナレッジ検索ノードを通じて問い合わせ、その後大規模言語モデル(LLM)ノードを介して応答します。(上図の下半部分に示されるように);
|
||||
* IFの条件が `False` と判断され、さらにELIF条件が加えられた場合、`summarystyle` 変数の入力に `技術` は含まれず、ELIFの条件に `科学` が含まれている場合は、ELIFの条件が `True` であるかどうかを確認し、該当する手順を実行します。
|
||||
* ELIFの条件が `False` で、かつ入力変数に `技術` や `科学` が含まれていない場合は、次のELIFの条件の評価を続けるか、もしくはELSEパスを実行します。
|
||||
* IFの条件が `False` と判断された場合、つまり`summarystyle`変数の入力が **含まない** として `技術` を設定し、ELSEパスを実行し、LLM2ノードで返信します(上図の下半部分に示されるように);
|
||||
|
||||
**複数条件の判断**
|
||||
|
||||
複雑な条件判断が必要な場合、複数条件を設定し、条件間に **AND** または **OR** を設定することができます。これは条件間に**交集**または**并集**を取ることを意味します。
|
||||
|
||||
<Frame caption="複数条件の判断" width="369">
|
||||
<img src="/ja-jp/img/jp-ifelse-setting.png" alt="" />
|
||||
</Frame>
|
||||
190
ja-jp/user-guide/build-app/flow-app/nodes/iteration.mdx
Normal file
190
ja-jp/user-guide/build-app/flow-app/nodes/iteration.mdx
Normal file
@@ -0,0 +1,190 @@
|
||||
---
|
||||
title: イテレーション
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### 定義
|
||||
|
||||
配列に対して複数のステップを実行し、すべての結果を出力すること。
|
||||
|
||||
イテレーションステップはリスト中の各項目に対して同じステップを実行します。イテレーションを使用する条件は、入力値がリストオブジェクトとしてフォーマットされていることを確認することです。イテレーションノードは、AIワークフローにより複雑な処理ロジックを取り入れることを可能にします。イテレーションノードはループノードの親しみやすいバージョンであり、非技術ユーザーが迅速に始められるようにカスタマイズの程度を調整しています。
|
||||
|
||||
***
|
||||
|
||||
### シナリオ
|
||||
|
||||
#### **例1:長文イテレーション生成器**
|
||||
|
||||
<Frame caption="长故事生成器">
|
||||
<img src="/ja-jp/user-guide/.gitbook/assets/iteration-story-generator.png" alt="长故事生成器流程图" />
|
||||
</Frame>
|
||||
|
||||
1. **開始ノード** 内にタイトルとアウトラインを入力
|
||||
2. **コードノード** を使用してユーザー入力から完全な内容を抽出
|
||||
3. **パラメータ抽出ノード** を使用して完全な内容を配列形式に変換
|
||||
4. **イテレーションノード** でラップされた **LLM ノード** を通じて各章の内容を複数回生成
|
||||
5. イテレーションノード内に **直接応答ノード** を追加して、各イテレーション生成の後にストリーム出力を行う
|
||||
|
||||
**具体的な設定ステップ**
|
||||
|
||||
1. **開始ノード** にタイトル(title)とアウトライン(outline)を設定;
|
||||
|
||||
<Frame caption="開始ノードの設定" width="375">
|
||||
<img src="/ja-jp/img/jp-iteration-start.png" alt="开始节点配置界面" />
|
||||
</Frame>
|
||||
|
||||
2. **Jinja-2 テンプレートノード** を使用してタイトルとアウトラインを完全なテキストに変換;
|
||||
|
||||
<Frame caption="テンプレートノード" width="375">
|
||||
<img src="/ja-jp/img/jp-iteration-outline.png" alt="LLM节点配置界面" />
|
||||
</Frame>
|
||||
|
||||
3. **パラメータ抽出ノード** を使用して、ストーリーテキストを配列(Array)構造に変換。抽出パラメータは `sections`、パラメータタイプは `Array[Object]`
|
||||
|
||||
<Frame caption="パラメータ抽出" width="375">
|
||||
<img src="/ja-jp/img/workflow-extract-subtitles-and-outlines.png" alt="参数提取节点配置界面" />
|
||||
</Frame>
|
||||
|
||||
<Note>
|
||||
パラメータ抽出の効果はモデル推論能力と指示に影響されます。推論能力が高いモデルを使用し、**指示** 内に例を追加することでパラメータ抽出の効果を向上させることができます。
|
||||
</Note>
|
||||
|
||||
4. ストーリーアウトラインの配列形式をイテレーションノードの入力として使用し、イテレーションノード内で **LLM ノード** を使用して処理
|
||||
|
||||
<Frame caption="イテレーションノードの設定" width="375">
|
||||
<img src="/ja-jp/img/workflow-iteration-node.png" alt="迭代节点配置界面" />
|
||||
</Frame>
|
||||
|
||||
LLM ノード内で入力変数 `GenerateOverallOutline/output` と `Iteration/item` を設定
|
||||
|
||||
<Frame caption="LLMノードの設定" width="375">
|
||||
<img src="/ja-jp/img/workflow-iteration-llm-node.png" alt="LLM节点内部配置界面" />
|
||||
</Frame>
|
||||
|
||||
<Note>
|
||||
イテレーションの組み込み変数:`items[object]` と `index[number]`
|
||||
|
||||
`items[object]` は各イテレーションの入力項目を表します;
|
||||
|
||||
`index[number]` は現在のイテレーションのラウンドを表します;
|
||||
</Note>
|
||||
|
||||
5. イテレーションノード内に **直接応答ノード** を設定して、各イテレーション生成の後にストリーム出力を実現。
|
||||
|
||||
<Frame caption="Answerノードの設定" width="375">
|
||||
<img src="/ja-jp/img/workflow-configure-anwer-node.png" alt="直接回复节点配置界面" />
|
||||
</Frame>
|
||||
|
||||
6. 完全なデバッグとプレビュー
|
||||
|
||||
<Frame caption="ストーリー章ごとの多段イテレーション生成">
|
||||
<img src="/ja-jp/img/iteration-node-iteration-through-story-chapters.png" alt="完整调试和预览界面" />
|
||||
</Frame>
|
||||
|
||||
#### **例2:長文イテレーション生成器(別の編成方法)**
|
||||
|
||||
<Frame caption="長文イテレーション生成器(別の編成方法)">
|
||||
<img src="/ja-jp/img/iteration-node-iteration-long-article-iteration-generator.png" alt="长文章迭代生成器另一种编排方式流程图" />
|
||||
</Frame>
|
||||
|
||||
* **開始ノード** にタイトルとアウトラインを入力
|
||||
* **LLM ノード** を使用して小見出しと対応する内容を生成
|
||||
* **コードノード** を使用して完全な内容を配列形式に変換
|
||||
* **イテレーションノード** でラップされた **LLM ノード** を通じて各章の内容を複数回生成
|
||||
* **テンプレート変換ノード** を使用してイテレーションノードが出力する文字列配列を文字列に変換
|
||||
* 最後に **直接応答ノード** を追加して変換後の文字列を直接出力
|
||||
|
||||
### 配列の内容とは
|
||||
|
||||
リストは特定のデータ型であり、要素はコンマで区切られ、 `[` で始まり `]` で終わります。例えば:
|
||||
|
||||
**数値型:**
|
||||
|
||||
```
|
||||
[0,1,2,3,4,5]
|
||||
```
|
||||
|
||||
**文字列型:**
|
||||
|
||||
```
|
||||
["monday", "Tuesday", "Wednesday", "Thursday"]
|
||||
```
|
||||
|
||||
**JSON オブジェクト:**
|
||||
|
||||
```
|
||||
[
|
||||
{
|
||||
"name": "Alice",
|
||||
"age": 30,
|
||||
"email": "alice@example.com"
|
||||
},
|
||||
{
|
||||
"name": "Bob",
|
||||
"age": 25,
|
||||
"email": "bob@example.com"
|
||||
},
|
||||
{
|
||||
"name": "Charlie",
|
||||
"age": 35,
|
||||
"email": "charlie@example.com"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### 配列を返すノード
|
||||
|
||||
* コードノード
|
||||
* パラメータ抽出
|
||||
* ナレッジベース検索
|
||||
* イテレーション
|
||||
* ツール
|
||||
* HTTPリクエスト
|
||||
|
||||
### 配列形式の内容を取得する方法
|
||||
|
||||
**CODE ノードを使用して返す**
|
||||
|
||||
<Frame caption="コードノード出力Array" width="375">
|
||||
<img src="/ja-jp/img/workflow-extract-subtitles-and-outlines.png" alt="CODE节点返回数组格式内容界面" />
|
||||
</Frame>
|
||||
|
||||
**パラメータ抽出ノードを使用して返す**
|
||||
|
||||
<Frame caption="パラメータ抽出ノード出力array" width="375">
|
||||
<img src="/ja-jp/img/workflow-parameter-extraction-node.png" alt="参数提取节点返回数组格式内容界面" />
|
||||
</Frame>
|
||||
|
||||
### 配列をテキストに変換する方法
|
||||
|
||||
イテレーションノードの出力変数は配列形式であり、直接出力することはできません。配列をテキストに戻すための簡単なステップを実行することができます。
|
||||
|
||||
**コードノードを使用した変換**
|
||||
|
||||
<Frame caption="コードノード変換" width="334">
|
||||
<img src="/ja-jp/img/iteration-code-node-convert.png" alt="使用代码节点将数组转换为文本界面" />
|
||||
</Frame>
|
||||
|
||||
コード例:
|
||||
|
||||
```python
|
||||
def main(articleSections: list):
|
||||
data = articleSections
|
||||
return {
|
||||
"result": "\n".join(data)
|
||||
}
|
||||
```
|
||||
|
||||
**テンプレートノードを使用した変換**
|
||||
|
||||
<Frame caption="テンプレートノード変換" width="332">
|
||||
<img src="/ja-jp/img/workflow-template-node.png" alt="使用模板节点将数组转换为文本界面" />
|
||||
</Frame>
|
||||
|
||||
コード例:
|
||||
|
||||
```django
|
||||
{{ articleSections | join("\n") }}
|
||||
```
|
||||
@@ -0,0 +1,59 @@
|
||||
---
|
||||
title: 知識検索
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### 定義
|
||||
|
||||
ナレッジベースからユーザーの質問に関連するテキスト内容を検索し、それを下流のLLMノードのコンテキストとして使用することができます。
|
||||
|
||||
***
|
||||
|
||||
### シナリオ
|
||||
|
||||
一般的なシナリオ:外部データ/ナレッジに基づくAI質問応答システム(RAG)を構築。RAGの[基本概念](../../../knowledge-base/indexing-and-retrieval/retrieval-augment)についてもっと知る。
|
||||
|
||||
下図は最も基本的なナレッジベース質問応答アプリケーションの例です。このプロセスの実行ロジックは、ユーザーの質問がLLMノードに渡される前に、ナレッジ検索ノードでユーザーの質問に最も関連するテキスト内容を検索し、召喚することです。その後、LLMノード内でユーザーの質問と検索されたコンテキストを一緒に入力し、LLMが検索内容に基づいて質問に答えるようにします。
|
||||
|
||||
<Frame caption="ナレッジベース質問応答アプリケーションの例">
|
||||
<img src="/ja-jp/img/jp-knowledge-retrieval.png" alt="知识库问答应用示例" />
|
||||
</Frame>
|
||||
|
||||
***
|
||||
|
||||
### 設定方法
|
||||
|
||||
**設定プロセス:**
|
||||
|
||||
1. クエリ変数を選択し、ナレッジベース内の関連するテキストセグメントを検索するための入力として使用します。一般的な対話型アプリケーションでは、開始ノードの`sys.query`をクエリ変数として使用します。ナレッジ ベースが受け入れることができる最大クエリ コンテンツは 200 文字です。
|
||||
2. 検索するナレッジベースを選択します。オプションとして選択可能なナレッジベースは、Difyナレッジベース内で事前に[作成](../../knowledge-base/create-knowledge-and-upload-documents#id-1-chuang-jian-zhi-shi-ku)する必要があります。
|
||||
3. [リコールモード](../../../learn-more/extended-reading/retrieval-augment/retrieval)と[ナレッジベース設定](../../knowledge-base/knowledge-and-documents-maintenance#id-8-zhi-shi-ku-she-zhi)を設定します。
|
||||
4. 下流ノードを接続し設定します。一般的にはLLMノードです。
|
||||
|
||||
<Frame caption="ナレッジ検索の設定">
|
||||
<img src="/ja-jp/img/jp-knowledge-retrieval-setting.png" alt="知识检索配置" />
|
||||
</Frame>
|
||||
|
||||
**出力変数**
|
||||
|
||||
<Frame caption="出力変数">
|
||||
<img src="/ja-jp/img/jp-knowledge-retrieval-output.png" alt="输出变量" width="272" />
|
||||
</Frame>
|
||||
|
||||
ナレッジ検索の出力変数`result`は、ナレッジベースから検索された関連テキストセグメントです。この変数のデータ構造には、セグメント内容、タイトル、リンク、アイコン、メタデータ情報が含まれています。
|
||||
|
||||
**下流ノードの設定**
|
||||
|
||||
一般的な対話型アプリケーションでは、ナレッジベース検索の下流ノードは通常LLMノードであり、ナレッジ検索の**出力変数**`result`はLLMノード内の**コンテキスト変数**に関連付けられて設定されます。関連付け後、プロンプトの適切な位置に**コンテキスト変数**を挿入することができます。
|
||||
|
||||
<Note>
|
||||
コンテキスト変数は、LLMノード内で定義された特殊な変数タイプで、プロンプト内に外部検索されたテキスト内容を挿入するために使用されます。
|
||||
</Note>
|
||||
|
||||
ユーザーが質問すると、関連するテキストがナレッジ検索で召喚された場合、そのテキスト内容がコンテキスト変数の値としてプロンプトに挿入され、LLMが質問に答えます。関連するテキストが検索されなかった場合、コンテキスト変数の値は空となり、LLMは直接ユーザーの質問に答えます。
|
||||
|
||||
<Frame caption="下流LLMノードの設定">
|
||||
<img src="/ja-jp/img/jp-knowledge-retrieval-llm.png" alt="配置下游LLM节点" />
|
||||
</Frame>
|
||||
|
||||
この変数は、LLMが質問に答える際のプロンプトコンテキストとして外部ナレッジの参照に使用されるだけでなく、そのデータ構造にセグメントの引用情報が含まれているため、アプリケーション側の[**引用と帰属**](../../knowledge-base/retrieval-test-and-citation#id-2-yin-yong-yu-gui-shu)機能もサポートします。
|
||||
94
ja-jp/user-guide/build-app/flow-app/nodes/list-operator.mdx
Normal file
94
ja-jp/user-guide/build-app/flow-app/nodes/list-operator.mdx
Normal file
@@ -0,0 +1,94 @@
|
||||
---
|
||||
title: リスト操作
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
リスト変数は、文章、画像、音声、映像など、さまざまなファイルを同時にアップロードすることができます。ユーザーがファイルをアップロードすると、すべてのファイルが同じ `Array[File]` 配列変数に保存されますが、**その後の個別ファイルの処理が難しくなります。**
|
||||
|
||||
> `Array` データ型は、変数の実際の値が \[1.mp3、2.png、3.doc] である可能性があることを意味します。LLM は、入力変数として画像やテキストなどの単一の値の読み取りのみをサポートしており、配列変数を直接読み取ることはできません。
|
||||
|
||||
### ノード機能
|
||||
|
||||
リストフィルタは、ファイルの形式のタイプ、名、サイズなどの属性に基づいてフィルターして抽出し、異なる形式のファイルをそれぞれの処理ノードに渡すことで、ファイル処理の流れを正確に制御します。
|
||||
|
||||
例えば、あるアプリでは、ユーザーが文章と画像を同時にアップロードすることを許可しています。異なるファイルは**リスト操作ノード**を通じて分類され、異なる処理フローに引き渡されます。
|
||||
|
||||
<Frame caption="異なるファイルタイプのフロー分岐">
|
||||

|
||||
</Frame>
|
||||
|
||||
リスト操作ノードは通常、配列変数から情報を抽出するために使用され、条件を設定して、下流ノードが受け入れることのできる変数タイプに変換します。その構造は、入力変数、フィルタ条件、ソート、上位 N 項目、および出力変数に分かれています。
|
||||
|
||||
<Frame caption="リスト操作ノード">
|
||||

|
||||
</Frame>
|
||||
|
||||
#### 入力変数
|
||||
|
||||
リスト操作ノードは以下のデータ構造変数のみを受け入れます:
|
||||
|
||||
* Array[string]
|
||||
* Array[number]
|
||||
* Array[file]
|
||||
|
||||
#### フィルタ条件
|
||||
|
||||
入力変数の配列を処理し、フィルタ条件を追加します。条件に合致するすべての配列変数を選択し、その属性をフィルタリングします。
|
||||
|
||||
例:ファイルにはファイル名、ファイルタイプ、ファイルサイズなど、複数の属性が含まれる可能性があります。フィルタ条件では、特定のファイルを配列変数から選択し抽出するための条件を設定します。
|
||||
|
||||
以下の変数を抽出できます:
|
||||
|
||||
* type:ファイルのタイプ(画像、文章、音声、映像など)
|
||||
* size:ファイルサイズ
|
||||
* name:ファイル名
|
||||
* url:ユーザーがURL経由でアップロードしたファイルを指し、完全なURLを入力してフィルタリングできます。
|
||||
* extension:ファイルの拡張子
|
||||
* mime_type:
|
||||
|
||||
[MIMEタイプ](https://datatracker.ietf.org/doc/html/rfc2046)は、ファイルのコンテンツタイプを識別するための標準化された文字列です。例: "text/html" はHTMLドキュメントを示します。
|
||||
|
||||
* transfer_method:
|
||||
|
||||
ファイルのアップロード方法(ローカルアップロードまたはURL経由でのアップロード)を示します。
|
||||
|
||||
#### ソート
|
||||
|
||||
入力変数の配列をファイルの属性に基づいて並べ替える機能を提供します。
|
||||
|
||||
- 昇順ソート:
|
||||
|
||||
デフォルトの並べ替えオプションで、値が小さい順に並べ替えます。文字やテキストの場合はアルファベット順(A - Z)に並べ替えます。
|
||||
|
||||
- 降順ソート:
|
||||
|
||||
値が大きい順に並べ替えます。文字やテキストの場合は逆アルファベット順(Z - A)に並べ替えます。
|
||||
|
||||
このオプションは通常、出力変数の first_record および last_record と組み合わせて使用されます。
|
||||
|
||||
#### 上位 N 項目
|
||||
|
||||
1から20の値を選択し、配列変数の上位 n 項目を選択します。
|
||||
|
||||
#### 出力変数
|
||||
|
||||
すべてのフィルタ条件を満たす配列要素。フィルタ条件、ソート、制限は個別に有効にできます。すべての条件を同時に有効にした場合、すべての条件を満たす配列要素が返されます。
|
||||
|
||||
* Result:フィルタリング結果で、データ型は配列変数です。配列に1つのファイルしか含まれていない場合、出力変数には1つの要素のみが含まれます。
|
||||
* first_record:フィルタリングされた配列の最初の要素、すなわち result[0];
|
||||
* last_record:フィルタリングされた配列の最後の要素、すなわち result[array.length-1]。
|
||||
|
||||
***
|
||||
|
||||
### 設定例
|
||||
|
||||
ファイルのインタラクティブな質疑応答シナリオでは、アプリのユーザーが文章や画像ファイルを同時にアップロードする可能性があります。LLMは画像ファイルを認識できる能力しか持たず、文章を読み取ることができません。その場合、[リスト操作](list-operator)ノードを使用して、ファイル変数の配列を事前処理し、異なるファイルタイプをそれぞれの処理ノードに送信する必要があります。手順は以下の通りです:
|
||||
|
||||
1. [機能](../additional-features)を有効にし、ファイルタイプで「画像」および「文章」を選択します。
|
||||
2. フィルタ条件で、画像変数とドキュメント変数をそれぞれ抽出するための2つのリスト操作ノードを追加します。
|
||||
3. 文章変数を抽出し、「ドキュメントエクストラクタ」ノードに渡し、画像ファイル変数を抽出してLLMノードに渡します。
|
||||
4. 最後に「直接返信」ノードを追加し、LLMノードの出力変数を記入します。
|
||||
|
||||

|
||||
|
||||
アプリのユーザーが文章と画像ファイルを同時にアップロードした場合、文章は自動的にドキュメントエクストラクタノードに、画像ファイルは自動的にLLMノードに分流され、混合ファイルの共通処理が実現されます。
|
||||
156
ja-jp/user-guide/build-app/flow-app/nodes/llm.mdx
Normal file
156
ja-jp/user-guide/build-app/flow-app/nodes/llm.mdx
Normal file
@@ -0,0 +1,156 @@
|
||||
---
|
||||
title: LLM
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### 定義
|
||||
|
||||
大規模言語モデルを活用して質問に回答したり、自然言語を処理したりします。
|
||||
|
||||
<Frame caption="LLMノード">
|
||||
<img src="/ja-jp/img/jp-llm-detail.png" alt="LLM 节点" />
|
||||
</Frame>
|
||||
|
||||
***
|
||||
|
||||
### シナリオ
|
||||
|
||||
LLM は チャットフロー/ワークフロー の中心的なノードであり、大規模言語モデルの会話/生成/分類/処理などの能力を活用して、多様なタスクを提示されたプロンプトに基づいて処理し、ワークフローのさまざまな段階で使用することができます。
|
||||
|
||||
* **意図識別**:カスタマーサービスの対話シナリオにおいて、ユーザーの質問を意図識別および分類し、異なるフローに誘導します。
|
||||
* **テキスト生成**:記事生成シナリオにおいて、テーマやキーワードに基づいて適切なテキスト内容を生成するノードとして機能します。
|
||||
* **内容分類**:メールのバッチ処理シナリオにおいて、メールの種類を自動的に分類します(例:問い合わせ/苦情/スパム)。
|
||||
* **テキスト変換**:テキスト翻訳シナリオにおいて、ユーザーが提供したテキスト内容を指定された言語に翻訳します。
|
||||
* **コード生成**:プログラミング支援シナリオにおいて、ユーザーの要求に基づいて指定のビジネスコードやテストケースを生成します。
|
||||
* **RAG**:ナレッジベースの質問応答シナリオにおいて、検索した関連知識とユーザーの質問を再構成して回答します。
|
||||
* **画像理解**:ビジョン能力を持つマルチモーダルモデルを使用し、画像内の情報を理解して質問に回答します。
|
||||
|
||||
適切なモデルを選択し、プロンプトを記述することで、チャットフロー/ワークフロー で強力で信頼性の高いソリューションを構築できます。
|
||||
|
||||
***
|
||||
|
||||
### 設定方法
|
||||
|
||||
エディットページで、前のノードの末尾を右クリックするか、+ボタンを軽くタップして新しいノードを追加し、LLM(大規模言語モデル)を選択します。
|
||||
|
||||
<Frame caption="LLM ノード設定 - モデル選択">
|
||||
<img src="/ja-jp/img/jp-llm-model.png" alt="LLM ノード設定 - モデル選択" />
|
||||
</Frame>
|
||||
|
||||
**設定手順:**
|
||||
|
||||
1. **モデルの選択**:Difyでは、OpenAIのGPTシリーズ、AnthropicのClaudeシリーズ、GoogleのGeminiシリーズなど、世界中で広く使用されているさまざまなモデルを[サポート](../../../getting-started/readme/model-providers)しています。モデルの選択は、推論能力、コスト、応答速度、コンテキストウィンドウのサイズなどの要因に基づいて行います。使用するシーンやタスクの種類に応じて、適切なモデルを選ぶことが重要です。
|
||||
|
||||
<Note>
|
||||
Difyを初めて使用する場合は、LLMノードでモデルを選択する前に、**システム設定 - モデルプロバイダ**で[モデルの設定](../../model-configuration/)を事前に行う必要があります。
|
||||
</Note>
|
||||
|
||||
2. **モデルパラメータの設定**:モデルパラメータは、生成される結果を調整するために使用されます。これには、温度、TopP、最大トークン数、応答形式などが含まれます。選択肢を簡素化するために、3つの事前設定されたパラメータ(クリエイティブ、バランス、精密)が用意されています。これらのパラメータに不慣れな場合は、デフォルト設定を選択することをお勧めします。画像解析機能を利用したい場合は、視覚能力を持つモデルを選んでください。
|
||||
3. **コンテキストの入力(オプション)**:コンテキストとは、LLMに提供される背景情報のことを指します。通常は、[知識検索](./knowledge-retrieval)の出力変数を記入するために使用されます。
|
||||
4. **プロンプトの作成**:LLMノードには使いやすいプロンプト編集ページがあり、チャットモデルまたはコンプリートモデルを選択することで異なるプロンプト編集構造が表示されます。チャットモデル(Chat model)を選択した場合、システムプロンプト(SYSTEM)、ユーザー(USER)、アシスタント(ASSISTANT)の3つのセクションをカスタマイズできます。
|
||||
|
||||
<Frame caption="プロンプトの作成">
|
||||
<img src="/ja-jp/img/jp-llm-customize.png" alt="编写提示词" width="352" />
|
||||
</Frame>
|
||||
|
||||
システムプロンプト(SYSTEM)を作成する際にアイデアが浮かばない場合は、プロンプトジェネレーター機能を使用して、実際のビジネスシナリオに適したプロンプトを迅速に生成することができます。
|
||||
|
||||
<Frame caption="プロンプトジェネレーター">
|
||||
<img src="/ja-jp/img/jp-node-llm-prompt-generator.png" alt="プロンプトジェネレーター" />
|
||||
</Frame>
|
||||
|
||||
プロンプトエディターでは、**“/”** を入力することで **変数挿入メニュー** を呼び出し、**特殊変数ブロック**や **上流ノードの変数**をプロンプトに挿入してコンテキスト内容として使用できます。
|
||||
|
||||
<Frame caption="変数挿入メニューを呼び出す">
|
||||
<img src="/ja-jp/img/jp-llm-variable.png" alt="呼出变量插入菜单" width="366" />
|
||||
</Frame>
|
||||
|
||||
5. **上級的な設定**:メモリ機能をオンにしたり、メモリウィンドウを設定したり、ビジョン機能を有効にしたり、Jinja-2テンプレート言語を使ってより複雑なプロンプトを作成したりできます。
|
||||
|
||||
***
|
||||
|
||||
### **特殊変数の説明**
|
||||
|
||||
**コンテキスト変数**
|
||||
|
||||
コンテキスト変数とは、言語モデル(LLM)に背景情報を提供するための特別な変数の一種で、特に知識検索のシナリオでよく利用されます。詳細については、[知識検索ノード](knowledge-retrieval)を参照してください。
|
||||
|
||||
**画像ファイル変数**
|
||||
|
||||
視覚機能を備えた言語モデル(LLM)は、アプリケーションユーザーがアップロードした画像をこの変数を通じて読み取ることができます。VISION機能を有効にした後、画像ファイルの出力変数を選択して設定を完了させてください。
|
||||
|
||||
<Frame caption="ビジョンアップロード機能">
|
||||
{/* <img src="/ja-jp/user-guide/.gitbook/assets/image (371).png" alt="ビジョンアップロード機能" /> */}
|
||||

|
||||
</Frame>
|
||||
|
||||
**会話履歴**
|
||||
|
||||
テキスト補完モデル(例:gpt-3.5-turbo-Instruct)内でチャット型アプリケーションの対話記憶を実現するために、Dify は元の[プロンプト専門モード(廃止)](https://docs.dify.ai/v/ja-jp/learn-more/extended-reading/prompt-engineering/prompt-engineering)内で会話履歴変数を設計しました。この変数はチャットフローのLLMノード内でも使用され、プロンプト内に AI とユーザーの対話履歴を挿入して、LLM が対話の文脈を理解するのを助けます。
|
||||
|
||||
<Note>
|
||||
会話履歴変数の使用は広範ではなく、チャットフロー内でテキスト補完モデルを選択した場合にのみ使用できます。
|
||||
</Note>
|
||||
|
||||
<Frame caption="会話履歴変数の挿入">
|
||||
<img src="/ja-jp/img/jp-llm-with-histories.png" alt="会話履歴変数の挿入" />
|
||||
</Frame>
|
||||
|
||||
**モデルパラメーター**
|
||||
|
||||
モデルのパラメータはモデルの出力に影響を与えます。異なるモデルには異なるパラメータがあります。以下の図は`gpt-4`のパラメータリストです。
|
||||
|
||||
<Frame caption="モデルパラメータリスト">
|
||||
<img src="/ja-jp/img/jp-llm-model-provider-1.png" alt="模型参数列表" width="368" />
|
||||
</Frame>
|
||||
|
||||
主要なパラメータ用語は以下のように説明されています:
|
||||
|
||||
* **Temperature(温度)**: 通常は0-1の値で、ランダム性を制御します。温度が0に近いほど、結果はより確定的で繰り返しになり、温度が1に近いほど、結果はよりランダムになります。
|
||||
* **Top P**: 結果の多様性を制御します。モデルは確率に基づいて候補語から選択し、累積確率が設定された閾値Pを超えないようにします。
|
||||
* **Presence Penalty(存在ペナルティ)**: 既に生成された内容にペナルティを課すことにより、同じエンティティや情報の繰り返し生成を減少させるために使用されます。パラメータ値が増加するにつれて、既に生成された内容に対して後続の生成でより大きなペナルティが課され、内容の繰り返しの可能性が低くなります。
|
||||
* **Frequency Penalty(頻度ペナルティ)**: 頻繁に出現する単語やフレーズにペナルティを課し、これらの単語の生成確率を低下させます。パラメータ値が増加すると、頻繁に出現する単語やフレーズにより大きなペナルティが課されます。パラメータ値が高いほど、これらの単語の出現頻度が減少し、テキストの語彙の多様性が増加します。
|
||||
|
||||
これらのパラメータが何であるか理解できない場合は、プリセットを読み込んで、「クリエイティブ」、「バランス」、「正確」の3つのプリセットから選択することができます。
|
||||
|
||||
<Frame caption="加载预设参数">
|
||||
<img src="/ja-jp/img/jp-llm-model-provider-2.png" alt="加载预设参数" width="367" />
|
||||
</Frame>
|
||||
|
||||
***
|
||||
|
||||
### 高度な機能
|
||||
|
||||
**記憶**:記憶をオンにすると、問題分類器の各入力に対話履歴が含まれ、LLM が文脈を理解しやすくなり、対話の理解能力が向上します。
|
||||
|
||||
**記憶ウィンドウ**:記憶ウィンドウが閉じている場合、システムはモデルのコンテキストウィンドウに基づいて対話履歴の伝達数を動的にフィルタリングします。開いている場合、ユーザーは対話履歴の伝達数を正確に制御できます(対数)。
|
||||
|
||||
**対話役割名の設定**:モデルのトレーニング段階の違いにより、異なるモデルは役割名のプロンプト遵守度が異なります(例:Human/Assistant、Human/AI、人間/助手など)。複数のモデルに対応するために、システムは対話役割名の設定を提供しており、対話役割名を変更すると会話履歴の役割プレフィックスも変更されます。
|
||||
|
||||
**Jinja-2 テンプレート**:LLM のプロンプトエディター内で Jinja-2 テンプレート言語をサポートしており、Jinja2 の強力な Python テンプレート言語を使用して軽量なデータ変換やロジック処理を実現できます。詳細は[公式ドキュメント](https://jinja.palletsprojects.com/en/3.1.x/templates/)を参照してください。
|
||||
|
||||
***
|
||||
|
||||
### ユースケース
|
||||
|
||||
* **ナレッジベースの内容を検索する**
|
||||
|
||||
ワークフローアプリケーションが[「ナレッジベース」](../../knowledge-base/)の内容を検索できるようにしたい場合、例えばインテリジェントカスタマーサービスアプリケーションを構築する場合は、以下の手順を参考にしてください。
|
||||
|
||||
1. LLMノードの上流に知識検索ノードを追加します;
|
||||
2. 知識検索ノードの **出力変数** `result` をLLMノードの **コンテキスト変数** に入力します;
|
||||
3. **コンテキスト変数** をアプリケーションのプロンプトに挿入し、LLMがナレッジベース内のテキスト内容を読み取れるようにします。
|
||||
|
||||
<Frame caption="コンテキスト変数">
|
||||
<img src="/ja-jp/img/jp-llm-use-case.png" alt="コンテキスト変数" />
|
||||
</Frame>
|
||||
|
||||
[知識検索ノード](./knowledge-retrieval) の出力変数 `result` には引用情報も含まれており、[**引用と帰属**](../../knowledge-base/retrieval-test-and-citation) 機能を使用して情報の出所を確認できます。
|
||||
|
||||
<Note>
|
||||
通常のノードの変数もコンテキスト変数に入力可能ですが、例えば開始ノードの文字列型変数など、**引用と帰属** 機能は機能しません。
|
||||
</Note>
|
||||
|
||||
* **文書ファイルの読み取り**
|
||||
|
||||
ChatPDF アプリケーションの構築など、ワークフロー アプリケーションにドキュメントのコンテンツを読み取る機能を提供する場合は、次を参照してください。
|
||||
@@ -0,0 +1,73 @@
|
||||
---
|
||||
title: パラメータ抽出
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### 定義
|
||||
|
||||
大規模言語モデル(LLM)を利用して自然言語から推論し、構造化パラメータを抽出し、ツール呼び出しやHTTPリクエストに用いる。
|
||||
|
||||
Difyワークフロー内には豊富な[ツール](/ja-jp/tools/introduction)が用意されており、その多くは構造化パラメータを入力として要求します。パラメータ抽出器は、ユーザーの自然言語をツールが認識できるパラメータに変換し、ツールの呼び出しを容易にします。
|
||||
|
||||
ワークフロー内の一部のノードは特定のデータ形式を入力として要求します。例えば[イテレーション](./iteration)ノードの入力は配列形式である必要があり、パラメータ抽出器は[構造化パラメータの変換](./iteration#1)を容易に実現します。
|
||||
|
||||
***
|
||||
|
||||
### シナリオ
|
||||
|
||||
1. **自然言語からツールが必要とするキー・パラメーターを抽出する**例として、簡単な対話形式のArxiv論文検索アプリを構築する場合を考えます。
|
||||
|
||||
この例では、Arxiv論文検索ツールの入力パラメータとして「論文の著者」または「論文番号」が要求されます。パラメータ抽出器は「この論文の内容は何ですか:2405.10739」という質問から論文番号**2405.10739**を抽出し、ツールのパラメータとして正確に検索します。
|
||||
|
||||
<Frame caption="Arxiv論文検索ツール">
|
||||
<img src="/ja-jp/img/jp-parameter-extractor1.png" alt="Arxiv 论文检索工具流程图" />
|
||||
</Frame>
|
||||
|
||||
2. **テキストを構造化データに変換する**例として、長い物語のイテレーション生成アプリの前工程として、テキスト形式の章内容を配列形式に変換し、[イテレーションノード](./iteration)でのマルチラウンド生成処理を容易にします。
|
||||
|
||||
<Frame caption="テキストを構造化データに変換する">
|
||||
<img src="/ja-jp/img/jp-parameter-extractor2.png" alt="长故事迭代生成应用流程图" />
|
||||
</Frame>
|
||||
|
||||
3. **構造化データを抽出して**[**HTTPリクエスト**](./http-request)**を使用する**ことで、任意のアクセス可能なURLにリクエストを送信し、外部検索結果の取得やウェブフック、画像生成などのシナリオに適用できます。
|
||||
|
||||
***
|
||||
|
||||
### 設定方法
|
||||
|
||||
<Frame caption="パラメータ抽出の設定" width="375">
|
||||
<img src="/ja-jp/img/jp-parameter-extractor-setting.png" alt="参数提取配置界面" />
|
||||
</Frame>
|
||||
|
||||
**設定手順**
|
||||
|
||||
1. 入力変数を選択。通常はパラメータ抽出のための変数入力を選びます。ファイルタイプもサポートします。
|
||||
2. モデルを選択。パラメータ抽出器の抽出はLLMの推論と構造化生成能力に依存します。
|
||||
3. 抽出パラメータを定義。必要なパラメータを手動で追加するか、**既存のツールから簡単にインポート**できます。
|
||||
4. コマンド作成。複雑なパラメータの抽出時には、例を作成することでLLMの生成効果と安定性を向上させることができます。
|
||||
|
||||
**高度な設定**
|
||||
|
||||
**推論モード**
|
||||
|
||||
一部のモデルは関数/ツール呼び出しや純プロンプトの方法でパラメータ抽出を実現する2つの推論モードをサポートしており、コマンドの遵守能力に違いがあります。例えば、あるモデルが関数呼び出しに不向きな場合、プロンプト推論に切り替えることができます。
|
||||
|
||||
* Function Call/Tool Call
|
||||
* プロンプト
|
||||
|
||||
**メモリ**
|
||||
|
||||
メモリを有効にすると、問題分類器の各入力にチャット履歴が含まれ、LLMが前文を理解し、対話の中での問題理解能力を向上させます。
|
||||
|
||||
**画像**
|
||||
|
||||
画像をオープンする。
|
||||
|
||||
**出力変数**
|
||||
|
||||
* 定義された変数を抽出
|
||||
* ノード組み込み変数
|
||||
|
||||
`__is_success 数値` 抽出が成功した場合は1、失敗した場合は0となります。
|
||||
|
||||
`__reason 文字列` 抽出エラーの原因
|
||||
@@ -0,0 +1,65 @@
|
||||
---
|
||||
title: 質問分類
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### **定義**
|
||||
|
||||
分類記述を定義することにより、問題分類子は LLM を使用してユーザー入力に基づいて一致する分類を推測し、分類結果を出力し、より正確な情報を下流ノードに提供できます。
|
||||
|
||||
***
|
||||
|
||||
### **シナリオ**
|
||||
|
||||
よくある使用シナリオには、**カスタマーサービス対話意図分類、製品評価分類、メールのバッチ分類**などがあります。
|
||||
|
||||
典型的な製品カスタマーサービスのシナリオでは、問題分類器はナレッジベース検索の前段階として機能し、ユーザーの質問の意図を分類します。分類後、異なるナレッジベースに誘導され、ユーザーの質問に正確に回答します。
|
||||
|
||||
以下の図は製品カスタマーサービスシナリオのサンプルワークフローテンプレートです:
|
||||
|
||||
<Frame>
|
||||
<img src="/ja-jp/img/jp-question.png" alt="質問分類のシナレオ" />
|
||||
</Frame>
|
||||
|
||||
このシナリオでは、3つの分類ラベル/説明を設定しています:
|
||||
|
||||
* 分類 1:**アフターサービスに関する問題**
|
||||
* 分類 2:**製品の操作に関する問題**
|
||||
* 分類 3:**その他の問題**
|
||||
|
||||
ユーザーが異なる質問を入力すると、問題分類器は設定された分類ラベル/説明に基づいて自動的に分類を行います:
|
||||
|
||||
* “**iPhone 14で連絡先を設定する方法は?**” —> “**製品の操作に関する問題**”
|
||||
* “**保証期間はどれくらいですか?**” —> “**アフターサービスに関する問題**”
|
||||
* “**今日の天気はどうですか?**” —> “**その他の問題**”
|
||||
|
||||
***
|
||||
|
||||
### 設定方法
|
||||
|
||||
<Frame caption="質問分類器の設定">
|
||||
<img src="/ja-jp/img/jp-question-setting.png" alt="質問分類器の設定" />
|
||||
</Frame>
|
||||
|
||||
**設定手順:**
|
||||
|
||||
1. **入力変数を選択する**、分類に使用する入力内容を指します、[ファイルのアップロード](/ja-jp/user-guide/build-app/flow-app/file-upload)もサポートします。カスタマーサービスのシナリオでは一般的にユーザーの質問 `sys.query` が対象です。
|
||||
2. **推論モデルを選択する**、問題分類器は大規模言語モデル (LLM) の自然言語分類と推論能力に基づいており、適切なモデルを選ぶことで分類効果を向上させることができます。
|
||||
3. **分類ラベル/説明を作成する**、複数の分類を手動で追加し、分類のキーワードや説明文を作成することで、大規模言語モデルが分類基準をよりよく理解できるようにします。
|
||||
4. **分類に対応する下流ノードを選択する**、問題分類ノードが分類を完了した後、分類と下流ノードの関係に基づいて後続のプロセスパスを選択します。
|
||||
|
||||
#### **高度な設定:**
|
||||
|
||||
**指示:** **高度な設定-指示** では、例えばより豊富な分類基準など、追加の指示を補足することができます。これにより問題分類器の分類能力が強化されます。
|
||||
|
||||
**メモリー:** メモリーをオンにすると、問題分類器の各入力には対話のチャット履歴が含まれ、LLM が前文を理解しやすくなり、対話の中での問題理解能力が向上します。
|
||||
|
||||
**画像分析:** 画像認識機能を備えた LLM でのみ利用可能で、画像変数の入力が可能です。
|
||||
|
||||
**メモリウィンドウ:** メモリウィンドウがオフの時、システムはモデルのコンテキストウィンドウに基づいてチャット履歴の伝達量を動的にフィルタリングします。オンの時、ユーザーはチャット履歴の伝達量を正確に制御できます(対数表示)。
|
||||
|
||||
**出力変数:**
|
||||
|
||||
`class_name`
|
||||
|
||||
分類後に出力される分類名です。必要に応じて下流ノードで分類結果変数を使用することができます。
|
||||
88
ja-jp/user-guide/build-app/flow-app/nodes/start.mdx
Normal file
88
ja-jp/user-guide/build-app/flow-app/nodes/start.mdx
Normal file
@@ -0,0 +1,88 @@
|
||||
---
|
||||
title: 開始
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
## 定義
|
||||
|
||||
**“開始”** ノードは、すべてのワークフローアプリ(チャットフロー / ワークフロー)に必須のデフォルトノードであり、後続のワークフローノードやアプリの正常なプロセスに必要な初期情報を提供します。これには、アプリの使用者が入力した内容や、[アップロードされたファイル](../file-upload)などが含まれます。
|
||||
|
||||
### ノードの設定
|
||||
|
||||
開始ノードの設定ページでは、**“入力フィールド”**とデフォルトの[**システム変数**](../variables)という二つの設定部分が見られます。
|
||||
|
||||
<Frame caption="チャットフローとワークフロー">
|
||||
<img src="/ja-jp/img/jp-start-setup.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
### 入力フィールド
|
||||
|
||||
入力フィールドの機能はアプリ開発者によって設定され、通常はアプリの使用者がさらに情報を提供するために使用されます。例えば、週次報告アプリでは、使用者に対して名前、作業期間、作業内容などの背景情報をあらかじめフォーマットに従って提供するよう求めることがあります。これらの前提情報は、LLM(大規模言語モデル)がより質の高い回答を生成するのに役立ちます。
|
||||
|
||||
以下の6種類の入力変数をサポートしており、すべての変数は必須項目として設定可能です:
|
||||
|
||||
* **テキスト**
|
||||
|
||||
短いテキストで、アプリ使用者が自分で内容を入力します。最大文字数は256文字です。
|
||||
* **段落**
|
||||
|
||||
長文で、アプリ使用者が長いテキストを入力することができます。
|
||||
* **ドロップダウンオプション**
|
||||
|
||||
アプリ開発者によって固定された選択肢で、アプリ使用者は設定された選択肢の中からのみ選ぶことができ、自由に内容を入力することはできません。
|
||||
* **数字**
|
||||
|
||||
数字のみの入力を許可します。
|
||||
* **単一ファイル**
|
||||
|
||||
アプリ使用者が単独でファイルをアップロードできる機能で、サポートされるファイルタイプは文書、画像、音声、動画、その他のファイルです。ローカルからのファイルアップロードやファイルのURLを貼り付けてのアップロードが可能です。詳細な使い方については[ファイルアップロード](../file-upload)を参照してください。
|
||||
* **ファイルリスト**
|
||||
|
||||
アプリ使用者が複数のファイルを一括でアップロードできる機能で、サポートされるファイルタイプは文書、画像、音声、動画、その他のファイルです。ローカルからのファイルアップロードやファイルのURLを貼り付けてのアップロードが可能です。詳細な使い方については[ファイルアップロード](../file-upload)を参照してください。
|
||||
|
||||
<Note>
|
||||
Difyに組み込まれているファイル抽出ノードは、特定のフォーマットファイルのみを処理できます。画像、音声、動画ファイルを処理する必要がある場合は、[外部データツール](../../extension/api-based-extension/external-data-tool.md)を参照し、対応するファイル処理ノードを構築してください。
|
||||
</Note>
|
||||
|
||||
設定が完了した後、使用者はアプリを使用する前に、入力項目に従ってLLMに必要な情報を提供します。より多くの情報がLLMの質問応答効率を向上させるのに役立ちます。
|
||||
|
||||
<Frame caption="">
|
||||
<img src="/ja-jp/user-guide/.gitbook/assets/image (4).png" alt="" />
|
||||
</Frame>
|
||||
|
||||
### システム変数
|
||||
|
||||
システム変数は、チャットフロー / ワークフローアプリ内であらかじめ設定されたシステムレベルのパラメータであり、アプリ内の他のノードからグローバルに読み取ることができます。通常は、高度な開発シナリオで使用され、たとえば多段階対話アプリの構築、アプリのログ収集と監視、異なるアプリや使用者の使用行動の記録などに利用されます。
|
||||
|
||||
**ワークフロー**
|
||||
|
||||
ワークフロータイプのアプリは以下のシステム変数を提供します:
|
||||
|
||||
| 変数名 | データタイプ | 説明 | メモ |
|
||||
| ---------------------- | ------------ | ----------------------------------------------------------------------------------------------------- | ------------------------- |
|
||||
| `sys.files` | Array[File] | ファイルパラメータで、ユーザーがアプリを使用する際にアップロードした画像を保存します。複数の画像をアップロードできます。このパラメータは今後廃止予定であり、「入力フィールド」内のファイル変数の使用を推奨します。 | 画像アップロード機能は、アプリの編成ページの右上にある「機能」で有効にする必要があります。 |
|
||||
| `sys.user_id` | String | ユーザーIDで、各ユーザーがワークフローアプリを使用する際に、システムが自動的に一意の識別子を割り当てて、異なる対話ユーザーを区別します。 | |
|
||||
| `sys.app_id` | String | アプリIDで、システムが各ワークフローアプリに一意の識別子を割り当て、異なるアプリを区別し、このパラメータを通じて現在のアプリの基本情報を記録します。 | 開発能力のあるユーザー向けで、このパラメータを通じて異なるワークフローアプリを区別・特定できます。 |
|
||||
| `sys.workflow_id` | String | ワークフローIDで、現在のワークフローアプリに含まれるすべてのノード情報を記録します。 | 開発能力のあるユーザー向けで、このパラメータを通じてワークフロー内のノード情報を追跡・記録できます。 |
|
||||
| `sys.workflow_run_id` | String | ワークフローアプリの実行IDで、ワークフローアプリの運用状況を記録します。 | 開発能力のあるユーザー向けで、このパラメータを通じてアプリの過去の実行状況を追跡できます。 |
|
||||
|
||||
<Frame caption="ワークフロータイプアプリのシステム変数">
|
||||

|
||||
</Frame>
|
||||
|
||||
**チャットフロー**
|
||||
|
||||
チャットフロータイプのアプリケーションは、以下のシステム変数を提供しています:
|
||||
|
||||
| 変数名 | データ型 | 説明 | メモ |
|
||||
|---------|--------|------|------|
|
||||
| `sys.query` | String | ユーザーが最初に入力した内容 | |
|
||||
| `sys.files` | Array[File] | ユーザーがアップロードした画像 | 画像のアップロード機能は、アプリケーションの編成ページ右上の「機能」で有効化する必要があります |
|
||||
| `sys.dialogue_count` | Number | チャットフロータイプのアプリケーションとの対話中にユーザーが行った対話のラウンド数です。各対話の後に自動的に数が増加し、if-elseノードと組み合わせて複雑な分岐ロジックを構築できます。たとえば、Xラウンド目に達したときに、対話履歴を振り返って分析が可能です | |
|
||||
| `sys.conversation_id` | String | ダイアログの対話セッションの一意の識別子で、関連するすべてのメッセージを同じ対話にグループ化し、LLMが同じトピックとコンテキストで継続的に対話できるようにします | |
|
||||
| `sys.user_id` | String | 各アプリケーションユーザーに割り当てられた一意の識別子で、異なる対話ユーザーを区別するために使用されます | |
|
||||
| `sys.app_id` | String | アプリケーションのIDで、システムは各ワークフローアプリケーションに一意の識別子を割り当て、異なるアプリケーションを識別します。このパラメータを使用して現在のアプリケーションの基本情報を記録します | 開発者向けで、このパラメータを使用して異なるワークフローアプリケーションを区別します |
|
||||
| `sys.workflow_id` | String | ワークフローIDで、現在のワークフローアプリケーションに含まれるすべてのノード情報を記録するために使用されます | 開発者向けで、このパラメータを使用してワークフロー内のノード情報を追跡および記録できます |
|
||||
| `sys.workflow_run_id` | String | ワークフローアプリケーションの実行IDで、アプリケーションの実行状況を記録するために使用されます | 開発者向けで、このパラメータを使用してアプリケーションの過去の実行状況を追跡できます |
|
||||
|
||||

|
||||
48
ja-jp/user-guide/build-app/flow-app/nodes/template.mdx
Normal file
48
ja-jp/user-guide/build-app/flow-app/nodes/template.mdx
Normal file
@@ -0,0 +1,48 @@
|
||||
---
|
||||
title: テンプレート
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### 定義
|
||||
|
||||
Jinja2のPythonテンプレート言語を使って、データ変換やテキスト処理などを柔軟に行うことができます。
|
||||
|
||||
### Jinjaとは?
|
||||
|
||||
> Jinjaは、高速で表現力豊かで拡張可能なテンプレートエンジンです。
|
||||
>
|
||||
> Jinja は、速く、表現力があり、拡張可能なテンプレートエンジンです。
|
||||
|
||||
—— [https://jinja.palletsprojects.com/en/3.1.x/](https://jinja.palletsprojects.com/en/3.1.x/)
|
||||
|
||||
### シーン
|
||||
|
||||
テンプレートノードを使うことで、強力なPythonテンプレート言語であるJinja2を用いて、ワークフロー内で軽量かつ柔軟なデータ変換が可能になります。これは、テキスト処理やJSON変換などのシナリオに適しています。例えば、前のステップからの変数を柔軟にフォーマットして結合し、単一のテキスト出力を作成することができます。これは、複数のデータソースの情報を特定のフォーマットにまとめ、後続のステップの要件を満たすのに非常に適しています。
|
||||
|
||||
**例1:** 複数の入力(記事のタイトル、紹介、内容)を一つの完全なテキストに結合する
|
||||
|
||||
<Frame caption="テキストの結合" width="375">
|
||||
<img src="/ja-jp/img/jp-template.png" alt="テキストの結合" />
|
||||
</Frame>
|
||||
|
||||
**例2:** ナレッジリトリーバルノードで取得した情報およびその関連メタデータを、構造化されたMarkdown形式にまとめる
|
||||
|
||||
```Plain
|
||||
{% for item in chunks %}
|
||||
### Chunk {{ loop.index }}.
|
||||
### Similarity: {{ item.metadata.score | default('N/A') }}
|
||||
|
||||
#### {{ item.title }}
|
||||
|
||||
##### Content
|
||||
{{ item.content | replace('\n', '\n\n') }}
|
||||
|
||||
---
|
||||
{% endfor %}
|
||||
```
|
||||
|
||||
<Frame caption="ナレッジリトリーバルノードの出力をMarkdownに変換">
|
||||
<img src="/ja-jp/user-guide/.gitbook/assets/image (210).png" alt="ナレッジリトリーバルノードの出力をMarkdownに変換" />
|
||||
</Frame>
|
||||
|
||||
Jinjaの[公式ドキュメント](https://jinja.palletsprojects.com/en/3.1.x/templates/)を参考にして、さまざまなタスクを実行するためのより複雑なテンプレートを作成することができます。
|
||||
32
ja-jp/user-guide/build-app/flow-app/nodes/tools.mdx
Normal file
32
ja-jp/user-guide/build-app/flow-app/nodes/tools.mdx
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
title: ツール
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### 定義
|
||||
|
||||
ワークフロー内で豊富なツール選択が提供されており、ツールは3つのタイプに分かれています:
|
||||
|
||||
* **ビルトインツール**、Difyファーストパーティが提供するツール
|
||||
* **カスタムツール**、OpenAPI/Swagger標準フォーマットでインポートまたは設定されたツール
|
||||
* **ワークフロー**、ツールとして公開されたワークフロー
|
||||
|
||||
ビルトインツールを使用する前に、ツールに **認可** を行う必要があるかもしれません。
|
||||
|
||||
ビルトインツールが使用要求を満たさない場合は、**Dify メニュー ナビゲーション --ツール** でカスタムツールを作成できます。
|
||||
|
||||
また、より複雑なワークフローを編成し、それをツールとして公開することもできます。
|
||||
|
||||
<Frame caption="ツール選択">
|
||||
<img src="/ja-jp/img/jp-tool-list.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
ツールノードは他のノードと接続でき、[変数](../variables)を通じてデータを処理および受け渡しすることができます。
|
||||
|
||||
<Frame caption="Google 検索ツールで外部知識を検索">
|
||||
<img src="/ja-jp/img/jp-tool-google-search.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
### 将工作流应用发布为工具
|
||||
|
||||
カスタムツールの作成とツールの設定方法については[ツール設定説明](../../../tools/introduction)を参照してください。
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
title: 变量聚合
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### 定義
|
||||
|
||||
マルチブランチの変数を一つの変数に集約し、ダウンズトリームノードの統一設定を実現します。
|
||||
|
||||
変数集約ノード(元変数割り当てノード)はワークフローの重要なノードであり、異なるブランチの出力結果を統合し、どのブランチが実行されても、その結果を一つの統一された変数を通じて参照およびアクセスできるようにします。これはマルチブランチの状況で非常に有用で、異なるブランチで同じ役割を果たす変数を一つの出力変数にマッピングし、ダウンズトリームノードでの重複定義を避けます。
|
||||
|
||||
***
|
||||
|
||||
### シナリオ
|
||||
|
||||
変数集約を通じて、問題分類や条件ブランチなどのマルチ出力をシングル出力に集約し、プロセスのダウンズトリームノードが使用および操作できるようにします。これによりデータフローの管理が簡素化されます。
|
||||
|
||||
**問題分類後のマルチ集約**
|
||||
|
||||
変数集約を追加しない場合、分類1と分類2のブランチは異なるナレッジベース検索を経て、ダウンズトリームの大規模言語モデルおよび直接返信ノードを繰り返し定義する必要があります。
|
||||
|
||||
<Frame caption="問題分類(変数集約なし)">
|
||||
<img src="/ja-jp/img/image (227).png" alt="问题分类无变量聚合的流程图" />
|
||||
</Frame>
|
||||
|
||||
変数集約を追加することで、二つのナレッジベース検索ノードの出力を一つの変数に集約できます。
|
||||
|
||||
<Frame caption="問題分類後のマルチ集約">
|
||||
<img src="/ja-jp/img/variable-aggregation.png" alt="问题分类后添加变量聚合的流程图" />
|
||||
</Frame>
|
||||
|
||||
**IF/ELSE 条件ブランチ後のマルチ集約**
|
||||
|
||||
<Frame caption="IF/ELSE 問題分類後のマルチ集約">
|
||||
<img src="/ja-jp/img/if-else-conditional.png" alt="IF/ELSE 条件分支后添加变量聚合的流程图" />
|
||||
</Frame>
|
||||
|
||||
### フォーマットに要求
|
||||
|
||||
変数集約器は文字列(`String`)、数値(`Number`)、ファイル(`File`)、オブジェクト(`Object`)、および配列(`Array`)など、さまざまなデータ型の集約をサポートします。
|
||||
|
||||
**変数集約器は同一データ型の変数しか集約できません**。最初に変数集約ノードに追加された変数データ形式が `String` である場合、後続の接続では追加可能な変数が `String` タイプに自動的にフィルタリングされます。
|
||||
|
||||
**アグリゲートグループ**
|
||||
|
||||
アグリゲートグループを有効にすると、変数集約器は複数のグループの変数を集約でき、各グループ内の集約時には同一データ型が求められます。
|
||||
169
ja-jp/user-guide/build-app/flow-app/nodes/variable-assigner.mdx
Normal file
169
ja-jp/user-guide/build-app/flow-app/nodes/variable-assigner.mdx
Normal file
@@ -0,0 +1,169 @@
|
||||
---
|
||||
title: 変数代入
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
### 定義
|
||||
|
||||
変数代入ノードは、書き込み可能な変数に他の変数を代入するために使用されます。現在、サポートされている可書き入れの変数は:
|
||||
|
||||
* [会話変数](../concepts)
|
||||
|
||||
使用方法:このノードを使用することで、ワークフローの中で変数の値を会話変数に一時的に保存し、後続の会話でその値を参照することができます。
|
||||
|
||||
<Frame caption="変数代入の例" width="375">
|
||||
<img src="/ja-jp/user-guide/.gitbook/assets/variable-assigner.png" alt="変数代入の例" />
|
||||
</Frame>
|
||||
|
||||
***
|
||||
|
||||
### 使用シナリオの例
|
||||
|
||||
変数代入ノードを活用することで、会話中の**コンテキスト、ダイアログにアップロードされたファイル(近々配布予定)、ユーザーの好みの情報**などを会話変数に書き込み、保存された情報は後続の会話で参照され、異なる処理フローに誘導したり、返答を行ったりすることができます。
|
||||
|
||||
**シナリオ 1**
|
||||
|
||||
**会話中の記録を自動的に抽出し保存します**、会話変数配列を使用してユーザーの重要な情報を記録します。その後の会話ではこれらの記録を活用し、個別の返信を行います。
|
||||
|
||||
例えば:会話が始まると、LLMはユーザーの入力に必要な情報や好み、またはチャット履歴が含まれているかを自動的に判断します。情報が存在する場合、LLMはそれを先に抽出して保存し、コンテキストとして利用して応答します。もし新しい情報を覚える必要がない場合、LLMは以前の関連する記録を用いて個性化な応答を出します。
|
||||
|
||||
<Frame caption="会話から情報を自動的に判断、抽出、保存します">
|
||||
<img src="/ja-jp/img/conversational-variables-scenario-01.png" alt="会話から情報を自動的に判断、抽出、保存のフローチャート" />
|
||||
</Frame>
|
||||
|
||||
**設定手順:**
|
||||
|
||||
1. **会話変数を設定**:まず、会話変数配列 `memories` を設定し、array\[object]型を持たせてユーザーの事実、好み、会話記録を保存します。
|
||||
2. **記録の判断と抽出**:
|
||||
* 条件判断ノードを追加し、LLMを使用してユーザーの入力に新しい情報が含まれているかを判断します。
|
||||
* 新しい情報がある場合は上流に進み、LLMノードを使用してこれらの情報を抽出します。
|
||||
* 新しい情報がない場合は下流に進み、既存の記憶を直接使用して返答します。
|
||||
3. **変数の代入と書き込み**:
|
||||
* 上流に進んだ後、変数代入ノードを用いて抽出した新しい情報を `memories` 配列に追加(append)します。
|
||||
* LLMの出力テキスト文字列を適切な array\[object] 形式に変換するためにエスケープ機能を使用します。
|
||||
4. **変数の読み取りと利用**:
|
||||
* 後続のLLMノードで、`memories` 配列の内容を文字列に変換し、LLMのプロンプトにコンテキストとして挿入します。
|
||||
* LLMはこれらの記憶を使用して個別の返信を生成します。
|
||||
|
||||
図中のcodeノードのコードは以下の通りです:
|
||||
|
||||
1. 文字列をオブジェクトに変換する
|
||||
|
||||
```python
|
||||
import json
|
||||
|
||||
def main(arg1: str) -> object:
|
||||
try:
|
||||
# Parse the input JSON string
|
||||
input_data = json.loads(arg1)
|
||||
|
||||
# Extract the memory object
|
||||
memory = input_data.get("memory", {})
|
||||
|
||||
# Construct the return object
|
||||
result = {
|
||||
"facts": memory.get("facts", []),
|
||||
"preferences": memory.get("preferences", []),
|
||||
"memories": memory.get("memories", [])
|
||||
}
|
||||
|
||||
return {
|
||||
"mem": result
|
||||
}
|
||||
except json.JSONDecodeError:
|
||||
return {
|
||||
"result": "Error: Invalid JSON string"
|
||||
}
|
||||
except Exception as e:
|
||||
return {
|
||||
"result": f"Error: {str(e)}"
|
||||
}
|
||||
```
|
||||
|
||||
2. オブジェクトを文字列に変換する
|
||||
|
||||
```python
|
||||
import json
|
||||
|
||||
def main(arg1: list) -> str:
|
||||
try:
|
||||
# Assume arg1[0] is the dictionary we need to process
|
||||
context = arg1[0] if arg1 else {}
|
||||
|
||||
# Construct the memory object
|
||||
memory = {"memory": context}
|
||||
|
||||
# Convert the object to a JSON string
|
||||
json_str = json.dumps(memory, ensure_ascii=False, indent=2)
|
||||
|
||||
# Wrap the JSON string in <answer> tags
|
||||
result = f"<answer>{json_str}</answer>"
|
||||
|
||||
return {
|
||||
"result": result
|
||||
}
|
||||
except Exception as e:
|
||||
return {
|
||||
"result": f"<answer>Error: {str(e)}</answer>"
|
||||
}
|
||||
```
|
||||
|
||||
**シナリオ 2**
|
||||
|
||||
**ユーザーの初期の好み情報を記録**し,会話中にユーザーが入力した言語の好みを記憶し、後続の会話でその言語を使用して返信します。
|
||||
|
||||
例:ユーザーが会話を始める前に、`language`入力欄に「日本語」と指定した場合、その言語は会話変数に書き込まれ、LLMは後続の返信時に会話変数の情報を参照し、継続的に「日本語」を使用して返信します。
|
||||
|
||||
<Frame caption="ユーザーの初期設定情報を記録する">
|
||||
<img src="/ja-jp/img/conversation-var-scenario-1.png" alt="ユーザーの初期嗜好情報を記録するフローチャート" />
|
||||
</Frame>
|
||||
|
||||
**設定手順:**
|
||||
|
||||
**会話変数の設定**:まず、会話変数 `language` を設定し、会話の開始時にこの変数の値が空かどうかを判断する条件分岐ノードを追加します。
|
||||
|
||||
**変数の書き込み/代入**:最初の会話が開始された際、 `language` 変数の値が空であれば、LLMノードを使用してユーザーの言語入力を抽出し、その言語タイプを会話変数 `language` に書き込みます。
|
||||
|
||||
**変数の読み取り**:後続の会話ラウンドでは、`language` 変数にユーザーの好みの言語が保存されています。以降の会話では、LLMノードがこの変数を参照し、ユーザーの好みの言語タイプを用いて返信します。
|
||||
|
||||
**シナリオ 3**
|
||||
|
||||
**Checklistのチェックを補助**し、会話中に会話変数にユーザーの入力項目を記録し、Checklistの内容を更新し、後続の会話で抜け漏れ項目を確認します。
|
||||
|
||||
例:会話を始める際、LLMはユーザーにチェックリストに関連するアイテムの入力を求めます。ユーザーがチェックリストの内容を一度述べると、その内容は会話変数に更新され、及び保存されます。LLMは各会話の後に、ユーザーに不足しているアイテムの追加を促します。
|
||||
|
||||
<Frame caption="Checklistのチェックを補助">
|
||||
<img src="/ja-jp/img/conversation-var-scenario-2-1.png" alt="Checklistのチェックを補助のフローチャート" />
|
||||
</Frame>
|
||||
|
||||
**配置流程:**
|
||||
|
||||
* **会話変数の設定**:最初に会話変数 `ai_checklist` を設定し、これをLLM内でチェックのコンテクストとして参照します。
|
||||
* **変数の書き込み/代入**:各会話のラウンドごとに、LLMノード内の `ai_checklist` の値を確認し、ユーザーの入力と比較します。ユーザーが新しい情報を提供した場合、チェックリストを更新し、変数代入ノードを使用して出力内容を `ai_checklist` に書き込みます。
|
||||
* **変数の読み取り**:`ai_checklist`の値を読み取り、すべてのチェックリストアイテムが完了するまで、各会話のラウンドでユーザーの入力と比較します。
|
||||
|
||||
***
|
||||
|
||||
### 3 操作方法
|
||||
|
||||
**変数代入の使用:**
|
||||
|
||||
ノードの右側の `+` マークをクリックし、「変数代入」 ノードを選択し、「代入られた変数」 と 「設定する変数」 を入力します。
|
||||
|
||||
<Frame caption="変数代入ノードの設定">
|
||||
<img src="/ja-jp/img/language-variable-assigner.png" width="375px" alt="変数代入ノードの設定画面" />
|
||||
</Frame>
|
||||
|
||||
**変数の設定:**
|
||||
|
||||
代入られた変数:代入された変数を選択し、対象の会話変数を指定します
|
||||
|
||||
設定する変数:変換する必要のあるソース変数を選択します
|
||||
|
||||
上図の代入ロジック:`Language Recognition/text` を `language` に代入します。
|
||||
|
||||
**書き込みモード:**
|
||||
|
||||
* Overwrite (上書き): ソース変数の内容を対象の会話変数に上書きします
|
||||
* Append (追加):指定された変数が配列型の場合に使用します
|
||||
* Clear (クリア): 対象の会話変数内の内容をクリアします
|
||||
141
ja-jp/user-guide/build-app/flow-app/orchestrate-node.mdx
Normal file
141
ja-jp/user-guide/build-app/flow-app/orchestrate-node.mdx
Normal file
@@ -0,0 +1,141 @@
|
||||
---
|
||||
title: オーケストレートノード
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
チャットフローおよびワークフローアプリケーションは、ビジュアルなドラッグアンドドロップ機能を通じてノードのオーケストレーションをサポートしており、**シリアル**および**パラレル**の2つのオーケストレーションデザインパターンがあります。
|
||||
|
||||
<Frame caption="上の画像はシリアル構造のノードフロー、下のはパラレル構造のノードフロー">
|
||||
<img src="/ja-jp/img/orchestrate-node.jpeg" alt="串行和并行节点流对比图" />
|
||||
</Frame>
|
||||
|
||||
## シリアルノードのデザインパターン
|
||||
|
||||
このパターンでは、ノードはあらかじめ定義された順序で順次実行されます。各ノードは、前のノードがタスクを完了し、出力を生成した後にのみ操作を開始します。これにより、**タスクが論理的な順序で実行されることが保証されます**。
|
||||
|
||||
シリアルパターンを実装した「小説生成」ワークフローアプリケーションを考えてみましょう。ユーザーが小説のスタイル、リズム、キャラクターを入力した後、LLMが順番に小説の概要、プロット、エンディングを完成させます。各ノードは前のノードの出力に基づいて動作し、小説のスタイルに一貫性をもたらします。
|
||||
|
||||
### シリアル構造の作り方
|
||||
|
||||
1. 2つのノードの間にある「+」アイコンをクリックして新しいシリアルノードを挿入します。
|
||||
2. ノードを順次リンクします。
|
||||
3. すべてのパスを「End」ノードに収束させて、ワークフローを最終承認します。
|
||||
|
||||
<Frame caption="シリアル構造">
|
||||
<img src="/ja-jp/img/orchestrate-node-serial-design.png" alt="串行结构设计示意图" />
|
||||
</Frame>
|
||||
|
||||
### シリアル構造のアプリのログをチェックする
|
||||
|
||||
シリアル構造のアプリは、ログが順次ノードの操作を表示します。会話ボックスの右上にある "View Logs - Tracing" を順にクリックすると、各ノードの入力、出力、トークン消費、実行時間を含む完全なワークフロープロセスが表示されます。
|
||||
|
||||
<Frame caption="シリアル構造のアプリのログ">
|
||||
<img src="/ja-jp/img/viewing-serial-structure-app-logs.png" alt="串行结构应用日志界面" />
|
||||
</Frame>
|
||||
|
||||
## パラレルノードのデザインパターン
|
||||
|
||||
このアーキテクチャパターンは、複数のノードを並行して実行することを可能にします。前のノードは、パラレル構造内の複数のノードを同時にトリガーできます。これらのパラレルノードは独立して動作し、タスクを同時に実行することで、全体のワークフロー効率を大幅に向上させます。
|
||||
|
||||
パラレルアーキテクチャを実装した翻訳ワークフローアプリケーションを考えてみましょう。ユーザーがソーステキストを入力してワークフローをトリガーすると、パラレル構造内のすべてのノードが前のノードから同時に命令を受け取ります。これにより、複数の言語への同時翻訳が可能となり、全体の処理時間が大幅に短縮されます。
|
||||
|
||||
<Frame caption="パラレルノードのデザイン">
|
||||
<img src="/ja-jp/user-guide/.gitbook/assets/image (335).png" alt="并行设计示意图" />
|
||||
</Frame>
|
||||
|
||||
### パラレルノードのデザインパターン
|
||||
|
||||
次の4つの方法は、ノードの追加やビジュアル操作を通じてパラレル構造を作成する方法を示しています:
|
||||
|
||||
**方法1**
|
||||
|
||||
ノードの上にカーソルを合わせると「+」ボタンが表示されます。クリックすると、複数のノードが追加され、自動的にパラレル構造が形成されます。
|
||||
|
||||
<Frame caption="Type 01">
|
||||
<img src="/ja-jp/img/orchestrate-node-parallel-design-method-1.png" alt="新建并行结构方式1" />
|
||||
</Frame>
|
||||
|
||||
**方法2**
|
||||
|
||||
ノードから接続を延長するには、ノードの「+」ボタンをドラッグしてパラレル構造を作成します。
|
||||
|
||||
<Frame caption="Type 02">
|
||||
<img src="/ja-jp/img/orchestrate-node-parallel-design-method-2.png" alt="新建并行结构方式2" />
|
||||
</Frame>
|
||||
|
||||
**方法3**
|
||||
|
||||
キャンバス上に複数のノードがある場合は、ビジュアルにドラッグしてリンクし、パラレル構造を形成します。
|
||||
|
||||
<Frame caption="Type 03">
|
||||
<img src="/ja-jp/img/orchestrate-node-parallel-design-method-3.png" alt="新建并行结构方式3" />
|
||||
</Frame>
|
||||
|
||||
**方法4**
|
||||
|
||||
キャンバスベースの方法に加えて、ノードの右側パネルの「Next Step」セクションからノードを追加することで、パラレル構造を生成することもできます。このアプローチにより、自動的にパラレル構成が作成されます。
|
||||
|
||||
<Frame caption="Type 04">
|
||||
<img src="/ja-jp/img/orchestrate-node-parallel-design-method-4.png" alt="新建并行结构方式4" />
|
||||
</Frame>
|
||||
|
||||
<Note>
|
||||
**Tips:**
|
||||
|
||||
* 任意のノードがパラレル構造の下流ノードとして機能します。
|
||||
* ワークフローアプリケーションには、単一かつ一意な「end」ノードが必要です。
|
||||
* チャットフローアプリケーションでは複数の「answer」ノードがサポートされます。これらのアプリケーションの各パラレル構造は、適切なコンテンツの出力を確保するために「answer」ノードで終了する必要があります。
|
||||
* すべてのパラレル構造は同時に実行されます。パラレル構造内のノードは、タスクを完了した後に結果を出力し、出力には順序関係がありません。パラレル構造が単純であればあるほど、結果の出力が速くなります。
|
||||
</Note>
|
||||
|
||||
<Frame caption="チャットフローアプリ中のパラレル構造">
|
||||
<img src="/ja-jp/img/orchestrate-node-chatflow-multi-answer.png" alt="Chatflow 应用中的并行结构示例" />
|
||||
</Frame>
|
||||
|
||||
### パラレル構造の作り方
|
||||
|
||||
以下の4つのパターンは、一般的なパラレル構造デザインを示しています:
|
||||
|
||||
#### 1. 通常のパラレル
|
||||
|
||||
通常のパラレルは、「開始 | パラレルノード | 終了」の3階層関係を指します。この構造は直感的で、ユーザー入力後に複数のタスクを同時に実行できます。
|
||||
|
||||
> パラレルブランチの上限は10です。
|
||||
|
||||
<Frame caption="通常のパラレル">
|
||||
<img src="/ja-jp/img/orchestrate-node-simple-parallel.png" alt="普通并行结构示例" />
|
||||
</Frame>
|
||||
|
||||
#### 2. ネストされたパラレル
|
||||
|
||||
ネストされたパラレルは、「開始 | 複数のパラレル構造 | 終了」の多階層関係を指します。これは、外部APIを要求する必要があるノード内で同時に複数のタスクを処理し、結果を下流ノードに渡す必要があるような、より複雑なワークフローに適しています。
|
||||
|
||||
ワークフローは、最大3層までのネスト関係をサポートします。
|
||||
|
||||
<Frame caption="ネストされたパラレル">
|
||||
<img src="/ja-jp/img/orchestrate-node-nested-parallel.png" alt="嵌套并行结构示例" />
|
||||
</Frame>
|
||||
|
||||
#### 3. 条件分岐 + パラレル
|
||||
|
||||
パラレル構造は条件分岐と組み合わせて使用することもできます。
|
||||
|
||||
<Frame caption="条件分岐 + パラレル">
|
||||
<img src="/ja-jp/img/orchestrate-node-conditional-branch-parallel.png" alt="条件分支和并行结构结合示例" />
|
||||
</Frame>
|
||||
|
||||
#### 4. イテレーション + パラレル
|
||||
|
||||
このパターンは、イテレーションとパラレル構造を組み合わせたものです。
|
||||
|
||||
<Frame caption="イテレーション + パラレル">
|
||||
<img src="/ja-jp/img/orchestrate-node-iteration-parallel.png" alt="迭代分支和并行结构结合示例" />
|
||||
</Frame>
|
||||
|
||||
### パラレル構造のアプリのログをチェックする
|
||||
|
||||
パラレル構造をもつアプリケーションは、ツリーのような形式でログを生成します。折りたたみ可能なパラレルノード グループにより、個々のノード ログを簡単に表示できます。
|
||||
|
||||
<Frame caption="パラレル構造のアプリのログ" width="315">
|
||||
<img src="/ja-jp/img/orchestrate-node-parallel-logs.png" alt="并行结构应用日志界面" />
|
||||
</Frame>
|
||||
186
ja-jp/user-guide/build-app/flow-app/variables.mdx
Normal file
186
ja-jp/user-guide/build-app/flow-app/variables.mdx
Normal file
@@ -0,0 +1,186 @@
|
||||
---
|
||||
title: 変数
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
**ワークフロー**や**チャットフロー**は、単独ノードで構成されています。多くのノードは入力と出力のアイテムを持っていますが、各ノードの入力および出力情報は一貫性がなく、ダイナミックに変化します。
|
||||
|
||||
**固定のシンボルを用いて、ダイナミックなコンテンツをどのように参照するのでしょうか?** 変数はダイナミックなデータコンテナとして、さまざまな内容を格納・送信し、異なるノードの間で相互に参照され、お互いに情報を移動することができます。
|
||||
|
||||
### **システム変数**
|
||||
|
||||
システム変数とは、チャットフロー/ワークフロー内でグローバルに使用される事前設定されたシステムレベルのパラメータです。すべてのシステムレベルの変数は`sys.`で始まります。
|
||||
|
||||
#### ワークフロー
|
||||
|
||||
ワークフローは、以下のシステム変数を提供します:
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="193">変数名</th>
|
||||
<th width="116">データタイプ</th>
|
||||
<th width="278">说明</th>
|
||||
<th>メモ</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><p><code>sys.files</code></p><p><code>[LEGACY]</code></p></td>
|
||||
<td>Array[File]</td>
|
||||
<td>ファイルパラメータで、ユーザーがアプリを初めて使用する際にアップロードした画像を保存します。</td>
|
||||
<td>画像のアップロード機能は、アプリケーションの編成ページ右上の「機能」から開始する必要があります。</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>sys.user_id</code></td>
|
||||
<td>String</td>
|
||||
<td>ユーザーIDです。ワークフローアプリを使用する際、システムが自動的にユーザーに一意の識別子を割り当て、異なるユーザーを区別するために使用します。</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>sys.app_id</code></td>
|
||||
<td>String</td>
|
||||
<td>アプリIDで、システムが各ワークフローアプリに一意の識別子を割り当て、異なるアプリを区別します。このパラメータは現在のアプリの基本情報を記録するために使用されます。</td>
|
||||
<td>開発能力を持つユーザー向けで、このパラメータを使用して異なるワークフローアプリを区別し、特定できます。</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>sys.workflow_id</code></td>
|
||||
<td>String</td>
|
||||
<td>ワークフローIDで、現在のワークフローアプリに含まれるすべてのノード情報を記録するために使用されます。</td>
|
||||
<td>開発能力を持つユーザー向けで、このパラメータを使用してワークフロー内のノード情報を追跡および記録できます。</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>sys.workflow_run_id</code></td>
|
||||
<td>String</td>
|
||||
<td>ワークフローアプリ実行IDで、ワークフローアプリ内の実行状況を記録するために使用されます。</td>
|
||||
<td>開発能力を持つユーザー向けで、このパラメータを使用してアプリの過去の実行状況を追跡できます。</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<Frame caption="ワークフロー内のシステム変数">
|
||||
<img src="/en-us/img/c405efa31fd5708542fdc3bd7c0cb708.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
#### チャットフロー
|
||||
|
||||
チャットフローは、以下のシステム変数を提供します:
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>変数名</th>
|
||||
<th width="127">データタイプ</th>
|
||||
<th width="283">説明</th>
|
||||
<th>メモ</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>sys.query</code></td>
|
||||
<td>String</td>
|
||||
<td>ユーザーが最初に入力したダイアログボックスの内容</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>sys.files</code></td>
|
||||
<td>Array[File]</td>
|
||||
<td>ユーザーがダイアログボックス内でアップロードした画像</td>
|
||||
<td>画像のアップロード機能は、アプリケーションの構築ページ右上隅の「機能」で有効にする必要があります</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>sys.dialogue_count</code></td>
|
||||
<td>Number</td>
|
||||
<td><p>チャットフロー形式のアプリとの対話中にユーザーが持つ対話のラウンド数。各対話の後、自動的に1つのカウントが増加します。if-elseノードと組み合わせて豊富な分岐ロジックを作成できます。</p><p>例えば、Xラウンド目に到達したとき、対話履歴を振り返り分析を提供します。</p></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>sys.conversation_id</code></td>
|
||||
<td>String</td>
|
||||
<td>対話ボックスのインタラクションセッションの一意の識別子で、すべての関連メッセージを同じ対話にグループ化し、LLMが同じトピックとコンテキストに対して持続的な対話を行うことを確認します。</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>sys.user_id</code></td>
|
||||
<td>String</td>
|
||||
<td>各アプリユーザーに割り当てられた一意の識別子で、異なる対話ユーザーを区別するために使用されます。</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>sys.app_id</code></td>
|
||||
<td>String</td>
|
||||
<td>アプリIDで、システムは各ワークフローアプリケーションに一意の識別子を割り当て、異なるアプリを区別し、このパラメータを使用して現在のアプリの基本情報を記録します。</td>
|
||||
<td>開発能力を持つユーザー向けで、このパラメータを使用して異なるワークフローアプリを特定および位置付けることができます。</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>sys.workflow_id</code></td>
|
||||
<td>String</td>
|
||||
<td>ワークフローIDで、現在のワークフローアプリ内に含まれるすべてのノード情報を記録するために使用されます。</td>
|
||||
<td>開発能力を持つユーザー向けで、このパラメータを使用してワークフロー内のすべてのノード情報を追跡および記録できます。</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>sys.workflow_run_id</code></td>
|
||||
<td>String</td>
|
||||
<td>ワークフローアプリケーションの実行IDで、ワークフローアプリケーション内の実行状況を記録するために使用されます。</td>
|
||||
<td>開発能力を持つユーザー向けで、このパラメータを使用してアプリの過去の実行状況を追跡できます。</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<Frame caption="チャットフロー内のシステム変数">
|
||||
<img src="/en-us/img/e387366fe2643688d57e6b9a69eacb1b.png" alt="chatflow app system variables" />
|
||||
</Frame>
|
||||
|
||||
### 環境変数
|
||||
|
||||
**環境変数は、APIキーやデータベースのパスワードといった機密性の高い情報を保護する際に、ワークフロー実行時に活用されます。** これらはコードに直接書き込むのではなく、ワークフローに設定され、異なる環境間での共有が可能になっています。
|
||||
|
||||
<Frame caption="環境変数">
|
||||
<img src="/ja-jp/img/jp-env-variable.png" alt="Environment Variables" />
|
||||
</Frame>
|
||||
|
||||
サポートされるデータ型には以下の3つがあります:
|
||||
|
||||
* String 文字列
|
||||
* Number 数値
|
||||
* Secret シークレット
|
||||
|
||||
環境変数は以下の特徴を持ちます:
|
||||
|
||||
* 多くのノードでグローバルに参照可能です;
|
||||
* 同一の環境変数名を複数設定することはできません;
|
||||
* ノードの出力変数は基本的に読み取り専用で、書き換えることはできません;
|
||||
|
||||
### 会話変数
|
||||
|
||||
> 会話変数は、マルチターンダイアログシナリオに適した機能ですが、ワークフロー型アプリケーションのインタラクションは線形かつ独立しており、複数回の対話が行われないため、会話変数は主にチャットフロー型アプリケーション(チャットボットからワークフローへの変換)にのみ適用されます。
|
||||
|
||||
**会話変数は、同一のチャットフローセッション内でアプリ開発者が一時的に保存する特定の情報を定義し、現在のワークフロー内のマルチターンダイアログ全体でその情報を参照可能にします。** 具体例としては、コンテキスト、ダイアログボックスにアップロードされたファイル(近日公開予定)、ユーザーがダイアログ中に入力した好みなどが含まれます。これはLLMに随時参照できる「メモ帳」を提供し、LLMのメモリエラーによる情報のずれを防ぐためのものです。
|
||||
|
||||
例えば、ユーザーが最初の対話で設定した言語を会話変数に保存すれば、LLMはその情報を参照し、続く対話で指定された言語でユーザーに返信することが可能です。
|
||||
|
||||
<Frame>
|
||||
<img src="/ja-jp/img/conversation-var.png" alt="" />
|
||||
</Frame>
|
||||
|
||||
**会話変数**は以下の6つのデータ型をサポートしています:
|
||||
|
||||
* String 文字列
|
||||
* Number 数値
|
||||
* Object オブジェクト
|
||||
* Array\[string] 文字列の配列
|
||||
* Array\[number] 数値の配列
|
||||
* Array\[object] オブジェクトの配列
|
||||
|
||||
**会话变量**具有以下特性:
|
||||
|
||||
* 会話変数はほとんどのノード内でグローバルに参照可能です。
|
||||
* 会話変数の書き込みには[変数代入](./nodes/variable-assigner)ノードを使用する必要があります;
|
||||
* 会話変数は読み書き可能な変数です;
|
||||
|
||||
会話変数と変数代入ノードの具体的な使用方法については、[変数代入](./nodes/variable-assigner)をご参照ください。
|
||||
|
||||
### 注意事项
|
||||
|
||||
* 変数名の重複を避けるため、ノードの命名は独自に設定してください。
|
||||
* ノードの出力変数は通常固定されており、編集することはできません。
|
||||
79
ja-jp/user-guide/build-app/text-generator.mdx
Normal file
79
ja-jp/user-guide/build-app/text-generator.mdx
Normal file
@@ -0,0 +1,79 @@
|
||||
---
|
||||
title: テキスト生成アプリケーション
|
||||
version: '日本語'
|
||||
---
|
||||
|
||||
テキスト生成アプリケーションは、特定の形式のコンテンツを生成することに特化したアプリの一種です。このアプリでは、ユーザーが具体的な要件やパラメータを入力すると、あらかじめ設定された形式に従ってテキストが自動的に出力されます。持続的な対話能力を持つチャットボットとは異なり、テキスト生成アプリは主に単発の入力に対して応答し、一度きりのコンテンツ生成を行います。その中で「プロンプトジェネレーター」は、代表的な例として挙げられます。
|
||||
|
||||
## 適用シーン
|
||||
|
||||
テキスト生成アプリケーションは、クリエイティブライティング、マーケティングコピー、技術文書など、標準化されたコンテンツを迅速に大量生成する必要がある場面に特に適しています。
|
||||
|
||||
## 作成手順
|
||||
|
||||
対話型アプリの構築方法を説明します。プロンプト、変数、コンテキスト、オープニングステートメント、次のステップの提案をサポートします。
|
||||
|
||||
次に、「週報生成アプリケーター」の構築を例に、対話型アプリの作成手順を紹介します。
|
||||
|
||||
### アプリの作成
|
||||
|
||||
ホームページで「アプリの作成」ボタンをクリックして、アプリを作成します。アプリ名を入力し、アプリタイプとして**テキスト生成アプリ**を選択します。
|
||||
|
||||

|
||||
|
||||
### アプリの構築
|
||||
|
||||
アプリが作成されると、自動的にアプリの監視ページに移動します。ここで、チャットアプリに変数を設定したり、コンテキストを追加したり、追加のチャット機能を設定することができます。
|
||||
|
||||

|
||||
|
||||
#### プロンプトの入力
|
||||
|
||||
プロンプトは、AIに対して専門的な返答を促すためのもので、返答の精度を高めるためのヒントとして使用されます。組み込みのプロンプトジェネレーターを利用して、適切なプロンプトを作成することができます。プロンプトには、フォーム変数を挿入することも可能です。たとえば、`{{input}}`という変数をプロンプト内に挿入すると、ユーザーが入力した値に基づいてその変数の値が置換されます。
|
||||
|
||||
例:
|
||||
1. 面接シーンのプロンプトを要求する指示を入力します。
|
||||
2. 右側のコンテンツボックスにプロンプトが自動生成されます。
|
||||
3. プロンプト内にカスタム変数を挿入することもできます。
|
||||
|
||||

|
||||
|
||||
#### コンテキストの追加
|
||||
|
||||
AIの対話範囲を特定のナレッジベースに制限したい場合、例えば企業内のカスタマーサービスのテンプレートを使用したいときは、"コンテキスト"でナレッジベースを参照できます。
|
||||
|
||||

|
||||
|
||||
### デバッグ
|
||||
|
||||
右側にユーザー入力項目を入力して、内容をデバッグします。
|
||||
|
||||

|
||||
|
||||
回答が思わしくない場合は、プロンプトや基礎モデルを調整することができます。また、複数のモデルを同時に使用してデバッグすることも可能で、適切な設定を組み合わせて試すことができます。
|
||||
|
||||

|
||||
|
||||
**複数のモデルでのデバッグ:**
|
||||
|
||||
単一のモデルを使用することが効率的でない場合、**"複数のモデルでのデバッグ"**機能を使用して、複数のモデルの回答効果を一括で確認できます。
|
||||
|
||||

|
||||
|
||||
最大で4つの大きなモデルを同時に追加できます。
|
||||
|
||||

|
||||
|
||||
⚠️ 複数モデルデバッグ機能を使用する際に、一部の大きなモデルしか表示されない場合は、他の大きなモデルのキーがまだ追加されていないためです。「新しいプロバイダーを追加」を利用して、複数のモデルのキーを手動で追加できます。
|
||||
|
||||
### アプリの公開
|
||||
|
||||
アプリをデバッグしたら、右上の**"公開"**ボタンをクリックして独自のAIアプリを生成します。公開されたURLを通じてアプリを体験するだけでなく、APIベースの開発やWebサイトへの組み込みも行えます。詳細については、公開に関するセクションをご覧ください。
|
||||
|
||||
公開済みのアプリをカスタマイズしたい場合は、当社のオープンソースのWebAppテンプレートをフォークしてください。テンプレートを基に、シナリオやスタイルに合わせてアプリをカスタマイズできます。
|
||||
|
||||
## よくある質問
|
||||
|
||||
**テキスト生成器にカスタムツールを追加する方法は?**
|
||||
|
||||
チャットアシスタントタイプのアプリでは、サードパーティツールの追加はサポートされていません。カスタムツールを追加したい場合は、エージェントタイプのアプリ内で追加することが可能です。
|
||||
41
zh-cn/management/app-management.mdx
Normal file
41
zh-cn/management/app-management.mdx
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
title: 应用管理
|
||||
version: '简体中文'
|
||||
---
|
||||
|
||||
## [编辑应用信息](#edit-app-info)
|
||||
|
||||
创建应用后,如果你想要修改应用名称或描述,可以点击应用左上角的 「编辑信息」 ,重新修改应用的图标、名称或描述。
|
||||
|
||||

|
||||
|
||||
## [复制应用](#copy-app)
|
||||
|
||||
应用均支持复制操作,点击应用左上角的 「复制」。
|
||||
|
||||
## [导出应用](#export-app)
|
||||
|
||||
在 Dify 内创建的应用均支持以 DSL 格式进行导出,你可以自由地将配置文件导入至任意 Dify 团队。
|
||||
|
||||
通过以下两种方式导出 DSL 文件。
|
||||
|
||||
* 在 “工作室” 页点击应用菜单按钮中 “导出 DSL”;
|
||||
* 进入应用的编排页后,点击左上角 “导出 DSL”。
|
||||
|
||||

|
||||
|
||||
DSL 文件不包含自定义工具节点内已填写的授权信息,例如第三方服务的 API Key;如果环境变量中包含 `Secret`类型变量,导出文件时将提示是否允许导出该敏感信息。
|
||||
|
||||

|
||||
|
||||
<Tip>
|
||||
Dify DSL 格式文件是 Dify.AI 定义的 AI 应用工程文件标准,文件格式为 YML。该标准涵盖应用的基本描述、模型参数、编排配置等信息。
|
||||
</Tip>
|
||||
|
||||
## 删除应用
|
||||
|
||||
如果你想要清理应用,可以点击应用左上角的 「删除」 。
|
||||
|
||||
<Tip>
|
||||
⚠️ 应用的删除操作无法撤销,所有用户将无法访问你的应用,应用内的所有 Prompt、编排配置和日志均会被删除。
|
||||
</Tip>
|
||||
40
zh-cn/management/personal-account-management.mdx
Normal file
40
zh-cn/management/personal-account-management.mdx
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
title: 个人账号管理
|
||||
version: '简体中文'
|
||||
---
|
||||
|
||||
## 修改账号信息
|
||||
|
||||
如需修改个人账号的相关信息,请点击 Dify 团队首页右上角头像,轻点 **“账户”** 修改以下信息:
|
||||
|
||||
* 头像
|
||||
* 用户名
|
||||
* 邮箱
|
||||
* 密码
|
||||
|
||||
> 注意:重置密码功能仅在社区版提供
|
||||
|
||||

|
||||
|
||||
### 绑定登录方式
|
||||
|
||||
支持绑定 GitHub 与 Google 账号作为 Dify 团队的登录方式。请点击 Dify 团队首页右上角头像,轻点 **“集成”** 进行绑定。
|
||||
|
||||
### 切换界面语言
|
||||
|
||||
请点击 Dify 团队首页右上角头像,轻点 **“语言”** 修改显示语言。Dify 支持切换以下语言:
|
||||
|
||||
* English
|
||||
* 简体中文
|
||||
* 繁体中文
|
||||
* Português(Brasil)
|
||||
* Français(France)
|
||||
* 日本語(日本)
|
||||
* 한국어(대한민국)
|
||||
* Русский(Россия)
|
||||
* Italiano(Italia)
|
||||
* ไทย(ประเทศไทย)
|
||||
* Bahasa Indonesia
|
||||
* Українська(Україна)
|
||||
|
||||
Dify 欢迎更多社区志愿者一同参与贡献更多语言版本,前往[ Github 代码仓库](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md)进行贡献!
|
||||
59
zh-cn/management/team-members-management.mdx
Normal file
59
zh-cn/management/team-members-management.mdx
Normal file
@@ -0,0 +1,59 @@
|
||||
---
|
||||
title: 团队成员管理
|
||||
version: '简体中文'
|
||||
---
|
||||
|
||||
本文将介绍如何在 Dify 团队内管理成员。
|
||||
|
||||
### 添加成员
|
||||
|
||||
<Tip>
|
||||
仅团队所有者具备邀请团队成员的权限。
|
||||
</Tip>
|
||||
|
||||
团队所有者点击右上角头像,然后轻点 **“成员”** → **“添加”**,输入邮箱,分配成员权限完成添加。
|
||||
|
||||

|
||||
|
||||
被邀请成员可以通过 URL 或邮箱进行注册。
|
||||
|
||||
### 成员权限
|
||||
|
||||
团队成员分为所有者、管理员、编辑、成员。
|
||||
|
||||
* **所有者**
|
||||
* 角色描述:团队中的首位成员,拥有最高权限,负责整个团队的运营和管理工作。
|
||||
* 权限概览:拥有管理团队成员、调整成员权限、设置模型供应商、创建和删除应用、创建知识库、设置工具库等权限。
|
||||
* **管理员**
|
||||
* 角色描述:团队中的管理员,负责管理团队成员和模型供应商。
|
||||
* 权限概览:无法调整成员权限;具备添加或移除团队成员、设置模型供应商、创建、编辑和删除应用、创建知识库、设置工具库等权限。
|
||||
* **编辑**
|
||||
* 角色描述:团队中的普通成员,负责协作创建和编辑应用。
|
||||
* 权限概览:无法管理团队成员、无法设置模型供应商、无法设置工具库;具备创建、编辑和删除应用、创建知识库的权限。
|
||||
* **成员**
|
||||
* 角色描述:团队中的普通成员,仅允许查看和使用团队内已创建的应用。
|
||||
* 权限概览:仅具备使用团队内应用、使用工具的权限。
|
||||
|
||||
### 移除成员
|
||||
|
||||
<Tip>
|
||||
仅团队所有者具备移除团队成员的权限。
|
||||
</Tip>
|
||||
|
||||
点击 Dify 团队首页右上角头像,前往 **“设置”** → **“成员”** ,选择需要被移除的成员的角色,轻点 **“移除团队”**。
|
||||
|
||||

|
||||
|
||||
### 常见问题
|
||||
|
||||
#### 1. 如何转移团队所有者?
|
||||
|
||||
团队所有者具备最高权限,为了保持团队结构的稳定性,团队所有者一经创立无法手动转移。
|
||||
|
||||
#### 2. 如何删除团队?
|
||||
|
||||
出于团队数据安全考虑,团队所有者无法自助删除名下的团队。
|
||||
|
||||
#### 3. 如何删除团队成员账号?
|
||||
|
||||
团队所有者 / 管理员均无法删除团队成员的账号,删除账号需要账号所有人主动申请,无法被其他人删除。相较于删除账号,将成员移出团队同样可以关闭该用户对团队的访问权限。
|
||||
192
zh-cn/management/version-control.mdx
Normal file
192
zh-cn/management/version-control.mdx
Normal file
@@ -0,0 +1,192 @@
|
||||
---
|
||||
title: 版本管理
|
||||
---
|
||||
|
||||
## 简介
|
||||
|
||||
版本管理是**Dify 聊天流/工作流管理界面**中的一项核心功能,用于帮助用户高效地管理和发布应用的多个版本。
|
||||
|
||||
通过版本管理功能,用户可以清晰地区分应用的**草稿版本**和**已发布版本**,并在需要时回滚到**历史版本**。该功能可以让应用的迭代和管理更为简便和直观,确保应用的持续更新与稳定性。
|
||||
|
||||
## 相关定义
|
||||
|
||||
- **草稿版本(Current Draft)**: 草稿版本是 Dify 聊天流/工作流管理界面中**唯一呈现当前工作进度的版本**。用户可在此版本中编辑、修改与预览聊天流/工作流。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/38296a597c0ca31b5fb70be2234f2363.png" width="400" className="mx-auto" alt="current_draft"/>
|
||||
|
||||
- **已发布版本(Published Version)**: 用户发布到线上的所有版本,即最新发布版本和历史发布版本的统称。每一次发布操作都会生成一个新的已发布版本。
|
||||
|
||||
- **最新发布版本(Latest Version)**: 用户最近一次发布到线上的版本。Dify 在版本管理界面中将其标记为 `Latest` ,以便与其他历史发布版本区分。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/e4c06a0817c30cf9e8893487c889cb02.png" width="350" className="mx-auto" alt="latest_version"/>
|
||||
|
||||
- **历史发布版本(Previous Version)**: 用户曾经发布过,但现在已经不再处于当前线上状态的版本。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/4cd05033b93d84b53496f3d02e88601f.png" width="200" className="mx-auto" alt="prevous_version"/>
|
||||
|
||||
- **版本回滚(Restore)**: 版本管理中的版本回滚功能允许用户将应用恢复到某个历史版本。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/607a69b5355886b9ae8d23a08e818e35.jpg" width="200" className="mx-auto" alt="restore"/>
|
||||
|
||||
## 功能
|
||||
|
||||
- **查看所有版本**:在版本管理界面中,你可以查看所有已发布的版本,了解每个版本的详细信息。
|
||||
|
||||
- **查找所需版本**: 你可以使用筛选功能快速查找所需的特定版本。
|
||||
|
||||
- **发布新版本**: 你可以发布一个新的应用版本,并为该版本创建相应的版本名和版本描述。
|
||||
|
||||
- **编辑已发布版本的信息**: 你可以编辑已发布版本的版本名和版本描述。
|
||||
|
||||
- **删除历史版本**: 你可以删除不再需要的历史版本,清理版本列表。
|
||||
|
||||
- **回滚到历史版本**: 通过版本回滚功能,你可以将历史版本的内容加载到草稿中并进行修改。
|
||||
|
||||
## 如何查看所有版本?
|
||||
|
||||
1. 点击右上角的 **版本管理功能** 按钮,进入版本管理界面。
|
||||
|
||||

|
||||
|
||||
2. 版本管理界面显示了一个按时间倒序排列的版本列表。你可以在列表内查看过往版本的 **版本名、版本信息、发布时间、发布者**。
|
||||
|
||||
3. *(可选)* 如果版本列表超过当前可见的数量,你可以点击 **加载更多** 按钮,加载更多的版本记录。
|
||||
|
||||

|
||||
|
||||
## 如何查找我需要的版本?
|
||||
|
||||
- **查找由我发布的版本**: 点击 **筛选** 按钮,弹出筛选框。该筛选框有两个选项:
|
||||
|
||||
- **所有版本**: 显示所有版本,包括你自己和其他用户发布的版本。
|
||||
- **由我发布的版本**: 仅显示由你发布的版本。
|
||||
|
||||
你可以根据需要选择合适的筛选项,以查看对应的版本。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/0bf8fef8858671a8fef160f49dd83dad.jpg" width="200" className="mx-auto" alt="all_or_only_yours"/>
|
||||
|
||||
- **查找已命名的版本**: 如果你只想查看已命名的版本,可以点击 **查找已命名的版本** 选项。启用该选项后,只有已命名版本会出现在版本列表中,其他未命名的版本将被隐藏。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/2473121caa2e25ad1a76ee42a4127fb4.jpg" width="200" className="mx-auto" alt="only_show_named_versions"/>
|
||||
|
||||
## 如何发布新版本?
|
||||
|
||||
1. 在 Dify 聊天流/工作流管理界面中完成聊天流/工作流创建后,点击面板的右上角的 **发布 > 发布更新** 按钮,即可直接发布当前版本。
|
||||
|
||||

|
||||
|
||||
2. 发布后,此最新发布版本将被标记为 `Latest` 。相关信息会显示在版本管理界面中。
|
||||
|
||||

|
||||
|
||||
## 如何编辑已发布版本的信息?
|
||||
|
||||
1. 在版本管理界面,找到你需要编辑版本信息的版本,并点击该版本右上角的操作菜单。
|
||||
|
||||
- 如果你之前以默认名称保存了该版本,可以点击 **命名此版本**,更新版本名与版本信息。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/1d840edf979132a9bbf1e065f95e663c.jpg" width="200" className="mx-auto" alt="edit_version_info_1"/>
|
||||
|
||||
- 如果你已经为该版本填写过版本名,可以点击 **编辑版本信息** 修改版本名与版本信息。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/1d840edf979132a9bbf1e065f95e663c.jpg" width="200" className="mx-auto" alt="edit_version_info_1"/>
|
||||
|
||||
2. 点击 **发布**,发布版本信息。
|
||||
|
||||

|
||||
|
||||
## 如何删除历史版本?
|
||||
|
||||
1. 在版本管理界面,找到你需要删除的已发布版本,点击该版本右上角的操作菜单。
|
||||
|
||||
2. 选择 **删除**,弹出确认操作的弹窗。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/25ad1999fc9f6f44fcac04526ac5563a.jpg" width="200" className="mx-auto" alt="delete_version"/>
|
||||
|
||||
3. 点击 **删除**,该版本将从版本管理界面中删除。
|
||||
|
||||

|
||||
|
||||
<Info>
|
||||
- **草稿版本**(即 Current Draft)为当前聊天流 / 工作流界面正在编辑的草稿版本,无法删除。
|
||||
- **最新发布版本**(即标记为 Latest 的版本)为用户最近一次发布到线上的版本,无法删除。
|
||||
</Info>
|
||||
|
||||
## 如何回滚到某个已发布版本?
|
||||
|
||||
1. 在版本管理界面,找到你需要回滚的历史版本,点击该版本右上角的操作菜单。
|
||||
|
||||
2. 选择 **回滚**,弹出确认操作的弹窗。
|
||||
|
||||
<img src="https://assets-docs.dify.ai/2025/03/c96b714accc29df8e46e711782a7a6a9.jpg" width="200" className="mx-auto" alt="restore_version"/>
|
||||
|
||||
3. 点击 **回滚**,当前的草稿版本将回滚为该历史版本。
|
||||
|
||||

|
||||
|
||||
## 使用场景
|
||||
|
||||
以下用一个典型的用户使用场景来说明各版本之间的联系。
|
||||
|
||||
> 相同颜色代表相同的版本内容。
|
||||
|
||||
### 阶段一
|
||||
|
||||
- 系统自动新建 **草稿版本** Version A。
|
||||
|
||||

|
||||
|
||||
### 阶段二:首次发布
|
||||
|
||||
- Version A 发布,成为 **最新发布版本**。
|
||||
- 系统自动新建 **草稿版本** Version B。
|
||||
|
||||

|
||||
|
||||
### 阶段三:再次发布
|
||||
|
||||
- Version B 发布,成为 **最新发布版本**。
|
||||
- Version A 成为 **历史发布版本**。
|
||||
- 系统自动新建 **草稿版本** Version C。
|
||||
|
||||

|
||||
|
||||
### 阶段四:回滚操作
|
||||
|
||||
- Version A 回滚至 **草稿版本**,覆盖 Version C。
|
||||
- Version B 仍为 **最新发布版本**。
|
||||
|
||||

|
||||
|
||||
### 阶段五:发布回滚
|
||||
|
||||
- Version A(回滚版)发布,成为 **最新发布版本**。
|
||||
- Version A 与 Version B 成为 **历史发布版本**。
|
||||
- 系统自动新建 **草稿版本** Version D。
|
||||
|
||||

|
||||
|
||||
### 全流程演示
|
||||
|
||||

|
||||
|
||||
## FAQ
|
||||
|
||||
- **草稿版本、已发布版本、最新发布版本和历史发布版本有什么区别?**
|
||||
|
||||
| 定义 | 操作方式 | 是否可以从线上访问 | 是否可以删除 | 是否可以回滚 |
|
||||
|-----|---------|------------------|------------|------------|
|
||||
| 草稿版本 | 当前正在编辑和修改的版本,代表用户的最新工作进度。 | 只能通过 发布 (Publish) 操作推送至线上环境。 | 不可以从线上访问,必须通过发布操作将其推送为最新发布版本才可以从线上访问。 | 无法删除。 |
|
||||
| 最新发布版本 | 目前线上生效的版本,是最新的已发布版本。 | 是当前线上的版本,不能直接编辑,需通过发布新的草稿版本来更新。 | 可以从线上访问和使用。 | 可以通过回滚操作恢复到该版本内容。 |
|
||||
| 历史发布版本 | 过去已发布并保存的版本,用户可回滚使用,但不再对外生效。 | 可以通过 回滚 (Restore) 操作将历史版本加载到草稿版本中,再进行编辑和发布。 | 不可以从线上访问,仅保存在版本列表里。 | 可以通过回滚操作恢复到该版本内容。 |
|
||||
| 已发布版本 | 最新发布版本和历史发布版本的统称。 | / | / | / |
|
||||
|
||||
- **回滚到历史版本后,当前的草稿版本会丢失吗?**
|
||||
|
||||
当你选择回滚到历史版本后,系统会将你选择的历史版本的内容加载到新的草稿版本中。你可以继续在该草稿上进行修改并发布。
|
||||
|
||||
因此,回滚到历史版本后,当前的草稿版本将会丢失。请谨慎操作。
|
||||
|
||||
- **版本管理功能适用于哪些应用类型?**
|
||||
|
||||
目前,版本管理功能仅适用于 **聊天流** 和 **工作流** 应用类型。**聊天助手**、**文本生成应用** 以及 **Agent** 暂不支持此功能。
|
||||
@@ -1,10 +1,11 @@
|
||||
---
|
||||
title: 应用发布
|
||||
version: '简体中文'
|
||||
---
|
||||
|
||||
调试完成之后点击右上角的「发布」可以将该工作流保存并快速发布成为不同类型的应用。
|
||||
|
||||

|
||||
|
||||
对话型应用支持发布为:
|
||||
|
||||
* 直接运行
|
||||
@@ -18,4 +19,6 @@ version: '简体中文'
|
||||
* 访问 API
|
||||
* 发布为工具
|
||||
|
||||
你也可以点击 **恢复** 预览上一次发布的应用版本,确认恢复将会使用上一次发布的工作流版本覆盖当前的工作流版本。
|
||||
<Info>
|
||||
如需管理多个版本的 聊天流/工作流,请参阅 [版本管理](https://docs.dify.ai/zh-hans/guides/management/version-control)。
|
||||
</Info>
|
||||
Reference in New Issue
Block a user