mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-07-20 13:47:15 +08:00
feat: optimize agent configuration and memory
This commit is contained in:
@@ -32,7 +32,7 @@ class AgentPlugin(Plugin):
|
||||
self.config = self._load_config()
|
||||
self.tool_manager = ToolManager()
|
||||
self.tool_manager.load_tools(config_dict=self.config.get("tools"))
|
||||
logger.info("[agent] inited")
|
||||
logger.debug("[agent] inited")
|
||||
|
||||
def _load_config(self) -> Dict:
|
||||
"""Load configuration from config.yaml file."""
|
||||
|
||||
@@ -49,7 +49,7 @@ class Banwords(Plugin):
|
||||
if conf.get("reply_filter", True):
|
||||
self.handlers[Event.ON_DECORATE_REPLY] = self.on_decorate_reply
|
||||
self.reply_action = conf.get("reply_action", "ignore")
|
||||
logger.info("[Banwords] inited")
|
||||
logger.debug("[Banwords] inited")
|
||||
except Exception as e:
|
||||
logger.warn("[Banwords] init failed, ignore or see https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/banwords .")
|
||||
raise e
|
||||
|
||||
@@ -53,7 +53,7 @@ class Dungeon(Plugin):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context
|
||||
logger.info("[Dungeon] inited")
|
||||
logger.debug("[Dungeon] inited")
|
||||
# 目前没有设计session过期事件,这里先暂时使用过期字典
|
||||
if conf().get("expires_in_seconds"):
|
||||
self.games = ExpiredDict(conf().get("expires_in_seconds"))
|
||||
|
||||
@@ -20,7 +20,7 @@ class Finish(Plugin):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context
|
||||
logger.info("[Finish] inited")
|
||||
logger.debug("[Finish] inited")
|
||||
|
||||
def on_handle_context(self, e_context: EventContext):
|
||||
if e_context["context"].type != ContextType.TEXT:
|
||||
|
||||
@@ -207,7 +207,7 @@ class Godcmd(Plugin):
|
||||
self.isrunning = True # 机器人是否运行中
|
||||
|
||||
self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context
|
||||
logger.info("[Godcmd] inited")
|
||||
logger.debug("[Godcmd] inited")
|
||||
|
||||
def on_handle_context(self, e_context: EventContext):
|
||||
context_type = e_context["context"].type
|
||||
|
||||
@@ -35,7 +35,7 @@ class Hello(Plugin):
|
||||
self.group_welc_prompt = self.config.get("group_welc_prompt", self.group_welc_prompt)
|
||||
self.group_exit_prompt = self.config.get("group_exit_prompt", self.group_exit_prompt)
|
||||
self.patpat_prompt = self.config.get("patpat_prompt", self.patpat_prompt)
|
||||
logger.info("[Hello] inited")
|
||||
logger.debug("[Hello] inited")
|
||||
self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context
|
||||
except Exception as e:
|
||||
logger.error(f"[Hello]初始化异常:{e}")
|
||||
|
||||
@@ -37,9 +37,9 @@ class Keyword(Plugin):
|
||||
# 加载关键词
|
||||
self.keyword = conf["keyword"]
|
||||
|
||||
logger.info("[keyword] {}".format(self.keyword))
|
||||
logger.debug("[keyword] {}".format(self.keyword))
|
||||
self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context
|
||||
logger.info("[keyword] inited.")
|
||||
logger.debug("[keyword] inited.")
|
||||
except Exception as e:
|
||||
logger.warn("[keyword] init failed, ignore or see https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/keyword .")
|
||||
raise e
|
||||
|
||||
@@ -32,7 +32,7 @@ class LinkAI(Plugin):
|
||||
self.sum_config = {}
|
||||
if self.config:
|
||||
self.sum_config = self.config.get("summary")
|
||||
logger.info(f"[LinkAI] inited, config={self.config}")
|
||||
logger.debug(f"[LinkAI] inited, config={self.config}")
|
||||
|
||||
def on_handle_context(self, e_context: EventContext):
|
||||
"""
|
||||
|
||||
@@ -18,14 +18,12 @@ class Plugin:
|
||||
if not plugin_conf:
|
||||
# 全局配置不存在,则获取插件目录下的配置
|
||||
plugin_config_path = os.path.join(self.path, "config.json")
|
||||
logger.debug(f"loading plugin config, plugin_config_path={plugin_config_path}, exist={os.path.exists(plugin_config_path)}")
|
||||
if os.path.exists(plugin_config_path):
|
||||
with open(plugin_config_path, "r", encoding="utf-8") as f:
|
||||
plugin_conf = json.load(f)
|
||||
|
||||
# 写入全局配置内存
|
||||
write_plugin_config({self.name: plugin_conf})
|
||||
logger.debug(f"loading plugin config, plugin_name={self.name}, conf={plugin_conf}")
|
||||
return plugin_conf
|
||||
|
||||
def save_config(self, config: dict):
|
||||
|
||||
@@ -38,7 +38,7 @@ class PluginManager:
|
||||
if self.current_plugin_path == None:
|
||||
raise Exception("Plugin path not set")
|
||||
self.plugins[name.upper()] = plugincls
|
||||
logger.info("Plugin %s_v%s registered, path=%s" % (name, plugincls.version, plugincls.path))
|
||||
logger.debug("Plugin %s_v%s registered, path=%s" % (name, plugincls.version, plugincls.path))
|
||||
|
||||
return wrapper
|
||||
|
||||
@@ -47,7 +47,7 @@ class PluginManager:
|
||||
json.dump(self.pconf, f, indent=4, ensure_ascii=False)
|
||||
|
||||
def load_config(self):
|
||||
logger.info("Loading plugins config...")
|
||||
logger.debug("Loading plugins config...")
|
||||
|
||||
modified = False
|
||||
if os.path.exists("./plugins/plugins.json"):
|
||||
@@ -85,7 +85,7 @@ class PluginManager:
|
||||
logger.error(e)
|
||||
|
||||
def scan_plugins(self):
|
||||
logger.info("Scaning plugins ...")
|
||||
logger.debug("Scanning plugins ...")
|
||||
plugins_dir = "./plugins"
|
||||
raws = [self.plugins[name] for name in self.plugins]
|
||||
for plugin_name in os.listdir(plugins_dir):
|
||||
|
||||
@@ -66,7 +66,7 @@ class Role(Plugin):
|
||||
raise Exception("no role found")
|
||||
self.handlers[Event.ON_HANDLE_CONTEXT] = self.on_handle_context
|
||||
self.roleplays = {}
|
||||
logger.info("[Role] inited")
|
||||
logger.debug("[Role] inited")
|
||||
except Exception as e:
|
||||
if isinstance(e, FileNotFoundError):
|
||||
logger.warn(f"[Role] init failed, {config_path} not found, ignore or see https://github.com/zhayujie/chatgpt-on-wechat/tree/master/plugins/role .")
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
from .tool import *
|
||||
Reference in New Issue
Block a user