dify/api/configs/middleware/__init__.py

68 lines
2.0 KiB
Python
Raw Normal View History

from typing import Optional
from pydantic import BaseModel, Field
from configs.middleware.redis_config import RedisConfig
from configs.middleware.vdb.chroma_configs import ChromaConfigs
from configs.middleware.vdb.milvus_configs import MilvusConfigs
from configs.middleware.vdb.opensearch_configs import OpenSearchConfigs
from configs.middleware.vdb.oracle_configs import OracleConfigs
from configs.middleware.vdb.pgvector_configs import PGVectorConfigs
from configs.middleware.vdb.pgvectors_configs import PGVectoRSConfigs
from configs.middleware.vdb.qdrant_configs import QdrantConfigs
from configs.middleware.vdb.relyt_configs import RelytConfigs
from configs.middleware.vdb.tencent_vector_configs import TencentVectorDBConfigs
from configs.middleware.vdb.tidb_vector_configs import TiDBVectorConfigs
from configs.middleware.vdb.weaviate_configs import WeaviateConfigs
class StorageConfigs(BaseModel):
STORAGE_TYPE: str = Field(
description='storage type,'
' default to `local`,'
' available values are `local`, `s3`, `azure-blob`, `aliyun-oss`, `google-storage`.',
default='local',
)
STORAGE_LOCAL_PATH: str = Field(
description='local storage path',
default='storage',
)
class VectorStoreConfigs(BaseModel):
VECTOR_STORE: Optional[str] = Field(
description='vector store type',
default=None,
)
class KeywordStoreConfigs(BaseModel):
KEYWORD_STORE: str = Field(
description='keyword store type',
default='jieba',
)
class MiddlewareConfig(
# place the configs in alphabet order
KeywordStoreConfigs,
RedisConfig,
StorageConfigs,
# configs of vdb and vdb providers
VectorStoreConfigs,
ChromaConfigs,
MilvusConfigs,
OpenSearchConfigs,
PGVectorConfigs,
PGVectoRSConfigs,
QdrantConfigs,
RelytConfigs,
TencentVectorDBConfigs,
TiDBVectorConfigs,
WeaviateConfigs,
OracleConfigs,
):
pass