feat: 完善词典子图,添加API调用和前端格式化工具
Some checks failed
构建并部署 AI Agent 服务 / deploy (push) Failing after 6m5s

- 完善词典子图:添加生词本功能
- 创建API调用工具:dictionary_api
- 添加前端格式化展示工具:result_formatter.py
- 创建通讯录和资讯子图的基本结构
- 更新主图状态结构,添加MainGraphState
- 添加subgraph_builder.py用于子图集成
This commit is contained in:
2026-04-25 18:29:23 +08:00
parent 03ba825645
commit a14744f18b
17 changed files with 2057 additions and 18 deletions

View File

@@ -0,0 +1,104 @@
"""
通讯录子图状态定义
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)