|
import torch.cuda |
|
import torch.backends |
|
import os |
|
import logging |
|
import uuid |
|
|
|
LOG_FORMAT = "%(levelname) -5s %(asctime)s" "-1d: %(message)s" |
|
logger = logging.getLogger() |
|
logger.setLevel(logging.INFO) |
|
logging.basicConfig(format=LOG_FORMAT) |
|
|
|
|
|
|
|
|
|
embedding_model_dict = { |
|
"ernie-tiny": "nghuyong/ernie-3.0-nano-zh", |
|
"ernie-base": "nghuyong/ernie-3.0-base-zh", |
|
"text2vec-base": "shibing624/text2vec-base-chinese", |
|
"text2vec": " C:/Users/Administrator/text2vec-large-chinese", |
|
"m3e-small": "moka-ai/m3e-small", |
|
"m3e-base": "moka-ai/m3e-base", |
|
} |
|
|
|
|
|
EMBEDDING_MODEL = "text2vec" |
|
|
|
|
|
EMBEDDING_DEVICE = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_available() else "cpu" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
llm_model_dict = { |
|
"chatglm-6b-int4-qe": { |
|
"name": "chatglm-6b-int4-qe", |
|
"pretrained_model_name": "THUDM/chatglm-6b-int4-qe", |
|
"local_model_path": None, |
|
"provides": "ChatGLM" |
|
}, |
|
"chatglm-6b-int4": { |
|
"name": "chatglm-6b-int4", |
|
"pretrained_model_name": "THUDM/chatglm-6b-int4", |
|
"local_model_path": None, |
|
"provides": "ChatGLM" |
|
}, |
|
"chatglm-6b-int8": { |
|
"name": "chatglm-6b-int8", |
|
"pretrained_model_name": "THUDM/chatglm-6b-int8", |
|
"local_model_path": None, |
|
"provides": "ChatGLM" |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
"chatglm-6b": { |
|
"name": "chatglm-6b", |
|
"pretrained_model_name": "chatglm-6b", |
|
"local_model_path": "C:/Users/Administrator/VisualGLM-6B/model", |
|
"provides": "ChatGLM" |
|
}, |
|
"chatglm2-6b": { |
|
"name": "chatglm2-6b", |
|
"pretrained_model_name": "chatglm2-6b", |
|
"local_model_path": "C:/Users/Administrator/ChatGLM2-6B/model", |
|
"provides": "ChatGLM" |
|
}, |
|
|
|
"chatyuan": { |
|
"name": "chatyuan", |
|
"pretrained_model_name": "ClueAI/ChatYuan-large-v2", |
|
"local_model_path": None, |
|
"provides": None |
|
}, |
|
"moss": { |
|
"name": "moss", |
|
"pretrained_model_name": "fnlp/moss-moon-003-sft", |
|
"local_model_path": None, |
|
"provides": "MOSSLLM" |
|
}, |
|
"vicuna-13b-hf": { |
|
"name": "vicuna-13b-hf", |
|
"pretrained_model_name": "vicuna-13b-hf", |
|
"local_model_path": None, |
|
"provides": "LLamaLLM" |
|
}, |
|
|
|
|
|
"fastchat-chatglm-6b": { |
|
"name": "chatglm-6b", |
|
"pretrained_model_name": "chatglm-6b", |
|
"local_model_path": None, |
|
"provides": "FastChatOpenAILLM", |
|
"api_base_url": "http://localhost:8000/v1" |
|
}, |
|
"fastchat-chatglm2-6b": { |
|
"name": "chatglm2-6b", |
|
"pretrained_model_name": "chatglm2-6b", |
|
"local_model_path":None, |
|
"provides": "FastChatOpenAILLM", |
|
"api_base_url": "http://localhost:8000/v1" |
|
}, |
|
|
|
|
|
"fastchat-vicuna-13b-hf": { |
|
"name": "vicuna-13b-hf", |
|
"pretrained_model_name": "vicuna-13b-hf", |
|
"local_model_path": None, |
|
"provides": "FastChatOpenAILLM", |
|
"api_base_url": "http://localhost:8000/v1" |
|
}, |
|
} |
|
|
|
|
|
|
|
LLM_MODEL = "chatglm2-6b" |
|
|
|
|
|
LOAD_IN_8BIT = False |
|
|
|
BF16 = False |
|
|
|
LORA_DIR = "loras/" |
|
|
|
|
|
LLM_LORA_PATH = "" |
|
USE_LORA = True if LLM_LORA_PATH else False |
|
|
|
|
|
STREAMING = True |
|
|
|
|
|
USE_PTUNING_V2 = False |
|
|
|
|
|
LLM_DEVICE = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_available() else "cpu" |
|
|
|
|
|
KB_ROOT_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), "knowledge_base") |
|
|
|
|
|
PROMPT_TEMPLATE = """已知信息: |
|
{context} |
|
|
|
根据上述已知信息,简洁和专业的来回答用户的问题。如果无法从中得到答案,请说 “根据已知信息无法回答该问题” 或 “没有提供足够的相关信息”,不允许在答案中添加编造成分,答案请使用中文。 问题是:{question}""" |
|
|
|
|
|
CACHED_VS_NUM = 1 |
|
|
|
|
|
SENTENCE_SIZE = 100 |
|
|
|
|
|
CHUNK_SIZE = 250 |
|
|
|
|
|
LLM_HISTORY_LEN = 3 |
|
|
|
|
|
VECTOR_SEARCH_TOP_K = 5 |
|
|
|
|
|
VECTOR_SEARCH_SCORE_THRESHOLD = 500 |
|
|
|
NLTK_DATA_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), "nltk_data") |
|
|
|
FLAG_USER_NAME = uuid.uuid4().hex |
|
|
|
logger.info(f""" |
|
loading model config |
|
llm device: {LLM_DEVICE} |
|
embedding device: {EMBEDDING_DEVICE} |
|
dir: {os.path.dirname(os.path.dirname(__file__))} |
|
flagging username: {FLAG_USER_NAME} |
|
""") |
|
|
|
|
|
|
|
OPEN_CROSS_DOMAIN = False |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BING_SEARCH_URL = "https://api.bing.microsoft.com/v7.0/search" |
|
|
|
|
|
|
|
|
|
BING_SUBSCRIPTION_KEY = "" |
|
|
|
|
|
|
|
|
|
ZH_TITLE_ENHANCE = False |
|
|