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

90 lines
16 KiB
Plaintext
Raw Normal View History

2026-04-10 16:52:07 +08:00
Ë
2026-04-14 10:28:22 +08:00
ÊØi80ãóN—dZddlZddlZddlZddlZddlmZddlmZddl m
2026-04-10 16:52:07 +08:00
Z
ejejdd¬«eje«Zd Zd
2026-04-14 10:28:22 +08:00
„Zd efd „Zd
ed efd„Zd„Zded eefd„Zddedeefd„Zd„Zddedefd„Zddefd„Zd„Zedk(re«yy)uC
2026-04-10 16:52:07 +08:00
Text2SQL 多智能体系统 - CLI 入�
2026-04-14 10:28:22 +08:00
用法:python main.py
éN)ÚPath)ÚOptional)Ú load_dotenvz1%(asctime)s [%(levelname)s] %(name)s: %(message)sz%Y-%m-%d %H:%M:%S)ÚlevelÚformatÚdatefmtz"./data/models/Qwen3-Embedding-0.6Bcój—ttt«j«jdz «y)uU加载项目根目录 .env(与 main.py å�Œç›®å½•),供å�Žç»­ os.getenv 使用。z.envN)rrÚ__file__ÚresolveÚparent©óúAC:\Users\24019\Desktop\backman-camel\text2sql_agent_camel\main.pyÚ_load_project_envrs"€ä””X“×&Ñ&Ó(×/Ñ/°&Ñ8Õ9rÚreturncóR—tjdt«j«S)NÚEMBEDDING_MODEL_PATH)ÚosÚgetenvÚ_DEFAULT_EMBEDDING_PATHÚstripr
rrÚ_embedding_model_pathr!s€Ü
�9‰9Ð+Ô-DÓ E× KÑ KÓ MÐMrÚnamecóT—|xsdj«j«}|dvry|S)uTCLI / é…�置中的方言别å��统一为 sqlglot 方言å��(SQL Server -> tsqlï¼‰ã€‚Ú sqlserver)rÚmssqlÚtsql)Úlowerr)rÚns rÚresolve_sql_dialectr %s/€à
2026-04-10 16:52:07 +08:00
Ò �×#Ñ#Ó%×+Ñ+Ó-€AØÐ "Ñ"ØØ €Hrcó†—t«tjdd«j«j «dv}|r€t t
2026-04-14 10:28:22 +08:00
««}|j«�sÔtjd|›�«tjd«tjd|›d�«tjd«y tjd
d «j«}tjd d «j«}|xr%|jd
«xs|jd« }|r�n|r:tjdd «j«sÝtjd«y tjdd «j«stjd«y tjd«xstjdd «j«}|stjd«y tjdd «j«stjd«y t d«}|j«s.tjd|›�«tjd«y tjd«s+tjd«tjd«y y)u 环境检查ÚUSE_LOCAL_EMBEDDINGÚtrue)Ú1r#ÚyesÚonuEmbedding模型ä¸�存在: u请先下载模型:zG modelscope download --model 'Qwen/Qwen3-Embedding-0.6B' --local_dir 'Ú'uÁ或使用远程 Embedding API:USE_LOCAL_EMBEDDING=false,并é…�ç½® MODELSCOPE_API_KEYã€�或 OPENAI_API_KEY+OPENAI_EMBEDDING_MODEL(å�Šå�¯é€‰ OPENAI_BASE_URL)ã€�或 DASHSCOPE_*(百炼)FÚMODELSCOPE_API_KEYÚÚOPENAI_API_KEYzhttp://zhttps://ÚOPENAI_EMBEDDING_MODELu=USE_LOCAL_EMBEDDING=false 但未设置 OPENAI_EMBEDDING_MODELÚDASHSCOPE_API_KEYuwUSE_LOCAL_EMBEDDING=false 但未设置 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ú9./data/schemas/G3SB_MCDataDictionary_table_structure.jsonuSchema文件ä¸�存在: u7请将G3SB Schema文件放置在 ./data/schemas/ 目录ÚDEEPSEEK_API_KEYu'环境å�˜é‡� DEEPSEEK_API_KEY 未设置uB请在 .env 文件中é…�置,或 export DEEPSEEK_API_KEY=your_keyT) rrrrrrrÚexistsÚloggerÚwarningÚinfoÚ
startswith)Ú
2026-04-10 16:52:07 +08:00
use_local_embÚ
2026-04-14 10:28:22 +08:00
model_pathÚms_keyÚoa_keyÚ oa_key_okÚbaseÚ schema_paths rÚsetup_environmentr>-sB€äÔÜ—I‘IÐ3°VÓ<×BÑBÓD×JÑJÓLðQð€MñäÔ/Ó1Ó2ˆ
Ø× Ñ Õ"Ü �N‰NÐ7¸
2026-04-10 16:52:07 +08:00
°|ÐDÔ EÜ �K‰KÐ/Ô 0Ü �K‰Kð(Ø(2 |°1ð6ô
7ä �K‰KðXô
2026-04-14 10:28:22 +08:00
Yðä—‘Ð/°Ó4×:Ñ:Ó<ˆÜ—‘Ð+¨RÓ0×6Ñ6Ó8ˆØò
Ø × Ñ ˜iÓ (Ò I¨F×,=Ñ,=¸jÓ,Ið
ˆ ñ Ù Ù
2026-04-10 16:52:07 +08:00
Ü—9‘9Ð5°rÓ:×@Ñ@ÔBÜ—‘Ð^Ô_Øä—9‘9Ð0°"Ó5×;Ñ;Ô=Ü—‘ðRôðä— ‘ Ð.Ó/ÒV´2·9±9Ð=QÐSUÓ3V߉e‹gð
2026-04-14 10:28:22 +08:00
ñÜ—‘ÐYÔZØÜ—9‘9Ð.°Ó3×9Ñ9Ô;Ü—‘Ð:Ô;ØôÐRÓS€KØ × Ñ Ô Ü�‰Ð0°°
Ð>Ô?Ü� ‰ ÐMÔNØô �9‰9Ð'Ô (Ü�‰Ð@ÔAÜ� ‰ ÐXÔYØà 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)r?ÚpÚcands rÚ_default_g3sb_meta_pathrHlsP€ä ˆ^Ó€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-10 16:52:07 +08:00
t|«}tj d|›�«|rtj d|›�«|j ||¬«}|j
2026-04-14 10:28:22 +08:00
«}tj d|d›d|d ›d
|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.managerrKrHr3r5Úload_from_jsonÚget_statistics)r=rIrKÚmetaÚ
schema_mgrÚstatss rÚ load_schemarVusº€å,ð Ð 'ñ ä
$ [Ó
1ð ô
 ‡K�K�.  
Ð.Ô/Ù Ü� ‰ Ð)¨$¨Ð0Ô1à×-Ñ-Ø Dð.ó€Jð
× %Ñ %Ó '€EÜ
‡K�KØ
# E¨*Ñ$5Ð#6ð7Ø�NÑ#Ð
$ H¨U°?Ñ-CÐ,DÀIð Oôð
Ðrc ó—ddlm}ddlm}|jxst j d«xsdj«}|s td«‚t j d«xsdj«}||||jxsd |j|j¬
«}||||j|j|j|j |j |j"|j$¬ « }|S) u创建编排器r)ÚText2SQLOrchestrator)ÚDeepSeekConfigr1r)uh未é…�ç½® DeepSeek API Key:请在 .env 中设置 DEEPSEEK_API_KEY,或使用命令行å�‚æ•° --api-keyÚDEEPSEEK_BASE_URLzhttps://api.deepseek.comú
deepseek-chat)Úapi_keyÚbase_urlÚ
2026-04-10 16:52:07 +08:00
model_nameÚ temperatureÚ
2026-04-14 10:28:22 +08:00
max_tokens) Úschema_managerÚdeepseek_configÚembedding_model_pathÚvector_db_pathÚ max_retryÚuse_vector_searchÚfewshot_enabledÚ
fewshot_top_kÚfewshot_min_rating)Úagents.orchestratorrXÚllm.deepseek_clientrYr\rrrÚ
ValueErrorÚmodelr_r`Úembedding_modelÚ vector_dbreÚno_vector_searchÚ
no_fewshotrhri)rTÚargsrXrYr\r]ÚconfigÚ orchestrators rÚcreate_orchestratorru�sè€å8Ý2à�|‰|ÒBœrŸy™yÐ);Ó<ÒBÀ×IÑIÓK€GÙ Üð
1ó
ð
ô— ‘ Ð-Ó.ÒLÐ2L×SÑSÓU€Há
ØØØ—:‘:Ò0 Ø×$Ñ$Ø—?‘?ô €Fñ(Ø!ØØ!×1Ñ1Ø—~‘~Ø—.‘.Ø"×3Ñ3Ð3à ŸO™OÐ+Ø×(Ñ(Ø×2Ñ2ô €Lð ÐrÚquestionÚdialectc
2026-04-10 16:52:07 +08:00
óØ—ddl}ddlm}ddlm}m}t jd|›�«||«}|j|jk(r�|jxsd}t jd«td«td «td
2026-04-14 10:28:22 +08:00
«t|«td «|dd gggdd
|jji¬«S|j«} |j||d¬«}
|j«| z
} td«td«td
«|
jr3td| d›d|
j›d�«t|
2026-04-10 16:52:07 +08:00
j «n8td|
2026-04-14 10:28:22 +08:00
j›d�«|
j"D]} td| ›�«Œ|
j$r*td«|
j$D]}
td|
›�«Œtd|
j&›�«|
S)u å�•次查询rN)ÚGenerationResult)Ú DialogIntentÚclassify_dialogu [Q] 问题: r)u/[Q] æ„�图: conversation(跳过 SQL 生æˆ�)ú=
============================================================u2对� / �查询输入(未触� SQL 生�)z<============================================================u
2026-04-10 16:52:07 +08:00
使用表: []FÚ
2026-04-14 10:28:22 +08:00
dialog_intent)ÚsqlÚvalidÚerrorsÚwarningsÚ tables_usedÚattemptsÚmetadataé)rvrwÚtop_k_candidatesu
2026-04-10 16:52:07 +08:00
生�结果:u[OK] SQL (耗时 z.2fu
s, �试 u 次):
u[FAIL] 生�失败 (�试 u 次)z - u
2026-04-14 10:28:22 +08:00
[WARN] 警告:u
使用表: )ÚtimerjryÚutils.dialog_classifierrzr{r3r5ÚintentÚ CONVERSATIONÚreply_suggestionÚprintÚvalueÚgeneraterrƒr~r€r�r‚)rtrvrwr‡ryrzr{Ú
classifiedÚreplyÚstartÚresultÚelapsedÚerrÚws rÚ single_queryr–´s·€ãå4ßEä
‡K�K�,˜x˜jÐ)Ô*á  Ó*€JØ×јL×5Ñ5Ò5Ø×+Ñ+Ò1¨rˆÜ� ‰ ÐEÔFÜ
ˆoÔÜ
2026-04-10 16:52:07 +08:00
ÐBÔCÜ
ˆhŒÜ
2026-04-14 10:28:22 +08:00
ˆeŒ Ü
�Ô!ÙØØØØØØØ% |×'@Ñ'@×'FÑ'FÐGô
2026-04-10 16:52:07 +08:00
ð
2026-04-14 10:28:22 +08:00
ð