Merge pull request #25 from SengokuCola/main

拉配置修改
This commit is contained in:
SengokuCola
2025-03-02 11:28:29 +08:00
committed by GitHub
16 changed files with 65 additions and 127 deletions

View File

@@ -331,9 +331,12 @@ class ReasoningGUI:
def main():
"""主函数"""
Database.initialize(
"127.0.0.1",
27017,
"MegBot"
host= os.getenv("MONGODB_HOST"),
port= int(os.getenv("MONGODB_PORT")),
db_name= os.getenv("DATABASE_NAME"),
username= os.getenv("MONGODB_USERNAME"),
password= os.getenv("MONGODB_PASSWORD"),
auth_source=os.getenv("MONGODB_AUTH_SOURCE")
)
app = ReasoningGUI()

View File

@@ -15,9 +15,12 @@ from .willing_manager import willing_manager
driver = get_driver()
Database.initialize(
global_config.MONGODB_HOST,
global_config.MONGODB_PORT,
global_config.DATABASE_NAME
host= os.getenv("MONGODB_HOST"),
port= int(os.getenv("MONGODB_PORT")),
db_name= os.getenv("DATABASE_NAME"),
username= os.getenv("MONGODB_USERNAME"),
password= os.getenv("MONGODB_PASSWORD"),
auth_source=os.getenv("MONGODB_AUTH_SOURCE")
)
print("\033[1;32m[初始化数据库完成]\033[0m")

View File

@@ -7,22 +7,12 @@ import configparser
import tomli
import sys
from loguru import logger
from dotenv import load_dotenv
@dataclass
class BotConfig:
"""机器人配置类"""
# 基础配置
MONGODB_HOST: str = "127.0.0.1"
MONGODB_PORT: int = 27017
DATABASE_NAME: str = "MegBot"
MONGODB_USERNAME: Optional[str] = None # 默认空值
MONGODB_PASSWORD: Optional[str] = None # 默认空值
MONGODB_AUTH_SOURCE: Optional[str] = None # 默认空值
"""机器人配置类"""
BOT_QQ: Optional[int] = 1
BOT_NICKNAME: Optional[str] = None
@@ -68,17 +58,7 @@ class BotConfig:
if os.path.exists(config_path):
with open(config_path, "rb") as f:
toml_dict = tomli.load(f)
# 数据库配置
if "database" in toml_dict:
db_config = toml_dict["database"]
config.MONGODB_HOST = db_config.get("host", config.MONGODB_HOST)
config.MONGODB_PORT = db_config.get("port", config.MONGODB_PORT)
config.DATABASE_NAME = db_config.get("name", config.DATABASE_NAME)
config.MONGODB_USERNAME = db_config.get("username", config.MONGODB_USERNAME) or None # 空字符串转为 None
config.MONGODB_PASSWORD = db_config.get("password", config.MONGODB_PASSWORD) or None # 空字符串转为 None
config.MONGODB_AUTH_SOURCE = db_config.get("auth_source", config.MONGODB_AUTH_SOURCE) or None # 空字符串转为 None
if "emoji" in toml_dict:
emoji_config = toml_dict["emoji"]
config.EMOJI_CHECK_INTERVAL = emoji_config.get("check_interval", config.EMOJI_CHECK_INTERVAL)
@@ -136,15 +116,6 @@ env_path = os.path.join(config_dir, '.env')
logger.info(f"尝试从 {bot_config_path} 加载机器人配置")
global_config = BotConfig.load_config(config_path=bot_config_path)
# 加载环境变量
logger.info(f"尝试从 {env_path} 加载环境变量配置")
if os.path.exists(env_path):
load_dotenv(env_path)
logger.success("成功加载环境变量配置")
else:
logger.error(f"环境变量配置文件不存在: {env_path}")
@dataclass
class LLMConfig:
"""机器人配置类"""

View File

@@ -10,7 +10,6 @@ import random
import time
import os
import numpy as np
from dotenv import load_dotenv
from .relationship_manager import relationship_manager
from ..schedule.schedule_generator import bot_schedule
from .prompt_builder import prompt_builder
@@ -18,11 +17,6 @@ from .config import llm_config, global_config
from .utils import process_llm_response
# 获取当前文件的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
root_dir = os.path.abspath(os.path.join(current_dir, '..', '..', '..'))
load_dotenv(os.path.join(root_dir, '.env'))
class LLMResponseGenerator:
def __init__(self, config: BotConfig):
self.config = config

View File

@@ -1,6 +1,5 @@
import time
import random
from dotenv import load_dotenv
from ..schedule.schedule_generator import bot_schedule
import os
from .utils import get_embedding, combine_messages, get_recent_group_detailed_plain_text
@@ -10,11 +9,6 @@ from .topic_identifier import topic_identifier
from ..memory_system.memory import memory_graph
from random import choice
# 获取当前文件的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
root_dir = os.path.abspath(os.path.join(current_dir, '..', '..', '..'))
load_dotenv(os.path.join(root_dir, '.env'))
class PromptBuilder:
def __init__(self):

View File

@@ -37,12 +37,12 @@ def storage_compress_image(image_data: bytes, max_size: int = 200) -> bytes:
# 连接数据库
db = Database(
host=global_config.MONGODB_HOST,
port=global_config.MONGODB_PORT,
db_name=global_config.DATABASE_NAME,
username=global_config.MONGODB_USERNAME,
password=global_config.MONGODB_PASSWORD,
auth_source=global_config.MONGODB_AUTH_SOURCE
host= os.getenv("MONGODB_HOST"),
port= int(os.getenv("MONGODB_PORT")),
db_name= os.getenv("DATABASE_NAME"),
username= os.getenv("MONGODB_USERNAME"),
password= os.getenv("MONGODB_PASSWORD"),
auth_source=os.getenv("MONGODB_AUTH_SOURCE")
)
# 检查是否已存在相同哈希值的图片

View File

@@ -13,9 +13,12 @@ from src.plugins.chat.config import llm_config
# 直接配置数据库连接信息
Database.initialize(
"127.0.0.1", # MongoDB 主机
27017, # MongoDB 端口
"MegBot" # 数据库名称
host= os.getenv("MONGODB_HOST"),
port= int(os.getenv("MONGODB_PORT")),
db_name= os.getenv("DATABASE_NAME"),
username= os.getenv("MONGODB_USERNAME"),
password= os.getenv("MONGODB_PASSWORD"),
auth_source=os.getenv("MONGODB_AUTH_SOURCE")
)
class KnowledgeLibrary:

View File

@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*-
import os
import sys
import jieba
from llm_module import LLMModel
@@ -153,9 +154,12 @@ class Memory_graph:
def main():
# 初始化数据库
Database.initialize(
"127.0.0.1",
27017,
"MegBot"
host= os.getenv("MONGODB_HOST"),
port= int(os.getenv("MONGODB_PORT")),
db_name= os.getenv("DATABASE_NAME"),
username= os.getenv("MONGODB_USERNAME"),
password= os.getenv("MONGODB_PASSWORD"),
auth_source=os.getenv("MONGODB_AUTH_SOURCE")
)
memory_graph = Memory_graph()

View File

@@ -1,12 +1,8 @@
import os
import requests
from dotenv import load_dotenv
from typing import Tuple, Union
import time
# 加载环境变量
load_dotenv()
class LLMModel:
# def __init__(self, model_name="deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", **kwargs):
def __init__(self, model_name="Pro/deepseek-ai/DeepSeek-V3", **kwargs):

View File

@@ -1,23 +1,9 @@
import os
import requests
from dotenv import load_dotenv
from typing import Tuple, Union
import time
from ..chat.config import BotConfig
# 获取当前文件的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
root_dir = os.path.abspath(os.path.join(current_dir, '..', '..', '..'))
env_path = os.path.join(root_dir, 'config', '.env')
# 加载环境变量
print(f"尝试从 {env_path} 加载环境变量配置")
if os.path.exists(env_path):
load_dotenv(env_path)
print("成功加载环境变量配置")
else:
print(f"环境变量配置文件不存在: {env_path}")
class LLMModel:
# def __init__(self, model_name="deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", **kwargs):
def __init__(self, model_name="Pro/deepseek-ai/DeepSeek-V3", **kwargs):

View File

@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*-
import os
import jieba
from .llm_module import LLMModel
import networkx as nx
@@ -263,9 +264,12 @@ def topic_what(text, topic):
start_time = time.time()
Database.initialize(
global_config.MONGODB_HOST,
global_config.MONGODB_PORT,
global_config.DATABASE_NAME
host= os.getenv("MONGODB_HOST"),
port= int(os.getenv("MONGODB_PORT")),
db_name= os.getenv("DATABASE_NAME"),
username= os.getenv("MONGODB_USERNAME"),
password= os.getenv("MONGODB_PASSWORD"),
auth_source=os.getenv("MONGODB_AUTH_SOURCE")
)
#创建记忆图
memory_graph = Memory_graph()

View File

@@ -9,7 +9,6 @@ import datetime
import random
import time
import os
from dotenv import load_dotenv
# from chat.config import global_config
sys.path.append("C:/GitHub/MaiMBot") # 添加项目根目录到 Python 路径
from src.common.database import Database # 使用正确的导入语法
@@ -219,24 +218,14 @@ def calculate_information_content(text):
def main():
# 获取当前文件的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
root_dir = os.path.abspath(os.path.join(current_dir, '..', '..', '..'))
env_path = os.path.join(root_dir, 'config', '.env')
# 加载环境变量
print(f"尝试从 {env_path} 加载环境变量配置")
if os.path.exists(env_path):
load_dotenv(env_path)
print("成功加载环境变量配置")
else:
print(f"环境变量配置文件不存在: {env_path}")
# 初始化数据库
Database.initialize(
"127.0.0.1",
27017,
"MegBot"
host= os.getenv("MONGODB_HOST"),
port= int(os.getenv("MONGODB_PORT")),
db_name= os.getenv("DATABASE_NAME"),
username= os.getenv("MONGODB_USERNAME"),
password= os.getenv("MONGODB_PASSWORD"),
auth_source=os.getenv("MONGODB_AUTH_SOURCE")
)
memory_graph = Memory_graph()

View File

@@ -2,22 +2,9 @@ import datetime
import os
from typing import List, Dict
from .schedule_llm_module import LLMModel
from dotenv import load_dotenv
from ...common.database import Database # 使用正确的导入语法
from ..chat.config import global_config
# import sys
# sys.path.append("C:/GitHub/MegMeg-bot") # 添加项目根目录到 Python 路径
# from src.plugins.schedule.schedule_llm_module import LLMModel
# from src.common.database import Database # 使用正确的导入语法
# 获取当前文件的绝对路径
#TODO: 这个好几个地方用需要封装
current_dir = os.path.dirname(os.path.abspath(__file__))
root_dir = os.path.abspath(os.path.join(current_dir, '..', '..', '..'))
load_dotenv(os.path.join(root_dir, '.env'))
Database.initialize(
host= os.getenv("MONGODB_HOST"),
port= int(os.getenv("MONGODB_PORT")),

View File

@@ -1,17 +1,13 @@
import os
import requests
from dotenv import load_dotenv
from typing import Tuple, Union
# 加载环境变量
load_dotenv()
class LLMModel:
# def __init__(self, model_name="deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", **kwargs):
def __init__(self, model_name="Pro/deepseek-ai/DeepSeek-R1",api_using=None, **kwargs):
if api_using == "deepseek":
self.api_key = os.getenv("DEEPSEEK_API_KEY")
self.base_url = os.getenv("DEEPSEEK_BASE_URL")
self.api_key = os.getenv("DEEP_SEEK_KEY")
self.base_url = os.getenv("DEEP_SEEK_BASE_URL")
if model_name != "Pro/deepseek-ai/DeepSeek-R1":
self.model_name = model_name
else: