mirror of
https://github.com/langgenius/dify.git
synced 2024-11-16 11:42:29 +08:00
Feat/add json process tool (#5555)
This commit is contained in:
parent
d37ee498cd
commit
73ce945d40
|
@ -23,7 +23,6 @@ RUN apt-get update \
|
|||
COPY pyproject.toml poetry.lock ./
|
||||
RUN poetry install --sync --no-cache --no-root
|
||||
|
||||
|
||||
# production stage
|
||||
FROM base AS production
|
||||
|
||||
|
|
358
api/core/tools/provider/builtin/json_process/_assets/icon.svg
Normal file
358
api/core/tools/provider/builtin/json_process/_assets/icon.svg
Normal file
|
@ -0,0 +1,358 @@
|
|||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="800px" height="800px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
|
||||
<path fill="#000000" opacity="1.000000" stroke="none"
|
||||
d="
|
||||
M440.000000,513.000000
|
||||
C318.311890,513.000000 196.623810,513.000000 74.361206,512.639771
|
||||
C64.559074,509.683868 57.815937,503.042450 57.833218,492.112061
|
||||
C58.078167,337.217957 58.013832,182.323349 57.973289,27.428858
|
||||
C57.970104,15.265683 62.303032,5.957079 74.000000,1.000000
|
||||
C163.021439,1.000000 252.042862,1.000000 341.625610,1.348149
|
||||
C345.142975,3.645721 348.528595,5.163025 350.990173,7.609907
|
||||
C383.608673,40.033493 416.110992,72.574051 448.602142,105.125519
|
||||
C452.926758,109.458168 456.021118,114.420891 456.019745,120.909180
|
||||
C455.993103,245.722153 456.014618,370.535126 455.897339,495.348022
|
||||
C455.894958,497.899719 454.591217,500.555237 453.492096,502.979889
|
||||
C450.875824,508.751221 444.846985,510.119446 440.000000,513.000000
|
||||
M366.978119,199.901535
|
||||
C369.117279,207.612961 366.369415,211.534317 358.493073,213.066147
|
||||
C347.313721,215.240341 341.474335,220.552567 341.074768,233.635300
|
||||
C340.718811,245.290588 341.031738,256.965515 340.962433,268.631287
|
||||
C340.953094,270.204163 340.549042,271.804688 340.135101,273.340454
|
||||
C336.846710,285.540741 327.903870,291.009766 316.258209,292.941132
|
||||
C311.229645,293.775116 305.727173,289.384583 305.007721,284.516754
|
||||
C304.352203,280.081848 308.674255,274.864807 313.719055,274.001587
|
||||
C320.467743,272.846802 322.964508,270.011108 322.988403,263.233551
|
||||
C323.030060,251.400864 322.963043,239.567703 323.040649,227.735382
|
||||
C323.052002,226.000977 323.275970,224.122147 323.970245,222.563431
|
||||
C326.870880,216.051224 329.988434,209.635635 333.192719,202.831619
|
||||
C326.426208,195.915558 322.583832,186.895432 322.930969,175.984161
|
||||
C323.254089,165.828217 323.237183,155.646591 322.923828,145.490036
|
||||
C322.679443,137.569260 320.212494,134.596237 313.449707,133.900467
|
||||
C307.694611,133.308395 303.831635,127.815491 305.026062,122.888168
|
||||
C306.393799,117.246071 311.519958,114.295715 317.603271,115.914719
|
||||
C322.316040,117.168953 326.941986,118.749199 331.715271,120.217987
|
||||
C331.715271,86.963776 331.715271,53.124226 331.715271,19.000000
|
||||
C329.691101,19.000000 327.888062,19.000000 326.085052,19.000000
|
||||
C245.588547,19.000000 165.091934,19.051859 84.595734,18.897024
|
||||
C78.460266,18.885223 76.980110,20.178017 76.981697,26.607189
|
||||
C77.007530,131.269318 76.999062,235.931442 77.009834,340.593567
|
||||
C77.009979,342.021515 77.157974,343.449432 77.225998,344.679138
|
||||
C197.379150,344.679138 317.114136,344.679138 436.678070,344.679138
|
||||
C436.678070,271.288025 436.678070,198.218109 436.678070,125.119888
|
||||
C402.751251,125.119888 369.146515,125.119888 334.952972,125.119888
|
||||
C340.186554,130.577667 341.144653,136.947769 341.041077,143.752930
|
||||
C340.883881,154.083420 340.893738,164.419510 341.032501,174.750519
|
||||
C341.150604,183.545593 345.705109,192.539749 356.132355,194.157852
|
||||
C359.932648,194.747604 364.410126,194.923218 366.978119,199.901535
|
||||
M99.500328,495.000000
|
||||
C209.807632,495.000000 320.114929,495.000885 430.422241,494.997711
|
||||
C436.530823,494.997528 436.996490,494.537018 436.997253,488.477234
|
||||
C437.002533,448.153442 437.002380,407.829620 436.990417,367.505829
|
||||
C436.989990,366.069763 436.847900,364.633728 436.775208,363.260925
|
||||
C316.708221,363.260925 196.989700,363.260925 77.000443,363.260925
|
||||
C77.000443,405.815277 77.005440,448.109253 76.991074,490.403229
|
||||
C76.989914,493.829926 78.785522,495.063477 82.004829,495.020294
|
||||
C87.502541,494.946472 93.001953,494.999969 99.500328,495.000000
|
||||
M414.501068,98.000717
|
||||
C393.237640,76.730530 371.974243,55.460354 350.350098,33.829334
|
||||
C350.350098,58.274117 350.350098,82.091644 350.350098,105.614235
|
||||
C374.367645,105.614235 398.034149,105.614235 422.273895,105.614235
|
||||
C419.523987,102.924950 417.262665,100.713478 414.501068,98.000717
|
||||
z"/>
|
||||
<path fill="#FFFFFF" opacity="1.000000" stroke="none"
|
||||
d="
|
||||
M440.468658,513.000000
|
||||
C444.846985,510.119446 450.875824,508.751221 453.492096,502.979889
|
||||
C454.591217,500.555237 455.894958,497.899719 455.897339,495.348022
|
||||
C456.014618,370.535126 455.993103,245.722153 456.019745,120.909180
|
||||
C456.021118,114.420891 452.926758,109.458168 448.602142,105.125519
|
||||
C416.110992,72.574051 383.608673,40.033493 350.990173,7.609907
|
||||
C348.528595,5.163025 345.142975,3.645721 342.093445,1.348149
|
||||
C398.967010,1.000000 455.934052,1.000000 512.947754,1.000000
|
||||
C512.947754,171.666672 512.947754,342.333344 512.947754,513.000000
|
||||
C488.909485,513.000000 464.923401,513.000000 440.468658,513.000000
|
||||
z"/>
|
||||
<path fill="#FFFFFF" opacity="1.000000" stroke="none"
|
||||
d="
|
||||
M73.531342,1.000000
|
||||
C62.303032,5.957079 57.970104,15.265683 57.973289,27.428858
|
||||
C58.013832,182.323349 58.078167,337.217957 57.833218,492.112061
|
||||
C57.815937,503.042450 64.559074,509.683868 73.893349,512.639771
|
||||
C49.682854,513.000000 25.365705,513.000000 1.051913,513.000000
|
||||
C1.055266,342.333313 1.055266,171.666656 1.055266,1.000000
|
||||
C25.094584,1.000000 49.078632,1.000000 73.531342,1.000000
|
||||
z"/>
|
||||
<path fill="#FFFFFF" opacity="1.000000" stroke="none"
|
||||
d="
|
||||
M366.836029,199.531494
|
||||
C364.410126,194.923218 359.932648,194.747604 356.132355,194.157852
|
||||
C345.705109,192.539749 341.150604,183.545593 341.032501,174.750519
|
||||
C340.893738,164.419510 340.883881,154.083420 341.041077,143.752930
|
||||
C341.144653,136.947769 340.186554,130.577667 334.952972,125.119888
|
||||
C369.146515,125.119888 402.751251,125.119888 436.678070,125.119888
|
||||
C436.678070,198.218109 436.678070,271.288025 436.678070,344.679138
|
||||
C317.114136,344.679138 197.379150,344.679138 77.225998,344.679138
|
||||
C77.157974,343.449432 77.009979,342.021515 77.009834,340.593567
|
||||
C76.999062,235.931442 77.007530,131.269318 76.981697,26.607189
|
||||
C76.980110,20.178017 78.460266,18.885223 84.595734,18.897024
|
||||
C165.091934,19.051859 245.588547,19.000000 326.085052,19.000000
|
||||
C327.888062,19.000000 329.691101,19.000000 331.715271,19.000000
|
||||
C331.715271,53.124226 331.715271,86.963776 331.715271,120.217987
|
||||
C326.941986,118.749199 322.316040,117.168953 317.603271,115.914719
|
||||
C311.519958,114.295715 306.393799,117.246071 305.026062,122.888168
|
||||
C303.831635,127.815491 307.694611,133.308395 313.449707,133.900467
|
||||
C320.212494,134.596237 322.679443,137.569260 322.923828,145.490036
|
||||
C323.237183,155.646591 323.254089,165.828217 322.930969,175.984161
|
||||
C322.583832,186.895432 326.426208,195.915558 333.192719,202.831619
|
||||
C329.988434,209.635635 326.870880,216.051224 323.970245,222.563431
|
||||
C323.275970,224.122147 323.052002,226.000977 323.040649,227.735382
|
||||
C322.963043,239.567703 323.030060,251.400864 322.988403,263.233551
|
||||
C322.964508,270.011108 320.467743,272.846802 313.719055,274.001587
|
||||
C308.674255,274.864807 304.352203,280.081848 305.007721,284.516754
|
||||
C305.727173,289.384583 311.229645,293.775116 316.258209,292.941132
|
||||
C327.903870,291.009766 336.846710,285.540741 340.135101,273.340454
|
||||
C340.549042,271.804688 340.953094,270.204163 340.962433,268.631287
|
||||
C341.031738,256.965515 340.718811,245.290588 341.074768,233.635300
|
||||
C341.474335,220.552567 347.313721,215.240341 358.493073,213.066147
|
||||
C366.369415,211.534317 369.117279,207.612961 366.836029,199.531494
|
||||
M182.000000,177.422882
|
||||
C182.000015,166.766098 181.941956,156.108887 182.020081,145.452682
|
||||
C182.073685,138.140335 184.514847,135.351959 191.688156,133.986618
|
||||
C197.498215,132.880768 200.738052,128.511368 199.997711,122.779953
|
||||
C199.465897,118.662819 194.211258,114.500763 189.642517,115.047340
|
||||
C175.145996,116.781601 163.832031,126.721329 163.979736,142.462234
|
||||
C164.084396,153.617599 164.175415,164.778244 163.950836,175.930069
|
||||
C163.724686,187.160156 157.235809,193.880295 146.197006,194.981110
|
||||
C140.909790,195.508377 137.208603,198.986603 137.041122,203.851685
|
||||
C136.879623,208.543121 140.441101,212.170456 145.901154,213.009750
|
||||
C158.178909,214.897079 164.129654,221.464417 164.021164,233.790421
|
||||
C163.921539,245.112396 163.965256,256.436188 164.040192,267.758514
|
||||
C164.050552,269.324982 164.561020,270.897400 164.911804,272.450867
|
||||
C167.741211,284.981628 176.707840,290.578583 188.364777,292.951080
|
||||
C193.486618,293.993530 199.171814,290.232880 199.990570,285.607758
|
||||
C200.977966,280.029877 197.746597,275.301605 192.075760,274.026489
|
||||
C183.972946,272.204498 182.011292,269.768707 182.002945,261.436707
|
||||
C181.991257,249.780838 182.028961,238.124786 181.965988,226.469238
|
||||
C181.957428,224.883957 181.834717,223.136993 181.173981,221.745468
|
||||
C178.250565,215.588577 175.111282,209.534180 171.780624,202.906372
|
||||
C177.713211,196.714767 182.694809,188.772705 182.000000,177.422882
|
||||
M250.383209,221.958359
|
||||
C244.307816,222.434525 243.355164,227.209244 243.121643,231.654785
|
||||
C242.695038,239.776031 242.898300,247.937424 243.032745,256.078857
|
||||
C243.137711,262.435181 246.908463,266.015350 253.081116,265.999969
|
||||
C258.225464,265.987183 261.884125,262.037903 261.970093,256.032257
|
||||
C262.089050,247.724091 262.331055,239.395462 261.893921,231.108658
|
||||
C261.551788,224.623245 258.907257,221.480042 250.383209,221.958359
|
||||
M251.699158,186.999924
|
||||
C252.363052,186.999741 253.035309,187.068237 253.689529,186.988602
|
||||
C259.431183,186.289719 265.228912,181.317688 265.992828,176.467712
|
||||
C267.144592,169.155426 264.488861,163.874557 258.411652,160.865662
|
||||
C252.236679,157.808365 245.765503,159.888138 242.033386,164.450058
|
||||
C236.731155,170.931274 237.230164,183.378647 251.699158,186.999924
|
||||
z"/>
|
||||
<path fill="#FFFFFF" opacity="1.000000" stroke="none"
|
||||
d="
|
||||
M99.000488,495.000000
|
||||
C93.001953,494.999969 87.502541,494.946472 82.004829,495.020294
|
||||
C78.785522,495.063477 76.989914,493.829926 76.991074,490.403229
|
||||
C77.005440,448.109253 77.000443,405.815277 77.000443,363.260925
|
||||
C196.989700,363.260925 316.708221,363.260925 436.775208,363.260925
|
||||
C436.847900,364.633728 436.989990,366.069763 436.990417,367.505829
|
||||
C437.002380,407.829620 437.002533,448.153442 436.997253,488.477234
|
||||
C436.996490,494.537018 436.530823,494.997528 430.422241,494.997711
|
||||
C320.114929,495.000885 209.807632,495.000000 99.000488,495.000000
|
||||
M405.000000,404.501648
|
||||
C405.000000,399.070221 405.000000,393.638794 405.000000,388.289429
|
||||
C399.350769,388.289429 394.279053,388.289429 388.808350,388.289429
|
||||
C388.808350,407.889954 388.808350,427.203949 388.808350,447.411774
|
||||
C384.211212,439.340485 380.118225,432.115601 375.988220,424.911987
|
||||
C369.350128,413.333679 362.725952,401.746857 355.969238,390.238007
|
||||
C355.367493,389.213013 353.868408,388.164062 352.731995,388.101074
|
||||
C348.291229,387.854828 343.828735,388.000519 339.198486,388.000519
|
||||
C339.198486,418.138733 339.198486,447.871521 339.198486,477.799072
|
||||
C344.467834,477.799072 349.538574,477.799072 355.228302,477.799072
|
||||
C355.228302,458.220612 355.228302,438.834808 355.228302,418.395264
|
||||
C362.098145,430.695770 368.300354,441.952332 374.653351,453.123108
|
||||
C378.945007,460.669250 383.399170,468.124969 387.914764,475.539459
|
||||
C388.558258,476.596008 389.924377,477.825470 391.018158,477.888062
|
||||
C395.601654,478.150238 400.208801,477.998657 405.000000,477.998657
|
||||
C405.000000,453.445496 405.000000,429.473358 405.000000,404.501648
|
||||
M249.029984,409.674683
|
||||
C244.443970,422.396851 244.099213,435.159607 246.816910,448.492706
|
||||
C250.405960,466.100769 265.181366,481.234924 287.536591,478.135254
|
||||
C303.050751,475.984131 312.179932,467.197815 316.983734,453.058441
|
||||
C320.799469,441.827393 320.893433,430.226501 318.740967,418.734650
|
||||
C317.785858,413.635254 316.032288,408.318268 313.247284,403.998749
|
||||
C305.424744,391.865997 294.190857,386.060760 279.351105,386.874664
|
||||
C267.074921,387.547974 253.106033,397.334015 249.029984,409.674683
|
||||
M221.546494,432.959717
|
||||
C215.483154,429.650574 209.455063,426.274536 203.345032,423.053955
|
||||
C198.664124,420.586670 195.198013,416.460022 195.565277,411.658569
|
||||
C195.823029,408.288879 199.076233,403.748199 202.178314,402.335052
|
||||
C206.477051,400.376770 212.050064,399.818909 216.787628,400.547089
|
||||
C223.952087,401.648376 223.847519,402.339783 226.997971,396.016388
|
||||
C227.709503,394.588226 228.405746,393.152435 229.211212,391.512054
|
||||
C228.268005,390.957336 227.507462,390.190887 226.647095,390.054565
|
||||
C219.794693,388.968933 212.952759,387.622345 206.050934,387.089020
|
||||
C195.661774,386.286224 183.521027,394.612457 181.726105,404.903015
|
||||
C179.537735,417.449280 180.249863,423.735474 192.618317,432.078583
|
||||
C198.589371,436.106415 205.157074,439.238434 211.266983,443.074890
|
||||
C217.277954,446.849182 219.199615,451.604858 217.396255,457.108582
|
||||
C214.714783,465.292175 207.826859,467.238220 198.130508,465.516632
|
||||
C192.827927,464.575104 187.711472,462.585236 182.383682,461.030945
|
||||
C181.843887,463.553223 181.725784,466.262970 180.664871,468.531799
|
||||
C179.246613,471.564819 180.257889,472.684326 182.914948,474.064758
|
||||
C193.024017,479.316986 203.623688,480.203674 214.252014,476.886292
|
||||
C226.684174,473.005859 231.700348,465.366669 232.693680,453.904785
|
||||
C233.412491,445.610474 229.602097,438.072449 221.546494,432.959717
|
||||
M161.000000,403.501251
|
||||
C161.000000,397.742493 161.000000,391.983734 161.000000,386.273438
|
||||
C155.372482,386.273438 150.305389,386.273438 145.000000,386.273438
|
||||
C145.000000,408.317474 144.790802,430.092010 145.100967,451.859131
|
||||
C145.228500,460.810181 140.277298,465.677521 131.822754,464.862946
|
||||
C124.911293,464.197052 118.116318,462.322052 110.791100,460.889465
|
||||
C109.158188,463.512695 107.050209,466.899139 104.834747,470.458221
|
||||
C116.388779,476.730621 128.261826,480.706543 141.458939,477.962372
|
||||
C147.681381,476.668518 153.237366,474.416382 157.177109,468.673157
|
||||
C160.686386,463.557404 160.676559,457.864136 160.834900,452.416595
|
||||
C161.298798,436.456482 161.000000,420.474213 161.000000,403.501251
|
||||
z"/>
|
||||
<path fill="#FFFFFF" opacity="1.000000" stroke="none"
|
||||
d="
|
||||
M414.751221,98.251358
|
||||
C417.262665,100.713478 419.523987,102.924950 422.273895,105.614235
|
||||
C398.034149,105.614235 374.367645,105.614235 350.350098,105.614235
|
||||
C350.350098,82.091644 350.350098,58.274117 350.350098,33.829334
|
||||
C371.974243,55.460354 393.237640,76.730530 414.751221,98.251358
|
||||
z"/>
|
||||
<path fill="#000000" opacity="1.000000" stroke="none"
|
||||
d="
|
||||
M182.000000,177.908478
|
||||
C182.694809,188.772705 177.713211,196.714767 171.780624,202.906372
|
||||
C175.111282,209.534180 178.250565,215.588577 181.173981,221.745468
|
||||
C181.834717,223.136993 181.957428,224.883957 181.965988,226.469238
|
||||
C182.028961,238.124786 181.991257,249.780838 182.002945,261.436707
|
||||
C182.011292,269.768707 183.972946,272.204498 192.075760,274.026489
|
||||
C197.746597,275.301605 200.977966,280.029877 199.990570,285.607758
|
||||
C199.171814,290.232880 193.486618,293.993530 188.364777,292.951080
|
||||
C176.707840,290.578583 167.741211,284.981628 164.911804,272.450867
|
||||
C164.561020,270.897400 164.050552,269.324982 164.040192,267.758514
|
||||
C163.965256,256.436188 163.921539,245.112396 164.021164,233.790421
|
||||
C164.129654,221.464417 158.178909,214.897079 145.901154,213.009750
|
||||
C140.441101,212.170456 136.879623,208.543121 137.041122,203.851685
|
||||
C137.208603,198.986603 140.909790,195.508377 146.197006,194.981110
|
||||
C157.235809,193.880295 163.724686,187.160156 163.950836,175.930069
|
||||
C164.175415,164.778244 164.084396,153.617599 163.979736,142.462234
|
||||
C163.832031,126.721329 175.145996,116.781601 189.642517,115.047340
|
||||
C194.211258,114.500763 199.465897,118.662819 199.997711,122.779953
|
||||
C200.738052,128.511368 197.498215,132.880768 191.688156,133.986618
|
||||
C184.514847,135.351959 182.073685,138.140335 182.020081,145.452682
|
||||
C181.941956,156.108887 182.000015,166.766098 182.000000,177.908478
|
||||
z"/>
|
||||
<path fill="#000000" opacity="1.000000" stroke="none"
|
||||
d="
|
||||
M250.701447,221.715332
|
||||
C258.907257,221.480042 261.551788,224.623245 261.893921,231.108658
|
||||
C262.331055,239.395462 262.089050,247.724091 261.970093,256.032257
|
||||
C261.884125,262.037903 258.225464,265.987183 253.081116,265.999969
|
||||
C246.908463,266.015350 243.137711,262.435181 243.032745,256.078857
|
||||
C242.898300,247.937424 242.695038,239.776031 243.121643,231.654785
|
||||
C243.355164,227.209244 244.307816,222.434525 250.701447,221.715332
|
||||
z"/>
|
||||
<path fill="#000000" opacity="1.000000" stroke="none"
|
||||
d="
|
||||
M251.279205,186.999359
|
||||
C237.230164,183.378647 236.731155,170.931274 242.033386,164.450058
|
||||
C245.765503,159.888138 252.236679,157.808365 258.411652,160.865662
|
||||
C264.488861,163.874557 267.144592,169.155426 265.992828,176.467712
|
||||
C265.228912,181.317688 259.431183,186.289719 253.689529,186.988602
|
||||
C253.035309,187.068237 252.363052,186.999741 251.279205,186.999359
|
||||
z"/>
|
||||
<path fill="#000000" opacity="1.000000" stroke="none"
|
||||
d="
|
||||
M405.000000,405.001465
|
||||
C405.000000,429.473358 405.000000,453.445496 405.000000,477.998657
|
||||
C400.208801,477.998657 395.601654,478.150238 391.018158,477.888062
|
||||
C389.924377,477.825470 388.558258,476.596008 387.914764,475.539459
|
||||
C383.399170,468.124969 378.945007,460.669250 374.653351,453.123108
|
||||
C368.300354,441.952332 362.098145,430.695770 355.228302,418.395264
|
||||
C355.228302,438.834808 355.228302,458.220612 355.228302,477.799072
|
||||
C349.538574,477.799072 344.467834,477.799072 339.198486,477.799072
|
||||
C339.198486,447.871521 339.198486,418.138733 339.198486,388.000519
|
||||
C343.828735,388.000519 348.291229,387.854828 352.731995,388.101074
|
||||
C353.868408,388.164062 355.367493,389.213013 355.969238,390.238007
|
||||
C362.725952,401.746857 369.350128,413.333679 375.988220,424.911987
|
||||
C380.118225,432.115601 384.211212,439.340485 388.808350,447.411774
|
||||
C388.808350,427.203949 388.808350,407.889954 388.808350,388.289429
|
||||
C394.279053,388.289429 399.350769,388.289429 405.000000,388.289429
|
||||
C405.000000,393.638794 405.000000,399.070221 405.000000,405.001465
|
||||
z"/>
|
||||
<path fill="#000000" opacity="1.000000" stroke="none"
|
||||
d="
|
||||
M249.257431,409.344086
|
||||
C253.106033,397.334015 267.074921,387.547974 279.351105,386.874664
|
||||
C294.190857,386.060760 305.424744,391.865997 313.247284,403.998749
|
||||
C316.032288,408.318268 317.785858,413.635254 318.740967,418.734650
|
||||
C320.893433,430.226501 320.799469,441.827393 316.983734,453.058441
|
||||
C312.179932,467.197815 303.050751,475.984131 287.536591,478.135254
|
||||
C265.181366,481.234924 250.405960,466.100769 246.816910,448.492706
|
||||
C244.099213,435.159607 244.443970,422.396851 249.257431,409.344086
|
||||
M303.000214,444.354126
|
||||
C304.869690,433.936218 304.954620,423.566223 300.930511,413.623352
|
||||
C298.190186,406.852509 293.962067,400.948883 285.988159,400.100525
|
||||
C277.932068,399.243378 270.543945,401.250763 266.534851,409.100616
|
||||
C264.324493,413.428467 262.298431,418.183380 261.699341,422.936127
|
||||
C260.164398,435.113220 259.872131,447.203949 267.469269,458.136475
|
||||
C272.404816,465.238861 282.116241,467.730164 289.150177,464.478760
|
||||
C297.547394,460.597198 300.930969,453.473236 303.000214,444.354126
|
||||
z"/>
|
||||
<path fill="#000000" opacity="1.000000" stroke="none"
|
||||
d="
|
||||
M221.914734,432.992401
|
||||
C229.602097,438.072449 233.412491,445.610474 232.693680,453.904785
|
||||
C231.700348,465.366669 226.684174,473.005859 214.252014,476.886292
|
||||
C203.623688,480.203674 193.024017,479.316986 182.914948,474.064758
|
||||
C180.257889,472.684326 179.246613,471.564819 180.664871,468.531799
|
||||
C181.725784,466.262970 181.843887,463.553223 182.383682,461.030945
|
||||
C187.711472,462.585236 192.827927,464.575104 198.130508,465.516632
|
||||
C207.826859,467.238220 214.714783,465.292175 217.396255,457.108582
|
||||
C219.199615,451.604858 217.277954,446.849182 211.266983,443.074890
|
||||
C205.157074,439.238434 198.589371,436.106415 192.618317,432.078583
|
||||
C180.249863,423.735474 179.537735,417.449280 181.726105,404.903015
|
||||
C183.521027,394.612457 195.661774,386.286224 206.050934,387.089020
|
||||
C212.952759,387.622345 219.794693,388.968933 226.647095,390.054565
|
||||
C227.507462,390.190887 228.268005,390.957336 229.211212,391.512054
|
||||
C228.405746,393.152435 227.709503,394.588226 226.997971,396.016388
|
||||
C223.847519,402.339783 223.952087,401.648376 216.787628,400.547089
|
||||
C212.050064,399.818909 206.477051,400.376770 202.178314,402.335052
|
||||
C199.076233,403.748199 195.823029,408.288879 195.565277,411.658569
|
||||
C195.198013,416.460022 198.664124,420.586670 203.345032,423.053955
|
||||
C209.455063,426.274536 215.483154,429.650574 221.914734,432.992401
|
||||
z"/>
|
||||
<path fill="#000000" opacity="1.000000" stroke="none"
|
||||
d="
|
||||
M161.000000,404.000916
|
||||
C161.000000,420.474213 161.298798,436.456482 160.834900,452.416595
|
||||
C160.676559,457.864136 160.686386,463.557404 157.177109,468.673157
|
||||
C153.237366,474.416382 147.681381,476.668518 141.458939,477.962372
|
||||
C128.261826,480.706543 116.388779,476.730621 104.834747,470.458221
|
||||
C107.050209,466.899139 109.158188,463.512695 110.791100,460.889465
|
||||
C118.116318,462.322052 124.911293,464.197052 131.822754,464.862946
|
||||
C140.277298,465.677521 145.228500,460.810181 145.100967,451.859131
|
||||
C144.790802,430.092010 145.000000,408.317474 145.000000,386.273438
|
||||
C150.305389,386.273438 155.372482,386.273438 161.000000,386.273438
|
||||
C161.000000,391.983734 161.000000,397.742493 161.000000,404.000916
|
||||
z"/>
|
||||
<path fill="#FFFFFF" opacity="1.000000" stroke="none"
|
||||
d="
|
||||
M302.999329,444.791046
|
||||
C300.930969,453.473236 297.547394,460.597198 289.150177,464.478760
|
||||
C282.116241,467.730164 272.404816,465.238861 267.469269,458.136475
|
||||
C259.872131,447.203949 260.164398,435.113220 261.699341,422.936127
|
||||
C262.298431,418.183380 264.324493,413.428467 266.534851,409.100616
|
||||
C270.543945,401.250763 277.932068,399.243378 285.988159,400.100525
|
||||
C293.962067,400.948883 298.190186,406.852509 300.930511,413.623352
|
||||
C304.954620,423.566223 304.869690,433.936218 302.999329,444.791046
|
||||
z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 21 KiB |
17
api/core/tools/provider/builtin/json_process/json_process.py
Normal file
17
api/core/tools/provider/builtin/json_process/json_process.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
from typing import Any
|
||||
|
||||
from core.tools.errors import ToolProviderCredentialValidationError
|
||||
from core.tools.provider.builtin.json_process.tools.parse import JSONParseTool
|
||||
from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
|
||||
|
||||
|
||||
class JsonExtractProvider(BuiltinToolProviderController):
|
||||
def _validate_credentials(self, credentials: dict[str, Any]) -> None:
|
||||
try:
|
||||
JSONParseTool().invoke(user_id='',
|
||||
tool_parameters={
|
||||
'content': '{"name": "John", "age": 30, "city": "New York"}',
|
||||
'json_filter': '$.name'
|
||||
})
|
||||
except Exception as e:
|
||||
raise ToolProviderCredentialValidationError(str(e))
|
|
@ -0,0 +1,14 @@
|
|||
identity:
|
||||
author: Mingwei Zhang
|
||||
name: json_process
|
||||
label:
|
||||
en_US: JSON Process
|
||||
zh_Hans: JSON 处理
|
||||
pt_BR: JSON Process
|
||||
description:
|
||||
en_US: Tools for processing JSON content using jsonpath_ng
|
||||
zh_Hans: 利用 jsonpath_ng 处理 JSON 内容的工具
|
||||
pt_BR: Tools for processing JSON content using jsonpath_ng
|
||||
icon: icon.svg
|
||||
tags:
|
||||
- utilities
|
59
api/core/tools/provider/builtin/json_process/tools/delete.py
Normal file
59
api/core/tools/provider/builtin/json_process/tools/delete.py
Normal file
|
@ -0,0 +1,59 @@
|
|||
import json
|
||||
from typing import Any, Union
|
||||
|
||||
from jsonpath_ng import parse
|
||||
|
||||
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||
from core.tools.tool.builtin_tool import BuiltinTool
|
||||
|
||||
|
||||
class JSONDeleteTool(BuiltinTool):
|
||||
def _invoke(self,
|
||||
user_id: str,
|
||||
tool_parameters: dict[str, Any],
|
||||
) -> Union[ToolInvokeMessage, list[ToolInvokeMessage]]:
|
||||
"""
|
||||
Invoke the JSON delete tool
|
||||
"""
|
||||
# Get content
|
||||
content = tool_parameters.get('content', '')
|
||||
if not content:
|
||||
return self.create_text_message('Invalid parameter content')
|
||||
|
||||
# Get query
|
||||
query = tool_parameters.get('query', '')
|
||||
if not query:
|
||||
return self.create_text_message('Invalid parameter query')
|
||||
|
||||
try:
|
||||
result = self._delete(content, query)
|
||||
return self.create_text_message(str(result))
|
||||
except Exception as e:
|
||||
return self.create_text_message(f'Failed to delete JSON content: {str(e)}')
|
||||
|
||||
def _delete(self, origin_json: str, query: str) -> str:
|
||||
try:
|
||||
input_data = json.loads(origin_json)
|
||||
expr = parse('$.' + query.lstrip('$.')) # Ensure query path starts with $
|
||||
|
||||
matches = expr.find(input_data)
|
||||
|
||||
if not matches:
|
||||
return json.dumps(input_data, ensure_ascii=True) # No changes if no matches found
|
||||
|
||||
for match in matches:
|
||||
if isinstance(match.context.value, dict):
|
||||
# Delete key from dictionary
|
||||
del match.context.value[match.path.fields[-1]]
|
||||
elif isinstance(match.context.value, list):
|
||||
# Remove item from list
|
||||
match.context.value.remove(match.value)
|
||||
else:
|
||||
# For other cases, we might want to set to None or remove the parent key
|
||||
parent = match.context.parent
|
||||
if parent:
|
||||
del parent.value[match.path.fields[-1]]
|
||||
|
||||
return json.dumps(input_data, ensure_ascii=True)
|
||||
except Exception as e:
|
||||
raise Exception(f"Delete operation failed: {str(e)}")
|
|
@ -0,0 +1,40 @@
|
|||
identity:
|
||||
name: json_delete
|
||||
author: Mingwei Zhang
|
||||
label:
|
||||
en_US: JSON Delete
|
||||
zh_Hans: JSON 删除
|
||||
pt_BR: JSON Delete
|
||||
description:
|
||||
human:
|
||||
en_US: A tool for deleting JSON content
|
||||
zh_Hans: 一个删除 JSON 内容的工具
|
||||
pt_BR: A tool for deleting JSON content
|
||||
llm: A tool for deleting JSON content
|
||||
parameters:
|
||||
- name: content
|
||||
type: string
|
||||
required: true
|
||||
label:
|
||||
en_US: JSON content
|
||||
zh_Hans: JSON 内容
|
||||
pt_BR: JSON content
|
||||
human_description:
|
||||
en_US: JSON content to be processed
|
||||
zh_Hans: 待处理的 JSON 内容
|
||||
pt_BR: JSON content to be processed
|
||||
llm_description: JSON content to be processed
|
||||
form: llm
|
||||
- name: query
|
||||
type: string
|
||||
required: true
|
||||
label:
|
||||
en_US: Query
|
||||
zh_Hans: 查询
|
||||
pt_BR: Query
|
||||
human_description:
|
||||
en_US: JSONPath query to locate the element to delete
|
||||
zh_Hans: 用于定位要删除元素的 JSONPath 查询
|
||||
pt_BR: JSONPath query to locate the element to delete
|
||||
llm_description: JSONPath query to locate the element to delete
|
||||
form: llm
|
97
api/core/tools/provider/builtin/json_process/tools/insert.py
Normal file
97
api/core/tools/provider/builtin/json_process/tools/insert.py
Normal file
|
@ -0,0 +1,97 @@
|
|||
import json
|
||||
from typing import Any, Union
|
||||
|
||||
from jsonpath_ng import parse
|
||||
|
||||
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||
from core.tools.tool.builtin_tool import BuiltinTool
|
||||
|
||||
|
||||
class JSONParseTool(BuiltinTool):
|
||||
def _invoke(self,
|
||||
user_id: str,
|
||||
tool_parameters: dict[str, Any],
|
||||
) -> Union[ToolInvokeMessage, list[ToolInvokeMessage]]:
|
||||
"""
|
||||
invoke tools
|
||||
"""
|
||||
# get content
|
||||
content = tool_parameters.get('content', '')
|
||||
if not content:
|
||||
return self.create_text_message('Invalid parameter content')
|
||||
|
||||
# get query
|
||||
query = tool_parameters.get('query', '')
|
||||
if not query:
|
||||
return self.create_text_message('Invalid parameter query')
|
||||
|
||||
# get new value
|
||||
new_value = tool_parameters.get('new_value', '')
|
||||
if not new_value:
|
||||
return self.create_text_message('Invalid parameter new_value')
|
||||
|
||||
# get insert position
|
||||
index = tool_parameters.get('index')
|
||||
|
||||
# get create path
|
||||
create_path = tool_parameters.get('create_path', False)
|
||||
|
||||
try:
|
||||
result = self._insert(content, query, new_value, index, create_path)
|
||||
return self.create_text_message(str(result))
|
||||
except Exception:
|
||||
return self.create_text_message('Failed to insert JSON content')
|
||||
|
||||
|
||||
def _insert(self, origin_json, query, new_value, index=None, create_path=False):
|
||||
try:
|
||||
input_data = json.loads(origin_json)
|
||||
expr = parse(query)
|
||||
try:
|
||||
new_value = json.loads(new_value)
|
||||
except json.JSONDecodeError:
|
||||
new_value = new_value
|
||||
|
||||
matches = expr.find(input_data)
|
||||
|
||||
if not matches and create_path:
|
||||
# create new path
|
||||
path_parts = query.strip('$').strip('.').split('.')
|
||||
current = input_data
|
||||
for i, part in enumerate(path_parts):
|
||||
if '[' in part and ']' in part:
|
||||
# process array index
|
||||
array_name, index = part.split('[')
|
||||
index = int(index.rstrip(']'))
|
||||
if array_name not in current:
|
||||
current[array_name] = []
|
||||
while len(current[array_name]) <= index:
|
||||
current[array_name].append({})
|
||||
current = current[array_name][index]
|
||||
else:
|
||||
if i == len(path_parts) - 1:
|
||||
current[part] = new_value
|
||||
elif part not in current:
|
||||
current[part] = {}
|
||||
current = current[part]
|
||||
else:
|
||||
for match in matches:
|
||||
if isinstance(match.value, dict):
|
||||
# insert new value into dict
|
||||
if isinstance(new_value, dict):
|
||||
match.value.update(new_value)
|
||||
else:
|
||||
raise ValueError("Cannot insert non-dict value into dict")
|
||||
elif isinstance(match.value, list):
|
||||
# insert new value into list
|
||||
if index is None:
|
||||
match.value.append(new_value)
|
||||
else:
|
||||
match.value.insert(int(index), new_value)
|
||||
else:
|
||||
# replace old value with new value
|
||||
match.full_path.update(input_data, new_value)
|
||||
|
||||
return json.dumps(input_data, ensure_ascii=True)
|
||||
except Exception as e:
|
||||
return str(e)
|
|
@ -0,0 +1,77 @@
|
|||
identity:
|
||||
name: json_insert
|
||||
author: Mingwei Zhang
|
||||
label:
|
||||
en_US: JSON Insert
|
||||
zh_Hans: JSON 插入
|
||||
pt_BR: JSON Insert
|
||||
description:
|
||||
human:
|
||||
en_US: A tool for inserting JSON content
|
||||
zh_Hans: 一个插入 JSON 内容的工具
|
||||
pt_BR: A tool for inserting JSON content
|
||||
llm: A tool for inserting JSON content
|
||||
parameters:
|
||||
- name: content
|
||||
type: string
|
||||
required: true
|
||||
label:
|
||||
en_US: JSON content
|
||||
zh_Hans: JSON 内容
|
||||
pt_BR: JSON content
|
||||
human_description:
|
||||
en_US: JSON content
|
||||
zh_Hans: JSON 内容
|
||||
pt_BR: JSON content
|
||||
llm_description: JSON content to be processed
|
||||
form: llm
|
||||
- name: query
|
||||
type: string
|
||||
required: true
|
||||
label:
|
||||
en_US: Query
|
||||
zh_Hans: 查询
|
||||
pt_BR: Query
|
||||
human_description:
|
||||
en_US: Object to insert
|
||||
zh_Hans: 待插入的对象
|
||||
pt_BR: Object to insert
|
||||
llm_description: JSONPath query to locate the element to insert
|
||||
form: llm
|
||||
- name: new_value
|
||||
type: string
|
||||
required: true
|
||||
label:
|
||||
en_US: New Value
|
||||
zh_Hans: 新值
|
||||
pt_BR: New Value
|
||||
human_description:
|
||||
en_US: New Value
|
||||
zh_Hans: 新值
|
||||
pt_BR: New Value
|
||||
llm_description: New Value to insert
|
||||
form: llm
|
||||
- name: create_path
|
||||
type: select
|
||||
required: true
|
||||
default: "False"
|
||||
label:
|
||||
en_US: Whether to create a path
|
||||
zh_Hans: 是否创建路径
|
||||
pt_BR: Whether to create a path
|
||||
human_description:
|
||||
en_US: Whether to create a path when the path does not exist
|
||||
zh_Hans: 查询路径不存在时是否创建路径
|
||||
pt_BR: Whether to create a path when the path does not exist
|
||||
options:
|
||||
- value: "True"
|
||||
label:
|
||||
en_US: "Yes"
|
||||
zh_Hans: 是
|
||||
pt_BR: "Yes"
|
||||
- value: "False"
|
||||
label:
|
||||
en_US: "No"
|
||||
zh_Hans: 否
|
||||
pt_BR: "No"
|
||||
form: form
|
51
api/core/tools/provider/builtin/json_process/tools/parse.py
Normal file
51
api/core/tools/provider/builtin/json_process/tools/parse.py
Normal file
|
@ -0,0 +1,51 @@
|
|||
import json
|
||||
from typing import Any, Union
|
||||
|
||||
from jsonpath_ng import parse
|
||||
|
||||
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||
from core.tools.tool.builtin_tool import BuiltinTool
|
||||
|
||||
|
||||
class JSONParseTool(BuiltinTool):
|
||||
def _invoke(self,
|
||||
user_id: str,
|
||||
tool_parameters: dict[str, Any],
|
||||
) -> Union[ToolInvokeMessage, list[ToolInvokeMessage]]:
|
||||
"""
|
||||
invoke tools
|
||||
"""
|
||||
# get content
|
||||
content = tool_parameters.get('content', '')
|
||||
if not content:
|
||||
return self.create_text_message('Invalid parameter content')
|
||||
|
||||
# get json filter
|
||||
json_filter = tool_parameters.get('json_filter', '')
|
||||
if not json_filter:
|
||||
return self.create_text_message('Invalid parameter json_filter')
|
||||
|
||||
try:
|
||||
result = self._extract(content, json_filter)
|
||||
return self.create_text_message(str(result))
|
||||
except Exception:
|
||||
return self.create_text_message('Failed to extract JSON content')
|
||||
|
||||
# Extract data from JSON content
|
||||
def _extract(self, content: str, json_filter: str) -> str:
|
||||
try:
|
||||
input_data = json.loads(content)
|
||||
expr = parse(json_filter)
|
||||
result = [match.value for match in expr.find(input_data)]
|
||||
|
||||
if len(result) == 1:
|
||||
result = result[0]
|
||||
|
||||
if isinstance(result, dict | list):
|
||||
return json.dumps(result, ensure_ascii=True)
|
||||
elif isinstance(result, str | int | float | bool) or result is None:
|
||||
return str(result)
|
||||
else:
|
||||
return repr(result)
|
||||
except Exception as e:
|
||||
return str(e)
|
|
@ -0,0 +1,40 @@
|
|||
identity:
|
||||
name: parse
|
||||
author: Mingwei Zhang
|
||||
label:
|
||||
en_US: JSON Parse
|
||||
zh_Hans: JSON 解析
|
||||
pt_BR: JSON Parse
|
||||
description:
|
||||
human:
|
||||
en_US: A tool for extracting JSON objects
|
||||
zh_Hans: 一个解析JSON对象的工具
|
||||
pt_BR: A tool for extracting JSON objects
|
||||
llm: A tool for extracting JSON objects
|
||||
parameters:
|
||||
- name: content
|
||||
type: string
|
||||
required: true
|
||||
label:
|
||||
en_US: JSON data
|
||||
zh_Hans: JSON数据
|
||||
pt_BR: JSON data
|
||||
human_description:
|
||||
en_US: JSON data
|
||||
zh_Hans: JSON数据
|
||||
pt_BR: JSON数据
|
||||
llm_description: JSON data to be processed
|
||||
form: llm
|
||||
- name: json_filter
|
||||
type: string
|
||||
required: true
|
||||
label:
|
||||
en_US: JSON filter
|
||||
zh_Hans: JSON解析对象
|
||||
pt_BR: JSON filter
|
||||
human_description:
|
||||
en_US: JSON fields to be parsed
|
||||
zh_Hans: 需要解析的 JSON 字段
|
||||
pt_BR: JSON fields to be parsed
|
||||
llm_description: JSON fields to be parsed
|
||||
form: llm
|
106
api/core/tools/provider/builtin/json_process/tools/replace.py
Normal file
106
api/core/tools/provider/builtin/json_process/tools/replace.py
Normal file
|
@ -0,0 +1,106 @@
|
|||
import json
|
||||
from typing import Any, Union
|
||||
|
||||
from jsonpath_ng import parse
|
||||
|
||||
from core.tools.entities.tool_entities import ToolInvokeMessage
|
||||
from core.tools.tool.builtin_tool import BuiltinTool
|
||||
|
||||
|
||||
class JSONReplaceTool(BuiltinTool):
|
||||
def _invoke(self,
|
||||
user_id: str,
|
||||
tool_parameters: dict[str, Any],
|
||||
) -> Union[ToolInvokeMessage, list[ToolInvokeMessage]]:
|
||||
"""
|
||||
invoke tools
|
||||
"""
|
||||
# get content
|
||||
content = tool_parameters.get('content', '')
|
||||
if not content:
|
||||
return self.create_text_message('Invalid parameter content')
|
||||
|
||||
# get query
|
||||
query = tool_parameters.get('query', '')
|
||||
if not query:
|
||||
return self.create_text_message('Invalid parameter query')
|
||||
|
||||
# get replace value
|
||||
replace_value = tool_parameters.get('replace_value', '')
|
||||
if not replace_value:
|
||||
return self.create_text_message('Invalid parameter replace_value')
|
||||
|
||||
# get replace model
|
||||
replace_model = tool_parameters.get('replace_model', '')
|
||||
if not replace_model:
|
||||
return self.create_text_message('Invalid parameter replace_model')
|
||||
|
||||
try:
|
||||
if replace_model == 'pattern':
|
||||
# get replace pattern
|
||||
replace_pattern = tool_parameters.get('replace_pattern', '')
|
||||
if not replace_pattern:
|
||||
return self.create_text_message('Invalid parameter replace_pattern')
|
||||
result = self._replace_pattern(content, query, replace_pattern, replace_value)
|
||||
elif replace_model == 'key':
|
||||
result = self._replace_key(content, query, replace_value)
|
||||
elif replace_model == 'value':
|
||||
result = self._replace_value(content, query, replace_value)
|
||||
return self.create_text_message(str(result))
|
||||
except Exception:
|
||||
return self.create_text_message('Failed to replace JSON content')
|
||||
|
||||
# Replace pattern
|
||||
def _replace_pattern(self, content: str, query: str, replace_pattern: str, replace_value: str) -> str:
|
||||
try:
|
||||
input_data = json.loads(content)
|
||||
expr = parse(query)
|
||||
|
||||
matches = expr.find(input_data)
|
||||
|
||||
for match in matches:
|
||||
new_value = match.value.replace(replace_pattern, replace_value)
|
||||
match.full_path.update(input_data, new_value)
|
||||
|
||||
return json.dumps(input_data, ensure_ascii=True)
|
||||
except Exception as e:
|
||||
return str(e)
|
||||
|
||||
# Replace key
|
||||
def _replace_key(self, content: str, query: str, replace_value: str) -> str:
|
||||
try:
|
||||
input_data = json.loads(content)
|
||||
expr = parse(query)
|
||||
|
||||
matches = expr.find(input_data)
|
||||
|
||||
for match in matches:
|
||||
parent = match.context.value
|
||||
if isinstance(parent, dict):
|
||||
old_key = match.path.fields[0]
|
||||
if old_key in parent:
|
||||
value = parent.pop(old_key)
|
||||
parent[replace_value] = value
|
||||
elif isinstance(parent, list):
|
||||
for item in parent:
|
||||
if isinstance(item, dict) and old_key in item:
|
||||
value = item.pop(old_key)
|
||||
item[replace_value] = value
|
||||
return json.dumps(input_data, ensure_ascii=True)
|
||||
except Exception as e:
|
||||
return str(e)
|
||||
|
||||
# Replace value
|
||||
def _replace_value(self, content: str, query: str, replace_value: str) -> str:
|
||||
try:
|
||||
input_data = json.loads(content)
|
||||
expr = parse(query)
|
||||
|
||||
matches = expr.find(input_data)
|
||||
|
||||
for match in matches:
|
||||
match.full_path.update(input_data, replace_value)
|
||||
|
||||
return json.dumps(input_data, ensure_ascii=True)
|
||||
except Exception as e:
|
||||
return str(e)
|
|
@ -0,0 +1,95 @@
|
|||
identity:
|
||||
name: json_replace
|
||||
author: Mingwei Zhang
|
||||
label:
|
||||
en_US: JSON Replace
|
||||
zh_Hans: JSON 替换
|
||||
pt_BR: JSON Replace
|
||||
description:
|
||||
human:
|
||||
en_US: A tool for replacing JSON content
|
||||
zh_Hans: 一个替换 JSON 内容的工具
|
||||
pt_BR: A tool for replacing JSON content
|
||||
llm: A tool for replacing JSON content
|
||||
parameters:
|
||||
- name: content
|
||||
type: string
|
||||
required: true
|
||||
label:
|
||||
en_US: JSON content
|
||||
zh_Hans: JSON 内容
|
||||
pt_BR: JSON content
|
||||
human_description:
|
||||
en_US: JSON content
|
||||
zh_Hans: JSON 内容
|
||||
pt_BR: JSON content
|
||||
llm_description: JSON content to be processed
|
||||
form: llm
|
||||
- name: query
|
||||
type: string
|
||||
required: true
|
||||
label:
|
||||
en_US: Query
|
||||
zh_Hans: 查询
|
||||
pt_BR: Query
|
||||
human_description:
|
||||
en_US: Query
|
||||
zh_Hans: 查询
|
||||
pt_BR: Query
|
||||
llm_description: JSONPath query to locate the element to replace
|
||||
form: llm
|
||||
- name: replace_pattern
|
||||
type: string
|
||||
required: false
|
||||
label:
|
||||
en_US: String to be replaced
|
||||
zh_Hans: 待替换字符串
|
||||
pt_BR: String to be replaced
|
||||
human_description:
|
||||
en_US: String to be replaced
|
||||
zh_Hans: 待替换字符串
|
||||
pt_BR: String to be replaced
|
||||
llm_description: String to be replaced
|
||||
form: llm
|
||||
- name: replace_value
|
||||
type: string
|
||||
required: true
|
||||
label:
|
||||
en_US: Replace Value
|
||||
zh_Hans: 替换值
|
||||
pt_BR: Replace Value
|
||||
human_description:
|
||||
en_US: New Value
|
||||
zh_Hans: New Value
|
||||
pt_BR: New Value
|
||||
llm_description: New Value to replace
|
||||
form: llm
|
||||
- name: replace_model
|
||||
type: select
|
||||
required: true
|
||||
default: pattern
|
||||
label:
|
||||
en_US: Replace Model
|
||||
zh_Hans: 替换模式
|
||||
pt_BR: Replace Model
|
||||
human_description:
|
||||
en_US: Replace Model
|
||||
zh_Hans: 替换模式
|
||||
pt_BR: Replace Model
|
||||
options:
|
||||
- value: key
|
||||
label:
|
||||
en_US: replace key
|
||||
zh_Hans: 键替换
|
||||
pt_BR: replace key
|
||||
- value: value
|
||||
label:
|
||||
en_US: replace value
|
||||
zh_Hans: 值替换
|
||||
pt_BR: replace value
|
||||
- value: pattern
|
||||
label:
|
||||
en_US: replace string
|
||||
zh_Hans: 字符串替换
|
||||
pt_BR: replace string
|
||||
form: form
|
16
api/poetry.lock
generated
16
api/poetry.lock
generated
|
@ -3702,6 +3702,20 @@ files = [
|
|||
{file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "jsonpath-ng"
|
||||
version = "1.6.1"
|
||||
description = "A final implementation of JSONPath for Python that aims to be standard compliant, including arithmetic and binary comparison operators and providing clear AST for metaprogramming."
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
files = [
|
||||
{file = "jsonpath-ng-1.6.1.tar.gz", hash = "sha256:086c37ba4917304850bd837aeab806670224d3f038fe2833ff593a672ef0a5fa"},
|
||||
{file = "jsonpath_ng-1.6.1-py3-none-any.whl", hash = "sha256:8f22cd8273d7772eea9aaa84d922e0841aa36fdb8a2c6b7f6c3791a16a9bc0be"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
ply = "*"
|
||||
|
||||
[[package]]
|
||||
name = "kaleido"
|
||||
version = "0.2.1"
|
||||
|
@ -9081,4 +9095,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
|
|||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = "^3.10"
|
||||
content-hash = "5f6f7d8114ece4f7e865fdf9a1fc38a86238d6bc80333b878d50c95a7885b9f5"
|
||||
content-hash = "d40bed69caecf3a2bcd5ec054288d7cb36a9a231fff210d4f1a42745dd3bf604"
|
||||
|
|
|
@ -187,6 +187,7 @@ arxiv = "2.1.0"
|
|||
matplotlib = "~3.8.2"
|
||||
newspaper3k = "0.2.8"
|
||||
duckduckgo-search = "~6.1.5"
|
||||
jsonpath-ng = "1.6.1"
|
||||
numexpr = "~2.9.0"
|
||||
opensearch-py = "2.4.0"
|
||||
qrcode = "~7.4.2"
|
||||
|
@ -246,4 +247,4 @@ optional = true
|
|||
|
||||
[tool.poetry.group.lint.dependencies]
|
||||
ruff = "~0.4.8"
|
||||
dotenv-linter = "~0.5.0"
|
||||
dotenv-linter = "~0.5.0"
|
Loading…
Reference in New Issue
Block a user