🌐 Initial translations for PR #716

Auto-generated translations for documentation changes in PR #716.

Last-Processed-Commit: 433b7f9d1b
Original-PR: #716
Languages: Chinese (zh), Japanese (ja)

🤖 Generated with GitHub Actions
This commit is contained in:
github-actions[bot]
2026-03-20 06:16:56 +00:00
parent 1404128eaf
commit 65c07c9d62
2 changed files with 35 additions and 1375 deletions

View File

@@ -1,718 +1,35 @@
---
title: APIを活用したナレッジベースのメンテナンス
title: APIによるナレッジベース管理
description: Dify ナレッジベース API を使用してプログラムでナレッジベースを管理する
---
<Note> ⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/use-dify/knowledge/manage-knowledge/maintain-dataset-via-api)を参照してください。</Note>
> 認証や呼び出し方法はサービスAPIと同様ですが、生成される各ナレッジベースAPIトークンには、現在のアカウントでアクセス可能なすべてのナレッジベースを操作する権限が付与されています。データの安全性には十分ご注意ください
Difyは、ナレッジベース、ドキュメント、チャンクをプログラムで管理できる完全なナレッジベースAPIセットを提供しています。これは、データ同期の自動化やナレッジベース操作をCI/CDパイプラインに統合する際に便利です
## ナレッジベースAPI活用のメリット
APIアクセスは、ナレッジベースを作成するとデフォルトで有効になります。API呼び出しを開始するには、APIクレデンシャルエンドポイントとキーのみが必要です。
APIによるナレッジベース管理はデータ処理効率を飛躍的に向上させます。コマンドラインからのデータ同期や自動化操作を容易に実現でき、UI操作の煩雑さから解放されます。
<Info>
単一のナレッジベースAPIキーは、同じアカウント配下の**すべての表示可能なナレッジベース**にアクセスできます。意図しないデータ漏洩を避けるため、クレデンシャルは慎重に取り扱ってください。
</Info>
主なメリット:
## APIエンドポイントとキーの取得
* **自動同期**: データシステムとDifyナレッジベースをシームレスに連携し、効率的なワークフローを構築。
* **総合管理**: ナレッジベースリスト、ドキュメントリスト、詳細検索機能を提供し、カスタム管理インターフェースの構築が可能。
* **柔軟なアップロード**: テキスト直接入力とファイルアップロードを両方サポート、チャンク単位の一括操作に対応。
* **生産性向上**: 手動作業時間を削減し、Difyプラットフォームの利用体験を最適化。
Difyで**ナレッジベース**に移動します。右上の**サービスAPI**をクリックしてAPI設定パネルを開きます。ここで以下の操作が可能です
## 使用方法
- サービスAPIエンドポイントを取得する。これはすべてのナレッジベースAPIリクエストのベースURLです。
- **APIキー**をクリックして、新しいキーの作成や既存のキーの管理を行う。
ナレッジベース管理画面左側ナビゲーションの**API**ページにアクセス。APIドキュメントの閲覧や、**APIキー**による認証情報の管理が可能です。
<Warning>
APIキーはサーバーサイドで安全に保管してください。クライアントサイドのコードや公開リポジトリには決して公開しないでください。
</Warning>
## API呼び出しの例
## ナレッジベースのAPIアクセス管理
### テクストを通してドキュメントを作成する
すべてのナレッジベースは、デフォルトでサービスAPIを介してアクセス可能です。
入力例:
特定のナレッジベースへのAPIアクセスを制限したい場合は、そのナレッジベースを開き、左下の**APIアクセス**をクリックしてオフに切り替えます。
```json
curl --location --request POST 'https://api.dify.ai/v1/datasets/{dataset_id}/document/create-by-text' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{"name": "text","text": "text","indexing_technique": "high_quality","process_rule": {"mode": "automatic"}}'
```
## APIリファレンス
出力例:
```json
{
"document": {
"id": "",
"position": 1,
"data_source_type": "upload_file",
"data_source_info": {
"upload_file_id": ""
},
"dataset_process_rule_id": "",
"name": "text.txt",
"created_from": "api",
"created_by": "",
"created_at": 1695690280,
"tokens": 0,
"indexing_status": "waiting",
"error": null,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"archived": false,
"display_status": "queuing",
"word_count": 0,
"hit_count": 0,
"doc_form": "text_model"
},
"batch": ""
}
```
### ファイルを通してドキュメントを作成する
入力例:
```json
curl --location --request POST 'https://api.dify.ai/v1/datasets/{dataset_id}/document/create_by_file' \
--header 'Authorization: Bearer {api_key}' \
--form 'data="{"indexing_technique":"high_quality","process_rule":{"rules":{"pre_processing_rules":[{"id":"remove_extra_spaces","enabled":true},{"id":"remove_urls_emails","enabled":true}],"segmentation":{"separator":"###","max_tokens":500}},"mode":"custom"}}";type=text/plain' \
--form 'file=@"/path/to/file"'
```
出力例:
```json
{
"document": {
"id": "",
"position": 1,
"data_source_type": "upload_file",
"data_source_info": {
"upload_file_id": ""
},
"dataset_process_rule_id": "",
"name": "Dify.txt",
"created_from": "api",
"created_by": "",
"created_at": 1695308667,
"tokens": 0,
"indexing_status": "waiting",
"error": null,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"archived": false,
"display_status": "queuing",
"word_count": 0,
"hit_count": 0,
"doc_form": "text_model"
},
"batch": ""
}
```
### 空白のナレッジベースを作成する
<Warning>
空のデータセットを作成するためだけに使用
</Warning>
入力例:
```bash
curl --location --request POST 'https://api.dify.ai/v1/datasets' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{"name": "name", "permission": "only_me"}'
```
出力例:
```json
{
"id": "",
"name": "name",
"description": null,
"provider": "vendor",
"permission": "only_me",
"data_source_type": null,
"indexing_technique": null,
"app_count": 0,
"document_count": 0,
"word_count": 0,
"created_by": "",
"created_at": 1695636173,
"updated_by": "",
"updated_at": 1695636173,
"embedding_model": null,
"embedding_model_provider": null,
"embedding_available": null
}
```
### ナレッジベースリスト
入力例:
```bash
curl --location --request GET 'https://api.dify.ai/v1/datasets?page=1&limit=20' \
--header 'Authorization: Bearer {api_key}'
```
出力例:
```json
{
"data": [
{
"id": "",
"name": "ナレッジベースの名前",
"description": "情報説明",
"permission": "only_me",
"data_source_type": "upload_file",
"indexing_technique": "",
"app_count": 2,
"document_count": 10,
"word_count": 1200,
"created_by": "",
"created_at": "",
"updated_by": "",
"updated_at": ""
},
...
],
"has_more": true,
"limit": 20,
"total": 50,
"page": 1
}
```
### ナレッジベースの削除
入力例:
```json
curl --location --request DELETE 'https://api.dify.ai/v1/datasets/{dataset_id}' \
--header 'Authorization: Bearer {api_key}'
```
出力例:
```json
204 No Content
```
### テクストを通してドキュメントを更新する
このAPIは存在しているナレッジベースにしか使えます。
入力例:
```bash
curl --location --request POST 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{document_id}/update_by_text' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{"name": "name","text": "text"}'
```
出力例:
```json
{
"document": {
"id": "",
"position": 1,
"data_source_type": "upload_file",
"data_source_info": {
"upload_file_id": ""
},
"dataset_process_rule_id": "",
"name": "name.txt",
"created_from": "api",
"created_by": "",
"created_at": 1695308667,
"tokens": 0,
"indexing_status": "waiting",
"error": null,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"archived": false,
"display_status": "queuing",
"word_count": 0,
"hit_count": 0,
"doc_form": "text_model"
},
"batch": ""
}
```
### ファイルを通してドキュメントを更新する
このAPIは存在しているナレッジベースにしか使えます。
入力例:
```bash
curl --location --request POST 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{document_id}/update_by_file' \
--header 'Authorization: Bearer {api_key}' \
--form 'data="{"name":"Dify","indexing_technique":"high_quality","process_rule":{"rules":{"pre_processing_rules":[{"id":"remove_extra_spaces","enabled":true},{"id":"remove_urls_emails","enabled":true}],"segmentation":{"separator":"###","max_tokens":500}},"mode":"custom"}}";type=text/plain' \
--form 'file=@"/path/to/file"'
```
出力例:
```json
{
"document": {
"id": "",
"position": 1,
"data_source_type": "upload_file",
"data_source_info": {
"upload_file_id": ""
},
"dataset_process_rule_id": "",
"name": "Dify.txt",
"created_from": "api",
"created_by": "",
"created_at": 1695308667,
"tokens": 0,
"indexing_status": "waiting",
"error": null,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"archived": false,
"display_status": "queuing",
"word_count": 0,
"hit_count": 0,
"doc_form": "text_model"
},
"batch": "20230921150427533684"
}
```
### ドキュメント埋め込みステータス(進捗状況)の取得
入力例:
```bash
curl --location --request GET 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{batch}/indexing-status' \
--header 'Authorization: Bearer {api_key}'
```
出力例:
```json
{
"data":[{
"id": "",
"indexing_status": "indexing",
"processing_started_at": 1681623462.0,
"parsing_completed_at": 1681623462.0,
"cleaning_completed_at": 1681623462.0,
"splitting_completed_at": 1681623462.0,
"completed_at": null,
"paused_at": null,
"error": null,
"stopped_at": null,
"completed_segments": 24,
"total_segments": 100
}]
}
```
### ドキュメント埋め込みステータス(進捗状況)の取得
入力例:
```bash
curl --location --request GET 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{batch}/indexing-status' \
--header 'Authorization: Bearer {api_key}'
```
出力例:
```json
{
"data":[{
"id": "",
"indexing_status": "indexing",
"processing_started_at": 1681623462.0,
"parsing_completed_at": 1681623462.0,
"cleaning_completed_at": 1681623462.0,
"splitting_completed_at": 1681623462.0,
"completed_at": null,
"paused_at": null,
"error": null,
"stopped_at": null,
"completed_segments": 24,
"total_segments": 100
}]
}
```
### ドキュメントの削除
入力例:
```bash
curl --location --request DELETE 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{document_id}' \
--header 'Authorization: Bearer {api_key}'
```
出力例:
```bash
{
"result": "success"
}
```
### ナレッジベースのドキュメントのリスト
入力例:
```bash
curl --location --request GET 'https://api.dify.ai/v1/datasets/{dataset_id}/documents' \
--header 'Authorization: Bearer {api_key}'
```
出力例:
```json
{
"data": [
{
"id": "",
"position": 1,
"data_source_type": "file_upload",
"data_source_info": null,
"dataset_process_rule_id": null,
"name": "dify",
"created_from": "",
"created_by": "",
"created_at": 1681623639,
"tokens": 0,
"indexing_status": "waiting",
"error": null,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"archived": false
},
],
"has_more": false,
"limit": 20,
"total": 9,
"page": 1
}
```
### 新しセグメントを増加
入力例:
```bash
curl --location --request POST 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{document_id}/segments' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{"segments": [{"content": "1","answer": "1","keywords": ["a"]}]}'
```
出力例:
```json
{
"data": [{
"id": "",
"position": 1,
"document_id": "",
"content": "1",
"answer": "1",
"word_count": 25,
"tokens": 0,
"keywords": [
"a"
],
"index_node_id": "",
"index_node_hash": "",
"hit_count": 0,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"status": "completed",
"created_by": "",
"created_at": 1695312007,
"indexing_at": 1695312007,
"completed_at": 1695312007,
"error": null,
"stopped_at": null
}],
"doc_form": "text_model"
}
```
### ドキュメントのセグメントを見つける
入力例:
```bash
curl --location --request GET 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{document_id}/segments' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json'
```
出力例:
```bash
{
"data": [{
"id": "",
"position": 1,
"document_id": "",
"content": "1",
"answer": "1",
"word_count": 25,
"tokens": 0,
"keywords": [
"a"
],
"index_node_id": "",
"index_node_hash": "",
"hit_count": 0,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"status": "completed",
"created_by": "",
"created_at": 1695312007,
"indexing_at": 1695312007,
"completed_at": 1695312007,
"error": null,
"stopped_at": null
}],
"doc_form": "text_model"
}
```
### ドキュメントのセグメントの削除
入力例:
```bash
curl --location --request DELETE 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json'
```
出力例:
```bash
{
"result": "success"
}
```
### ドキュメントのセグメントの更新
入力例:
```bash
curl --location --request POST 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json'\
--data-raw '{"segment": {"content": "1","answer": "1", "keywords": ["a"], "enabled": false}}'
```
出力例:
```bash
{
"data": [{
"id": "",
"position": 1,
"document_id": "",
"content": "1",
"answer": "1",
"word_count": 25,
"tokens": 0,
"keywords": [
"a"
],
"index_node_id": "",
"index_node_hash": "",
"hit_count": 0,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"status": "completed",
"created_by": "",
"created_at": 1695312007,
"indexing_at": 1695312007,
"completed_at": 1695312007,
"error": null,
"stopped_at": null
}],
"doc_form": "text_model"
}
```
### ナレッジベースのメタデータフィールドを追加する
入力例:
```bash
curl --location 'https://api.dify.ai/v1/datasets/{dataset_id}/metadata' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {api_key}' \
--data '{
"type":"string",
"name":"test"
}'
```
出力例:
```json
{
"id": "9f63c91b-d60e-4142-bb0c-c81a54dc2db5",
"type": "string",
"name": "test"
}
```
### ナレッジベースのメタデータフィールドを更新する
入力例:
```bash
curl --location --request PATCH 'https://api.dify.ai/v1/datasets/{dataset_id}/metadata/{metadata_id}' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json'\
--data-raw '{"name": "test"}'
```
出力例:
```json
{
"id": "abc",
"type": "string",
"name": "test",
}
```
### ナレッジベースのメタデータフィールドを削除する
入力例:
```bash
curl --location --request DELETE 'https://api.dify.ai/v1/datasets/{dataset_id}/metadata/{metadata_id}' \
--header 'Authorization: Bearer {api_key}'
```
出力例:
```json
200 success
```
### ナレッジベースのメタデータにある組み込みフィールドを有効化/無効化する
入力例:
```bash
curl --location --request DELETE 'https://api.dify.ai/v1/datasets/{dataset_id}/metadata/built-in/{action}' \
--header 'Authorization: Bearer {api_key}'
```
出力例:
```json
200 success
```
### ドキュメントのメタデータを修正する(値の割り当て)
入力例:
```bash
curl --location 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/metadata' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {api_key}'
--data '{
"operation_data":[
{
"document_id": "3e928bc4-65ea-4201-87c8-cbcc5871f525",
"metadata_list": [
{
"id": "1887f5ec-966f-4c93-8c99-5ad386022f46",
"value": "dify",
"name": "test"
}
]
}
]
}'
```
出力例:
```json
200 success
```
### データセットのメタデータリスト
入力例:
```bash
curl --location 'https://api.dify.ai/v1/datasets/{dataset_id}/metadata' \
--header 'Authorization: Bearer {api_key}'
```
出力例:
```json
{
"doc_metadata": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"type": "string",
"name": "title",
"use_count": 42
},
{
"id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"type": "number",
"name": "price",
"use_count": 28
},
{
"id": "7ba7b810-9dad-11d1-80b4-00c04fd430c9",
"type": "time",
"name": "created_at",
"use_count": 35
}
],
"built_in_field_enabled": true
}
```
### エラーメッセージ
| エラーメッセージ | エラーコード | 理由 |
| ----------------------------- | ------ | ------------------------------------------------------------------------------------------------------ |
| no\_file\_uploaded | 400 | ファイルをアップロードしてください |
| too\_many\_files | 400 | 1つのファイルのみアップロードできます |
| file\_too\_large | 413 | ファイルサイズが制限を超えています |
| unsupported\_file\_type | 415 | サポートされていないファイルタイプです。現在、以下の形式のみをサポートしています:`txt`、 `markdown`、 `md`、 `pdf`、 `html`、 `xlsx`、 `docx`、 `csv` |
| high\_quality\_dataset\_only | 400 | 現在の操作は「高品質」のナレッジベースのみをサポートしています |
| dataset\_not\_initialized | 400 | ナレッジベースはまだ初期化中またはインデックス中です。お待ちください |
| archived\_document\_immutable | 403 | アーカイブされたドキュメントは編集できません |
| dataset\_name\_duplicate | 409 | ナレッジベース名がすでに存在します。ナレッジベース名を変更してください |
| invalid\_action | 400 | 無効な操作です |
| document\_already\_finished | 400 | ドキュメントの処理がすでに完了しています。ページを更新するか、ドキュメントの詳細を確認してください |
| document\_indexing | 400 | ドキュメントが処理中のため、編集できません |
| invalid\_metadata | 400 | メタデータの内容が正しくありません。確認して検証してください |
エンドポイント、リクエスト/レスポンススキーマ、エラーコード、インタラクティブな例の完全なリストについては、[ナレッジベースAPIリファレンス](/ja/api-reference/knowledge-bases/list-knowledge-bases)を参照してください。

View File

@@ -1,692 +1,35 @@
---
title: 通过 API 维护知识库
description: 使用 Dify 知识库 API 以编程方式管理你的知识库
---
<Note> ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/knowledge/manage-knowledge/maintain-dataset-via-api)。</Note>
> 鉴权、调用方式与应用 Service API 保持一致,不同之处在于,所生成的单个知识库 API token 具备操作当前账号下所有可见知识库的权限,请注意数据安全
Dify 提供了一套完整的知识库 API让你可以以编程方式管理知识库、文档和分段。这对于自动化数据同步或将知识库操作集成到 CI/CD 流程中非常有用
### 使用知识库 API 的优势
通过 API 维护知识库可大幅提升数据处理效率,你可以通过命令行轻松同步数据,实现自动化操作,而无需在用户界面进行繁琐操作。
主要优势包括:
* 自动同步: 将数据系统与 Dify 知识库无缝对接,构建高效工作流程;
* 全面管理: 提供知识库列表,文档列表及详情查询等功能,方便你自建数据管理界面;
* 灵活上传: 支持纯文本和文件上传方式,可针对分段Chunks内容的批量新增和修改操作
* 提高效率: 减少手动处理时间,提升 Dify 平台使用体验。
### 如何使用
进入知识库页面,在左侧的导航中切换至 **API** 页面。在该页面中你可以查看 Dify 提供的知识库 API 文档,并可以在 **API 密钥** 中管理可访问知识库 API 的凭据。
![](https://assets-docs.dify.ai/2025/03/82ef51dc6886fb8301a2b85a920b12d0.png)
### API 调用示例
#### 通过文本创建文档
输入示例:
```json
curl --location --request POST 'https://api.dify.ai/v1/datasets/{dataset_id}/document/create_by_text' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{"name": "text","text": "text","indexing_technique": "high_quality","process_rule": {"mode": "automatic"}}'
```
输出示例:
```json
{
"document": {
"id": "",
"position": 1,
"data_source_type": "upload_file",
"data_source_info": {
"upload_file_id": ""
},
"dataset_process_rule_id": "",
"name": "text.txt",
"created_from": "api",
"created_by": "",
"created_at": 1695690280,
"tokens": 0,
"indexing_status": "waiting",
"error": null,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"archived": false,
"display_status": "queuing",
"word_count": 0,
"hit_count": 0,
"doc_form": "text_model"
},
"batch": ""
}
```
#### 通过文件创建文档
输入示例:
```json
curl --location --request POST 'https://api.dify.ai/v1/datasets/{dataset_id}/document/create_by_file' \
--header 'Authorization: Bearer {api_key}' \
--form 'data="{"indexing_technique":"high_quality","process_rule":{"rules":{"pre_processing_rules":[{"id":"remove_extra_spaces","enabled":true},{"id":"remove_urls_emails","enabled":true}],"segmentation":{"separator":"###","max_tokens":500}},"mode":"custom"}}";type=text/plain' \
--form 'file=@"/path/to/file"'
```
输出示例:
```json
{
"document": {
"id": "",
"position": 1,
"data_source_type": "upload_file",
"data_source_info": {
"upload_file_id": ""
},
"dataset_process_rule_id": "",
"name": "Dify.txt",
"created_from": "api",
"created_by": "",
"created_at": 1695308667,
"tokens": 0,
"indexing_status": "waiting",
"error": null,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"archived": false,
"display_status": "queuing",
"word_count": 0,
"hit_count": 0,
"doc_form": "text_model"
},
"batch": ""
}
```
#### **创建空知识库**
创建知识库时API 访问默认启用。要开始进行 API 调用,你只需要 API 凭据:端点和密钥。
<Info>
仅用来创建空知识库
单个知识库 API 密钥可以访问同一账号下的**所有可见知识库**。请妥善保管你的凭据,避免意外的数据泄露。
</Info>
输入示例:
## 获取 API 端点和密钥
```bash
curl --location --request POST 'https://api.dify.ai/v1/datasets' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{"name": "name", "permission": "only_me"}'
```
在 Dify 中导航至**知识库**。点击右上角的 **Service API** 打开 API 配置面板。在此你可以:
输出示例:
- 获取 Service API 端点。这是所有知识库 API 请求的基础 URL。
- 点击 **API Key** 创建新密钥和管理现有密钥。
```json
{
"id": "",
"name": "name",
"description": null,
"provider": "vendor",
"permission": "only_me",
"data_source_type": null,
"indexing_technique": null,
"app_count": 0,
"document_count": 0,
"word_count": 0,
"created_by": "",
"created_at": 1695636173,
"updated_by": "",
"updated_at": 1695636173,
"embedding_model": null,
"embedding_model_provider": null,
"embedding_available": null
}
```
<Warning>
请将 API 密钥安全地存储在服务器端。切勿在客户端代码或公开仓库中暴露它。
</Warning>
#### **知识库列表**
## 管理知识库的 API 访问
输入示例:
默认情况下,每个知识库都可以通过 Service API 访问。
```bash
curl --location --request GET 'https://api.dify.ai/v1/datasets?page=1&limit=20' \
--header 'Authorization: Bearer {api_key}'
```
如果你想限制对特定知识库的 API 访问,打开该知识库,然后点击左下角的 **API Access** 并将其关闭。
输出示例:
## API 参考
```json
{
"data": [
{
"id": "",
"name": "知识库名称",
"description": "描述信息",
"permission": "only_me",
"data_source_type": "upload_file",
"indexing_technique": "",
"app_count": 2,
"document_count": 10,
"word_count": 1200,
"created_by": "",
"created_at": "",
"updated_by": "",
"updated_at": ""
},
...
],
"has_more": true,
"limit": 20,
"total": 50,
"page": 1
}
```
#### 删除知识库
输入示例:
```json
curl --location --request DELETE 'https://api.dify.ai/v1/datasets/{dataset_id}' \
--header 'Authorization: Bearer {api_key}'
```
输出示例:
```json
204 No Content
```
#### 通过文本更新文档
此接口基于已存在知识库,在此知识库的基础上通过文本更新文档
输入示例:
```bash
curl --location --request POST 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{document_id}/update_by_text' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{"name": "name","text": "text"}'
```
输出示例:
```json
{
"document": {
"id": "",
"position": 1,
"data_source_type": "upload_file",
"data_source_info": {
"upload_file_id": ""
},
"dataset_process_rule_id": "",
"name": "name.txt",
"created_from": "api",
"created_by": "",
"created_at": 1695308667,
"tokens": 0,
"indexing_status": "waiting",
"error": null,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"archived": false,
"display_status": "queuing",
"word_count": 0,
"hit_count": 0,
"doc_form": "text_model"
},
"batch": ""
}
```
#### 通过文件更新文档
此接口基于已存在知识库,在此知识库的基础上通过文件更新文档的操作。
输入示例:
```bash
curl --location --request POST 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{document_id}/update_by_file' \
--header 'Authorization: Bearer {api_key}' \
--form 'data="{"name":"Dify","indexing_technique":"high_quality","process_rule":{"rules":{"pre_processing_rules":[{"id":"remove_extra_spaces","enabled":true},{"id":"remove_urls_emails","enabled":true}],"segmentation":{"separator":"###","max_tokens":500}},"mode":"custom"}}";type=text/plain' \
--form 'file=@"/path/to/file"'
```
输出示例:
```json
{
"document": {
"id": "",
"position": 1,
"data_source_type": "upload_file",
"data_source_info": {
"upload_file_id": ""
},
"dataset_process_rule_id": "",
"name": "Dify.txt",
"created_from": "api",
"created_by": "",
"created_at": 1695308667,
"tokens": 0,
"indexing_status": "waiting",
"error": null,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"archived": false,
"display_status": "queuing",
"word_count": 0,
"hit_count": 0,
"doc_form": "text_model"
},
"batch": "20230921150427533684"
}
```
#### **获取文档嵌入状态(进度)**
输入示例:
```bash
curl --location --request GET 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{batch}/indexing-status' \
--header 'Authorization: Bearer {api_key}'
```
输出示例:
```json
{
"data":[{
"id": "",
"indexing_status": "indexing",
"processing_started_at": 1681623462.0,
"parsing_completed_at": 1681623462.0,
"cleaning_completed_at": 1681623462.0,
"splitting_completed_at": 1681623462.0,
"completed_at": null,
"paused_at": null,
"error": null,
"stopped_at": null,
"completed_segments": 24,
"total_segments": 100
}]
}
```
#### **删除文档**
输入示例:
```bash
curl --location --request DELETE 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{document_id}' \
--header 'Authorization: Bearer {api_key}'
```
输出示例:
```bash
{
"result": "success"
}
```
#### **知识库文档列表**
输入示例:
```bash
curl --location --request GET 'https://api.dify.ai/v1/datasets/{dataset_id}/documents' \
--header 'Authorization: Bearer {api_key}'
```
输出示例:
```json
{
"data": [
{
"id": "",
"position": 1,
"data_source_type": "file_upload",
"data_source_info": null,
"dataset_process_rule_id": null,
"name": "dify",
"created_from": "",
"created_by": "",
"created_at": 1681623639,
"tokens": 0,
"indexing_status": "waiting",
"error": null,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"archived": false
},
],
"has_more": false,
"limit": 20,
"total": 9,
"page": 1
}
```
#### **新增分段**
输入示例:
```bash
curl --location --request POST 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{document_id}/segments' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{"segments": [{"content": "1","answer": "1","keywords": ["a"]}]}'
```
输出示例:
```json
{
"data": [{
"id": "",
"position": 1,
"document_id": "",
"content": "1",
"answer": "1",
"word_count": 25,
"tokens": 0,
"keywords": [
"a"
],
"index_node_id": "",
"index_node_hash": "",
"hit_count": 0,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"status": "completed",
"created_by": "",
"created_at": 1695312007,
"indexing_at": 1695312007,
"completed_at": 1695312007,
"error": null,
"stopped_at": null
}],
"doc_form": "text_model"
}
```
### 查询文档分段
输入示例:
```bash
curl --location --request GET 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{document_id}/segments' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json'
```
输出示例:
```bash
{
"data": [{
"id": "",
"position": 1,
"document_id": "",
"content": "1",
"answer": "1",
"word_count": 25,
"tokens": 0,
"keywords": [
"a"
],
"index_node_id": "",
"index_node_hash": "",
"hit_count": 0,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"status": "completed",
"created_by": "",
"created_at": 1695312007,
"indexing_at": 1695312007,
"completed_at": 1695312007,
"error": null,
"stopped_at": null
}],
"doc_form": "text_model"
}
```
### 删除文档分段
输入示例:
```bash
curl --location --request DELETE 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json'
```
输出示例:
```bash
{
"result": "success"
}
```
### 更新文档分段
输入示例:
```bash
curl --location --request POST 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json'\
--data-raw '{"segment": {"content": "1","answer": "1", "keywords": ["a"], "enabled": false}}'
```
输出示例:
```bash
{
"data": [{
"id": "",
"position": 1,
"document_id": "",
"content": "1",
"answer": "1",
"word_count": 25,
"tokens": 0,
"keywords": [
"a"
],
"index_node_id": "",
"index_node_hash": "",
"hit_count": 0,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"status": "completed",
"created_by": "",
"created_at": 1695312007,
"indexing_at": 1695312007,
"completed_at": 1695312007,
"error": null,
"stopped_at": null
}],
"doc_form": "text_model"
}
```
#### 新增知识库元数据字段
输入示例:
```bash
curl --location 'https://api.dify.ai/v1/datasets/{dataset_id}/metadata' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {api_key}' \
--data '{
"type":"string",
"name":"test"
}'
```
输出示例:
```json
{
"id": "9f63c91b-d60e-4142-bb0c-c81a54dc2db5",
"type": "string",
"name": "test"
}
```
#### 更新知识库元数据字段
输入示例:
```bash
curl --location --request PATCH 'https://api.dify.ai/v1/datasets/{dataset_id}/metadata/{metadata_id}' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json'\
--data-raw '{"name": "test"}'
```
输出示例:
```json
{
"id": "abc",
"type": "string",
"name": "test",
}
```
#### 删除知识库元数据字段
输入示例:
```bash
curl --location --request DELETE 'https://api.dify.ai/v1/datasets/{dataset_id}/metadata/{metadata_id}' \
--header 'Authorization: Bearer {api_key}'
```
输出示例:
```bash
200 success
```
#### 启用/禁用知识库元数据中的内置字段
输入示例:
```bash
curl --location --request DELETE 'https://api.dify.ai/v1/datasets/{dataset_id}/metadata/built-in/{action}' \
--header 'Authorization: Bearer {api_key}'
```
输出示例:
```json
200 success
```
#### 修改文档的元数据(赋值)
输入示例:
```bash
curl --location 'https://api.dify.ai/v1/datasets/{dataset_id}/documents/metadata' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {api_key}'
--data '{
"operation_data":[
{
"document_id": "3e928bc4-65ea-4201-87c8-cbcc5871f525",
"metadata_list": [
{
"id": "1887f5ec-966f-4c93-8c99-5ad386022f46",
"value": "dify",
"name": "test"
}
]
}
]
}'
```
输出示例:
```json
200 success
```
#### 数据集的元数据列表
输入示例:
```bash
curl --location 'https://api.dify.ai/v1/datasets/{dataset_id}/metadata' \
--header 'Authorization: Bearer {api_key}'
```
输出示例:
```json
{
"doc_metadata": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"type": "string",
"name": "title",
"use_count": 42
},
{
"id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"type": "number",
"name": "price",
"use_count": 28
},
{
"id": "7ba7b810-9dad-11d1-80b4-00c04fd430c9",
"type": "time",
"name": "created_at",
"use_count": 35
}
],
"built_in_field_enabled": true
}
```
### 错误信息
| 错误信息 | 错误码 | 原因描述 |
|------|--------|---------|
| no_file_uploaded | 400 | 请上传你的文件 |
| too_many_files | 400 | 只允许上传一个文件 |
| file_too_large | 413 | 文件大小超出限制 |
| unsupported_file_type | 415 | 不支持的文件类型。目前只支持以下内容格式:`txt`, `markdown`, `md`, `pdf`, `html`, `html`, `xlsx`, `docx`, `csv` |
| high_quality_dataset_only | 400 | 当前操作仅支持"高质量"知识库 |
| dataset_not_initialized | 400 | 知识库仍在初始化或索引中。请稍候 |
| archived_document_immutable | 403 | 归档文档不可编辑 |
| dataset_name_duplicate | 409 | 知识库名称已存在,请修改你的知识库名称 |
| invalid_action | 400 | 无效操作 |
| document_already_finished | 400 | 文档已处理完成。请刷新页面或查看文档详情 |
| document_indexing | 400 | 文档正在处理中,无法编辑 |
| invalid_metadata | 400 | 元数据内容不正确。请检查并验证 |
请参阅[知识库 API 参考](/api-reference/knowledge-bases/list-knowledge-bases)获取完整的端点列表、请求/响应模式、错误码和交互式示例。