|
|
1 týždeň pred | |
|---|---|---|
| .. | ||
| __pycache__ | 1 týždeň pred | |
| agents | 1 týždeň pred | |
| functions | 1 týždeň pred | |
| tools | 1 týždeň pred | |
| .DS_Store | 1 týždeň pred | |
| README.md | 1 týždeň pred | |
| __init__.py | 1 týždeň pred | |
本组件抽象层为 AIGC 解构系统提供了统一的原子组件接口,支持 Agent、Tool 和 Function 三种类型的组件。所有组件都遵循单一职责原则,可以灵活组合构建复杂的工作流。
组件抽象层
├── agents/ # Agent 组件
│ └── base.py # Agent 基类定义
├── tools/ # Tool 组件
│ └── base.py # Tool 基类定义
├── functions/ # Function 组件
│ └── base.py # Function 基类定义
└── __init__.py # 统一导入接口
Agent 组件负责智能决策和复杂推理,基于 LangGraph 实现。
BaseComponent (抽象基类)
└── BaseAgent (Agent 基类)
├── BaseLLMAgent (LLM Agent)
├── BaseReactAgent (ReAct Agent)
└── BaseGraphAgent (Graph Agent)
Tool 组件提供外部能力集成,支持 LangGraph 的 @tool 装饰器。
from src.components import tool_registry
# 获取所有启用的工具
enabled_tools = tool_registry.get_enabled_tools()
Function 组件处理纯函数计算,无副作用的数据转换操作。
from src.components import BaseLLMAgent, BaseReactAgent
# 创建 LLM Agent
class PersonaAnalysisAgent(BaseLLMAgent):
def __init__(self):
super().__init__(
name="persona_analysis",
description="分析用户人设特征",
system_prompt="你是专业的人设分析师..."
)
def _build_messages(self, state):
# 实现消息构建逻辑
pass
def _update_state(self, state, response):
# 实现状态更新逻辑
pass
# 创建 ReAct Agent
class DeconstructionAgent(BaseReactAgent):
def __init__(self, tools):
super().__init__(
name="deconstruction",
description="执行内容解构",
tools=tools
)
def _extract_messages(self, state):
# 从状态中提取消息
pass
def _merge_response(self, state, response):
# 合并响应到状态
pass
from src.components import component_tool
from pydantic import BaseModel
class SearchInput(BaseModel):
query: str
limit: int = 10
@component_tool(
name="search_tool",
description="搜索相关信息",
category="search",
schema=SearchInput
)
def search_information(query: str, limit: int = 10) -> str:
\"\"\"搜索相关信息\"\"\"
# 实现搜索逻辑
return "搜索结果..."
from src.components import component_function
@component_function(
name="data_processor",
description="处理数据格式",
category="data_processing"
)
def process_data(input_data: dict, context: dict = None) -> dict:
\"\"\"处理数据格式\"\"\"
# 实现数据处理逻辑
return processed_data
from src.components import tool_registry, function_registry
from langgraph.graph import StateGraph
# 获取工具
search_tools = tool_registry.get_tools_by_category("search")
# 创建 Agent
agent = DeconstructionAgent(tools=[tool.get_tool() for tool in search_tools])
# 在工作流中使用
def agent_node(state):
return agent.process(state)
workflow = StateGraph(state_schema)
workflow.add_node("agent", agent_node)
每个组件只负责一个明确的功能,便于测试和维护。
所有同类型组件都实现相同的基础接口,便于替换和扩展。
支持运行时配置,可以根据不同场景调整组件行为。
提供注册表机制,统一管理组件的生命周期。
深度集成 LangGraph 框架,充分利用其状态管理和工作流能力。
@component_tool 装饰器@component_function 装饰器@tool)