veadk-python 0.1.0__py3-none-any.whl → 0.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. veadk/__pycache__/__init__.cpython-310.pyc +0 -0
  2. veadk/__pycache__/agent.cpython-310.pyc +0 -0
  3. veadk/__pycache__/config.cpython-310.pyc +0 -0
  4. veadk/__pycache__/consts.cpython-310.pyc +0 -0
  5. veadk/__pycache__/runner.cpython-310.pyc +0 -0
  6. veadk/__pycache__/types.cpython-310.pyc +0 -0
  7. veadk/__pycache__/version.cpython-310.pyc +0 -0
  8. veadk/a2a/__pycache__/__init__.cpython-310.pyc +0 -0
  9. veadk/a2a/__pycache__/agent_card.cpython-310.pyc +0 -0
  10. veadk/a2a/__pycache__/remote_ve_agent.cpython-310.pyc +0 -0
  11. veadk/a2a/remote_ve_agent.py +14 -0
  12. veadk/agent.py +9 -3
  13. veadk/cli/__pycache__/__init__.cpython-310.pyc +0 -0
  14. veadk/cli/__pycache__/main.cpython-310.pyc +0 -0
  15. veadk/cli/main.py +108 -7
  16. veadk/cli/services/agentpilot/__pycache__/__init__.cpython-310.pyc +0 -0
  17. veadk/cli/services/agentpilot/__pycache__/agentpilot.cpython-310.pyc +0 -0
  18. veadk/cli/services/veapig/__pycache__/__init__.cpython-310.pyc +0 -0
  19. veadk/cli/services/veapig/__pycache__/apig.cpython-310.pyc +0 -0
  20. veadk/cli/services/vefaas/__pycache__/__init__.cpython-310.pyc +0 -0
  21. veadk/cli/services/vefaas/__pycache__/vefaas.cpython-310.pyc +0 -0
  22. veadk/cli/services/vefaas/__pycache__/vefaas_utils.cpython-310.pyc +0 -0
  23. veadk/cli/services/vefaas/template/README.md +37 -0
  24. veadk/cli/services/vefaas/template/__init__.py +13 -0
  25. veadk/cli/services/vefaas/template/config.yaml.example +19 -0
  26. veadk/cli/services/vefaas/template/deploy.py +25 -11
  27. veadk/cli/services/vefaas/template/src/__init__.py +14 -0
  28. veadk/cli/services/vefaas/template/src/__pycache__/agent.cpython-310.pyc +0 -0
  29. veadk/cli/services/vefaas/template/src/__pycache__/studio_app.cpython-310.pyc +0 -0
  30. veadk/cli/services/vefaas/template/src/agent.py +25 -0
  31. veadk/cli/services/vefaas/template/src/app.py +48 -8
  32. veadk/cli/services/vefaas/template/src/requirements.txt +6 -0
  33. veadk/cli/services/vefaas/template/src/run.sh +63 -0
  34. veadk/cli/services/vefaas/template/src/studio_app.py +47 -0
  35. veadk/cli/services/vefaas/vefaas.py +153 -101
  36. veadk/cli/studio/__pycache__/__init__.cpython-310.pyc +0 -0
  37. veadk/cli/studio/__pycache__/fast_api.cpython-310.pyc +0 -0
  38. veadk/cli/studio/__pycache__/models.cpython-310.pyc +0 -0
  39. veadk/cli/studio/__pycache__/studio_processor.cpython-310.pyc +0 -0
  40. veadk/cli/studio/fast_api.py +305 -145
  41. veadk/cli/studio/models.py +76 -0
  42. veadk/cli/studio/studio_processor.py +127 -0
  43. veadk/cli/studio/web/404.html +1 -0
  44. veadk/cli/studio/web/__init__.py +13 -0
  45. veadk/cli/studio/web/__pycache__/__init__.cpython-310.pyc +0 -0
  46. veadk/cli/studio/web/_next/static/chunks/1012.1c22f40693022876.js +1 -0
  47. veadk/cli/studio/web/_next/static/chunks/1017.577d2551c3a2b396.js +1 -0
  48. veadk/cli/studio/web/_next/static/chunks/1044.7c49605a0f9b5d5c.js +1 -0
  49. veadk/cli/studio/web/_next/static/chunks/1067.71aee8d185b3a9d7.js +1 -0
  50. veadk/cli/studio/web/_next/static/chunks/1088.8f7f3c71458d301b.js +1 -0
  51. veadk/cli/studio/web/_next/static/chunks/1092.7b553ab1ec1737bf.js +1 -0
  52. veadk/cli/studio/web/_next/static/chunks/1117.8c537e259adccbe2.js +1 -0
  53. veadk/cli/studio/web/_next/static/chunks/1142.1faf8d46ccf4030c.js +1 -0
  54. veadk/cli/studio/web/_next/static/chunks/1146.25bf08c82f4ad1c5.js +1 -0
  55. veadk/cli/studio/web/_next/static/chunks/1192.55e7712b3dc8b6a8.js +1 -0
  56. veadk/cli/studio/web/_next/static/chunks/1200.1038681512a9f69a.js +1 -0
  57. veadk/cli/studio/web/_next/static/chunks/1265.e055670c82b2d131.js +1 -0
  58. veadk/cli/studio/web/_next/static/chunks/1275.322d8bf8a580b859.js +1 -0
  59. veadk/cli/studio/web/_next/static/chunks/140.d7e90f5e12cf288c.js +1 -0
  60. veadk/cli/studio/web/_next/static/chunks/1421.7fff0e9f0677f79b.js +1 -0
  61. veadk/cli/studio/web/_next/static/chunks/1469.16c1e07a7c0f9817.js +1 -0
  62. veadk/cli/studio/web/_next/static/chunks/1480.3c94a6d6d61c4f56.js +1 -0
  63. veadk/cli/studio/web/_next/static/chunks/1507.4c7617217de3bef8.js +1 -0
  64. veadk/cli/studio/web/_next/static/chunks/1523.1740f3d9d913fe76.js +1 -0
  65. veadk/cli/studio/web/_next/static/chunks/1526.5fb34657a70589b5.js +1 -0
  66. veadk/cli/studio/web/_next/static/chunks/1563.6c364e96b33f3328.js +1 -0
  67. veadk/cli/studio/web/_next/static/chunks/157.2e3f508bc115c15c.js +1 -0
  68. veadk/cli/studio/web/_next/static/chunks/1577.b6cebda169ac9c75.js +1 -0
  69. veadk/cli/studio/web/_next/static/chunks/1622.a611b4dab478587d.js +1 -0
  70. veadk/cli/studio/web/_next/static/chunks/1685.db5d4efe2f0e3767.js +1 -0
  71. veadk/cli/studio/web/_next/static/chunks/1687.a10254d4e1dd84c0.js +1 -0
  72. veadk/cli/studio/web/_next/static/chunks/1826.da2ac0fcfb59cfae.js +1 -0
  73. veadk/cli/studio/web/_next/static/chunks/1832.f81112d6166a9563.js +1 -0
  74. veadk/cli/studio/web/_next/static/chunks/1851.1d0bdfdf5fa89313.js +1 -0
  75. veadk/cli/studio/web/_next/static/chunks/189.c602a68aadf321e4.js +1 -0
  76. veadk/cli/studio/web/_next/static/chunks/1899.dd303f08095745bc.js +1 -0
  77. veadk/cli/studio/web/_next/static/chunks/193.1e81c5b253db2ee7.js +1 -0
  78. veadk/cli/studio/web/_next/static/chunks/1936.8fad6d3898c86483.js +1 -0
  79. veadk/cli/studio/web/_next/static/chunks/1942.165056b632c269d4.js +1 -0
  80. veadk/cli/studio/web/_next/static/chunks/1974.ee28ba5ac111af70.js +1 -0
  81. veadk/cli/studio/web/_next/static/chunks/2.c2afe2e24520b5de.js +1 -0
  82. veadk/cli/studio/web/_next/static/chunks/2006.298ac00a777dc313.js +1 -0
  83. veadk/cli/studio/web/_next/static/chunks/2063.69ba443b7901194c.js +1 -0
  84. veadk/cli/studio/web/_next/static/chunks/2067-e02b0bc96d886930.js +91 -0
  85. veadk/cli/studio/web/_next/static/chunks/2119.4595d21bc0340c5b.js +1 -0
  86. veadk/cli/studio/web/_next/static/chunks/212.0a8d6163667d9369.js +1 -0
  87. veadk/cli/studio/web/_next/static/chunks/2190.5549f7a57901bd46.js +1 -0
  88. veadk/cli/studio/web/_next/static/chunks/2193.51ce38cc9e965abd.js +1 -0
  89. veadk/cli/studio/web/_next/static/chunks/2202.a6c08676680e55ad.js +1 -0
  90. veadk/cli/studio/web/_next/static/chunks/2247.af410bd18c38e538.js +1 -0
  91. veadk/cli/studio/web/_next/static/chunks/2313.6932520daf0fa88c.js +1 -0
  92. veadk/cli/studio/web/_next/static/chunks/2316.c9eafa57971eebc8.js +1 -0
  93. veadk/cli/studio/web/_next/static/chunks/2324.766859688506ac0d.js +1 -0
  94. veadk/cli/studio/web/_next/static/chunks/2328.131b0296bc19ba4e.js +1 -0
  95. veadk/cli/studio/web/_next/static/chunks/2332.b9b7ac0b386a4a28.js +1 -0
  96. veadk/cli/studio/web/_next/static/chunks/2344.cc417c70cb6dbc51.js +1 -0
  97. veadk/cli/studio/web/_next/static/chunks/2347.9f442b75b11de668.js +1 -0
  98. veadk/cli/studio/web/_next/static/chunks/2356.f6b4ac7eb50edb44.js +1 -0
  99. veadk/cli/studio/web/_next/static/chunks/2370.044b34646bc58363.js +1 -0
  100. veadk/cli/studio/web/_next/static/chunks/2378.2005af4d2bf100dd.js +1 -0
  101. veadk/cli/studio/web/_next/static/chunks/2437.68534e42d45c5c61.js +1 -0
  102. veadk/cli/studio/web/_next/static/chunks/2449.db460ea54b851bc1.js +1 -0
  103. veadk/cli/studio/web/_next/static/chunks/2455.153b04863d2ae9dc.js +1 -0
  104. veadk/cli/studio/web/_next/static/chunks/2484.139843b3f1cc8ea5.js +1 -0
  105. veadk/cli/studio/web/_next/static/chunks/2500.e2b8da0d1401bd5f.js +1 -0
  106. veadk/cli/studio/web/_next/static/chunks/2513.a7056ff98b04c4cd.js +1 -0
  107. veadk/cli/studio/web/_next/static/chunks/2533.5e35d247414428d0.js +1 -0
  108. veadk/cli/studio/web/_next/static/chunks/2541.3e5a23b461d7a9fd.js +1 -0
  109. veadk/cli/studio/web/_next/static/chunks/2545.0e4e3a784391205b.js +1 -0
  110. veadk/cli/studio/web/_next/static/chunks/2558.17eda1052d7c8c1f.js +1 -0
  111. veadk/cli/studio/web/_next/static/chunks/2559.7432df2540cfff07.js +1 -0
  112. veadk/cli/studio/web/_next/static/chunks/2578.1be0687e71bc7731.js +1 -0
  113. veadk/cli/studio/web/_next/static/chunks/2601.aa7e57bdf472372c.js +1 -0
  114. veadk/cli/studio/web/_next/static/chunks/261-19b52c2c85aefb5d.js +1 -0
  115. veadk/cli/studio/web/_next/static/chunks/2642.9ea0966ca6bd8ace.js +1 -0
  116. veadk/cli/studio/web/_next/static/chunks/2669.e90ab188be48154e.js +1 -0
  117. veadk/cli/studio/web/_next/static/chunks/2737.4f5c7f7b9293ae65.js +1 -0
  118. veadk/cli/studio/web/_next/static/chunks/2804.b801cadc26133d92.js +1 -0
  119. veadk/cli/studio/web/_next/static/chunks/2817.8584109b4bc979e8.js +1 -0
  120. veadk/cli/studio/web/_next/static/chunks/282.cfff86fab979470f.js +1 -0
  121. veadk/cli/studio/web/_next/static/chunks/2822.12cdf0520b2d321a.js +1 -0
  122. veadk/cli/studio/web/_next/static/chunks/288.5c1053dbdc74212b.js +1 -0
  123. veadk/cli/studio/web/_next/static/chunks/2964.a531dbf5eb867f3d.js +1 -0
  124. veadk/cli/studio/web/_next/static/chunks/2f7605f3.0531565b22967bb4.js +1 -0
  125. veadk/cli/studio/web/_next/static/chunks/3080.9aada68cdc9ad5c2.js +1 -0
  126. veadk/cli/studio/web/_next/static/chunks/3090.a9e7f71df818f607.js +1 -0
  127. veadk/cli/studio/web/_next/static/chunks/3103.b7cdb76d87ac0fdd.js +1 -0
  128. veadk/cli/studio/web/_next/static/chunks/311.2737abd09304ba1b.js +1 -0
  129. veadk/cli/studio/web/_next/static/chunks/3110.84511591e516221b.js +1 -0
  130. veadk/cli/studio/web/_next/static/chunks/3126.307ac469edcf6ec9.js +1 -0
  131. veadk/cli/studio/web/_next/static/chunks/320.a3c0085ebf05b7da.js +1 -0
  132. veadk/cli/studio/web/_next/static/chunks/322.668c1a20cc012c68.js +1 -0
  133. veadk/cli/studio/web/_next/static/chunks/3341.a0f06b1edc2332fb.js +1 -0
  134. veadk/cli/studio/web/_next/static/chunks/3357.ced93e6bf8e56762.js +1 -0
  135. veadk/cli/studio/web/_next/static/chunks/3386.53f3aa4ff0dd0170.js +1 -0
  136. veadk/cli/studio/web/_next/static/chunks/3391.402e02fd7c297ff8.js +1 -0
  137. veadk/cli/studio/web/_next/static/chunks/3392.5172b1d190ff0e8c.js +1 -0
  138. veadk/cli/studio/web/_next/static/chunks/33fb68d2.aacf24a5979288bd.js +1 -0
  139. veadk/cli/studio/web/_next/static/chunks/3429.74dcaa985d188e43.js +1 -0
  140. veadk/cli/studio/web/_next/static/chunks/3433.737c3d948bdda1da.js +1 -0
  141. veadk/cli/studio/web/_next/static/chunks/3435.1798454b9a5b69ca.js +1 -0
  142. veadk/cli/studio/web/_next/static/chunks/3481.a916f933c4e534b8.js +1 -0
  143. veadk/cli/studio/web/_next/static/chunks/3602.bdf28129f1569554.js +1 -0
  144. veadk/cli/studio/web/_next/static/chunks/3607.49cec7e9330d1f4d.js +1 -0
  145. veadk/cli/studio/web/_next/static/chunks/3615.3280752d551adf2d.js +1 -0
  146. veadk/cli/studio/web/_next/static/chunks/3721.f660b5b05621f5e4.js +1 -0
  147. veadk/cli/studio/web/_next/static/chunks/3786.ae0824e683556d37.js +1 -0
  148. veadk/cli/studio/web/_next/static/chunks/3805.ec0340f0f6e61bbc.js +1 -0
  149. veadk/cli/studio/web/_next/static/chunks/4045.42a3c9fb7d932ebc.js +1 -0
  150. veadk/cli/studio/web/_next/static/chunks/4052.86cc820c95ad25a8.js +1 -0
  151. veadk/cli/studio/web/_next/static/chunks/4058.3cea468f5370b7c9.js +1 -0
  152. veadk/cli/studio/web/_next/static/chunks/4068.ff830b92579f6b7f.js +1 -0
  153. veadk/cli/studio/web/_next/static/chunks/411.5679da8e6a856022.js +1 -0
  154. veadk/cli/studio/web/_next/static/chunks/4118.e2544434642f6640.js +1 -0
  155. veadk/cli/studio/web/_next/static/chunks/4139.80b0aab26d9a4601.js +1 -0
  156. veadk/cli/studio/web/_next/static/chunks/423.da4e0abf5fd408dc.js +1 -0
  157. veadk/cli/studio/web/_next/static/chunks/4262.9d5532cb76a86371.js +1 -0
  158. veadk/cli/studio/web/_next/static/chunks/431.ef6d705ac627958f.js +1 -0
  159. veadk/cli/studio/web/_next/static/chunks/4337.3c94a6d6d61c4f56.js +1 -0
  160. veadk/cli/studio/web/_next/static/chunks/4357-39eb6b5934ac97db.js +1 -0
  161. veadk/cli/studio/web/_next/static/chunks/4382.64908590e0a18d66.js +1 -0
  162. veadk/cli/studio/web/_next/static/chunks/4489.7a9b45fb6f6bf491.js +1 -0
  163. veadk/cli/studio/web/_next/static/chunks/450.76880cb957b128fa.js +1 -0
  164. veadk/cli/studio/web/_next/static/chunks/452.14fb00ee415ad32b.js +1 -0
  165. veadk/cli/studio/web/_next/static/chunks/4577.d1cbd95a87e2adb2.js +1 -0
  166. veadk/cli/studio/web/_next/static/chunks/4626.0866c7ee38885775.js +1 -0
  167. veadk/cli/studio/web/_next/static/chunks/4627.3d7df52a668a6b57.js +1 -0
  168. veadk/cli/studio/web/_next/static/chunks/4713.3891f7d347513ef5.js +1 -0
  169. veadk/cli/studio/web/_next/static/chunks/4749.25fd94a8ed476b13.js +1 -0
  170. veadk/cli/studio/web/_next/static/chunks/4836.afe027e38fb9a7e8.js +1 -0
  171. veadk/cli/studio/web/_next/static/chunks/483e0093.2a09b17ad5d1b3ed.js +1 -0
  172. veadk/cli/studio/web/_next/static/chunks/4852.cac6e9c5032df796.js +1 -0
  173. veadk/cli/studio/web/_next/static/chunks/4860.94324451a00fadc0.js +1 -0
  174. veadk/cli/studio/web/_next/static/chunks/4869.091903cb36ad77ad.js +1 -0
  175. veadk/cli/studio/web/_next/static/chunks/4888.e248e212b002f5df.js +1 -0
  176. veadk/cli/studio/web/_next/static/chunks/492.ac958937dd36300f.js +1 -0
  177. veadk/cli/studio/web/_next/static/chunks/4958.85e0dbc8b2319776.js +1 -0
  178. veadk/cli/studio/web/_next/static/chunks/4968.1477e29640b2deb8.js +1 -0
  179. veadk/cli/studio/web/_next/static/chunks/4980.1300ab7d9c76e523.js +1 -0
  180. veadk/cli/studio/web/_next/static/chunks/4aa6d3c9.dade76a8ff4112d3.js +1 -0
  181. veadk/cli/studio/web/_next/static/chunks/5006.8ee1d611f529da11.js +1 -0
  182. veadk/cli/studio/web/_next/static/chunks/5018.c34d2a9f82e24c51.js +1 -0
  183. veadk/cli/studio/web/_next/static/chunks/5050.c06b2d8e12720555.js +1 -0
  184. veadk/cli/studio/web/_next/static/chunks/5084.9b554002148843ea.js +1 -0
  185. veadk/cli/studio/web/_next/static/chunks/5097.2e9a097ccfb70707.js +1 -0
  186. veadk/cli/studio/web/_next/static/chunks/5113.fa5291624248676b.js +1 -0
  187. veadk/cli/studio/web/_next/static/chunks/5115.ff49cf5e2be16db4.js +1 -0
  188. veadk/cli/studio/web/_next/static/chunks/521.98b7995e15b59075.js +1 -0
  189. veadk/cli/studio/web/_next/static/chunks/5213.1a7618fcae8c5282.js +1 -0
  190. veadk/cli/studio/web/_next/static/chunks/522.56063fbcf9aa8699.js +1 -0
  191. veadk/cli/studio/web/_next/static/chunks/5247.b304f94eb3132618.js +1 -0
  192. veadk/cli/studio/web/_next/static/chunks/5248.f9faaff2f0d7631f.js +1 -0
  193. veadk/cli/studio/web/_next/static/chunks/527-1c65afbb202752bd.js +1 -0
  194. veadk/cli/studio/web/_next/static/chunks/529.7d231c2076b6d77a.js +1 -0
  195. veadk/cli/studio/web/_next/static/chunks/5305.9323b5f7efaa005e.js +1 -0
  196. veadk/cli/studio/web/_next/static/chunks/5317.fce75000492e9db4.js +1 -0
  197. veadk/cli/studio/web/_next/static/chunks/5326.3be5b04850f0a2f2.js +1 -0
  198. veadk/cli/studio/web/_next/static/chunks/5329.415b43aacdd9a471.js +1 -0
  199. veadk/cli/studio/web/_next/static/chunks/5331.77f0493c99857944.js +1 -0
  200. veadk/cli/studio/web/_next/static/chunks/5341.1fff90ab37947f62.js +1 -0
  201. veadk/cli/studio/web/_next/static/chunks/541.04d938e895b7f678.js +1 -0
  202. veadk/cli/studio/web/_next/static/chunks/5428.fa789e4b0d61cd0d.js +1 -0
  203. veadk/cli/studio/web/_next/static/chunks/5460.cee07b9411c5c5ca.js +1 -0
  204. veadk/cli/studio/web/_next/static/chunks/5472.f645717ad2edd28f.js +1 -0
  205. veadk/cli/studio/web/_next/static/chunks/5503.75093ef3870b655f.js +1 -0
  206. veadk/cli/studio/web/_next/static/chunks/5567.44555d5da6ed19b7.js +1 -0
  207. veadk/cli/studio/web/_next/static/chunks/5572.3c35c26a4867ca56.js +1 -0
  208. veadk/cli/studio/web/_next/static/chunks/5579.b3be6028d1833118.js +1 -0
  209. veadk/cli/studio/web/_next/static/chunks/5631.b8a2c0dc65737269.js +1 -0
  210. veadk/cli/studio/web/_next/static/chunks/5656.b743b6ab9a61eec0.js +1 -0
  211. veadk/cli/studio/web/_next/static/chunks/5677.c063822912e55a25.js +1 -0
  212. veadk/cli/studio/web/_next/static/chunks/5779.0b1a3c7d1c018a1d.js +1 -0
  213. veadk/cli/studio/web/_next/static/chunks/5817.ae1fb69a154fbf4c.js +1 -0
  214. veadk/cli/studio/web/_next/static/chunks/5860.7154866a5d2dd82f.js +1 -0
  215. veadk/cli/studio/web/_next/static/chunks/5865.645e44e8e171ba9f.js +1 -0
  216. veadk/cli/studio/web/_next/static/chunks/5906.30cce16ed88f920a.js +1 -0
  217. veadk/cli/studio/web/_next/static/chunks/5942.cd6dfaad76581849.js +1 -0
  218. veadk/cli/studio/web/_next/static/chunks/5958.e2f981fa3cba5d99.js +1 -0
  219. veadk/cli/studio/web/_next/static/chunks/60f90b65.d526f39688baa769.js +1 -0
  220. veadk/cli/studio/web/_next/static/chunks/6128.3da302fb50769250.js +1 -0
  221. veadk/cli/studio/web/_next/static/chunks/62.5408e55d383a8078.js +1 -0
  222. veadk/cli/studio/web/_next/static/chunks/624.7c7198473a8877d8.js +1 -0
  223. veadk/cli/studio/web/_next/static/chunks/6264.e7bdd878d9e7a249.js +1 -0
  224. veadk/cli/studio/web/_next/static/chunks/6266.97409ca00a3c32d9.js +1 -0
  225. veadk/cli/studio/web/_next/static/chunks/6269.668be917daafccaa.js +1 -0
  226. veadk/cli/studio/web/_next/static/chunks/630.87a6f22ac3e8956b.js +1 -0
  227. veadk/cli/studio/web/_next/static/chunks/6341.35afa02112051be8.js +1 -0
  228. veadk/cli/studio/web/_next/static/chunks/6353.93869a804ffe525b.js +1 -0
  229. veadk/cli/studio/web/_next/static/chunks/6375.46d2897cb2526abd.js +1 -0
  230. veadk/cli/studio/web/_next/static/chunks/6395.f113970ceec6ba91.js +1 -0
  231. veadk/cli/studio/web/_next/static/chunks/63d31579-18fb2181524a9c6f.js +1 -0
  232. veadk/cli/studio/web/_next/static/chunks/6423.d4cf9eb5b2ae6336.js +1 -0
  233. veadk/cli/studio/web/_next/static/chunks/6437.5eeaa7320bce1872.js +1 -0
  234. veadk/cli/studio/web/_next/static/chunks/6438.1c8486cc62da4117.js +1 -0
  235. veadk/cli/studio/web/_next/static/chunks/6451.f56cce0a07138982.js +1 -0
  236. veadk/cli/studio/web/_next/static/chunks/6456.f263b33ea51e4f54.js +1 -0
  237. veadk/cli/studio/web/_next/static/chunks/6504.0e6ae8d5bb987be6.js +1 -0
  238. veadk/cli/studio/web/_next/static/chunks/6560.b08504c0d99d71d4.js +1 -0
  239. veadk/cli/studio/web/_next/static/chunks/6563.e6d3bdba9860590d.js +1 -0
  240. veadk/cli/studio/web/_next/static/chunks/6621.639e4057d9c15bea.js +1 -0
  241. veadk/cli/studio/web/_next/static/chunks/6625.c0233245d2c1ef25.js +1 -0
  242. veadk/cli/studio/web/_next/static/chunks/6641.5487a2d68b0c52f2.js +1 -0
  243. veadk/cli/studio/web/_next/static/chunks/6644.74de9f2de2dc75f5.js +1 -0
  244. veadk/cli/studio/web/_next/static/chunks/6730.aac5bd02aab8258f.js +1 -0
  245. veadk/cli/studio/web/_next/static/chunks/6824.8c40dbd3eb390403.js +1 -0
  246. veadk/cli/studio/web/_next/static/chunks/6831.74b4a9b75f4ff9d1.js +1 -0
  247. veadk/cli/studio/web/_next/static/chunks/688.9a27292bd19bc993.js +1 -0
  248. veadk/cli/studio/web/_next/static/chunks/6899.ac4207b9a778bd0e.js +1 -0
  249. veadk/cli/studio/web/_next/static/chunks/6901.4755ed550912589c.js +1 -0
  250. veadk/cli/studio/web/_next/static/chunks/6910.5d45b17e287dba94.js +1 -0
  251. veadk/cli/studio/web/_next/static/chunks/6928.d0a540480df90930.js +1 -0
  252. veadk/cli/studio/web/_next/static/chunks/6958.c58e8e991b201429.js +1 -0
  253. veadk/cli/studio/web/_next/static/chunks/6d60d248-1bbd761ee88ab2e4.js +1 -0
  254. veadk/cli/studio/web/_next/static/chunks/70207789-862965aac548ab2a.js +1 -0
  255. veadk/cli/studio/web/_next/static/chunks/7046.60a892c1e506cf5f.js +1 -0
  256. veadk/cli/studio/web/_next/static/chunks/7068.6639b51e828de233.js +1 -0
  257. veadk/cli/studio/web/_next/static/chunks/7172.aeda2e49d81fc0fd.js +1 -0
  258. veadk/cli/studio/web/_next/static/chunks/7185.0210768f3918ec41.js +1 -0
  259. veadk/cli/studio/web/_next/static/chunks/7200.86e672d8e2c1a920.js +1 -0
  260. veadk/cli/studio/web/_next/static/chunks/730.2c5e46bf8fd29fcc.js +1 -0
  261. veadk/cli/studio/web/_next/static/chunks/7301.43929cd9c2a5d2ea.js +1 -0
  262. veadk/cli/studio/web/_next/static/chunks/7335.68692b193fa0dff6.js +1 -0
  263. veadk/cli/studio/web/_next/static/chunks/7412.98554f6ee574e288.js +1 -0
  264. veadk/cli/studio/web/_next/static/chunks/7422.e4a69fce6694ba90.js +1 -0
  265. veadk/cli/studio/web/_next/static/chunks/7448.63e7b8d5fd090bd1.js +1 -0
  266. veadk/cli/studio/web/_next/static/chunks/7479.97f696c6ada04b29.js +1 -0
  267. veadk/cli/studio/web/_next/static/chunks/7482.ab6a217c34f6934a.js +1 -0
  268. veadk/cli/studio/web/_next/static/chunks/7484.b91675bd38b250f8.js +1 -0
  269. veadk/cli/studio/web/_next/static/chunks/7522.84dac217ae0701ac.js +1 -0
  270. veadk/cli/studio/web/_next/static/chunks/7540-38c13446d29f43f2.js +1 -0
  271. veadk/cli/studio/web/_next/static/chunks/7556.ae47807e378de233.js +1 -0
  272. veadk/cli/studio/web/_next/static/chunks/761.2ce77249f8d3a1ce.js +1 -0
  273. veadk/cli/studio/web/_next/static/chunks/7678.ceea70830f2dd7ff.js +1 -0
  274. veadk/cli/studio/web/_next/static/chunks/7684.c43e4b5ad1f9b0af.js +1 -0
  275. veadk/cli/studio/web/_next/static/chunks/7698.44201098b212aee8.js +1 -0
  276. veadk/cli/studio/web/_next/static/chunks/76ff44ea.8322bdedaee78e2d.js +1 -0
  277. veadk/cli/studio/web/_next/static/chunks/7725.b15cb8b6e1d15403.js +1 -0
  278. veadk/cli/studio/web/_next/static/chunks/7855.513a507852c649f2.js +1 -0
  279. veadk/cli/studio/web/_next/static/chunks/7910.266df3f992c16215.js +1 -0
  280. veadk/cli/studio/web/_next/static/chunks/7940.f490f3d5e6590e54.js +1 -0
  281. veadk/cli/studio/web/_next/static/chunks/7960.491bd15bef82755c.js +1 -0
  282. veadk/cli/studio/web/_next/static/chunks/8020.795778775ed5c387.js +1 -0
  283. veadk/cli/studio/web/_next/static/chunks/8107.fbb6017b3e909da5.js +1 -0
  284. veadk/cli/studio/web/_next/static/chunks/8169.4d7fd139784eb935.js +1 -0
  285. veadk/cli/studio/web/_next/static/chunks/8196.6c5c3dfe86e1c3ca.js +1 -0
  286. veadk/cli/studio/web/_next/static/chunks/8257.ee682bc2599473cb.js +1 -0
  287. veadk/cli/studio/web/_next/static/chunks/8305.d2c965e56fe9350c.js +1 -0
  288. veadk/cli/studio/web/_next/static/chunks/8324.8c3edcc756f5e2f3.js +1 -0
  289. veadk/cli/studio/web/_next/static/chunks/8388.cc59fb03d62a71cf.js +1 -0
  290. veadk/cli/studio/web/_next/static/chunks/8394.d5ca17ce8f6fffb0.js +1 -0
  291. veadk/cli/studio/web/_next/static/chunks/8419.b11c64d18dc580b5.js +1 -0
  292. veadk/cli/studio/web/_next/static/chunks/8478.5f4272ae9afa4061.js +1 -0
  293. veadk/cli/studio/web/_next/static/chunks/8480.a071150cb4eddc29.js +1 -0
  294. veadk/cli/studio/web/_next/static/chunks/8535.0ab856b7bf0e161b.js +1 -0
  295. veadk/cli/studio/web/_next/static/chunks/8571.8af7983b03c09f86.js +1 -0
  296. veadk/cli/studio/web/_next/static/chunks/8583.4afa8c68cb867b2d.js +1 -0
  297. veadk/cli/studio/web/_next/static/chunks/8601.520cbfc8abbfb5f8.js +1 -0
  298. veadk/cli/studio/web/_next/static/chunks/8656.5f8b6212d2b35257.js +1 -0
  299. veadk/cli/studio/web/_next/static/chunks/8665.7f24febc4a78ff5e.js +1 -0
  300. veadk/cli/studio/web/_next/static/chunks/8687.c94010eb559245b6.js +1 -0
  301. veadk/cli/studio/web/_next/static/chunks/8815.81a5c5700763ca02.js +1 -0
  302. veadk/cli/studio/web/_next/static/chunks/8878.28a43a5fe23f5bd0.js +1 -0
  303. veadk/cli/studio/web/_next/static/chunks/8884.e4e411c7978b2552.js +1 -0
  304. veadk/cli/studio/web/_next/static/chunks/8962.db5c7728bef5ff0b.js +1 -0
  305. veadk/cli/studio/web/_next/static/chunks/8984.dfcb15f115089c4a.js +1 -0
  306. veadk/cli/studio/web/_next/static/chunks/9022.d161e32a6b1bcc61.js +1 -0
  307. veadk/cli/studio/web/_next/static/chunks/9099.8ba5be825d17456a.js +1 -0
  308. veadk/cli/studio/web/_next/static/chunks/914.72991ff6c9332951.js +1 -0
  309. veadk/cli/studio/web/_next/static/chunks/9217.40b78a38cadcd268.js +1 -0
  310. veadk/cli/studio/web/_next/static/chunks/925.0cc74592f03b10e9.js +1 -0
  311. veadk/cli/studio/web/_next/static/chunks/9275.ac60c49c68c86e51.js +1 -0
  312. veadk/cli/studio/web/_next/static/chunks/92a17e6d.da4fba322f70cd46.js +1 -0
  313. veadk/cli/studio/web/_next/static/chunks/92b95f17.39f98387a9867b4a.js +1 -0
  314. veadk/cli/studio/web/_next/static/chunks/9361.d3535e4d87c1c527.js +1 -0
  315. veadk/cli/studio/web/_next/static/chunks/9433.55eb6e4ea7edb262.js +1 -0
  316. veadk/cli/studio/web/_next/static/chunks/9436.5b2462fa3ddebb27.js +1 -0
  317. veadk/cli/studio/web/_next/static/chunks/9445.e29312f685c22eff.js +1 -0
  318. veadk/cli/studio/web/_next/static/chunks/9471.646bdfb962cdd5c2.js +1 -0
  319. veadk/cli/studio/web/_next/static/chunks/9473.efa6db413edc23d1.js +1 -0
  320. veadk/cli/studio/web/_next/static/chunks/9484.e9f1cd4e3f8e75df.js +1 -0
  321. veadk/cli/studio/web/_next/static/chunks/9545.61026f3c11f914f2.js +1 -0
  322. veadk/cli/studio/web/_next/static/chunks/9555.287e4e4a50087d62.js +1 -0
  323. veadk/cli/studio/web/_next/static/chunks/963.da40bca273fb82c6.js +1 -0
  324. veadk/cli/studio/web/_next/static/chunks/9636.4d3678b9a4e0b46e.js +1 -0
  325. veadk/cli/studio/web/_next/static/chunks/9657.459d6300b0bc8ef8.js +1 -0
  326. veadk/cli/studio/web/_next/static/chunks/9676.cef4d87274c64417.js +1 -0
  327. veadk/cli/studio/web/_next/static/chunks/97.15df9ee2f6270421.js +1 -0
  328. veadk/cli/studio/web/_next/static/chunks/9754.76a3ea33dc0e9a07.js +1 -0
  329. veadk/cli/studio/web/_next/static/chunks/9790.7e01549d70279760.js +1 -0
  330. veadk/cli/studio/web/_next/static/chunks/9871.994068e90ef076a5.js +1 -0
  331. veadk/cli/studio/web/_next/static/chunks/9887.0fbd7c3721a3c1d1.js +1 -0
  332. veadk/cli/studio/web/_next/static/chunks/9923.14c88b64d7749eaa.js +1 -0
  333. veadk/cli/studio/web/_next/static/chunks/997.193727d4b2eede68.js +1 -0
  334. veadk/cli/studio/web/_next/static/chunks/9971.36f503837f73d3c2.js +1 -0
  335. veadk/cli/studio/web/_next/static/chunks/9976.ab4ec59ede08f398.js +1 -0
  336. veadk/cli/studio/web/_next/static/chunks/9990.13e025853b0250b6.js +1 -0
  337. veadk/cli/studio/web/_next/static/chunks/9997.a844d058b46bb680.js +1 -0
  338. veadk/cli/studio/web/_next/static/chunks/app/_not-found/page-ce05b36a67c37396.js +1 -0
  339. veadk/cli/studio/web/_next/static/chunks/app/layout-b0d50d105c55fd6d.js +1 -0
  340. veadk/cli/studio/web/_next/static/chunks/app/page-7b51d29c96f44f61.js +1 -0
  341. veadk/cli/studio/web/_next/static/chunks/app/run/page-c2cd4dca690d6d29.js +1 -0
  342. veadk/cli/studio/web/_next/static/chunks/c06218ab.b1da50a91b579a52.js +1 -0
  343. veadk/cli/studio/web/_next/static/chunks/c911d7bd.bcca2e3dda67a7a6.js +1 -0
  344. veadk/cli/studio/web/_next/static/chunks/d386b14e.c746c93eac03a58e.js +1 -0
  345. veadk/cli/studio/web/_next/static/chunks/e925550e.ff706051f5223d26.js +1 -0
  346. veadk/cli/studio/web/_next/static/chunks/fc645be4-662fd2da08676daa.js +1 -0
  347. veadk/cli/studio/web/_next/static/chunks/framework-2b8e4864be10152d.js +1 -0
  348. veadk/cli/studio/web/_next/static/chunks/main-33072985ea766514.js +1 -0
  349. veadk/cli/studio/web/_next/static/chunks/main-app-4a8ccba13aa7606b.js +1 -0
  350. veadk/cli/studio/web/_next/static/chunks/pages/_app-c0ae3ec92f260128.js +1 -0
  351. veadk/cli/studio/web/_next/static/chunks/pages/_error-899a04d491d7df58.js +1 -0
  352. veadk/cli/studio/web/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  353. veadk/cli/studio/web/_next/static/chunks/webpack-14afc8861a1fe293.js +1 -0
  354. veadk/cli/studio/web/_next/static/css/366cfdd7fdd8bcac.css +1 -0
  355. veadk/cli/studio/web/_next/static/gvLvin_lQcpkhQupQqPu1/_buildManifest.js +1 -0
  356. veadk/cli/studio/web/_next/static/gvLvin_lQcpkhQupQqPu1/_ssgManifest.js +1 -0
  357. veadk/cli/studio/web/_next/static/media/569ce4b8f30dc480-s.p.woff2 +0 -0
  358. veadk/cli/studio/web/_next/static/media/747892c23ea88013-s.woff2 +0 -0
  359. veadk/cli/studio/web/_next/static/media/8d697b304b401681-s.woff2 +0 -0
  360. veadk/cli/studio/web/_next/static/media/93f479601ee12b01-s.p.woff2 +0 -0
  361. veadk/cli/studio/web/_next/static/media/9610d9e46709d722-s.woff2 +0 -0
  362. veadk/cli/studio/web/_next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
  363. veadk/cli/studio/web/favicon.ico +0 -0
  364. veadk/cli/studio/web/file.svg +1 -0
  365. veadk/cli/studio/web/globe.svg +1 -0
  366. veadk/cli/studio/web/index.html +1 -0
  367. veadk/cli/studio/web/index.txt +43 -0
  368. veadk/cli/studio/web/next.svg +1 -0
  369. veadk/cli/studio/web/run.html +1 -0
  370. veadk/cli/studio/web/run.txt +44 -0
  371. veadk/cli/studio/web/veadk-logo.png +0 -0
  372. veadk/cli/studio/web/vercel.svg +1 -0
  373. veadk/cli/studio/web/window.svg +1 -0
  374. veadk/cloud/__pycache__/__init__.cpython-310.pyc +0 -0
  375. veadk/cloud/__pycache__/cloud_agent_engine.cpython-310.pyc +0 -0
  376. veadk/cloud/__pycache__/cloud_app.cpython-310.pyc +0 -0
  377. veadk/cloud/cloud_agent_engine.py +104 -43
  378. veadk/cloud/cloud_app.py +82 -14
  379. veadk/database/__pycache__/__init__.cpython-310.pyc +0 -0
  380. veadk/database/__pycache__/base_database.cpython-310.pyc +0 -0
  381. veadk/database/__pycache__/database_adapter.cpython-310.pyc +0 -0
  382. veadk/database/__pycache__/database_factory.cpython-310.pyc +0 -0
  383. veadk/database/__pycache__/local_database.cpython-310.pyc +0 -0
  384. veadk/database/database_adapter.py +280 -0
  385. veadk/database/database_factory.py +3 -3
  386. veadk/database/kv/__pycache__/__init__.cpython-310.pyc +0 -0
  387. veadk/database/relational/__pycache__/__init__.cpython-310.pyc +0 -0
  388. veadk/database/vector/__pycache__/__init__.cpython-310.pyc +0 -0
  389. veadk/database/vector/__pycache__/opensearch_vector_database.cpython-310.pyc +0 -0
  390. veadk/database/vector/__pycache__/type.cpython-310.pyc +0 -0
  391. veadk/database/vector/opensearch_vector_database.py +50 -2
  392. veadk/database/viking/__pycache__/__init__.cpython-310.pyc +0 -0
  393. veadk/database/viking/viking_database.py +24 -6
  394. veadk/database/viking/viking_memory_db.py +26 -22
  395. veadk/evaluation/__pycache__/__init__.cpython-310.pyc +0 -0
  396. veadk/evaluation/__pycache__/base_evaluator.cpython-310.pyc +0 -0
  397. veadk/evaluation/__pycache__/eval_set_file_loader.cpython-310.pyc +0 -0
  398. veadk/evaluation/__pycache__/eval_set_recorder.cpython-310.pyc +0 -0
  399. veadk/evaluation/__pycache__/types.cpython-310.pyc +0 -0
  400. veadk/evaluation/adk_evaluator/__pycache__/__init__.cpython-310.pyc +0 -0
  401. veadk/evaluation/base_evaluator.py +130 -3
  402. veadk/evaluation/deepeval_evaluator/__pycache__/__init__.cpython-310.pyc +0 -0
  403. veadk/evaluation/deepeval_evaluator/__pycache__/deepeval_evaluator.cpython-310.pyc +0 -0
  404. veadk/evaluation/deepeval_evaluator/deepeval_evaluator.py +14 -25
  405. veadk/evaluation/types.py +33 -0
  406. veadk/evaluation/utils/__pycache__/prometheus.cpython-310.pyc +0 -0
  407. veadk/evaluation/utils/prometheus.py +19 -23
  408. veadk/knowledgebase/__pycache__/__init__.cpython-310.pyc +0 -0
  409. veadk/knowledgebase/__pycache__/knowledgebase.cpython-310.pyc +0 -0
  410. veadk/knowledgebase/__pycache__/knowledgebase_database_adapter.cpython-310.pyc +0 -0
  411. veadk/knowledgebase/knowledgebase.py +30 -29
  412. veadk/memory/__pycache__/__init__.cpython-310.pyc +0 -0
  413. veadk/memory/__pycache__/long_term_memory.cpython-310.pyc +0 -0
  414. veadk/memory/__pycache__/memory_database_adapter.cpython-310.pyc +0 -0
  415. veadk/memory/__pycache__/short_term_memory.cpython-310.pyc +0 -0
  416. veadk/memory/__pycache__/short_term_memory_processor.cpython-310.pyc +0 -0
  417. veadk/memory/long_term_memory.py +73 -37
  418. veadk/prompts/__pycache__/__init__.cpython-310.pyc +0 -0
  419. veadk/prompts/__pycache__/agent_default_prompt.cpython-310.pyc +0 -0
  420. veadk/prompts/__pycache__/prompt_memory_processor.cpython-310.pyc +0 -0
  421. veadk/prompts/__pycache__/prompt_optimization.cpython-310.pyc +0 -0
  422. veadk/runner.py +4 -0
  423. veadk/tools/__pycache__/__init__.cpython-310.pyc +0 -0
  424. veadk/tools/__pycache__/demo_tools.cpython-310.pyc +0 -0
  425. veadk/tools/__pycache__/load_knowledgebase_tool.cpython-310.pyc +0 -0
  426. veadk/tools/builtin_tools/__pycache__/__init__.cpython-310.pyc +0 -0
  427. veadk/tools/builtin_tools/__pycache__/lark.cpython-310.pyc +0 -0
  428. veadk/tools/builtin_tools/__pycache__/web_search.cpython-310.pyc +0 -0
  429. veadk/tools/builtin_tools/las.py +3 -2
  430. veadk/{cloud/template/app.py → tools/builtin_tools/mcp_router.py} +5 -13
  431. veadk/tools/load_knowledgebase_tool.py +3 -5
  432. veadk/tools/sandbox/__pycache__/__init__.cpython-310.pyc +0 -0
  433. veadk/tracing/__pycache__/__init__.cpython-310.pyc +0 -0
  434. veadk/tracing/__pycache__/base_tracer.cpython-310.pyc +0 -0
  435. veadk/tracing/base_tracer.py +44 -3
  436. veadk/tracing/telemetry/__pycache__/__init__.cpython-310.pyc +0 -0
  437. veadk/tracing/telemetry/__pycache__/opentelemetry_tracer.cpython-310.pyc +0 -0
  438. veadk/tracing/telemetry/exporters/__pycache__/__init__.cpython-310.pyc +0 -0
  439. veadk/tracing/telemetry/exporters/__pycache__/apiserver_exporter.cpython-310.pyc +0 -0
  440. veadk/tracing/telemetry/exporters/__pycache__/apmplus_exporter.cpython-310.pyc +0 -0
  441. veadk/tracing/telemetry/exporters/__pycache__/base_exporter.cpython-310.pyc +0 -0
  442. veadk/tracing/telemetry/exporters/__pycache__/cozeloop_exporter.cpython-310.pyc +0 -0
  443. veadk/tracing/telemetry/exporters/__pycache__/inmemory_exporter.cpython-310.pyc +0 -0
  444. veadk/tracing/telemetry/exporters/__pycache__/tls_exporter.cpython-310.pyc +0 -0
  445. veadk/tracing/telemetry/metrics/__pycache__/__init__.cpython-310.pyc +0 -0
  446. veadk/tracing/telemetry/metrics/__pycache__/opentelemetry_metrics.cpython-310.pyc +0 -0
  447. veadk/tracing/telemetry/opentelemetry_tracer.py +55 -13
  448. veadk/utils/__pycache__/__init__.cpython-310.pyc +0 -0
  449. veadk/utils/__pycache__/logger.cpython-310.pyc +0 -0
  450. veadk/utils/__pycache__/mcp_utils.cpython-310.pyc +0 -0
  451. veadk/utils/__pycache__/misc.cpython-310.pyc +0 -0
  452. veadk/utils/__pycache__/patches.cpython-310.pyc +0 -0
  453. veadk/utils/__pycache__/volcengine_sign.cpython-310.pyc +0 -0
  454. veadk/utils/mcp_utils.py +44 -0
  455. veadk/version.py +1 -1
  456. {veadk_python-0.1.0.dist-info → veadk_python-0.2.0.dist-info}/METADATA +14 -5
  457. veadk_python-0.2.0.dist-info/RECORD +534 -0
  458. veadk/cli/services/vefaas/template/src/config.py +0 -58
  459. veadk/cli/studio/agent_processor.py +0 -247
  460. veadk/cli/studio/model.py +0 -116
  461. veadk/cloud/template/config.py +0 -55
  462. veadk/knowledgebase/knowledgebase_database_adapter.py +0 -259
  463. veadk/memory/memory_database_adapter.py +0 -235
  464. veadk_python-0.1.0.dist-info/RECORD +0 -110
  465. {veadk_python-0.1.0.dist-info → veadk_python-0.2.0.dist-info}/WHEEL +0 -0
  466. {veadk_python-0.1.0.dist-info → veadk_python-0.2.0.dist-info}/entry_points.txt +0 -0
  467. {veadk_python-0.1.0.dist-info → veadk_python-0.2.0.dist-info}/licenses/LICENSE +0 -0
  468. {veadk_python-0.1.0.dist-info → veadk_python-0.2.0.dist-info}/top_level.txt +0 -0
@@ -186,7 +186,7 @@ class OpenSearchVectorDatabase(BaseModel, BaseDatabase):
186
186
  assert collection_name is not None, "Collection name is required."
187
187
  if not self._opensearch_client.indices.exists(index=collection_name):
188
188
  logger.warning(
189
- f"querying {query}, but collection {collection_name} does not exist. retun a empty list."
189
+ f"querying {query}, but collection {collection_name} does not exist. return a empty list."
190
190
  )
191
191
  return []
192
192
  query_vector = self._embedding_client.embed_query(query)
@@ -196,10 +196,58 @@ class OpenSearchVectorDatabase(BaseModel, BaseDatabase):
196
196
 
197
197
  @override
198
198
  def delete(self, collection_name: str, **kwargs: Any):
199
+ """drop index"""
199
200
  if not self._opensearch_client.indices.exists(index=collection_name):
200
201
  raise ValueError(f"Collection {collection_name} does not exist.")
201
202
  self._opensearch_client.indices.delete(index=collection_name)
202
203
 
203
- def is_empty(self, collection_name: str):
204
+ def is_empty(self, collection_name: str) -> bool:
204
205
  response = self._opensearch_client.count(index=collection_name)
205
206
  return response["count"] == 0
207
+
208
+ def collection_exists(self, collection_name: str) -> bool:
209
+ return self._opensearch_client.indices.exists(index=collection_name)
210
+
211
+ def list_all_collection(self) -> list:
212
+ """List all index name of OpenSearch."""
213
+ response = self._opensearch_client.indices.get_alias()
214
+ return list(response.keys())
215
+
216
+ def get_all_docs(self, collection_name: str, size: int = 10000) -> list[dict]:
217
+ """Match all docs in one index of OpenSearch"""
218
+ if not self.collection_exists(collection_name):
219
+ logger.warning(
220
+ f"Get all docs, but collection {collection_name} does not exist. return a empty list."
221
+ )
222
+ return []
223
+
224
+ query = {"size": size, "query": {"match_all": {}}}
225
+ response = self._opensearch_client.search(index=collection_name, body=query)
226
+ return [
227
+ {
228
+ "id": hit["_id"],
229
+ "page_content": hit["_source"]["page_content"],
230
+ }
231
+ for hit in response["hits"]["hits"]
232
+ ]
233
+
234
+ def delete_by_query(self, collection_name: str, query: str):
235
+ """Delete docs by query in one index of OpenSearch"""
236
+ if not self.collection_exists(collection_name):
237
+ raise ValueError(f"Collection {collection_name} does not exist.")
238
+
239
+ query = {"query": {"match": {"page_content": query}}}
240
+ response = self._opensearch_client.delete_by_query(
241
+ index=collection_name, body=query
242
+ )
243
+ self._opensearch_client.indices.refresh(index=collection_name)
244
+ return response
245
+
246
+ def delete_by_id(self, collection_name: str, id: str):
247
+ """Delete docs by id in index of OpenSearch"""
248
+ if not self.collection_exists(collection_name):
249
+ raise ValueError(f"Collection {collection_name} does not exist.")
250
+
251
+ response = self._opensearch_client.delete(index=collection_name, id=id)
252
+ self._opensearch_client.indices.refresh(index=collection_name)
253
+ return response
@@ -40,6 +40,7 @@ list_collections_path = "/api/knowledge/collection/list"
40
40
  get_collections_path = "/api/knowledge/collection/info"
41
41
  doc_add_path = "/api/knowledge/doc/add"
42
42
  doc_info_path = "/api/knowledge/doc/info"
43
+ doc_del_path = "/api/collection/drop"
43
44
 
44
45
 
45
46
  class VolcengineTOSConfig(BaseModel):
@@ -215,7 +216,12 @@ class VikingDatabase(BaseModel, BaseDatabase):
215
216
 
216
217
  return doc_id
217
218
 
218
- def add(self, data: str | list[str] | TextIO | BinaryIO | bytes, **kwargs: Any):
219
+ def add(
220
+ self,
221
+ data: str | list[str] | TextIO | BinaryIO | bytes,
222
+ collection_name: str,
223
+ **kwargs,
224
+ ):
219
225
  """
220
226
  Args:
221
227
  data: str, file path or file stream: Both file or file.read() are acceptable.
@@ -226,8 +232,6 @@ class VikingDatabase(BaseModel, BaseDatabase):
226
232
  "doc_id": "<doc_id>",
227
233
  }
228
234
  """
229
- collection_name = kwargs.get("collection_name")
230
- assert collection_name is not None, "collection_name is required"
231
235
 
232
236
  status, tos_url = self._upload_to_tos(data=data, **kwargs)
233
237
  if status != 200:
@@ -243,9 +247,23 @@ class VikingDatabase(BaseModel, BaseDatabase):
243
247
  }
244
248
 
245
249
  def delete(self, **kwargs: Any):
246
- # collection_name = kwargs.get("collection_name")
247
- # todo: delete vikingdb
248
- ...
250
+ collection_name = kwargs.get("collection_name")
251
+ resource_id = kwargs.get("resource_id")
252
+ request_param = {"collection_name": collection_name, "resource_id": resource_id}
253
+ doc_del_req = prepare_request(
254
+ method="POST", path=doc_del_path, config=self.config, data=request_param
255
+ )
256
+ rsp = requests.request(
257
+ method=doc_del_req.method,
258
+ url="http://{}{}".format(g_knowledge_base_domain, doc_del_req.path),
259
+ headers=doc_del_req.headers,
260
+ data=doc_del_req.body,
261
+ )
262
+ result = rsp.json()
263
+ if result["code"] != 0:
264
+ logger.error(f"Error in add_doc: {result['message']}")
265
+ return {"error": result["message"]}
266
+ return {}
249
267
 
250
268
  def query(self, query: str, **kwargs: Any) -> list[str]:
251
269
  """
@@ -53,7 +53,8 @@ class VikingMemConfig(BaseModel):
53
53
  )
54
54
 
55
55
 
56
- class VikingDBMemoryException(Exception):
56
+ # ======= adapted from https://github.com/volcengine/mcp-server/blob/main/server/mcp_server_vikingdb_memory/src/mcp_server_vikingdb_memory/common/memory_client.py =======
57
+ class VikingMemoryException(Exception):
57
58
  def __init__(self, code, request_id, message=None):
58
59
  self.code = code
59
60
  self.request_id = request_id
@@ -65,15 +66,15 @@ class VikingDBMemoryException(Exception):
65
66
  return self.message
66
67
 
67
68
 
68
- class VikingDBMemoryService(Service):
69
+ class VikingMemoryService(Service):
69
70
  _instance_lock = threading.Lock()
70
71
 
71
72
  def __new__(cls, *args, **kwargs):
72
- if not hasattr(VikingDBMemoryService, "_instance"):
73
- with VikingDBMemoryService._instance_lock:
74
- if not hasattr(VikingDBMemoryService, "_instance"):
75
- VikingDBMemoryService._instance = object.__new__(cls)
76
- return VikingDBMemoryService._instance
73
+ if not hasattr(VikingMemoryService, "_instance"):
74
+ with VikingMemoryService._instance_lock:
75
+ if not hasattr(VikingMemoryService, "_instance"):
76
+ VikingMemoryService._instance = object.__new__(cls)
77
+ return VikingMemoryService._instance
77
78
 
78
79
  def __init__(
79
80
  self,
@@ -86,11 +87,11 @@ class VikingDBMemoryService(Service):
86
87
  connection_timeout=30,
87
88
  socket_timeout=30,
88
89
  ):
89
- self.service_info = VikingDBMemoryService.get_service_info(
90
+ self.service_info = VikingMemoryService.get_service_info(
90
91
  host, region, scheme, connection_timeout, socket_timeout
91
92
  )
92
- self.api_info = VikingDBMemoryService.get_api_info()
93
- super(VikingDBMemoryService, self).__init__(self.service_info, self.api_info)
93
+ self.api_info = VikingMemoryService.get_api_info()
94
+ super(VikingMemoryService, self).__init__(self.service_info, self.api_info)
94
95
  if ak:
95
96
  self.set_ak(ak)
96
97
  if sk:
@@ -100,12 +101,12 @@ class VikingDBMemoryService(Service):
100
101
  try:
101
102
  self.get_body("Ping", {}, json.dumps({}))
102
103
  except Exception as e:
103
- raise VikingDBMemoryException(
104
+ raise VikingMemoryException(
104
105
  1000028, "missed", "host or region is incorrect: {}".format(str(e))
105
106
  ) from None
106
107
 
107
108
  def setHeader(self, header):
108
- api_info = VikingDBMemoryService.get_api_info()
109
+ api_info = VikingMemoryService.get_api_info()
109
110
  for key in api_info:
110
111
  for item in header:
111
112
  api_info[key].header[item] = header[item]
@@ -211,17 +212,17 @@ class VikingDBMemoryService(Service):
211
212
  try:
212
213
  res_json = json.loads(e.args[0].decode("utf-8"))
213
214
  except Exception:
214
- raise VikingDBMemoryException(
215
+ raise VikingMemoryException(
215
216
  1000028, "missed", "json load res error, res:{}".format(str(e))
216
217
  ) from None
217
218
  code = res_json.get("code", 1000028)
218
219
  request_id = res_json.get("request_id", 1000028)
219
220
  message = res_json.get("message", None)
220
221
 
221
- raise VikingDBMemoryException(code, request_id, message)
222
+ raise VikingMemoryException(code, request_id, message)
222
223
 
223
224
  if res == "":
224
- raise VikingDBMemoryException(
225
+ raise VikingMemoryException(
225
226
  1000028,
226
227
  "missed",
227
228
  "empty response due to unknown error, please contact customer service",
@@ -235,15 +236,15 @@ class VikingDBMemoryService(Service):
235
236
  try:
236
237
  res_json = json.loads(e.args[0].decode("utf-8"))
237
238
  except Exception:
238
- raise VikingDBMemoryException(
239
+ raise VikingMemoryException(
239
240
  1000028, "missed", "json load res error, res:{}".format(str(e))
240
241
  ) from None
241
242
  code = res_json.get("code", 1000028)
242
243
  request_id = res_json.get("request_id", 1000028)
243
244
  message = res_json.get("message", None)
244
- raise VikingDBMemoryException(code, request_id, message)
245
+ raise VikingMemoryException(code, request_id, message)
245
246
  if res == "":
246
- raise VikingDBMemoryException(
247
+ raise VikingMemoryException(
247
248
  1000028,
248
249
  "missed",
249
250
  "empty response due to unknown error, please contact customer service",
@@ -363,14 +364,17 @@ def format_milliseconds(timestamp_ms):
363
364
  return dt.strftime("%Y%m%d %H:%M:%S")
364
365
 
365
366
 
366
- class VikingDatabaseMemory(BaseModel, BaseDatabase):
367
+ # ======= adapted from https://github.com/volcengine/mcp-server/blob/main/server/mcp_server_vikingdb_memory/src/mcp_server_vikingdb_memory/common/memory_client.py =======
368
+
369
+
370
+ class VikingMemoryDatabase(BaseModel, BaseDatabase):
367
371
  config: VikingMemConfig = Field(
368
372
  default_factory=VikingMemConfig,
369
373
  description="VikingDB configuration",
370
374
  )
371
375
 
372
376
  def model_post_init(self, context: Any, /) -> None:
373
- self._vm = VikingDBMemoryService(
377
+ self._vm = VikingMemoryService(
374
378
  ak=self.config.volcengine_ak, sk=self.config.volcengine_sk
375
379
  )
376
380
 
@@ -511,8 +515,8 @@ class VikingDatabaseMemory(BaseModel, BaseDatabase):
511
515
  assert collection_name is not None, "collection_name is required"
512
516
  user_id = kwargs.get("user_id")
513
517
  assert user_id is not None, "user_id is required"
514
-
515
- resp = self.search_memory(collection_name, query, user_id=user_id)
518
+ top_k = kwargs.get("top_k", 5)
519
+ resp = self.search_memory(collection_name, query, user_id=user_id, top_k=top_k)
516
520
  return resp
517
521
 
518
522
  def delete(self, **kwargs: Any):
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
 
16
+ import json
16
17
  import time
17
18
  import uuid
18
19
  from abc import abstractmethod
@@ -24,6 +25,8 @@ from google.adk.sessions import InMemorySessionService
24
25
  from google.genai import types
25
26
  from pydantic import BaseModel
26
27
 
28
+ from veadk.utils.misc import formatted_timestamp
29
+
27
30
 
28
31
  class InvocationTestData(BaseModel):
29
32
  invocation_id: str = ""
@@ -79,15 +82,139 @@ class BaseEvaluator:
79
82
  self.result_list: list[EvalResultData] = []
80
83
  self.agent_information_list: list[dict] = []
81
84
 
82
- def load_eval_set(self, eval_set_file: str) -> list[EvalSet]:
85
+ def _load_eval_set(self, eval_set_file: str) -> EvalSet:
83
86
  from .eval_set_file_loader import load_eval_set_from_file
84
87
 
85
88
  return load_eval_set_from_file(eval_set_file)
86
89
 
87
- def generate_eval_data(self, eval_set_file_path: str):
90
+ def _load_eval_set_from_tracing(self, tracing_file: str) -> EvalSet:
91
+ try:
92
+ with open(tracing_file, "r") as f:
93
+ tracing_data = json.load(f)
94
+ except json.JSONDecodeError as e:
95
+ raise ValueError(f"Invalid JSON format in file {tracing_file}: {e}")
96
+ except Exception as e:
97
+ raise ValueError(f"Error reading file {tracing_file}: {e}")
98
+
99
+ # Group spans by trace_id
100
+ trace_groups = {}
101
+ for span in tracing_data:
102
+ trace_id = span["trace_id"]
103
+ if trace_id not in trace_groups:
104
+ trace_groups[trace_id] = []
105
+ trace_groups[trace_id].append(span)
106
+
107
+ # Convert to evalset format
108
+ eval_cases, conversation = [], []
109
+ app_name, user_id = "", ""
110
+ creation_timestamp = 0
111
+ for trace_id, spans in trace_groups.items():
112
+ tool_uses = []
113
+
114
+ # Extract tool_uses from spans with name starting with "execute_tool"
115
+ for span in spans:
116
+ if span["name"].startswith("execute_tool"):
117
+ tool_uses.append(
118
+ {
119
+ "id": span["attributes"].get("gen_ai.tool.call.id", None),
120
+ "args": json.loads(
121
+ span["attributes"].get(
122
+ "gcp.vertex.agent.tool_call_args", "{}"
123
+ )
124
+ ),
125
+ "name": span["attributes"].get("gen_ai.tool.name", None),
126
+ }
127
+ )
128
+
129
+ # Extract conversation data from spans with name starting with "invocation"
130
+ for span in spans:
131
+ if span["name"].startswith("invocation"):
132
+ # Parse input.value and output.value as JSON
133
+ input_value = json.loads(
134
+ span["attributes"].get("input.value", "{}")
135
+ )
136
+ output_value = json.loads(
137
+ span["attributes"].get("output.value", "{}")
138
+ )
139
+
140
+ user_content = json.loads(input_value.get("new_message", {}))
141
+ final_response = json.loads(json.dumps(user_content))
142
+ final_response["parts"][0]["text"] = (
143
+ output_value.get("content", {})
144
+ .get("parts", [{}])[0]
145
+ .get("text", None)
146
+ )
147
+ final_response["role"] = None
148
+ conversation.append(
149
+ {
150
+ "invocation_id": output_value.get(
151
+ "invocation_id", str(uuid.uuid4())
152
+ ),
153
+ "user_content": user_content,
154
+ "final_response": final_response,
155
+ "intermediate_data": {
156
+ "tool_uses": tool_uses,
157
+ "intermediate_responses": [],
158
+ },
159
+ "creation_timestamp": span["start_time"] / 1e9,
160
+ }
161
+ )
162
+ user_id = input_value.get("user_id", None)
163
+ app_name = (
164
+ span["name"].replace("invocation", "").strip().strip("[]")
165
+ )
166
+ creation_timestamp = span["start_time"] / 1e9
167
+
168
+ eval_cases.append(
169
+ {
170
+ "eval_id": f"veadk_eval_{formatted_timestamp()}",
171
+ "conversation": conversation,
172
+ "session_input": {
173
+ "app_name": app_name,
174
+ "user_id": user_id,
175
+ "state": {},
176
+ },
177
+ "creation_timestamp": creation_timestamp,
178
+ }
179
+ )
180
+
181
+ evalset = EvalSet(
182
+ eval_set_id="default",
183
+ name="default",
184
+ description=None,
185
+ eval_cases=eval_cases,
186
+ creation_timestamp=creation_timestamp,
187
+ )
188
+
189
+ return evalset
190
+
191
+ def generate_eval_data(self, file_path: str):
192
+ """Generate evaluation data from a given file and assign it to the class attribute `invocation_list`."""
88
193
  eval_case_data_list: list[EvalCaseData] = []
89
194
 
90
- eval_cases = self.load_eval_set(eval_set_file_path).eval_cases
195
+ try:
196
+ with open(file_path, "r") as f:
197
+ file_content = json.load(f)
198
+ except json.JSONDecodeError as e:
199
+ raise ValueError(f"Invalid JSON format in file {file_path}: {e}")
200
+ except Exception as e:
201
+ raise ValueError(f"Error reading file {file_path}: {e}")
202
+
203
+ if isinstance(file_content, dict) and "eval_cases" in file_content:
204
+ eval_cases = self._load_eval_set(file_path).eval_cases
205
+ elif (
206
+ isinstance(file_content, list)
207
+ and len(file_content) > 0
208
+ and all(
209
+ isinstance(span, dict) and "trace_id" in span for span in file_content
210
+ )
211
+ ):
212
+ eval_cases = self._load_eval_set_from_tracing(file_path).eval_cases
213
+ else:
214
+ raise ValueError(
215
+ f"Unsupported file format in {file_path}. Please provide a valid file."
216
+ )
217
+
91
218
  for eval_case in eval_cases:
92
219
  eval_case_data = EvalCaseData(invocations=[])
93
220
  self.agent_information_list.append(
@@ -15,8 +15,8 @@
15
15
  import time
16
16
 
17
17
  from deepeval import evaluate
18
+ from deepeval.evaluate import CacheConfig
18
19
  from deepeval.evaluate.types import EvaluationResult
19
- from deepeval.key_handler import KEY_FILE_HANDLER, KeyValues
20
20
  from deepeval.metrics import BaseMetric
21
21
  from deepeval.models import LocalModel
22
22
  from deepeval.test_case import LLMTestCase
@@ -24,15 +24,11 @@ from deepeval.test_case.llm_test_case import ToolCall
24
24
  from typing_extensions import override
25
25
 
26
26
  from veadk.config import getenv
27
+ from veadk.evaluation.types import EvalResultCaseData, EvalResultMetadata
27
28
  from veadk.utils.logger import get_logger
28
29
 
29
30
  from ..base_evaluator import BaseEvaluator, EvalResultData, MetricResult
30
- from ..utils.prometheus import (
31
- EvalResultCaseData,
32
- EvalResultMetadata,
33
- PrometheusPushgatewayConfig,
34
- push_to_prometheus,
35
- )
31
+ from ..utils.prometheus import PrometheusPushgatewayConfig, push_to_prometheus
36
32
 
37
33
  logger = get_logger(__name__)
38
34
 
@@ -61,27 +57,14 @@ class DeepevalEvaluator(BaseEvaluator):
61
57
  super().__init__(agent=agent, name=name)
62
58
 
63
59
  self.judge_model_name = judge_model_name
64
- self.judge_model = self.create_judge_model(
65
- model_name=judge_model_name,
60
+ self.judge_model = LocalModel(
61
+ model=judge_model_name,
62
+ base_url=judge_model_api_base,
66
63
  api_key=judge_model_api_key,
67
- api_base=judge_model_api_base,
68
64
  )
69
65
 
70
66
  self.prometheus_config = prometheus_config
71
67
 
72
- def create_judge_model(
73
- self,
74
- model_name: str,
75
- api_key: str,
76
- api_base: str,
77
- ):
78
- KEY_FILE_HANDLER.write_key(KeyValues.LOCAL_MODEL_NAME, model_name)
79
- KEY_FILE_HANDLER.write_key(KeyValues.LOCAL_MODEL_BASE_URL, api_base)
80
- KEY_FILE_HANDLER.write_key(KeyValues.LOCAL_MODEL_API_KEY, api_key)
81
- KEY_FILE_HANDLER.write_key(KeyValues.USE_LOCAL_MODEL, "YES")
82
- KEY_FILE_HANDLER.write_key(KeyValues.USE_AZURE_OPENAI, "NO")
83
- return LocalModel()
84
-
85
68
  @override
86
69
  async def eval(
87
70
  self,
@@ -90,7 +73,9 @@ class DeepevalEvaluator(BaseEvaluator):
90
73
  eval_id: str = f"test_{formatted_timestamp()}",
91
74
  ):
92
75
  """Target to Google ADK, we will use the same evaluation case format as Google ADK."""
93
-
76
+ for metric in metrics:
77
+ if not metric.model:
78
+ metric.model = self.judge_model
94
79
  # Get evaluation data by parsing eval set file
95
80
  self.generate_eval_data(eval_set_file_path)
96
81
  # Get actual data by running agent
@@ -141,7 +126,11 @@ class DeepevalEvaluator(BaseEvaluator):
141
126
 
142
127
  # Run Deepeval evaluation according to metrics
143
128
  logger.info("Start to run Deepeval evaluation according to metrics.")
144
- test_results = evaluate(test_cases=test_cases, metrics=metrics)
129
+ test_results = evaluate(
130
+ test_cases=test_cases,
131
+ metrics=metrics,
132
+ cache_config=CacheConfig(write_cache=False),
133
+ )
145
134
  for test_result in test_results.test_results:
146
135
  eval_result_data = EvalResultData(metric_results=[])
147
136
  for metrics_data_item in test_result.metrics_data:
@@ -0,0 +1,33 @@
1
+ # Copyright (c) 2025 Beijing Volcano Engine Technology Co., Ltd. and/or its affiliates.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from dataclasses import dataclass
16
+
17
+
18
+ @dataclass
19
+ class EvalResultCaseData:
20
+ id: str
21
+ input: str
22
+ actual_output: str
23
+ expected_output: str
24
+ score: str
25
+ reason: str
26
+ status: str # `PASSED` or `FAILURE`
27
+ latency: str
28
+
29
+
30
+ @dataclass
31
+ class EvalResultMetadata:
32
+ tested_model: str
33
+ judge_model: str
@@ -12,38 +12,34 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- from dataclasses import dataclass
16
15
 
17
16
  from prometheus_client import CollectorRegistry, Gauge, push_to_gateway
18
17
  from prometheus_client.exposition import basic_auth_handler
18
+ from pydantic import Field
19
19
 
20
20
  from veadk.config import getenv
21
-
22
-
23
- @dataclass
24
- class EvalResultCaseData:
25
- id: str
26
- input: str
27
- actual_output: str
28
- expected_output: str
29
- score: str
30
- reason: str
31
- status: str # `PASSED` or `FAILURE`
32
- latency: str
33
-
34
-
35
- @dataclass
36
- class EvalResultMetadata:
37
- tested_model: str
38
- judge_model: str
21
+ from veadk.evaluation.types import EvalResultCaseData, EvalResultMetadata
39
22
 
40
23
 
41
24
  class PrometheusPushgatewayConfig:
42
- url: str = getenv(
43
- "OBSERVABILITY_PROMETHEUS_PUSHGATEWAY_URL",
25
+ url: str = Field(
26
+ ...,
27
+ default_factory=lambda: getenv(
28
+ "OBSERVABILITY_PROMETHEUS_PUSHGATEWAY_URL",
29
+ ),
30
+ )
31
+ username: str = Field(
32
+ ...,
33
+ default_factory=lambda: getenv(
34
+ "OBSERVABILITY_PROMETHEUS_USERNAME",
35
+ ),
36
+ )
37
+ password: str = Field(
38
+ ...,
39
+ default_factory=lambda: getenv(
40
+ "OBSERVABILITY_PROMETHEUS_PASSWORD",
41
+ ),
44
42
  )
45
- username: str = getenv("OBSERVABILITY_PROMETHEUS_USERNAME")
46
- password: str = getenv("OBSERVABILITY_PROMETHEUS_PASSWORD")
47
43
 
48
44
 
49
45
  registry = CollectorRegistry()