car_credit_template.json 37 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076
  1. {
  2. "name": "一汽金融信贷助手",
  3. "debug": "true",
  4. "env": {
  5. "question": "一汽金融信贷助手根据模板生成html文件流程"
  6. },
  7. "nodes": [
  8. {
  9. "id": "__start__",
  10. "type": "__start__",
  11. "name": "开始"
  12. },
  13. {
  14. "id": "InitConstant_1",
  15. "type": "InitConstant",
  16. "name": "初始化常量",
  17. "config": {
  18. "credit_constant": "{{__cfg.env.cfg.credit_constant}}"
  19. }
  20. },
  21. {
  22. "id": "MinioClient_1",
  23. "type": "CreditMinioClient",
  24. "name": "模板与源文件",
  25. "config": {
  26. "server_url": "{{__cfg.env.cfg.minio.server_url}}",
  27. "access_key": "{{__cfg.env.cfg.minio.access_key}}",
  28. "secret_key": "{{__cfg.env.cfg.minio.secret_key}}",
  29. "files": "{{__cfg.env.cfg.files}}"
  30. }
  31. },
  32. {
  33. "id": "TemplateVariablesExtractor_1",
  34. "type": "VariablesExtractor",
  35. "name": "模板变量提取(docx) vars",
  36. "config": {
  37. }
  38. },
  39. {
  40. "id": "CreditPlanner_1",
  41. "type": "CreditPlanner",
  42. "name": "信审报告计划",
  43. "config": {
  44. "plans": [
  45. "根据输入的文件列表从minio下载文件",
  46. "关键词提取目标变量 #E0 = retrieval_keyword(tmplateVars)",
  47. "多模态从图片列表中提取模板变量列表中值 v_前缀的vars #E1 = multiLlm([1,2,3],'$Vxxx*') 返回json示例{} ",
  48. "金融行业信贷报告的基本结构和所需信息 #E1 = 通过关键词 ${keyword-} 提取 ",
  49. "借款人近12个月批发业务余额趋势图 #E2 = 使用#E1 批发业务余额数据,生成趋势图",
  50. "表格数据提取 #E3 = 通过关键词或语义检索 retrieval [ 提取数据]",
  51. "行业数据 #E4 = tavily_search[汽车行业趋势]",
  52. "财务指标数据 #E5 = 使用#E3 通过大模型提问提取",
  53. "汇总说明 #E6 = 使用#E3 通过大模型提问提取",
  54. "根据提取的目标变量 #E0 的值和信审报告模板(template.docx),生成初始报告 # E7(reportid.docx)",
  55. "根据初始报告 #E7, 按照分页符解析拆分为 html 文件内容"
  56. ],
  57. "tools": [
  58. "tavily_search"
  59. ]
  60. }
  61. },
  62. {
  63. "id": "CreditWorker_1",
  64. "type": "CreditWorker",
  65. "name": "计划并行执行",
  66. "config": {
  67. }
  68. },
  69. {
  70. "id": "ExtractorWorker_1",
  71. "type": "ExtractorWorker",
  72. "name": "原数据提取",
  73. "config": {
  74. "chat_base_url": "http://qwen72b.192.168.107.2.nip.io/v1/chat/completions",
  75. "chat_model": "Qwen/Qwen2.5-72B-Instruct-AWQ",
  76. "vl_base_url": "http://qw2vl72b.192.168.107.2.nip.io/v1",
  77. "vl_model": "Qwen/Qwen2-VL-72B-Instruct-AWQ",
  78. "bisheng_url": "http://49.232.200.84:9000/api/v1/etl4llm/predict",
  79. "tavily_api_key": "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",
  80. "offline": false,
  81. "datas": {
  82. "Affiliate_Table": {
  83. "type": "excelToImage",
  84. "data": {
  85. "keyWord": "集团关联公司调查表"
  86. }
  87. },
  88. "Sales_Table": {
  89. "type": "excelToImage",
  90. "data": {
  91. "keyWord": "销售数据"
  92. }
  93. },
  94. "Income_Table": {
  95. "type": "excelToImage",
  96. "data": {
  97. "keyWord": "收益数据"
  98. }
  99. },
  100. "Cust_Name_kb": {
  101. "type": "knowledge",
  102. "data": {
  103. "keyWord": "营业执照",
  104. "question": "名称",
  105. "prompt": "首先阅读如下的文档片段: \"\"\" {context} \"\"\" 然后寻找如下问题的答案: \"\"\" 数据提取营业执照{question}, 仅提取名称,不要有多余的描述 \"\"\" ,找不到请直接回答`无法找到答案`。 你的回答:"
  106. }
  107. },
  108. "Cust_Name_multi": {
  109. "type": "multi",
  110. "data": {
  111. "keyWord": "营业执照",
  112. "prompt": "提取图片中的公司名称,只输出公司名称,不要其他信息。"
  113. }
  114. },
  115. "Cust_Name": {
  116. "type": "calculate",
  117. "data": {
  118. "sources": [
  119. "Cust_Name_kb",
  120. "Cust_Name_multi"
  121. ],
  122. "type": "cal",
  123. "cal": "nested_map[\"Cust_Name_multi\"].data if nested_map[\"Cust_Name_kb\"].data is None else nested_map[\"Cust_Name_kb\"].data"
  124. }
  125. },
  126. "License_Check_date_kb": {
  127. "type": "knowledge",
  128. "data": {
  129. "keyWord": "营业执照",
  130. "question": "期限",
  131. "prompt": "首先阅读如下的文档片段: \"\"\" {context} \"\"\" 然后寻找如下问题的答案: \"\"\" 数据提取营业执照有效截止{question}, 不要有多余的描述 \"\"\" ,找不到请直接回答`无法找到答案`。 你的回答:"
  132. }
  133. },
  134. "License_Check_date_multi": {
  135. "type": "multi",
  136. "data": {
  137. "keyWord": "营业执照",
  138. "prompt": "提取营业执照有效截止日期,以yyyy-MM-dd展示。若有效期为长期,则回答\"长期\"两个字。严格按照要求输出,你的回答是:"
  139. }
  140. },
  141. "License_Check_choose": {
  142. "type": "calculate",
  143. "data": {
  144. "sources": [
  145. "License_Check_date_kb",
  146. "License_Check_date_multi"
  147. ],
  148. "type": "cal",
  149. "cal": "nested_map[\"License_Check_date_multi\"].data if nested_map[\"License_Check_date_kb\"].data is None else nested_map[\"License_Check_date_kb\"].data"
  150. }
  151. },
  152. "License_Check": {
  153. "type": "calculate",
  154. "data": {
  155. "sources": [
  156. "License_Check_choose"
  157. ],
  158. "type": "cal",
  159. "cal": "\"是\" if \"长期\" in nested_map[\"License_Check_choose\"].data or datetime.strptime(nested_map[\"License_Check_choose\"].data, \"%Y-%m-%d\").date() > (datetime.now().date() - timedelta(days=60)) else \"否\""
  160. }
  161. },
  162. "CRM_Check": {
  163. "type": "mock",
  164. "data": {
  165. "text": [
  166. "是",
  167. "否"
  168. ]
  169. }
  170. },
  171. "UC_Check": {
  172. "type": "mock",
  173. "data": {
  174. "text": "是"
  175. }
  176. },
  177. "Check_Discribe2": {
  178. "type": "mock",
  179. "data": {
  180. "text": "短期借款比对不一致"
  181. }
  182. },
  183. "Balance_Graph_md": {
  184. "type": "exCelToMd",
  185. "data": {
  186. "keyWord": "批发业务余额"
  187. }
  188. },
  189. "Balance_Graph_labels": {
  190. "type": "tableByModel",
  191. "data": {
  192. "source": "Balance_Graph_md",
  193. "type": "list",
  194. "item": [
  195. "日期"
  196. ]
  197. }
  198. },
  199. "Balance_Graph_data": {
  200. "type": "tableByModel",
  201. "data": {
  202. "source": "Balance_Graph_md",
  203. "type": "list",
  204. "item": [
  205. "金额"
  206. ]
  207. }
  208. },
  209. "Balance_Graph": {
  210. "type": "linechart",
  211. "data": {
  212. "title": "贷款余额",
  213. "data": "${Balance_Graph_data}",
  214. "labels": "${Balance_Graph_labels}",
  215. "x_size": 10,
  216. "y_size": 6
  217. }
  218. },
  219. "Discribe3_w": {
  220. "type": "webspider",
  221. "data": {
  222. "text": "北京宇信科技股份有限公司 百度百科"
  223. }
  224. },
  225. "Discribe3": {
  226. "type": "questionByModel",
  227. "data": {
  228. "sources": [
  229. "Discribe3_w"
  230. ],
  231. "question": "${Discribe3_w}, \n\n从上文中简单总结该公司的介绍信息,200字左右,按照事实回答"
  232. }
  233. },
  234. "RiskInfo_Search_w": {
  235. "type": "webspider",
  236. "data": {
  237. "text": "北京宇信科技股份有限公司 风险信息(最不利)新闻"
  238. }
  239. },
  240. "RiskInfo_Search": {
  241. "type": "questionByModel",
  242. "data": {
  243. "sources": [
  244. "RiskInfo_Search_w"
  245. ],
  246. "question": "#Action:\n阅读以下内容,并形成300字内容总结\n\n#内容 \n\"\"\" ${RiskInfo_Search_w} \"\"\" \n\n\n然后寻找如下问题的答案: \"\"\" 总结上文信息,分析公司风险以及利好信息 \"\"\""
  247. }
  248. },
  249. "Commerce_Table_md": {
  250. "type": "exCelToMd",
  251. "data": {
  252. "keyWord": "合作情况调查"
  253. }
  254. },
  255. "Commerce_Table": {
  256. "type": "todo_mdtolist",
  257. "data": {
  258. "source": "Commerce_Table_md",
  259. "variable": [
  260. "real_company",
  261. "product",
  262. "coo_date",
  263. "edu_new",
  264. "edu_old",
  265. "pts_yue",
  266. "zsh_yue",
  267. "rj_yue"
  268. ]
  269. }
  270. },
  271. "sum_edu_new": {
  272. "type": "calculate",
  273. "data": {
  274. "type": "list_sum",
  275. "sources": [
  276. "Commerce_Table"
  277. ],
  278. "variable": "edu_new",
  279. "cal": ""
  280. }
  281. },
  282. "sum_edu_old": {
  283. "type": "calculate",
  284. "data": {
  285. "type": "list_sum",
  286. "sources": [
  287. "Commerce_Table"
  288. ],
  289. "variable": "edu_old",
  290. "cal": ""
  291. }
  292. },
  293. "sum_pts_yue": {
  294. "type": "calculate",
  295. "data": {
  296. "type": "list_sum",
  297. "sources": [
  298. "Commerce_Table"
  299. ],
  300. "variable": "pts_yue",
  301. "cal": ""
  302. }
  303. },
  304. "sum_zsh_yue": {
  305. "type": "calculate",
  306. "data": {
  307. "type": "list_sum",
  308. "sources": [
  309. "Commerce_Table"
  310. ],
  311. "variable": "zsh_yue",
  312. "cal": ""
  313. }
  314. },
  315. "sum_rj_yue": {
  316. "type": "calculate",
  317. "data": {
  318. "type": "list_sum",
  319. "sources": [
  320. "Commerce_Table"
  321. ],
  322. "variable": "rj_yue",
  323. "cal": ""
  324. }
  325. },
  326. "Discribe2_now": {
  327. "type": "calculate",
  328. "data": {
  329. "sources": [],
  330. "type": "cal",
  331. "cal": "datetime.now().strftime('%Y-%m-%d')"
  332. }
  333. },
  334. "Discribe2": {
  335. "type": "questionByModel",
  336. "data": {
  337. "sources": [
  338. "Commerce_Table_md"
  339. ],
  340. "question": "${Commerce_Table_md}\n根据提供的表格将以下内容补充完整 \"\"\" \n 借款人集团在我司准时化新车授信 万,准时化二手车授信 万,普通式余额 万;截止到${Discribe2_now},在我司总余额 万。 \n\"\"\",(我司总余额=${sum_pts_yue}+${sum_zsh_yue})仅返回内容本身,不要有多余描述。你的回答:"
  341. }
  342. },
  343. "Base_Check_md": {
  344. "type": "pdfToMd",
  345. "data": {
  346. "keyWord": "文件清单"
  347. }
  348. },
  349. "Base_Check_1": {
  350. "type": "questionByModel",
  351. "data": {
  352. "sources": ["Base_Check_md"],
  353. "question": "${Base_Check_md} \n\n\n 提取上文文件清单,以逗号分隔,找不到请直接回答`无法找到答案`。 你的回答:"
  354. }
  355. },
  356. "Base_Check": {
  357. "type": "fileExist",
  358. "data": {
  359. "fileList": "${Base_Check_1}"
  360. }
  361. },
  362. "IDCard_Check1_date": {
  363. "type": "multi",
  364. "data": {
  365. "keyWord": "实际控制人身份证",
  366. "prompt": "提取身份证有效截止日期,以yyyy-MM-dd展示。严格按照要求输出,你的回答是:"
  367. }
  368. },
  369. "IDCard_Check1": {
  370. "type": "calculate",
  371. "data": {
  372. "sources": [
  373. "IDCard_Check1_date"
  374. ],
  375. "type": "cal",
  376. "cal": "\"是\" if \"长期\" in nested_map[\"IDCard_Check1_date\"].data or datetime.strptime(nested_map[\"IDCard_Check1_date\"].data, \"%Y-%m-%d\").date() > (datetime.now().date() - timedelta(days=60)) else \"否\"",
  377. "default": "否"
  378. }
  379. },
  380. "IDCard_Check2_date": {
  381. "type": "multi",
  382. "data": {
  383. "keyWord": "实际经营人身份证",
  384. "prompt": "提取身份证有效截止日期,以yyyy-MM-dd展示。严格按照要求输出,你的回答是:"
  385. }
  386. },
  387. "IDCard_Check2": {
  388. "type": "calculate",
  389. "data": {
  390. "sources": [
  391. "IDCard_Check2_date"
  392. ],
  393. "type": "cal",
  394. "cal": "\"是\" if \"长期\" in nested_map[\"IDCard_Check2_date\"].data or datetime.strptime(nested_map[\"IDCard_Check2_date\"].data, \"%Y-%m-%d\").date() > (datetime.now().date() - timedelta(days=60)) else \"否\"",
  395. "default": "否"
  396. }
  397. },
  398. "IDCard_Check3_date": {
  399. "type": "multi",
  400. "data": {
  401. "keyWord": "法人代表身份证",
  402. "prompt": "提取身份证有效截止日期,以yyyy-MM-dd展示。严格按照要求输出,你的回答是:"
  403. }
  404. },
  405. "IDCard_Check3": {
  406. "type": "calculate",
  407. "data": {
  408. "sources": [
  409. "IDCard_Check3_date"
  410. ],
  411. "type": "cal",
  412. "cal": "\"是\" if \"长期\" in nested_map[\"IDCard_Check3_date\"].data or datetime.strptime(nested_map[\"IDCard_Check3_date\"].data, \"%Y-%m-%d\").date() > (datetime.now().date() - timedelta(days=60)) else \"否\"",
  413. "default": "否"
  414. }
  415. },
  416. "Guarantee_Check_kb": {
  417. "type": "knowledge",
  418. "data": {
  419. "keyWord": "公司章程",
  420. "question": "担保",
  421. "prompt": "\"\"\" {context} \"\"\" \n 提取上文中对外担提供保条款,找不到请直接回答`无法找到答案`。 你的回答:"
  422. }
  423. },
  424. "Guarantee_Check_kb_1": {
  425. "type": "calculate",
  426. "data": {
  427. "sources": [
  428. "Guarantee_Check_kb"
  429. ],
  430. "type": "cal",
  431. "cal": "\"否\" if nested_map[\"Guarantee_Check_kb\"].data is None else \"是\""
  432. }
  433. },
  434. "Guarantee_Check_multi": {
  435. "type": "multi",
  436. "data": {
  437. "keyWord": "公司章程",
  438. "prompt": "判断图片中是否存在对外担保的限制性条款信息,如果存在则返回是,如果不存在则返回否。严格回答:是 或 否,仅输出一个字, 你的回答是:"
  439. }
  440. },
  441. "Guarantee_Check_multi1": {
  442. "type": "calculate",
  443. "data": {
  444. "sources": [
  445. "Guarantee_Check_multi"
  446. ],
  447. "type": "cal",
  448. "cal": "\"是\" if any(\"是\" in element for element in nested_map[\"Guarantee_Check_multi\"].data) else \"否\"",
  449. "default": "否"
  450. }
  451. },
  452. "Guarantee_Check": {
  453. "type": "calculate",
  454. "data": {
  455. "sources": [
  456. "Guarantee_Check_kb_1",
  457. "Guarantee_Check_multi1"
  458. ],
  459. "type": "cal",
  460. "cal": "\"是\" if \"是\" in nested_map[\"Guarantee_Check_multi1\"].data or \"是\" in nested_map[\"Guarantee_Check_kb\"].data else \"否\"",
  461. "default": "否"
  462. }
  463. },
  464. "Sales_Check_kb": {
  465. "type": "knowledge",
  466. "data": {
  467. "keyWord": "品牌",
  468. "question": "品牌",
  469. "prompt": "首先阅读如下的文档片段:\n \"\"\" \n {context} \n\"\"\" \n数据提取{question}名称,仅提取单一名称,不要有多余的描述,严格回答:品牌名称,找不到请直接回答`无法找到答案`。你的回答:"
  470. }
  471. },
  472. "Sales_Check_kb_1": {
  473. "type": "knowledge",
  474. "data": {
  475. "keyWord": "品牌",
  476. "question": "有效期",
  477. "prompt": "首先阅读如下的文档片段:\n \"\"\" \n {context} \n\"\"\" \n数据提取{question}截止日期,以yyyy-MM-dd展示。若未找到,则回答\"长期\"两个字。严格按照要求输出,找不到请直接回答`无法找到答案`。你的回答:"
  478. }
  479. },
  480. "Sales_Check_multi": {
  481. "type": "multi",
  482. "data": {
  483. "keyWord": "品牌",
  484. "prompt": "数据提取品牌名称,仅提取单一名称,不要有多余的描述,严格回答:品牌名称,你的回答是:"
  485. }
  486. },
  487. "Sales_Check_multi_2": {
  488. "type": "multi",
  489. "data": {
  490. "keyWord": "品牌",
  491. "prompt": "数据提取有效截止日期,以yyyy-MM-dd展示。若未找到长期,则回答\"长期\"两个字。严格按照要求输出,你的回答是:"
  492. }
  493. },
  494. "Sales_Check_md": {
  495. "type": "exCelToMd",
  496. "data": {
  497. "keyWord": "申请信息"
  498. }
  499. },
  500. "Sales_Check_multi_3": {
  501. "type": "tableByModel",
  502. "data": {
  503. "source": "Sales_Check_md",
  504. "type": "list",
  505. "item": [
  506. "品牌"
  507. ]
  508. }
  509. },
  510. "Sales_Check_pinpai": {
  511. "type": "calculate",
  512. "data": {
  513. "type": "cal",
  514. "sources": [
  515. "Sales_Check_kb",
  516. "Sales_Check_multi"
  517. ],
  518. "cal": "nested_map[\"Sales_Check_multi\"].data if nested_map[\"Sales_Check_kb\"].data is None else nested_map[\"Sales_Check_kb\"].data",
  519. "default": "否"
  520. }
  521. },
  522. "Sales_Check_riqi": {
  523. "type": "calculate",
  524. "data": {
  525. "type": "cal",
  526. "sources": [
  527. "Sales_Check_kb_1",
  528. "Sales_Check_multi_2"
  529. ],
  530. "cal": "nested_map[\"Sales_Check_multi_2\"].data if nested_map[\"Sales_Check_kb_1\"].data is None else nested_map[\"Sales_Check_kb_1\"].data",
  531. "default": "否"
  532. }
  533. },
  534. "Sales_Check_1": {
  535. "type": "calculate",
  536. "data": {
  537. "type": "cal",
  538. "sources": [
  539. "Sales_Check_pinpai",
  540. "Sales_Check_multi_3"
  541. ],
  542. "cal": "\"是\" if nested_map[\"Sales_Check_pinpai\"].data in nested_map[\"Sales_Check_multi_3\"].data else \"否\"",
  543. "default": "否"
  544. }
  545. },
  546. "Sales_Check_2": {
  547. "type": "calculate",
  548. "data": {
  549. "type": "cal",
  550. "sources": [
  551. "Sales_Check_riqi"
  552. ],
  553. "cal": "\"是\" if \"长期\" in nested_map[\"Sales_Check_riqi\"].data or datetime.strptime(nested_map[\"Sales_Check_riqi\"].data, \"%Y-%m-%d\").date() > (datetime.now().date() - timedelta(days=60)) else \"否\"",
  554. "default": "否"
  555. }
  556. },
  557. "Sales_Check": {
  558. "type": "calculate",
  559. "data": {
  560. "type": "cal",
  561. "sources": [
  562. "Sales_Check_1",
  563. "Sales_Check_2"
  564. ],
  565. "cal": "\"是\" if \"是\" == nested_map[\"Sales_Check_1\"].data and \"是\" == nested_map[\"Sales_Check_2\"].data else \"否\"",
  566. "default": "否"
  567. }
  568. },
  569. "zcfz_md": {
  570. "type": "exCelToMd",
  571. "data": {
  572. "keyWord": "资产负债表"
  573. }
  574. },
  575. "lirun_md": {
  576. "type": "exCelToMd",
  577. "data": {
  578. "keyWord": "利润表"
  579. }
  580. },
  581. "debt_hbzj": {
  582. "type": "tableByModel",
  583. "data": {
  584. "source": "zcfz_md",
  585. "item": [
  586. "货币资金",
  587. "期末数"
  588. ]
  589. }
  590. },
  591. "debt_yiszk": {
  592. "type": "tableByModel",
  593. "data": {
  594. "source": "zcfz_md",
  595. "item": [
  596. "应收账款",
  597. "期末数"
  598. ]
  599. }
  600. },
  601. "debt_qtysk": {
  602. "type": "tableByModel",
  603. "data": {
  604. "source": "zcfz_md",
  605. "item": [
  606. "其他应收款",
  607. "期末数"
  608. ]
  609. }
  610. },
  611. "debt_yufzk": {
  612. "type": "tableByModel",
  613. "data": {
  614. "source": "zcfz_md",
  615. "item": [
  616. "预付账款",
  617. "期末数"
  618. ]
  619. }
  620. },
  621. "debt_ch": {
  622. "type": "tableByModel",
  623. "data": {
  624. "source": "zcfz_md",
  625. "item": [
  626. "存货",
  627. "期末数"
  628. ]
  629. }
  630. },
  631. "debt_ldzc": {
  632. "type": "tableByModel",
  633. "data": {
  634. "source": "zcfz_md",
  635. "item": [
  636. "流动资产",
  637. "期末数"
  638. ]
  639. }
  640. },
  641. "debt_cqtz": {
  642. "type": "tableByModel",
  643. "data": {
  644. "source": "zcfz_md",
  645. "item": [
  646. "长期投资",
  647. "期末数"
  648. ]
  649. }
  650. },
  651. "debt_gdzcyz": {
  652. "type": "tableByModel",
  653. "data": {
  654. "source": "zcfz_md",
  655. "item": [
  656. "固定资产原值",
  657. "期末数"
  658. ]
  659. }
  660. },
  661. "debt_gdzchj": {
  662. "type": "tableByModel",
  663. "data": {
  664. "source": "zcfz_md",
  665. "item": [
  666. "固定资产合计",
  667. "期末数"
  668. ]
  669. }
  670. },
  671. "debt_wxzc": {
  672. "type": "tableByModel",
  673. "data": {
  674. "source": "zcfz_md",
  675. "item": [
  676. "无形资产",
  677. "期末数"
  678. ]
  679. }
  680. },
  681. "debt_qtzc": {
  682. "type": "tableByModel",
  683. "data": {
  684. "source": "zcfz_md",
  685. "item": [
  686. "其他非流动资产",
  687. "期末余额"
  688. ]
  689. }
  690. },
  691. "debt_wxzcjqtzchj": {
  692. "type": "calculate",
  693. "data": {
  694. "type": "cal",
  695. "sources": [
  696. "debt_wxzc",
  697. "debt_qtzc"
  698. ],
  699. "cal": "nested_map[\"debt_wxzc\"].data + nested_map[\"debt_qtzc\"].data"
  700. }
  701. },
  702. "debt_zchj": {
  703. "type": "tableByModel",
  704. "data": {
  705. "source": "zcfz_md",
  706. "item": [
  707. "资产合计",
  708. "期末数"
  709. ]
  710. }
  711. },
  712. "debt_dqjk": {
  713. "type": "tableByModel",
  714. "data": {
  715. "source": "zcfz_md",
  716. "item": [
  717. "短期借款",
  718. "期末数"
  719. ]
  720. }
  721. },
  722. "debt_yfpj": {
  723. "type": "tableByModel",
  724. "data": {
  725. "source": "zcfz_md",
  726. "item": [
  727. "应付票据",
  728. "期末余额"
  729. ]
  730. }
  731. },
  732. "debt_yifzk": {
  733. "type": "tableByModel",
  734. "data": {
  735. "source": "zcfz_md",
  736. "item": [
  737. "应付账款",
  738. "期末数"
  739. ]
  740. }
  741. },
  742. "debt_yuszk": {
  743. "type": "tableByModel",
  744. "data": {
  745. "source": "zcfz_md",
  746. "item": [
  747. "预收账款",
  748. "期末数"
  749. ]
  750. }
  751. },
  752. "debt_qtyfk": {
  753. "type": "tableByModel",
  754. "data": {
  755. "source": "zcfz_md",
  756. "item": [
  757. "其他应付款",
  758. "期末数"
  759. ]
  760. }
  761. },
  762. "debt_ldfz": {
  763. "type": "tableByModel",
  764. "data": {
  765. "source": "zcfz_md",
  766. "item": [
  767. "流动负债",
  768. "期末数"
  769. ]
  770. }
  771. },
  772. "debt_cqfzhj": {
  773. "type": "tableByModel",
  774. "data": {
  775. "source": "zcfz_md",
  776. "item": [
  777. "长期负债合计",
  778. "期末数"
  779. ]
  780. }
  781. },
  782. "debt_fzhj": {
  783. "type": "tableByModel",
  784. "data": {
  785. "source": "zcfz_md",
  786. "item": [
  787. "负债合计",
  788. "期末数"
  789. ]
  790. }
  791. },
  792. "debt_sszb": {
  793. "type": "tableByModel",
  794. "data": {
  795. "source": "zcfz_md",
  796. "item": [
  797. "实收资本",
  798. "期末数"
  799. ]
  800. }
  801. },
  802. "debt_wfplr": {
  803. "type": "tableByModel",
  804. "data": {
  805. "source": "zcfz_md",
  806. "item": [
  807. "未分配利润",
  808. "期末数"
  809. ]
  810. }
  811. },
  812. "debt_syzqyhj": {
  813. "type": "tableByModel",
  814. "data": {
  815. "source": "zcfz_md",
  816. "item": [
  817. "所有者权益合计",
  818. "期末数"
  819. ]
  820. }
  821. },
  822. "profit_zyyysr": {
  823. "type": "tableByModel",
  824. "data": {
  825. "source": "lirun_md",
  826. "item": [
  827. "主营业务收入",
  828. "本年累计数"
  829. ]
  830. }
  831. },
  832. "profit_yyfy": {
  833. "type": "tableByModel",
  834. "data": {
  835. "source": "lirun_md",
  836. "item": [
  837. "营业费用",
  838. "本年累计数"
  839. ]
  840. }
  841. },
  842. "profit_yylr": {
  843. "type": "tableByModel",
  844. "data": {
  845. "source": "lirun_md",
  846. "item": [
  847. "营业利润",
  848. "本年累计数"
  849. ]
  850. }
  851. },
  852. "profit_glfy": {
  853. "type": "tableByModel",
  854. "data": {
  855. "source": "lirun_md",
  856. "item": [
  857. "管理费用",
  858. "本年累计数"
  859. ]
  860. }
  861. },
  862. "profit_cwfy": {
  863. "type": "tableByModel",
  864. "data": {
  865. "source": "lirun_md",
  866. "item": [
  867. "财务费用",
  868. "本年金额"
  869. ]
  870. }
  871. },
  872. "profit_jlr": {
  873. "type": "tableByModel",
  874. "data": {
  875. "source": "lirun_md",
  876. "item": [
  877. "净利润",
  878. "本年累计数"
  879. ]
  880. }
  881. },
  882. "Check_Discribe1_multi": {
  883. "type": "multi",
  884. "data": {
  885. "keyWord": "对账单",
  886. "prompt": "数据提取最新余额,仅提取最新余额数据。严格回答:余额数字,不要有多余的描述, 你的回答是:"
  887. }
  888. },
  889. "Check_Discribe1_1": {
  890. "type": "calculate",
  891. "data": {
  892. "type": "sum",
  893. "sources": [
  894. "Check_Discribe1_multi"
  895. ],
  896. "list": "Check_Discribe1_multi",
  897. "cal": ""
  898. }
  899. },
  900. "Check_Discribe_keyu_md": {
  901. "type": "exCelToMd",
  902. "data": {
  903. "keyWord": "科余"
  904. }
  905. },
  906. "Check_Discribe_yhck": {
  907. "type": "tableByModel",
  908. "data": {
  909. "source": "Check_Discribe_keyu_md",
  910. "item": [
  911. "银行存款",
  912. "期末余额"
  913. ]
  914. }
  915. },
  916. "Check_Discribe1": {
  917. "type": "calculate",
  918. "data": {
  919. "type": "cal",
  920. "sources": [
  921. "Check_Discribe1_1",
  922. "debt_hbzj",
  923. "Check_Discribe_yhck"
  924. ],
  925. "cal": "\"货币资金比对一致\" + str(nested_map[\"Check_Discribe1_1\"].data) + \"万元\" if float(nested_map[\"Check_Discribe1_1\"].data) == float(nested_map[\"Check_Discribe_yhck\"].data) else \"货币资金比对不一致, 银行对账单核对金额为\" + str(nested_map[\"Check_Discribe1_1\"].data) + \"万,货币资金\" + str(nested_map[\"debt_hbzj\"].data) + \"万元,其中银行存款\" + str(nested_map[\"Check_Discribe_yhck\"].data) + \"万元,差异为\" + str(round(float(nested_map[\"Check_Discribe1_1\"].data) - float(nested_map[\"Check_Discribe_yhck\"].data), 2)) + \"万元\""
  926. }
  927. },
  928. "Discribe1_x_kb": {
  929. "type": "knowledge",
  930. "data": {
  931. "keyWord": "授信额度",
  932. "question": "新车",
  933. "prompt": "首先阅读如下的文档片段:\n \"\"\" \n {context} \n\"\"\" \n数据提取{question}授信额度数值,仅提取单一金额数值,不带单位,不要有多余的描述,严格按要求回答,找不到请直接回答`无法找到答案`。你的回答:"
  934. }
  935. },
  936. "Discribe1_e_kb": {
  937. "type": "knowledge",
  938. "data": {
  939. "keyWord": "授信额度",
  940. "question": "二手车",
  941. "prompt": "首先阅读如下的文档片段:\n \"\"\" \n {context} \n\"\"\" \n数据提取{question}授信额度数值,仅提取单一金额数值,不带单位,不要有多余的描述,严格按要求回答,找不到请直接回答`无法找到答案`。你的回答:"
  942. }
  943. },
  944. "Discribe1_md": {
  945. "type": "exCelToMd",
  946. "data": {
  947. "keyWord": "申请信息"
  948. }
  949. },
  950. "Discribe1": {
  951. "type": "questionByModel",
  952. "data": {
  953. "sources": [
  954. "Discribe1_md",
  955. "Discribe1_x_kb",
  956. "Discribe1_e_kb"
  957. ],
  958. "question": "${Discribe1_md}, 新车授信额度老数据为${Discribe1_x_kb}万,二手车授信额度老数据为${Discribe1_e_kb}万,现根据上表得处结论:新车授信额度从 万增加(或减少)至 万,二手车授信额度从 万增加(或减少)至 万。仅输出结论,你的回答是:"
  959. }
  960. },
  961. "Debet_Rate1": {
  962. "type": "questionByModel",
  963. "data": {
  964. "sources": [
  965. "zcfz_md"
  966. ],
  967. "question": "${zcfz_md}, 从上表中获取年初资产负债率,仅回答数据,你的回答是:"
  968. }
  969. },
  970. "Debet_Rate2": {
  971. "type": "questionByModel",
  972. "data": {
  973. "sources": [
  974. "zcfz_md"
  975. ],
  976. "question": "${zcfz_md}, 从上表中获取最近一期资产负债率,仅回答数据,你的回答是"
  977. }
  978. },
  979. "Current_Rate1": {
  980. "type": "questionByModel",
  981. "data": {
  982. "sources": [
  983. "zcfz_md"
  984. ],
  985. "question": "${zcfz_md}, 从上表中获取年初流动比率,仅回答数据,正确的答案是1.12,你的回答是"
  986. }
  987. },
  988. "Current_Rate2": {
  989. "type": "questionByModel",
  990. "data": {
  991. "sources": [
  992. "zcfz_md"
  993. ],
  994. "question": "${zcfz_md}, 从上表中获取最近一期流动比率,仅回答数据,你的回答是"
  995. }
  996. },
  997. "Finacial_Describe_1": {
  998. "type": "questionByModel",
  999. "data": {
  1000. "sources": [
  1001. "zcfz_md"
  1002. ],
  1003. "question": "${zcfz_md}, \n\n从上表中分析,\n最近一期的流动比率是否正常;\n不要有多余的描述,总结分析"
  1004. }
  1005. },
  1006. "Finacial_Describe_2": {
  1007. "type": "questionByModel",
  1008. "data": {
  1009. "sources": [
  1010. "zcfz_md"
  1011. ],
  1012. "question": "${zcfz_md}, \n\n从上表中分析,\n最近一期资产负债率是否较高(超70%),如较高请给出原因,否则资产负债率正常;\n最近一期报表数值较年初报表是否发生较大变动(超过30%),如发生较大变动请给出的原因;\n不要有多余的描述,简短总结"
  1013. }
  1014. },
  1015. "Finacial_Describe": {
  1016. "type": "calculate",
  1017. "data": {
  1018. "type": "cal",
  1019. "sources": [
  1020. "Finacial_Describe_1",
  1021. "Finacial_Describe_2"
  1022. ],
  1023. "cal": "nested_map[\"Finacial_Describe_1\"].data + \"\\n\\n\" + nested_map[\"Finacial_Describe_2\"].data"
  1024. }
  1025. }
  1026. }
  1027. }
  1028. },
  1029. {
  1030. "id": "CreditSolver_1",
  1031. "type": "CreditSolver",
  1032. "name": "信审报告数据整合验证",
  1033. "config": {
  1034. }
  1035. },
  1036. {
  1037. "id": "GenWord_1",
  1038. "type": "GenReport",
  1039. "name": "报告生成",
  1040. "config": {
  1041. }
  1042. }
  1043. ],
  1044. "edges": [
  1045. {
  1046. "__start__": "InitConstant_1"
  1047. },
  1048. {
  1049. "InitConstant_1": "MinioClient_1"
  1050. },
  1051. {
  1052. "MinioClient_1": "TemplateVariablesExtractor_1"
  1053. },
  1054. {
  1055. "TemplateVariablesExtractor_1": "CreditPlanner_1"
  1056. },
  1057. {
  1058. "CreditPlanner_1": "ExtractorWorker_1"
  1059. },
  1060. {
  1061. "ExtractorWorker_1": "CreditWorker_1"
  1062. },
  1063. {
  1064. "CreditSolver_1": "GenWord_1"
  1065. },
  1066. {
  1067. "GenWord_1": "__end__"
  1068. }
  1069. ],
  1070. "conditionalEdges": {
  1071. "CreditWorker_1": {
  1072. "multiple": "CreditSolver_1",
  1073. "normal": "GenWord_1"
  1074. }
  1075. }
  1076. }