mirror of
https://github.com/agentscope-ai/ReMe.git
synced 2026-09-19 00:01:33 +00:00
- Add BaseClient, BaseFileStore, BaseFileWatcher, BaseJob, BaseService, and BaseStep classes - Move component initialization logic from ApplicationContext to Application class - Add logo printing and logging initialization in Application startup - Create client module with base client implementation - Add file store base class with embedding resolution and validation - Implement file watcher base class with watchfiles integration - Add job base class for sequential step execution orchestration - Create service base class for job exposure mechanisms - Refactor BaseStep with LLM workflow execution capabilities - Add case converter utility for naming convention transformations - Update import structure and module organization - Add proper type hints and docstrings across all components - Implement component registry integration for dynamic loading - Add error handling for missing backend configurations
77 lines
2.3 KiB
Python
77 lines
2.3 KiB
Python
"""ReMe CLI application entry point."""
|
|
|
|
import asyncio
|
|
import sys
|
|
|
|
from agentscope.formatter import FormatterBase
|
|
from agentscope.message import Msg
|
|
from agentscope.model import ChatModelBase
|
|
from agentscope.token import TokenCounterBase
|
|
from agentscope.tool import Toolkit, ToolResponse
|
|
|
|
from .application import Application
|
|
from .component import R
|
|
from .config import parse_args
|
|
from .enumeration import ComponentEnum
|
|
|
|
|
|
class ReMe(Application):
|
|
"""ReMe memory management application."""
|
|
|
|
async def summary_memory(
|
|
self,
|
|
messages: list[Msg],
|
|
as_llm: str | ChatModelBase = "default",
|
|
as_llm_formatter: str | FormatterBase = "default",
|
|
as_token_counter: str | TokenCounterBase = "default",
|
|
toolkit: Toolkit | None = None,
|
|
language: str = "zh",
|
|
max_input_length: float = 128 * 1024,
|
|
compact_ratio: float = 0.7,
|
|
timezone: str | None = None,
|
|
add_thinking_block: bool = True,
|
|
) -> str:
|
|
"""Summarize and compact memory messages."""
|
|
|
|
async def memory_search(self, query: str, max_results: int = 5, min_score: float = 0.1) -> ToolResponse:
|
|
"""Search memory for relevant entries."""
|
|
|
|
async def dream(
|
|
self,
|
|
as_llm: str | ChatModelBase = "default",
|
|
as_llm_formatter: str | FormatterBase = "default",
|
|
as_token_counter: str | TokenCounterBase = "default",
|
|
toolkit: Toolkit | None = None,
|
|
language: str = "zh",
|
|
timezone: str | None = None,
|
|
) -> str:
|
|
"""Process and consolidate memories in background."""
|
|
|
|
async def proactive(
|
|
self,
|
|
as_llm: str | ChatModelBase = "default",
|
|
as_llm_formatter: str | FormatterBase = "default",
|
|
as_token_counter: str | TokenCounterBase = "default",
|
|
toolkit: Toolkit | None = None,
|
|
language: str = "zh",
|
|
timezone: str | None = None,
|
|
) -> str:
|
|
"""Generate proactive memory insights."""
|
|
|
|
|
|
def main():
|
|
"""Entry point for ReMe CLI."""
|
|
action, config = parse_args(sys.argv[1:])
|
|
if action == "app":
|
|
reme = ReMe(**config)
|
|
reme.run_app()
|
|
|
|
else:
|
|
backend: str = config.pop("backend", "http")
|
|
client_cls = R.get(ComponentEnum.CLIENT, backend)
|
|
client = client_cls(action=action, **config)
|
|
asyncio.run(client())
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|