import os
from dotenv import load_dotenv

from common.path_utils import get_file_path

load_dotenv()
#从.env中获取环境变量
#真实的文件在 common/.env, 之前写成 get_file_path(".env") 指向了根目录下不存在的文件,
#导致 MODEL_BASE_URL / MODEL_NAME / NEO4J_* 全是 None
load_dotenv(get_file_path("common/.env"))


class Config:
    def __init__(self):
        # 大模型相关
        self.MODEL_API_KEY = os.getenv("MODEL_API_KEY")
        self.MODEL_BASE_URL = os.getenv("MODEL_BASE_URL")
        self.MODEL_NAME = os.getenv("MODEL_NAME")

        # neo4j相关
        self.NEO4J_URI = os.getenv("NEO4J_URI")
        self.NEO4J_USER = os.getenv("NEO4J_USER")
        self.NEO4J_PASSWORD = os.getenv("NEO4J_PASSWORD")

        # 读取极梦的密钥
        self.JIMENG_AK = os.getenv("JIMENG_AK")
        self.JIMENG_SK = os.getenv("JIMENG_SK")

        # # 读取图谱模式层的数据
        self.TCM_METADATA = open(get_file_path("_003_create_neo4j_database/tcm_metadata.json"), "r", encoding="utf-8").read()
        #
        # # embedding模型
        self.EMBEDDING_MODEL_PATH = os.getenv("EMBEDDING_MODEL_PATH")
        #
        # index的路径, faiss 向量数据库对 中文路径特别敏感,不要给路径上带中文.
        self.ENTITY_INDEX_PATH = get_file_path("_003_create_neo4j_database/nero4j_embedding_faiss.index")
        self.ENTITY_ID2TEXT_PATH = get_file_path("_003_create_neo4j_database/nero4j_embedding_faiss_id2text.pkl")
        # 添加历史数据获取的轮数
        self.history_num = 5

if __name__ == "__main__":
    conf = Config()
    # print(conf.MODEL_API_KEY)
    print(conf.TCM_METADATA)
    # print(conf.ENTITY_INDEX_PATH)
    # print(conf.ENTITY_ID2TEXT_PATH)