メインコンテンツへスキップ

Helm Chart の値からベクトルデータベース設定を探す

Helm Chart の値を表示

helm show values dify/dify

ベクトルデータベース設定の概要

Helm chart の values 内で、vectorDB フィールドを通じてベクトルデータベースを設定します。Dify は 2 つのデプロイ方式をサポートしています:
モード利用シーン切り替えフィールド
外部接続(本番環境推奨)セルフホストまたはクラウドホスト型のベクトルデータベースに接続vectorDB.useExternal: true
ビルトインデプロイ(テスト用途のみ)Helm chart がクラスタ内ベクトルデータベースを自動起動vectorDB.useExternal: false
3.9.x chart のデフォルト値は useExternal: true + externalType: "qdrant" です。 つまり初期状態で「外部 Qdrant に接続」する状態になっています。externalQdrant.endpoint / apiKey を実際の値に置き換える必要があります。設定しない場合は、api / worker Pod はベクトルデータベースに接続できず、起動に失敗します。

1. ビルトインベクトルデータベースの使用

⚠️ 本番環境では使用注意:ビルトインオプションはローカル試用と機能検証のみに適しており、高可用性、バックアップ、容量スケーリングは提供されません。本番環境では第 2 節の外部接続方式をご利用ください。
Helm chart は 2 種類のクラスタ内ベクトルデータベースを提供しています。

ビルトイン Qdrant

vectorDB.useExternalfalse に設定し、qdrant.enabled を有効化することで利用できます。
vectorDB:
  useExternal: false

qdrant:
  enabled: true
  replicaCount: 3
  image:
    repository: langgenius/qdrant
    pullPolicy: IfNotPresent
    tag: "v1.7.3"
  apiKey: "dify123456"
  persistence:
    accessModes: ["ReadWriteOnce"]
    size: 10Gi
  resources: {}
    # limits:
    #   cpu: 100m
    #   memory: 128Mi
    # requests:
    #   cpu: 100m
    #   memory: 128Mi
フィールド説明デフォルト値
qdrant.enabledビルトイン Qdrant を有効化するかfalse
qdrant.replicaCountレプリカ数3
qdrant.image.repositoryイメージリポジトリlanggenius/qdrant
qdrant.image.tagイメージバージョンv1.7.3
qdrant.apiKeyQdrant API Keydify123456
qdrant.persistence.accessModes永続化ストレージのアクセスモード["ReadWriteOnce"]
qdrant.persistence.size永続化ストレージサイズ10Gi
qdrant.resourcesリソース制限(CPU / メモリ){}

ビルトイン Weaviate

weaviate は親 chart の values.yaml では enabled スイッチのみが明示的に列挙されていますが、実体は入れ子になった subchart です(chart tarball の dify/charts/weaviate/ に配置、約 947 行の values)。この subchart のすべてのフィールドは、ご自身の values.yamlweaviate.<フィールド> の形式でオーバーライド可能です。よく使う項目は下表の通りです。
weaviate:
  enabled: true
  image:
    repo: semitechnologies/weaviate
    tag: "1.18.0"
  replicas: 1
  storage:
    size: 32Gi
    storageClassName: ""
  service:
    type: LoadBalancer  # ClusterIP / NodePort も指定可能
  resources: {}
  authentication: {}
  authorization: {}
  modules: {}
フィールド説明subchart デフォルト値
weaviate.enabledビルトイン Weaviate を有効化するかfalse
weaviate.image.tagWeaviate イメージバージョン(ご自身の values で固定することを推奨)1.18.0
weaviate.replicasレプリカ数(データ投入後はスケール変更が制限されます。subchart の説明をご参照ください)1
weaviate.storage.sizePVC 容量32Gi
weaviate.storage.storageClassNameストレージクラス""(デフォルト SC)
weaviate.service.typeService タイプLoadBalancer
weaviate.resourcesリソース制限{}
weaviate.{startup,liveness,readiness}Probeプローブ設定subchart 参照
weaviate.authentication / authorization認証設定subchart 参照
weaviate.modulesテキスト/画像ベクトル化などの拡張モジュール(contextionary、img2vec、transformers など)subchart 参照
💡 完全なフィールドリストを取得したい場合は、chart パッケージをダウンロードして dify/charts/weaviate/values.yaml をご確認ください:
helm pull dify/dify --untar
less dify/charts/weaviate/values.yaml
既存の外部 Weaviate クラスタに接続する場合は、後述 WeaviateexternalWeaviate 設定をご利用ください。

2. 外部ベクトルデータベースの使用

外部ベクトルデータベースは2ステップで設定できます。 ステップ 1: vectorDB.useExternaltrue に設定し、externalType を指定します。3.9.x の chart は既にこの状態がデフォルト(externalType: "qdrant")ですので、別タイプに切り替える場合のみ externalType をオーバーライドしてください。
vectorDB:
  useExternal: true
  externalType: "<タイプ>"
ステップ 2: 選択したタイプに応じて、対応する externalXxx 設定ブロックを記入します。values.yaml には各タイプ用のデフォルト雛形が予め用意されているため、対象タイプのフィールドのみオーバーライドすれば OK です。他タイプのブロックを削除する必要はありません。各タイプのフィールド例は 第 4 節 付録 をご参照ください。

サポートされているタイプ

Dify エンタープライズ版が公式サポートするタイプ

Dify エンタープライズ版は以下のベクトルデータベースを公式サポートしており、ベクトルデータベース接続に関する技術サポートも併せて提供しています(第 3 節をご参照ください)。
  • qdrant(推奨)
  • weaviate(オプション)
  • elasticsearch(オプション)

コミュニティサポートタイプ

Dify コミュニティ版は以下のベクトルデータベースをサポートしています。これらをご利用の場合、Dify エンタープライズ版でも動作しますが、Dify が提供する技術サポートは限定的になります(第 3 節をご参照ください)。
  • milvus
  • relyt
  • pgvecto-rs
  • tencent
  • analyticdb
  • opensearch
  • lindorm

3. エンタープライズ版技術サポート範囲

Dify エンタープライズ版がクラウド(AWS など)にデプロイされ、外部ベクトルデータベースに接続する場合、システム全体には通常 Dify、ベクトルデータベースベンダー、クラウドベンダー の 3 者が関わります。Dify サポートチームはまず、障害がどの層に属するかを判定します。

責任共有モデル

範囲責任主体
Dify 側設定:データベース設定、接続設定、ナレッジベース設定Dify
Dify のデータベース操作ロジック:接続確立、Schema/Collection 初期化、書き込み、検索Dify
Helm chart の vectorDB.* / externalXxx フィールドの意味と取り得る値の制約Dify
ベクトルデータベース本体:クラスタ可用性、シャード/レプリカ、バージョンアップ、性能チューニング、バックアップ/リストアベクトルデータベースベンダー / マネージドサービス事業者
インフラ:VPC、サブネット、セキュリティグループ、IAM/IRSA、DNS、ロードバランサ、AZ 間ネットワーククラウドベンダー
キャパシティプランニングと設定値:ノードスペック、ストレージ容量、QPS と並行性の見積もりユーザー(Dify は推奨のみ提供)

Dify が直接サポートしない範囲

以下の問題は Dify のエラーメッセージとして表面化することがありますが、根本原因は Dify 側ではなく、データベースベンダー、クラウドベンダー、またはユーザーご自身による対応が必要です。
  • ベクトルデータベース自体の運用:再起動、アップグレード、スケーリング、バックアップ/リストア
  • データベース側のインデックスパラメータチューニング
  • ネットワークと権限層の障害:VPC peering、セキュリティグループの許可、IAM/IRSA、TLS 証明書
  • キャパシティプランニングと負荷テスト:ノードスペック、ストレージ容量、QPS 上限の見積もり(Dify は Dify 側の推奨のみ提供)
  • データベースのバージョン bug やベンダー動作変更による回帰(Dify は追跡しますが、根本修正はベンダー側で行われます)

2 つのサポートレベルの違い

サポートレベル含まれる製品Dify が提供する能力
公式サポートqdrant、weaviate、elasticsearchDify 側コネクタの保守、バージョン互換性テスト、Helm 設定問題のトラブルシュート支援
コミュニティサポートmilvus、relyt、pgvecto-rs、tencent、analyticdb、opensearch、lindormコネクタ可用、設定ドキュメント、ベストエフォートでのトラブルシュート;深い問題はベンダーまたはコミュニティへの問い合わせを優先してください
ご利用の Dify エンタープライズ版でサポートされるベクトルデータベースの詳細については、values.yaml をご参照ください: https://helm-watchdog.dify.ai/ 。実際の技術サポート対応範囲は、Dify エンタープライズ版サポートチームが具体的な問題内容に基づき評価のうえ判断します。

4. 付録:各ベクトルデータベースの設定例

Qdrant

externalType: "qdrant"
  externalQdrant:
    endpoint: "http://your-qdrant-cluster-url.qdrant.tech/"
    apiKey: "#REPLACE_ME#"
フィールド説明
endpointQdrant クラスタの URLhttp://your-qdrant-cluster-url.qdrant.tech/
apiKeyQdrant API Key-

Weaviate

externalType: "weaviate"
  externalWeaviate:
    endpoint: "http://weaviate:8080"
    apiKey: "#REPLACE_ME#"
フィールド説明
endpointWeaviate サービスアドレスhttp://weaviate:8080
apiKeyWeaviate API Key-

Elasticsearch

externalType: "elasticsearch"
  externalElasticsearch:
    host: "127.0.0.1"
    port: 9200
    username: "elastic"
    password: "#REPLACE_ME#"
フィールド説明
hostElasticsearch ホスト127.0.0.1
portポート番号9200
usernameユーザー名elastic
passwordパスワード-

Milvus

externalType: "milvus"
  externalMilvus:
    uri: "http://127.0.0.1:19530"
    token: ""
    user: ""
    password: ""
    database: "default"
フィールド説明
uriMilvus サーバー接続 URIhttp://127.0.0.1:19530
token認証トークン(オプション)-
userユーザー名(オプション)-
passwordパスワード(オプション)-
databaseデータベース名default

Relyt (pgvectors)

externalType: "relyt"
  externalRelyt:
    host: "your-relyt.domain"
    port: 5431
    user: "postgres"
    password: "#REPLACE_ME#"
    database: "pgvectors"
フィールド説明
hostRelyt ホストyour-relyt.domain
portポート番号5431
userユーザー名postgres
passwordパスワード-
databaseデータベース名pgvectors

PgVecto-RS

externalType: "pgvecto-rs"
  externalPgVectoRS:
    host: "your-pgvectors.domain"
    port: 5432
    user: "postgres"
    password: "#REPLACE_ME#"
    database: "pgvectors"
フィールド説明
hostPgVecto-RS ホストyour-pgvectors.domain
portポート番号5432
userユーザー名postgres
passwordパスワード-
databaseデータベース名pgvectors

Tencent VectorDB

externalType: "tencent"
  externalTencentVectorDB:
    host: "your-tencent-vector-db.domain"
    apiKey: "#REPLACE_ME#"
    timeout: 30
    username: "tencent"
    password: "#REPLACE_ME#"
    shard: 1
    replicas: 2
    database: "tencent"
フィールド説明
hostTencent VectorDB ホストyour-tencent-vector-db.domain
apiKeyAPI Key-
timeout接続タイムアウト(秒)30
usernameユーザー名tencent
passwordパスワード-
shardシャード数1
replicasレプリカ数2
databaseデータベース名tencent

OpenSearch

externalType: "opensearch"
  externalOpenSearch:
    host: "your-opensearch.domain"
    port: 9200
    user: ""
    password: "#REPLACE_ME#"
    useTLS: false
フィールド説明
hostOpenSearch ホストyour-opensearch.domain
portポート番号9200
userユーザー名(オプション)-
passwordパスワード-
useTLSTLS を有効化するかfalse

AnalyticDB

externalType: "analyticdb"
  externalAnalyticDB:
    keyID: "#REPLACE_ME#"
    keySecret: "#REPLACE_ME#"
    regionID: "#REPLACE_ME#"
    instanceID: "#REPLACE_ME#"
    account: "#REPLACE_ME#"
    password: "#REPLACE_ME#"
    host: "#REPLACE_ME#"
    port: 5432
    namespace: ""
    namespacePassword: ""
    minConnection: 1
    maxConnection: 5
フィールド説明
keyIDAlibaba Cloud AccessKey ID-
keySecretAlibaba Cloud AccessKey Secret-
regionIDリージョン ID-
instanceIDインスタンス ID-
accountアカウント-
passwordパスワード-
hostホスト-
portポート番号5432
namespaceネームスペース(オプション)-
namespacePasswordネームスペースパスワード(オプション)-
minConnection最小コネクション数1
maxConnection最大コネクション数5

Lindorm

externalType: "lindorm"
  externalLindorm:
    url: "http://localhost:30070"
    username: "admin"
    password: "admin"
    indexType: "hnsw"
    distanceType: "l2"
    usingUgc: true
    queryTimeout: 2.0
フィールド説明
urlLindorm 検索エンジン URLhttp://localhost:30070
usernameユーザー名admin
passwordパスワードadmin
indexTypeインデックスタイプhnsw
distanceType距離計算タイプl2
usingUgcUGC モードを使用するかtrue
queryTimeoutクエリタイムアウト(秒)2.0