mirror of
https://github.com/OpenBMB/ChatDev.git
synced 2026-04-25 11:18:06 +00:00
27 lines
1014 B
Python
Executable File
27 lines
1014 B
Python
Executable File
"""Register built-in thinking modes."""
|
|
|
|
from entity.configs.node.thinking import ReflectionThinkingConfig, ThinkingConfig
|
|
from runtime.node.agent.thinking.thinking_manager import ThinkingManagerBase
|
|
from runtime.node.agent.thinking.self_reflection import SelfReflectionThinkingManager
|
|
from runtime.node.agent.thinking.registry import (
|
|
register_thinking_mode,
|
|
get_thinking_registration,
|
|
)
|
|
|
|
register_thinking_mode(
|
|
"reflection",
|
|
config_cls=ReflectionThinkingConfig,
|
|
manager_cls=SelfReflectionThinkingManager,
|
|
summary="LLM reflects on its output and refine its output",
|
|
)
|
|
|
|
|
|
class ThinkingManagerFactory:
|
|
@staticmethod
|
|
def get_thinking_manager(config: ThinkingConfig) -> ThinkingManagerBase:
|
|
registration = get_thinking_registration(config.type)
|
|
typed_config = config.as_config(registration.config_cls)
|
|
if not typed_config:
|
|
raise ValueError(f"Invalid thinking config for type '{config.type}'")
|
|
return registration.manager_cls(typed_config)
|