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

124 lines
18 KiB
Plaintext
Raw Normal View History

2026-04-14 10:28:22 +08:00
Ë
£Wßië7ãóö—dZddlZddlZddlZddlZddlmZddlmZddl m
2026-04-14 10:28:22 +08:00
Z
ee «j«jZee«ej vr"ej j#dee««ej$ej&dd¬«ej(e«Zd efd
„Zd „Zd ed efd
2026-04-14 10:28:22 +08:00
„Zd„Zded eefd„Zddedeefd„Zd„Zddedefd„Zddefd„Zd„Z edk(re «yy)ud
Text2SQL 多智能体系统 - CLI 入�
用法:在项目根目录执行 python backend/main.py
éN)ÚPath)ÚOptional)Ú load_dotenvz1%(asctime)s [%(levelname)s] %(name)s: %(message)sz%Y-%m-%d %H:%M:%S)ÚlevelÚformatÚdatefmtÚreturncód—tt«j«jjS)uB仓库根目录(å�« data/ã€�.envã€�api_server.py 的目录)。)rÚ__file__ÚresolveÚparent©óúbackend/main.pyÚ
_repo_rootrs!€ä ”‹>× !Ñ !Ó #× *Ñ *× 1Ñ 1Ð1rcó0—tt«dz «y)u:加载项目根目录 .env,供å�Žç»­ os.getenv 使用。z.envN)rrrrrÚ_load_project_envr#s€ä”
“ ˜vÑ%Õ&rÚnamecóT—|xsdj«j«}|dvry|S)uTCLI / é…�置中的方言别å��统一为 sqlglot 方言å��(SQL Server -> tsqlï¼‰ã€‚Ú sqlserver)rÚmssqlÚtsql)ÚlowerÚstrip)rÚns rÚresolve_sql_dialectr(s/€à
Ò �×#Ñ#Ó%×+Ñ+Ó-€AØÐ "Ñ"ØØ €Hrcó*—t«tjdd«j«}tjdd«j«}|xr%|j d«xs|j d« }|r�n|r:tjdd«j«sÝt
j
d«ytjd d«j«st
j
d
«ytjd «xstjd d«j«}|st
j
d
«ytjdd«j«st
j
d«ytjdd«}t|«}|j«sõddl }t|dd«r6t|d«r*t|j«|z }|j«r|}|j«stj«|z }|j«s6tt«j!«j"j"}||z }|j«s1t|dd«r$t|j$«j"} | |z }|j«s.t
j
d|›�«t
j'd«ytjd«xsdj«j)«}
|
r|
dvrt
j
d|
«y|
dk(r=tjd«xsdj«sht
j
d«ytjd«xsdj«s+t
j
d«t
j'd«yt
j'd «t
j'd!|›�«t
2026-04-14 10:28:22 +08:00
j'd"|
xsd#«y$)%u 环境检查ÚMODELSCOPE_API_KEYÚÚOPENAI_API_KEYzhttp://zhttps://ÚOPENAI_EMBEDDING_MODELu@未设置 OPENAI_EMBEDDING_MODEL(远程 Embedding 模型å��)FÚDASHSCOPE_API_KEYuZ未设置 MODELSCOPE_API_KEYã€�OPENAI_API_KEY+OPENAI_EMBEDDING_MODEL 或 DASHSCOPE_API_KEYÚDASHSCOPE_BASE_URLÚDASHSCOPE_base_urlu8未设置 DASHSCOPE_BASE_URL(或 DASHSCOPE_base_url)ÚDASHSCOPE_MODELu未设置 DASHSCOPE_MODELÚ SCHEMA_PATHú9./data/schemas/G3SB_MCDataDictionary_table_structure.jsonrNÚfrozenÚ_MEIPASSuSchema文件ä¸�存在: u7请将G3SB Schema文件放置在 ./data/schemas/ 目录ÚLLM_SERVICE_CODE)ÚdeepseekÚopenaiu9未知 LLM_SERVICE_CODE=%r(仅支æŒ� deepseek/openai)r,u4LLM_SERVICE_CODE=openai 但 OPENAI_API_KEY 未设置ÚDEEPSEEK_API_KEYuM环境å�˜é‡� DEEPSEEK_API_KEY 未设置(默认 LLM_SERVICE_CODE=deepseek)uB请在 .env 文件中é…�置,或 export DEEPSEEK_API_KEY=your_keyu[OK] 环境检查通过z - Schema: z - LLM: %szdeepseek(auto)T)rÚosÚgetenvrÚ
startswithÚloggerÚwarningrÚ is_absoluteÚsysÚgetattrÚhasattrr)ÚexistsÚcwdr r r
2026-04-14 10:28:22 +08:00
Ú
executableÚinfor) Úms_keyÚoa_keyÚ oa_key_okÚbaseÚschema_path_strÚ schema_pathr4Úmeipass_schemaÚ
script_dirÚexe_dirÚllm_scs rÚsetup_environmentrE0sB€äÔÜ
�Y‰YÐ+¨RÓ
0×
6Ñ
6Ó
2026-04-14 10:28:22 +08:00
8€FÜ
�Y‰YÐ'¨Ó
,×
2Ñ
2Ó
4€FØòØ×ј)Ó$ÒE¨×(9Ñ(9¸*Ó(Eð€IñÙ Ù Ü�y‰yÐ1°2Ó6×<Ñ<Ô>Ü �N‰NÐ]Ô ^Øä�y‰yÐ,¨bÓ1×7Ñ7Ô9Ü �N‰NðNô
ðä �I‰IÐ*Ó +Ò R¬r¯y©yÐ9MÈrÓ/Rß
‰%‹'ð
ñÜ �N‰NÐUÔ VØÜ�y‰yÐ*¨BÓ/×5Ñ5Ô7Ü �N‰NÐ6Ô 7Øô—i‘i 
Ð/jÓk€OÜ�Ó'€Kð × "Ñ "Ô $ãÜ �3˜ %Ô (¬W°S¸*Ô-EÜ! #§,¡,Ó/°/ÑAˆNØ×$Ñ$Ô&Ø,� ð×!Ñ!Ô#ÜŸ(™(›* Ñ6ˆKð×!Ñ!Ô#Üœh›×/Ñ/Ó1×8Ñ8×?Ñ?ˆJØ$ Ñ6ˆKð×!Ñ!Ô#¬°°X¸uÔ(Eܘ3Ÿ>™>Ó*×1Ñ1ˆGØ! OÑ3ˆKà × Ñ Ô Ü�‰Ð0°°
Ð>Ô?Ü� ‰ ÐMÔNØô�i‰iÐ*Ó+Ò1¨r×
8Ñ
2026-04-14 10:28:22 +08:00
8Ó
:×
@Ñ
@Ó
B€FÙ
�&Ð 6Ñ6Ü�‰ÐRÐTZÔ[ØØ
�ÒÜ— ‘ Ð*Ó+Ò1¨r×8Ñ8Ô:Ü �N‰NÐQÔ RØä— ‘ Ð,Ó-Ò3°×:Ñ:Ô<Ü �N‰NÐjÔ kÜ �K‰KÐ\Ô ]Øä
‡K�KÐ)Ô+Ü
‡K�K�,˜{˜mÐ,Ô-Ü
‡K�KØØ Ò #Ð#ôð
rÚstructure_pathcó—t|«}d|jvry|j|jjdd«z }|j «r t |«SdS)uM若存在与 table_structure å�Œå��çš„ table_meta 文件则返回其路径。Útable_structureNÚ
table_meta)rrr
ÚreplaceÚis_fileÚstr)rFÚpÚcands rÚ_default_g3sb_meta_pathrOˆsP€ä ˆ^Ó€AØ §¡Ñ&ØØ �8‰8�a—f‘f—n‘nÐ%6¸ ÓEÑ E€DØŸ ™ œŒ3ˆt‹9Ð0¨DÐ0rr@Úschema_meta_pathc ó*—ddlm}|�|n
2026-04-14 10:28:22 +08:00
t|«}tj d|›�«|rtj d|›�«|j ||¬«}|j
«}tj d|d›d|d ›d
2026-04-14 10:28:22 +08:00
|d ›d �«|S)
uh加载 Schemaï¼›G3SB structure JSON 会自动å°�试é…�对 table_meta(å�¯ç”¨ --schema-meta 指定)。r)Ú
SchemaManageru加载Schema: u 表注释(meta): )Úg3sb_meta_pathu[OK] Schema加载完æˆ�: Údatabaseu, å…±Ú total_tablesu张表, Ú
total_columnsu 个字段)Úschema.managerrRrOr1r:Úload_from_jsonÚget_statistics)r@rPrRÚmetaÚ
schema_mgrÚstatss rÚ load_schemar]‘sº€å,ð Ð 'ñ ä
$ [Ó
1ð ô
2026-04-14 10:28:22 +08:00
 ‡K�K�.  
Ð.Ô/Ù Ü� ‰ Ð)¨$¨Ð0Ô1à×-Ñ-Ø Dð.ó€Jð
× %Ñ %Ó '€EÜ
‡K�KØ
# E¨*Ñ$5Ð#6ð7Ø�NÑ#Ð
$ H¨U°?Ñ-CÐ,DÀIð Oôð
Ðrc óþ—ddlm}ddlm}m}ddlm}tjdd«j«j«dv}t|dd «rd }|«}|d
k(r«|jxstjd «xsd j«}|s td
«‚tjd«xsdj«} ||| |jxsd|j|j ¬«}
|di|
j"¤Ž} n|d|j|j ¬«} ||| |j$|j&|j( |j* |j,|j.|¬« } | S)u创建编排器r)ÚText2SQLOrchestrator)Úcreate_llm_clientÚresolve_llm_service_code)ÚDeepSeekConfigÚTRANSLATE_EN_TO_ZHÚtrue)Ú0ÚfalseÚnoÚoffÚno_translate_enFr+r-ruh未é…�ç½® DeepSeek API Key:请在 .env 中设置 DEEPSEEK_API_KEY,或使用命令行å�‚æ•° --api-keyÚDEEPSEEK_BASE_URLzhttps://api.deepseek.comú
deepseek-chat)Úapi_keyÚbase_urlÚ
model_nameÚ temperatureÚ
2026-04-14 10:28:22 +08:00
max_tokensr,)rorp) Úschema_managerÚ
llm_clientÚvector_db_pathÚ max_retryÚuse_vector_searchÚfewshot_enabledÚ
fewshot_top_kÚfewshot_min_ratingÚtranslate_english_to_zh)r+)Úagents.orchestratorr_Ú
2026-04-14 10:28:22 +08:00
llm.routerr`raÚllm.deepseek_clientrbr.r/rrr5rlÚ
ValueErrorÚmodelrorpÚ__dict__Ú vector_dbrtÚno_vector_searchÚ
no_fewshotrwrx)
r[Úargsr_r`rarbÚ translate_enÚscrlrmÚcfgrrÚ orchestrators
rÚcreate_orchestratorrˆ«si€å8ßFÝ2ä—9‘9Ð1°6Ó:×@Ñ@ÓB×HÑHÓJðSð€Lô ˆtÐ&¨Ô.؈ á !Ó #€BØ ˆZÒØ—<‘<ÒF¤2§9¡9Ð-?Ó#@ÒFÀB×MÑMÓOˆÙÜð5óð
ô—I‘IÐ1Ó2ÒPÐ6P×WÑWÓYˆÙØØØ—z‘zÒ4 _Ø×(Ñ(Ø—‘ô 
ˆñ'ÑB°S·\±\ÑB‰
ñ'Ø Ø×(Ñ(Ø—‘ô
2026-04-14 10:28:22 +08:00
ˆ
ñ (Ø!ØØ—~‘~Ø—.‘.Ø"×3Ñ3Ð3à ŸO™OÐ+Ø×(Ñ(Ø×2Ñ2Ø ,ô €Lð ÐrÚquestionÚdialectc
ón—ddl}ddlm}ddlm}m}t jd|›�«|||j¬«}|j|jk(r�|jxsd}t jd«td «td
«td «t|«td «|dd
2026-04-14 10:28:22 +08:00
gggdd|jji¬«S|j«} |j||d¬«}
|j«| z
} td «td«td «|
2026-04-14 10:28:22 +08:00
jr3td| d›d|
j ›d�«t|
2026-04-14 10:28:22 +08:00
j"«n8td|
j ›d�«|
j$D]} td| ›�«Œ|
j&r*td«|
j&D]}
2026-04-14 10:28:22 +08:00
td|
›�«Œ|