Files
ai-g3sb-backman2.0/backend/agents/__pycache__/schema_linker.cpython-312.pyc
T

76 lines
6.1 KiB
Plaintext
Raw Normal View History

2026-04-10 16:52:07 +08:00
Ë
ðD×iãóŒ—dZddlZddlmZmZmZmZddlZddlm Z ddl
m Z ddl m
Z
eje«ZGd„d«Zy) u^
Schema Linker Agent - 表筛选专家
从大�数�表中识别与用户问题相关的表
éN)ÚDictÚListÚTupleÚOptional)Ú ChatAgent)Ú ChatModel)ÚSCHEMA_LINKER_SYSTEMc
ó¦—eZdZdZ ddedeefd„Z ddedeedee eefd e
d
e eeeff
d „Z d ed
e fd
„Z
ddeede
d
eefd„Zy)ÚSchemaLinkerAgentu¡
Schema Linker Agent
�责:
- 分�用户问题中的实体和�图
- 从候选表中筛选真正相关的表
- �供选择�由
NÚmodelÚsystem_messagecó„—|xst|_t|j|¬«|_tj d«y)u©
�始化Agent
Args:
model: CAMEL AI模型实例
system_message: 系统�示�(默认使用SCHEMA_LINKER_SYSTEM)
)r
r u$✅ SchemaLinkerAgent�始化完�N)r r
rÚagentÚloggerÚinfo)Úselfr r
s úagents/schema_linker.pyÚ__init__zSchemaLinkerAgent.__init__s9€ð-ÒDÔ0DˆÔÜØ×.Ñ.Øô
ˆŒ
ô � ‰ Ð:Õ;óÚquestionÚcandidate_tablesÚtable_metadataÚ
max_tablesÚreturnc óB—|r6dj|D�cgc]}d|›d|j|d«›�‘Œc}«}n"dj|D�cgc]}d|›�‘Œ c}«}ddlm}|j ||¬«} |j
j
|«} | jjj«}
|j|
«} | jdg«} | jd d
«}
| d |} tjd t| «›d
| ›�«| |
fScc}wcc}w#tj$r/}tj!d|›d
d d›�«|d |dfcYd }~Sd }~wt"$r5}tj!d|›�«|d |dt%|«›�fcYd }~Sd }~wwxYw)u9
选择相关表
Args:
question: 用户问题
candidate_tables: 候选表列表(粗筛结果)
table_metadata: 表元数� {表�: 注释}
max_tables: 最多返回表数�
Returns:
(相关表列表, 推��由)
Ú
z- z: u æ— æ��è¿°r)ÚSCHEMA_LINKER_USER)rÚ
table_listÚrelevant_tablesÚ reasoningÚNuSchemaLinker选中 u 张表: uJSONè§£æž�失败: u, 原始内容: éÈu%JSONè§£æž�失败,使用粗筛结果uAgent调用失败: u
Agent错误: )ÚjoinÚgetÚconfig.promptsrÚformatrÚstepÚmsgÚcontentÚstripÚ_parse_json_responserrÚlenÚjsonÚJSONDecodeErrorÚerrorÚ ExceptionÚstr)rrrrrÚtblrrÚpromptÚresponser)Úresultrr Úes rÚ
select_tableszSchemaLinkerAgent.select_tables.sÆ€ñ( ØŸ™á+ó$á+�Cð�S�E˜˜N×.Ñ.¨s°KÓ@ÐAÒBØ+ñ$ó‰Jð
Ÿ™Ñ:JÓ#KÑ:J°3 b¨¨¢JÐ:JÑ#KÓLˆJå5Ø#×*Ñ*ØØ!ð+ó
ˆð
 KØ—z‘z—‘ vÓ.ˆHØ—l‘l×*Ñ*×0Ñ0Ó2ˆGð×.Ñ.¨wÓ7ˆFà$Ÿj™jÐ):¸BÓ?ˆOØŸ
™
 ;°Ó3ˆIð.¨k¨zÐ:ˆOä �K‰KØ%¤c¨/Ó&:Ð%;¸9À_ÐDUÐVô
ð# IÐ-Ð -ùò;$ùò
$Løô4×#Ñ#ò ZÜ �L‰LÐ-¨a¨SÐ0@ÀÈÈ#ÀÀÐPÔ Qà# K ZÐ0Ð2YÐYÕ YûÜò KÜ �L‰LÐ.¨q¨cÐ2Ô 3Ø# K ZÐ0°MÄ#ÀaÃ&ÀÐ2JÐJÕ Jûð Kús<’DÁ DÁ5B D Ä FÄ3$EÅFÅ FÅ)*FÆFÆFr)có8—ddl}d|vr?|jd«dz}|jd|«}|dk7rV|||j«}nBd|vr>|jd«dz}|jd|«}|dk7r|||j«}|j|«S)uZ
解�Agent的JSON�应
处��能的markdown代��包裹
rNz```jsonéz```éÿÿÿÿé)r-Úfindr*Úloads)rr)r-ÚstartÚends rr+z&SchemaLinkerAgent._parse_json_responsejs¨€ó ð ˜Ñ Ø—L‘L Ó+¨aÑ/ˆEØ—,‘,˜u eÓ,ˆCØ�bŠyØ! %¨Ð,×2Ñ2Ó4‘Ø
�gÑ
Ø—L‘L Ó'¨!Ñ+ˆEØ—,‘,˜u eÓ,ˆCØ�bŠyØ! %¨Ð,×2Ñ2Ó4�àˆt�z‰z˜'Ó"Ð"rÚselected_tablesÚdepthcóš—t|«}|D]±}|j|«}|sŒ|jD],}|j|vsŒ|j |j«Œ.|j «D]M}|jD]<}|j|k(sŒ|j |vsŒ"|j |j «Œ>ŒOŒ³t|«S)u
通过外键关系扩展表(备选方案,也�在Orchestrator中完�)
Args: