Move singleton to common directory (#10935)

### What problem does this PR solve?

As title

### Type of change

- [x] Refactoring

Signed-off-by: Jin Hai <haijin.chn@gmail.com>
This commit is contained in:
Jin Hai
2025-11-02 12:24:08 +08:00
committed by GitHub
parent fe4852cb71
commit 6447b737ab
14 changed files with 117 additions and 35 deletions

View File

@ -15,23 +15,10 @@
#
import os
import tiktoken
from api.utils.file_utils import get_project_base_directory
def singleton(cls, *args, **kw):
instances = {}
def _singleton():
key = str(cls) + str(os.getpid())
if key not in instances:
instances[key] = cls(*args, **kw)
return instances[key]
return _singleton
tiktoken_cache_dir = get_project_base_directory()
os.environ["TIKTOKEN_CACHE_DIR"] = tiktoken_cache_dir
# encoder = tiktoken.encoding_for_model("gpt-3.5-turbo")

View File

@ -19,7 +19,7 @@ import os
import time
from io import BytesIO
from rag import settings
from rag.utils import singleton
from common.decorator import singleton
from azure.storage.blob import ContainerClient

View File

@ -18,7 +18,7 @@ import logging
import os
import time
from rag import settings
from rag.utils import singleton
from common.decorator import singleton
from azure.identity import ClientSecretCredential, AzureAuthorityHosts
from azure.storage.filedatalake import FileSystemClient

View File

@ -26,7 +26,7 @@ from elasticsearch_dsl import UpdateByQuery, Q, Search, Index
from elastic_transport import ConnectionTimeout
from rag import settings
from rag.settings import TAG_FLD, PAGERANK_FLD
from rag.utils import singleton
from common.decorator import singleton
from api.utils.file_utils import get_project_base_directory
from api.utils.common import convert_bytes
from rag.utils.doc_store_conn import DocStoreConnection, MatchExpr, OrderByExpr, MatchTextExpr, MatchDenseExpr, \

View File

@ -27,7 +27,7 @@ from infinity.connection_pool import ConnectionPool
from infinity.errors import ErrorCode
from rag import settings
from rag.settings import PAGERANK_FLD, TAG_FLD
from rag.utils import singleton
from common.decorator import singleton
import pandas as pd
from api.utils.file_utils import get_project_base_directory
from rag.nlp import is_english

View File

@ -21,7 +21,7 @@ from minio.commonconfig import CopySource
from minio.error import S3Error
from io import BytesIO
from rag import settings
from rag.utils import singleton
from common.decorator import singleton
@singleton

View File

@ -4,7 +4,7 @@ import pymysql
from urllib.parse import quote_plus
from api.utils.configs import get_base_config
from rag.utils import singleton
from common.decorator import singleton
CREATE_TABLE_SQL = """

View File

@ -26,7 +26,7 @@ from opensearchpy import UpdateByQuery, Q, Search, Index
from opensearchpy import ConnectionTimeout
from rag import settings
from rag.settings import TAG_FLD, PAGERANK_FLD
from rag.utils import singleton
from common.decorator import singleton
from api.utils.file_utils import get_project_base_directory
from rag.utils.doc_store_conn import DocStoreConnection, MatchExpr, OrderByExpr, MatchTextExpr, MatchDenseExpr, \
FusionExpr

View File

@ -19,7 +19,7 @@ from botocore.exceptions import ClientError
from botocore.config import Config
import time
from io import BytesIO
from rag.utils import singleton
from common.decorator import singleton
from rag import settings

View File

@ -20,7 +20,7 @@ import uuid
import valkey as redis
from rag import settings
from rag.utils import singleton
from common.decorator import singleton
from valkey.lock import Lock
import trio

View File

@ -20,7 +20,7 @@ from botocore.exceptions import ClientError
from botocore.config import Config
import time
from io import BytesIO
from rag.utils import singleton
from common.decorator import singleton
from rag import settings
@singleton