Langchain-Chatchat/configs/model_config.py

109 lines
4.2 KiB
Python
Raw Normal View History

2023-04-25 20:14:33 +08:00
import os
import logging
2023-07-27 23:22:07 +08:00
import torch
2023-07-27 23:22:07 +08:00
# 日志格式
LOG_FORMAT = "%(levelname) -5s %(asctime)s" "-1d: %(message)s"
logger = logging.getLogger()
logger.setLevel(logging.INFO)
logging.basicConfig(format=LOG_FORMAT)
2023-04-13 23:01:52 +08:00
2023-07-27 23:22:07 +08:00
2023-06-12 00:10:47 +08:00
# 在以下字典中修改属性值以指定本地embedding模型存储位置
# 如将 "text2vec": "GanymedeNil/text2vec-large-chinese" 修改为 "text2vec": "User/Downloads/text2vec-large-chinese"
# 此处请写绝对路径
2023-04-13 23:01:52 +08:00
embedding_model_dict = {
"ernie-tiny": "nghuyong/ernie-3.0-nano-zh",
"ernie-base": "nghuyong/ernie-3.0-base-zh",
2023-04-27 07:40:57 +08:00
"text2vec-base": "shibing624/text2vec-base-chinese",
2023-07-27 23:28:33 +08:00
"text2vec": "GanymedeNil/text2vec-large-chinese",
2023-07-27 23:22:07 +08:00
"text2vec-paraphrase": "shibing624/text2vec-base-chinese-paraphrase",
"text2vec-sentence": "shibing624/text2vec-base-chinese-sentence",
"text2vec-multilingual": "shibing624/text2vec-base-multilingual",
"m3e-small": "moka-ai/m3e-small",
2023-08-01 14:47:38 +08:00
"m3e-base": "/Users/liuqian/Downloads/ChatGLM-6B/m3e-base",
2023-07-27 23:22:07 +08:00
"m3e-large": "moka-ai/m3e-large",
2023-04-13 23:01:52 +08:00
}
2023-07-27 23:22:07 +08:00
# 选用的 Embedding 名称
EMBEDDING_MODEL = "m3e-base"
2023-04-13 23:01:52 +08:00
2023-07-27 23:22:07 +08:00
# Embedding 模型运行设备
2023-04-13 23:01:52 +08:00
EMBEDDING_DEVICE = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_available() else "cpu"
2023-07-27 23:22:07 +08:00
2023-04-13 23:01:52 +08:00
llm_model_dict = {
"chatglm-6b": {
2023-07-28 16:12:57 +08:00
"local_model_path": "THUDM/chatglm-6b",
2023-07-27 23:22:07 +08:00
"api_base_url": "http://localhost:8888/v1", # "name"修改为fastchat服务中的"api_base_url"
2023-07-11 19:36:50 +08:00
"api_key": "EMPTY"
2023-07-19 10:00:23 +08:00
},
2023-07-27 23:22:07 +08:00
"chatglm-6b-int4": {
2023-07-28 16:12:57 +08:00
"local_model_path": "THUDM/chatglm-6b-int4",
2023-07-19 10:00:23 +08:00
"api_base_url": "http://localhost:8001/v1", # "name"修改为fastchat服务中的"api_base_url"
"api_key": "EMPTY"
2023-05-31 22:11:28 +08:00
},
2023-07-27 23:22:07 +08:00
"chatglm2-6b": {
2023-08-01 14:47:38 +08:00
"local_model_path": "/Users/liuqian/Downloads/ChatGLM-6B/chatglm2-6b", # "THUDM/chatglm2-6b",
2023-07-27 23:22:07 +08:00
"api_base_url": "http://localhost:8888/v1", # "name"修改为fastchat服务中的"api_base_url"
"api_key": "EMPTY"
2023-06-25 17:04:16 +08:00
},
2023-05-31 22:11:28 +08:00
"chatglm2-6b-32k": {
"local_model_path": "THUDM/chatglm2-6b-32k", # "THUDM/chatglm2-6b-32k",
"api_base_url": "http://localhost:8888/v1", # "name"修改为fastchat服务中的"api_base_url"
"api_key": "EMPTY"
},
2023-07-27 23:22:07 +08:00
"vicuna-13b-hf": {
"local_model_path": "",
2023-07-11 19:36:50 +08:00
"api_base_url": "http://localhost:8000/v1", # "name"修改为fastchat服务中的"api_base_url"
"api_key": "EMPTY"
2023-05-31 22:11:28 +08:00
},
2023-07-27 23:22:07 +08:00
2023-07-11 23:40:49 +08:00
# 调用chatgpt时如果报出 urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.openai.com', port=443):
# Max retries exceeded with url: /v1/chat/completions
# 则需要将urllib3版本修改为1.25.11
# 如果依然报urllib3.exceptions.MaxRetryError: HTTPSConnectionPool则将https改为http
# 参考https://zhuanlan.zhihu.com/p/350015032
2023-07-11 23:40:49 +08:00
# 如果报出raise NewConnectionError(
# urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x000001FE4BDB85E0>:
2023-07-11 23:40:49 +08:00
# Failed to establish a new connection: [WinError 10060]
2023-07-19 10:57:09 +08:00
# 则是因为内地和香港的IP都被OPENAI封了需要切换为日本、新加坡等地
2023-07-11 20:19:50 +08:00
"openai-chatgpt-3.5": {
2023-07-28 16:12:57 +08:00
"local_model_path": "gpt-3.5-turbo",
2023-07-27 23:22:07 +08:00
"api_base_url": "https://api.openapi.com/v1",
"api_key": os.environ.get("OPENAI_API_KEY")
2023-07-11 19:36:50 +08:00
},
2023-04-13 23:01:52 +08:00
}
# LLM 名称
2023-07-27 23:22:07 +08:00
LLM_MODEL = "chatglm2-6b"
2023-07-27 23:22:07 +08:00
# LLM 运行设备
2023-04-13 23:01:52 +08:00
LLM_DEVICE = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_available() else "cpu"
2023-07-27 23:22:07 +08:00
# 日志存储路径
LOG_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), "logs")
2023-07-28 16:12:57 +08:00
if not os.path.exists(LOG_PATH):
os.mkdir(LOG_PATH)
2023-07-27 23:22:07 +08:00
# 知识库默认存储路径
KB_ROOT_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), "knowledge_base")
2023-04-19 23:02:47 +08:00
2023-07-27 23:22:07 +08:00
# nltk 模型存储路径
NLTK_DATA_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), "nltk_data")
2023-07-27 23:22:07 +08:00
# 基于本地知识问答的提示词模版
PROMPT_TEMPLATE = """【指令】根据已知信息,简洁和专业的来回答问题。如果无法从中得到答案,请说 “根据已知信息无法回答该问题”,不允许在答案中添加编造成分,答案请使用中文。
2023-07-27 23:22:07 +08:00
已知信息{context}
2023-07-27 23:22:07 +08:00
问题{question}"""
2023-07-27 23:22:07 +08:00
# API 是否开启跨域默认为False如果需要开启请设置为True
# is open cross domain
OPEN_CROSS_DOMAIN = False