58 lines
1.3 KiB
Python
58 lines
1.3 KiB
Python
"""兼容层模块
|
|
|
|
让自研代码既能独立运行,也能在 Dify 环境中运行。
|
|
自动检测环境并使用对应的数据库和 Redis 连接。
|
|
"""
|
|
import os
|
|
|
|
|
|
def _try_import_dify_db():
|
|
"""尝试导入 Dify 的数据库扩展。"""
|
|
try:
|
|
from extensions.ext_database import db
|
|
return db
|
|
except ImportError:
|
|
return None
|
|
|
|
|
|
def _try_import_dify_redis():
|
|
"""尝试导入 Dify 的 Redis 扩展。"""
|
|
try:
|
|
from extensions.ext_redis import redis_client
|
|
return redis_client
|
|
except ImportError:
|
|
return None
|
|
|
|
|
|
def _get_standalone_db():
|
|
"""获取独立部署的数据库实例。"""
|
|
from insurance.db.database import db
|
|
return db
|
|
|
|
|
|
def _get_standalone_redis():
|
|
"""获取独立部署的 Redis 客户端。"""
|
|
from insurance.db.redis import get_redis
|
|
return get_redis()
|
|
|
|
|
|
def is_standalone():
|
|
"""判断是否为独立部署模式。"""
|
|
return _try_import_dify_db() is None
|
|
|
|
|
|
# 初始化时尝试导入 Dify 扩展
|
|
_dify_db = _try_import_dify_db()
|
|
_dify_redis = _try_import_dify_redis()
|
|
|
|
# 如果 Dify 扩展不可用,使用独立部署的实现
|
|
if _dify_db is None:
|
|
db = _get_standalone_db()
|
|
else:
|
|
db = _dify_db
|
|
|
|
if _dify_redis is None:
|
|
redis_client = _get_standalone_redis()
|
|
else:
|
|
redis_client = _dify_redis
|