Some checks failed
构建并部署 AI Agent 服务 / deploy (push) Failing after 6m5s
- 完善词典子图:添加生词本功能 - 创建API调用工具:dictionary_api - 添加前端格式化展示工具:result_formatter.py - 创建通讯录和资讯子图的基本结构 - 更新主图状态结构,添加MainGraphState - 添加subgraph_builder.py用于子图集成
105 lines
2.9 KiB
Python
105 lines
2.9 KiB
Python
"""
|
|
通讯录子图状态定义
|
|
Contact Subgraph State Definition
|
|
"""
|
|
|
|
from enum import Enum, auto
|
|
from typing import Optional, Dict, List, Any
|
|
from dataclasses import dataclass, field
|
|
|
|
|
|
class ContactAction(Enum):
|
|
"""通讯录操作类型"""
|
|
NONE = auto()
|
|
CONTACT_LIST = auto() # 联系人列表
|
|
CONTACT_ADD = auto() # 添加联系人
|
|
CONTACT_UPDATE = auto() # 更新联系人
|
|
CONTACT_DELETE = auto() # 删除联系人
|
|
EMAIL_LIST = auto() # 邮件列表
|
|
EMAIL_READ = auto() # 读取邮件
|
|
EMAIL_SEND = auto() # 发送邮件
|
|
SNIFF_CONTACTS = auto() # 智能嗅探
|
|
|
|
|
|
@dataclass
|
|
class Contact:
|
|
"""联系人数据结构"""
|
|
id: Optional[str] = None
|
|
name: str = ""
|
|
phone: str = ""
|
|
email: str = ""
|
|
company: str = ""
|
|
position: str = ""
|
|
notes: str = ""
|
|
created_at: Optional[str] = None
|
|
updated_at: Optional[str] = None
|
|
metadata: Dict[str, Any] = field(default_factory=dict)
|
|
|
|
|
|
@dataclass
|
|
class Email:
|
|
"""邮件数据结构"""
|
|
id: Optional[str] = None
|
|
subject: str = ""
|
|
sender: str = ""
|
|
recipients: List[str] = field(default_factory=list)
|
|
date: Optional[str] = None
|
|
body: str = ""
|
|
is_read: bool = False
|
|
mailbox: str = ""
|
|
metadata: Dict[str, Any] = field(default_factory=dict)
|
|
|
|
|
|
@dataclass
|
|
class ContactState:
|
|
"""通讯录子图状态"""
|
|
# ========== 输入 ==========
|
|
user_query: str = "" # 用户查询
|
|
user_id: str = "" # 用户ID
|
|
|
|
# 操作控制
|
|
action: ContactAction = ContactAction.NONE
|
|
action_params: Dict[str, Any] = field(default_factory=dict)
|
|
|
|
# ========== 执行过程 ==========
|
|
# 当前阶段
|
|
current_phase: str = "init" # init, processing, reviewing, done
|
|
|
|
# 联系人相关
|
|
contacts: List[Contact] = field(default_factory=list)
|
|
current_contact: Optional[Contact] = None
|
|
|
|
# 邮件相关
|
|
emails: List[Email] = field(default_factory=list)
|
|
current_email: Optional[Email] = None
|
|
|
|
# 邮件草稿(用于审核)
|
|
draft_subject: str = ""
|
|
draft_recipient: str = ""
|
|
draft_body: str = ""
|
|
|
|
# ========== 人工审核相关 ==========
|
|
pending_review: bool = False
|
|
review_type: str = "" # email_send, contact_delete
|
|
review_prompt: str = ""
|
|
review_approved: Optional[bool] = None
|
|
review_comment: str = ""
|
|
review_modified_content: str = ""
|
|
|
|
# ========== 智能嗅探 ==========
|
|
sniff_result: Optional[Dict[str, Any]] = None
|
|
sniffed_contacts: List[Contact] = field(default_factory=list)
|
|
sniff_confirmation_pending: bool = False
|
|
|
|
# ========== 结果 ==========
|
|
success: bool = False
|
|
error_message: str = ""
|
|
final_result: str = ""
|
|
result_data: Dict[str, Any] = field(default_factory=dict)
|
|
|
|
# ========== 元数据 ==========
|
|
start_time: Optional[str] = None
|
|
end_time: Optional[str] = None
|
|
duration: float = 0.0
|
|
debug_info: Dict[str, Any] = field(default_factory=dict)
|