From 02a77305ed2663b3b7d0d90090b0f9ffdb3a15c1 Mon Sep 17 00:00:00 2001 From: "jinli.yl" Date: Fri, 15 May 2026 11:01:42 +0800 Subject: [PATCH] up --- reme2/config/obsidian.md | 70 ++++++++++++++----------- reme2/steps/__init__.py | 0 reme2/{component => steps}/base_step.py | 33 ++++++++---- reme2/steps/crud/__init__.py | 0 reme2/steps/crud/search.py | 0 5 files changed, 62 insertions(+), 41 deletions(-) create mode 100644 reme2/steps/__init__.py rename reme2/{component => steps}/base_step.py (80%) create mode 100644 reme2/steps/crud/__init__.py create mode 100644 reme2/steps/crud/search.py diff --git a/reme2/config/obsidian.md b/reme2/config/obsidian.md index cda53c55..6b089c4f 100644 --- a/reme2/config/obsidian.md +++ b/reme2/config/obsidian.md @@ -1,50 +1,60 @@ -# all @jinli +# 通用 -reme help -reme start -reme restart -reme version -reme vault="My Vault" - -# daily - -daily:path -reme daily:xxx +| 能力 | 参数 | +|---------|----| +| help | | +| start | | +| restart | | +| version | | +| tags | | # crud -reme create file="New Note" content="# Hello" title="xxx" tags="[]" status="" -reme read file=Recipe/path="Templates/Recipe.md" -reme edit file=Recipe/path="Templates/Recipe.md" old="xxx" new="xxx" -reme append file="My Note" content="New line" -reme prepend file="My Note" content="New line" -reme delete file="My Note"/path +| 能力 | 参数 | +|---------|-------------------------------------------------------------------| +| create | path="New Note" content="# Hello" title="xxx" tags="[]" status="" | +| read | path="Templates/Recipe.md" | +| edit | path="Templates/Recipe.md" old="xxx" new="xxx" | +| append | path="My Note" content="New line" | +| prepend | path="My Note" content="New line" | +| delete | path="My Note" | -# reme +# daily:crud -reme stat file/path -reme list file/path +| 能力 | 参数 | +|-----------|---------------| +| daily:xxx | 与 crud 参数保持一致 | + +# stat / list + +| 能力 | 参数 | +|------|------| +| stat | path | +| list | path | # search -reme search query="search term" limit=10 tag="[]" score=0.1 copy=true +| 能力 | 参数 | +|--------|-----------------------------------------------------------| +| search | query="search term" limit=10 tag="[]" score=0.1 copy=true | # property -reme property:read -reme property:update file="My Note" status=done xx=xxx -reme property:delete keys="[xxxx, xxxx]" +| 能力 | 参数 | +|-----------------|-----------------------------------| +| property:read | | +| property:update | path="My Note" status=done xx=xxx | +| property:delete | keys="[xxxx, xxxx]" | -# 全局所有标签 +# link -reme tags +| 能力 | 参数 | +|-----------|----------------| +| backlinks | path="My Note" | +| links | path="My Note" | -# show link -reme backlinks file="My Note" -reme links file="My Note" -[[Algorithm Notes#Sorting]] 记忆的类型 diff --git a/reme2/steps/__init__.py b/reme2/steps/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/reme2/component/base_step.py b/reme2/steps/base_step.py similarity index 80% rename from reme2/component/base_step.py rename to reme2/steps/base_step.py index b46eb8ae..bd0d0de1 100644 --- a/reme2/component/base_step.py +++ b/reme2/steps/base_step.py @@ -1,26 +1,25 @@ """Base step class for LLM workflow execution.""" import copy -from abc import abstractmethod +from abc import abstractmethod, ABC from agentscope.formatter import FormatterBase from agentscope.model import ChatModelBase from agentscope.token import TokenCounterBase -from .base_component import BaseComponent -from .embedding import BaseEmbeddingModel -from .file_parser import BaseFileParser -from .file_store import BaseFileStore -from .prompt_handler import PromptHandler -from .runtime_context import RuntimeContext +from ..component import ApplicationContext +from ..component.embedding import BaseEmbeddingModel +from ..component.file_parser import BaseFileParser +from ..component.file_store import BaseFileStore +from ..component.prompt_handler import PromptHandler +from ..component.runtime_context import RuntimeContext from ..enumeration import ComponentEnum +from ..utils import get_logger -class BaseStep(BaseComponent): +class BaseStep(ABC): """Base step for LLM workflow execution and composition.""" - component_type = ComponentEnum.STEP - def __new__(cls, *args, **kwargs): instance = super().__new__(cls) instance._init_args = copy.copy(args) @@ -29,19 +28,31 @@ class BaseStep(BaseComponent): def __init__( self, + name: str | None = None, + backend: str = "", + app_context: "ApplicationContext | None" = None, language: str = "", prompt_dict: dict[str, str] | None = None, input_mapping: dict[str, str] | None = None, output_mapping: dict[str, str] | None = None, **kwargs, ): - super().__init__(**kwargs) + super().__init__() + self.name: str = name or self.__class__.__name__ + self.backend: str = backend + self.app_context: "ApplicationContext | None" = app_context + self.kwargs: dict = dict(kwargs) + self.logger = get_logger() + if hasattr(self.logger, "bind"): + self.logger = self.logger.bind(component=self.name) + self.language = language self.prompt = PromptHandler(language=self.language) self.prompt.load_prompt_by_class(self.__class__).load_prompt_dict(prompt_dict) self.input_mapping = input_mapping self.output_mapping = output_mapping self.context: RuntimeContext | None = None + self.kwargs: dict = kwargs @abstractmethod async def execute(self): diff --git a/reme2/steps/crud/__init__.py b/reme2/steps/crud/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/reme2/steps/crud/search.py b/reme2/steps/crud/search.py new file mode 100644 index 00000000..e69de29b