mirror of
https://github.com/agentscope-ai/ReMe.git
synced 2026-09-23 00:43:18 +00:00
* refactor(file_io): update file I/O operations and truncation logic * refactor(memory): update file-based memory compaction logic
144 lines
4.6 KiB
Python
144 lines
4.6 KiB
Python
"""Configuration schemas for service components using Pydantic models."""
|
|
|
|
import os
|
|
|
|
from pydantic import BaseModel, Field, ConfigDict
|
|
|
|
from .tool_call import ToolCall
|
|
|
|
|
|
class MCPConfig(BaseModel):
|
|
"""Configuration for Model Context Protocol transport and network settings."""
|
|
|
|
model_config = ConfigDict(extra="allow")
|
|
|
|
transport: str = Field(default="stdio")
|
|
host: str = Field(default="0.0.0.0")
|
|
port: int = Field(default=8001)
|
|
|
|
|
|
class HttpConfig(BaseModel):
|
|
"""Configuration for the HTTP server interface and connection lifecycle."""
|
|
|
|
model_config = ConfigDict(extra="allow")
|
|
|
|
host: str = Field(default="0.0.0.0")
|
|
port: int = Field(default=8001)
|
|
timeout_keep_alive: int = Field(default=3600)
|
|
limit_concurrency: int = Field(default=1000)
|
|
|
|
|
|
class CmdConfig(BaseModel):
|
|
"""Configuration for command-line flow execution parameters."""
|
|
|
|
model_config = ConfigDict(extra="allow")
|
|
|
|
flow: str = Field(default="")
|
|
|
|
|
|
class OpConfig(BaseModel):
|
|
"""Configuration for op settings and parameters."""
|
|
|
|
model_config = ConfigDict(extra="allow")
|
|
|
|
prompt_dict: dict[str, str] = Field(default_factory=dict)
|
|
params: dict = Field(default_factory=dict)
|
|
|
|
|
|
class FlowConfig(ToolCall):
|
|
"""Configuration for workflow execution, caching, and error handling."""
|
|
|
|
model_config = ConfigDict(extra="allow")
|
|
|
|
flow_content: str = Field(default="")
|
|
stream: bool = Field(default=False)
|
|
raise_exception: bool = Field(default=True)
|
|
enable_cache: bool = Field(default=False)
|
|
cache_path: str = Field(default="cache/flow")
|
|
cache_expire_hours: float = Field(default=0.1)
|
|
|
|
|
|
class BasicConfig(BaseModel):
|
|
"""Configuration for basic service settings and parameters."""
|
|
|
|
model_config = ConfigDict(extra="allow")
|
|
|
|
backend: str = Field(default="")
|
|
|
|
|
|
class ModelConfig(BasicConfig):
|
|
"""Configuration for model-based services with backend and model name."""
|
|
|
|
model_name: str = Field(default="")
|
|
|
|
|
|
class LLMConfig(ModelConfig):
|
|
"""Configuration for Large Language Model backend and model identification."""
|
|
|
|
|
|
class EmbeddingModelConfig(ModelConfig):
|
|
"""Configuration for embedding model backends and identity."""
|
|
|
|
|
|
class TokenCounterConfig(ModelConfig):
|
|
"""Configuration for token counting services and model mapping."""
|
|
|
|
|
|
class StoreConfig(BasicConfig):
|
|
"""Configuration for storage services with embedding model support."""
|
|
|
|
embedding_model: str = Field(default="default")
|
|
|
|
|
|
class VectorStoreConfig(StoreConfig):
|
|
"""Configuration for vector database storage and associated embeddings."""
|
|
|
|
collection_name: str = Field(default="reme")
|
|
|
|
|
|
class FileStoreConfig(StoreConfig):
|
|
"""Configuration for file store database storage and associated embeddings."""
|
|
|
|
store_name: str = Field(default="reme")
|
|
|
|
|
|
class FileWatcherConfig(BasicConfig):
|
|
"""Configuration for file watcher service."""
|
|
|
|
file_store: str = Field(default="")
|
|
watch_paths: list[str] = Field(default_factory=list)
|
|
|
|
|
|
class ServiceConfig(BasicConfig):
|
|
"""Root configuration schema aggregating all service-level settings and components."""
|
|
|
|
app_name: str = Field(default=os.getenv("APP_NAME", "ReMe"))
|
|
working_dir: str = Field(default=".reme")
|
|
enable_logo: bool = Field(default=True)
|
|
language: str = Field(default="")
|
|
thread_pool_max_workers: int = Field(
|
|
default=16,
|
|
description="Number of thread pool workers. Set to -1 to disable thread pool.",
|
|
)
|
|
ray_max_workers: int = Field(default=-1)
|
|
log_to_console: bool = Field(default=True)
|
|
disabled_flows: list[str] = Field(default_factory=list)
|
|
enabled_flows: list[str] = Field(default_factory=list)
|
|
|
|
mcp_servers: dict[str, dict] = Field(default_factory=dict)
|
|
mcp: MCPConfig = Field(default_factory=MCPConfig)
|
|
http: HttpConfig = Field(default_factory=HttpConfig)
|
|
cmd: CmdConfig = Field(default_factory=CmdConfig)
|
|
ops: dict[str, OpConfig] = Field(default_factory=dict)
|
|
flows: dict[str, FlowConfig] = Field(default_factory=dict)
|
|
as_llms: dict[str, BasicConfig] = Field(default_factory=dict)
|
|
as_llm_formatters: dict[str, BasicConfig] = Field(default_factory=dict)
|
|
as_token_counters: dict[str, BasicConfig] = Field(default_factory=dict)
|
|
llms: dict[str, LLMConfig] = Field(default_factory=dict)
|
|
embedding_models: dict[str, EmbeddingModelConfig] = Field(default_factory=dict)
|
|
vector_stores: dict[str, VectorStoreConfig] = Field(default_factory=dict)
|
|
file_stores: dict[str, FileStoreConfig] = Field(default_factory=dict)
|
|
token_counters: dict[str, TokenCounterConfig] = Field(default_factory=dict)
|
|
file_watchers: dict[str, FileWatcherConfig] = Field(default_factory=dict)
|
|
|
|
metadata: dict = Field(default_factory=dict)
|