veadk-python 0.1.0__py3-none-any.whl → 0.2.1__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.
Potentially problematic release.
This version of veadk-python might be problematic. Click here for more details.
- veadk/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/__pycache__/agent.cpython-310.pyc +0 -0
- veadk/__pycache__/config.cpython-310.pyc +0 -0
- veadk/__pycache__/consts.cpython-310.pyc +0 -0
- veadk/__pycache__/runner.cpython-310.pyc +0 -0
- veadk/__pycache__/types.cpython-310.pyc +0 -0
- veadk/__pycache__/version.cpython-310.pyc +0 -0
- veadk/a2a/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/a2a/__pycache__/agent_card.cpython-310.pyc +0 -0
- veadk/a2a/__pycache__/remote_ve_agent.cpython-310.pyc +0 -0
- veadk/a2a/remote_ve_agent.py +14 -0
- veadk/agent.py +9 -3
- veadk/cli/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/cli/__pycache__/main.cpython-310.pyc +0 -0
- veadk/cli/main.py +108 -7
- veadk/cli/services/agentpilot/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/cli/services/agentpilot/__pycache__/agentpilot.cpython-310.pyc +0 -0
- veadk/cli/services/veapig/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/cli/services/veapig/__pycache__/apig.cpython-310.pyc +0 -0
- veadk/cli/services/vefaas/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/cli/services/vefaas/__pycache__/vefaas.cpython-310.pyc +0 -0
- veadk/cli/services/vefaas/__pycache__/vefaas_utils.cpython-310.pyc +0 -0
- veadk/cli/services/vefaas/template/README.md +37 -0
- veadk/cli/services/vefaas/template/__init__.py +13 -0
- veadk/cli/services/vefaas/template/config.yaml.example +19 -0
- veadk/cli/services/vefaas/template/deploy.py +25 -11
- veadk/cli/services/vefaas/template/src/__init__.py +14 -0
- veadk/cli/services/vefaas/template/src/__pycache__/agent.cpython-310.pyc +0 -0
- veadk/cli/services/vefaas/template/src/__pycache__/studio_app.cpython-310.pyc +0 -0
- veadk/cli/services/vefaas/template/src/agent.py +25 -0
- veadk/cli/services/vefaas/template/src/app.py +48 -8
- veadk/cli/services/vefaas/template/src/requirements.txt +6 -0
- veadk/cli/services/vefaas/template/src/run.sh +63 -0
- veadk/cli/services/vefaas/template/src/studio_app.py +47 -0
- veadk/cli/services/vefaas/vefaas.py +153 -101
- veadk/cli/studio/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/cli/studio/__pycache__/fast_api.cpython-310.pyc +0 -0
- veadk/cli/studio/__pycache__/models.cpython-310.pyc +0 -0
- veadk/cli/studio/__pycache__/studio_processor.cpython-310.pyc +0 -0
- veadk/cli/studio/fast_api.py +305 -145
- veadk/cli/studio/models.py +76 -0
- veadk/cli/studio/studio_processor.py +127 -0
- veadk/cli/studio/web/404.html +1 -0
- veadk/cli/studio/web/__init__.py +13 -0
- veadk/cli/studio/web/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/cli/studio/web/_next/static/chunks/1012.1c22f40693022876.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1017.577d2551c3a2b396.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1044.7c49605a0f9b5d5c.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1067.71aee8d185b3a9d7.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1088.8f7f3c71458d301b.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1092.7b553ab1ec1737bf.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1117.8c537e259adccbe2.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1142.1faf8d46ccf4030c.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1146.25bf08c82f4ad1c5.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1192.55e7712b3dc8b6a8.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1200.1038681512a9f69a.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1265.e055670c82b2d131.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1275.322d8bf8a580b859.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/140.d7e90f5e12cf288c.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1421.7fff0e9f0677f79b.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1469.16c1e07a7c0f9817.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1480.3c94a6d6d61c4f56.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1507.4c7617217de3bef8.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1523.1740f3d9d913fe76.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1526.5fb34657a70589b5.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1563.6c364e96b33f3328.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/157.2e3f508bc115c15c.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1577.b6cebda169ac9c75.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1622.a611b4dab478587d.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1685.db5d4efe2f0e3767.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1687.a10254d4e1dd84c0.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1826.da2ac0fcfb59cfae.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1832.f81112d6166a9563.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1851.1d0bdfdf5fa89313.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/189.c602a68aadf321e4.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1899.dd303f08095745bc.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/193.1e81c5b253db2ee7.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1936.8fad6d3898c86483.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1942.165056b632c269d4.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/1974.ee28ba5ac111af70.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2.c2afe2e24520b5de.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2006.298ac00a777dc313.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2063.69ba443b7901194c.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2067-e02b0bc96d886930.js +91 -0
- veadk/cli/studio/web/_next/static/chunks/2119.4595d21bc0340c5b.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/212.0a8d6163667d9369.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2190.5549f7a57901bd46.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2193.51ce38cc9e965abd.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2202.a6c08676680e55ad.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2247.af410bd18c38e538.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2313.6932520daf0fa88c.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2316.c9eafa57971eebc8.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2324.766859688506ac0d.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2328.131b0296bc19ba4e.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2332.b9b7ac0b386a4a28.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2344.cc417c70cb6dbc51.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2347.9f442b75b11de668.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2356.f6b4ac7eb50edb44.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2370.044b34646bc58363.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2378.2005af4d2bf100dd.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2437.68534e42d45c5c61.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2449.db460ea54b851bc1.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2455.153b04863d2ae9dc.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2484.139843b3f1cc8ea5.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2500.e2b8da0d1401bd5f.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2513.a7056ff98b04c4cd.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2533.5e35d247414428d0.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2541.3e5a23b461d7a9fd.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2545.0e4e3a784391205b.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2558.17eda1052d7c8c1f.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2559.7432df2540cfff07.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2578.1be0687e71bc7731.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2601.aa7e57bdf472372c.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/261-19b52c2c85aefb5d.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2642.9ea0966ca6bd8ace.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2669.e90ab188be48154e.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2737.4f5c7f7b9293ae65.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2804.b801cadc26133d92.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2817.8584109b4bc979e8.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/282.cfff86fab979470f.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2822.12cdf0520b2d321a.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/288.5c1053dbdc74212b.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2964.a531dbf5eb867f3d.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/2f7605f3.0531565b22967bb4.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3080.9aada68cdc9ad5c2.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3090.a9e7f71df818f607.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3103.b7cdb76d87ac0fdd.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/311.2737abd09304ba1b.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3110.84511591e516221b.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3126.307ac469edcf6ec9.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/320.a3c0085ebf05b7da.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/322.668c1a20cc012c68.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3341.a0f06b1edc2332fb.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3357.ced93e6bf8e56762.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3386.53f3aa4ff0dd0170.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3391.402e02fd7c297ff8.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3392.5172b1d190ff0e8c.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/33fb68d2.aacf24a5979288bd.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3429.74dcaa985d188e43.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3433.737c3d948bdda1da.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3435.1798454b9a5b69ca.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3481.a916f933c4e534b8.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3602.bdf28129f1569554.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3607.49cec7e9330d1f4d.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3615.3280752d551adf2d.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3721.f660b5b05621f5e4.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3786.ae0824e683556d37.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/3805.ec0340f0f6e61bbc.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4045.42a3c9fb7d932ebc.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4052.86cc820c95ad25a8.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4058.3cea468f5370b7c9.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4068.ff830b92579f6b7f.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/411.5679da8e6a856022.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4118.e2544434642f6640.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4139.80b0aab26d9a4601.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/423.da4e0abf5fd408dc.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4262.9d5532cb76a86371.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/431.ef6d705ac627958f.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4337.3c94a6d6d61c4f56.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4357-39eb6b5934ac97db.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4382.64908590e0a18d66.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4489.7a9b45fb6f6bf491.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/450.76880cb957b128fa.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/452.14fb00ee415ad32b.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4577.d1cbd95a87e2adb2.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4626.0866c7ee38885775.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4627.3d7df52a668a6b57.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4713.3891f7d347513ef5.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4749.25fd94a8ed476b13.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4836.afe027e38fb9a7e8.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/483e0093.2a09b17ad5d1b3ed.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4852.cac6e9c5032df796.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4860.94324451a00fadc0.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4869.091903cb36ad77ad.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4888.e248e212b002f5df.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/492.ac958937dd36300f.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4958.85e0dbc8b2319776.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4968.1477e29640b2deb8.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4980.1300ab7d9c76e523.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/4aa6d3c9.dade76a8ff4112d3.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5006.8ee1d611f529da11.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5018.c34d2a9f82e24c51.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5050.c06b2d8e12720555.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5084.9b554002148843ea.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5097.2e9a097ccfb70707.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5113.fa5291624248676b.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5115.ff49cf5e2be16db4.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/521.98b7995e15b59075.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5213.1a7618fcae8c5282.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/522.56063fbcf9aa8699.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5247.b304f94eb3132618.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5248.f9faaff2f0d7631f.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/527-1c65afbb202752bd.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/529.7d231c2076b6d77a.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5305.9323b5f7efaa005e.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5317.fce75000492e9db4.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5326.3be5b04850f0a2f2.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5329.415b43aacdd9a471.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5331.77f0493c99857944.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5341.1fff90ab37947f62.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/541.04d938e895b7f678.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5428.fa789e4b0d61cd0d.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5460.cee07b9411c5c5ca.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5472.f645717ad2edd28f.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5503.75093ef3870b655f.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5567.44555d5da6ed19b7.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5572.3c35c26a4867ca56.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5579.b3be6028d1833118.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5631.b8a2c0dc65737269.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5656.b743b6ab9a61eec0.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5677.c063822912e55a25.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5779.0b1a3c7d1c018a1d.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5817.ae1fb69a154fbf4c.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5860.7154866a5d2dd82f.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5865.645e44e8e171ba9f.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5906.30cce16ed88f920a.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5942.cd6dfaad76581849.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/5958.e2f981fa3cba5d99.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/60f90b65.d526f39688baa769.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6128.3da302fb50769250.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/62.5408e55d383a8078.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/624.7c7198473a8877d8.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6264.e7bdd878d9e7a249.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6266.97409ca00a3c32d9.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6269.668be917daafccaa.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/630.87a6f22ac3e8956b.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6341.35afa02112051be8.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6353.93869a804ffe525b.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6375.46d2897cb2526abd.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6395.f113970ceec6ba91.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/63d31579-18fb2181524a9c6f.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6423.d4cf9eb5b2ae6336.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6437.5eeaa7320bce1872.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6438.1c8486cc62da4117.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6451.f56cce0a07138982.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6456.f263b33ea51e4f54.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6504.0e6ae8d5bb987be6.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6560.b08504c0d99d71d4.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6563.e6d3bdba9860590d.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6621.639e4057d9c15bea.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6625.c0233245d2c1ef25.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6641.5487a2d68b0c52f2.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6644.74de9f2de2dc75f5.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6730.aac5bd02aab8258f.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6824.8c40dbd3eb390403.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6831.74b4a9b75f4ff9d1.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/688.9a27292bd19bc993.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6899.ac4207b9a778bd0e.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6901.4755ed550912589c.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6910.5d45b17e287dba94.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6928.d0a540480df90930.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6958.c58e8e991b201429.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/6d60d248-1bbd761ee88ab2e4.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/70207789-862965aac548ab2a.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7046.60a892c1e506cf5f.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7068.6639b51e828de233.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7172.aeda2e49d81fc0fd.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7185.0210768f3918ec41.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7200.86e672d8e2c1a920.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/730.2c5e46bf8fd29fcc.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7301.43929cd9c2a5d2ea.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7335.68692b193fa0dff6.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7412.98554f6ee574e288.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7422.e4a69fce6694ba90.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7448.63e7b8d5fd090bd1.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7479.97f696c6ada04b29.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7482.ab6a217c34f6934a.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7484.b91675bd38b250f8.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7522.84dac217ae0701ac.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7540-38c13446d29f43f2.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7556.ae47807e378de233.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/761.2ce77249f8d3a1ce.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7678.ceea70830f2dd7ff.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7684.c43e4b5ad1f9b0af.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7698.44201098b212aee8.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/76ff44ea.8322bdedaee78e2d.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7725.b15cb8b6e1d15403.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7855.513a507852c649f2.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7910.266df3f992c16215.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7940.f490f3d5e6590e54.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/7960.491bd15bef82755c.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8020.795778775ed5c387.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8107.fbb6017b3e909da5.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8169.4d7fd139784eb935.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8196.6c5c3dfe86e1c3ca.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8257.ee682bc2599473cb.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8305.d2c965e56fe9350c.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8324.8c3edcc756f5e2f3.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8388.cc59fb03d62a71cf.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8394.d5ca17ce8f6fffb0.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8419.b11c64d18dc580b5.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8478.5f4272ae9afa4061.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8480.a071150cb4eddc29.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8535.0ab856b7bf0e161b.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8571.8af7983b03c09f86.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8583.4afa8c68cb867b2d.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8601.520cbfc8abbfb5f8.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8656.5f8b6212d2b35257.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8665.7f24febc4a78ff5e.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8687.c94010eb559245b6.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8815.81a5c5700763ca02.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8878.28a43a5fe23f5bd0.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8884.e4e411c7978b2552.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8962.db5c7728bef5ff0b.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/8984.dfcb15f115089c4a.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9022.d161e32a6b1bcc61.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9099.8ba5be825d17456a.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/914.72991ff6c9332951.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9217.40b78a38cadcd268.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/925.0cc74592f03b10e9.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9275.ac60c49c68c86e51.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/92a17e6d.da4fba322f70cd46.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/92b95f17.39f98387a9867b4a.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9361.d3535e4d87c1c527.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9433.55eb6e4ea7edb262.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9436.5b2462fa3ddebb27.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9445.e29312f685c22eff.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9471.646bdfb962cdd5c2.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9473.efa6db413edc23d1.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9484.e9f1cd4e3f8e75df.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9545.61026f3c11f914f2.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9555.287e4e4a50087d62.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/963.da40bca273fb82c6.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9636.4d3678b9a4e0b46e.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9657.459d6300b0bc8ef8.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9676.cef4d87274c64417.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/97.15df9ee2f6270421.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9754.76a3ea33dc0e9a07.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9790.7e01549d70279760.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9871.994068e90ef076a5.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9887.0fbd7c3721a3c1d1.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9923.14c88b64d7749eaa.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/997.193727d4b2eede68.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9971.36f503837f73d3c2.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9976.ab4ec59ede08f398.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9990.13e025853b0250b6.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/9997.a844d058b46bb680.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/app/_not-found/page-ce05b36a67c37396.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/app/layout-b0d50d105c55fd6d.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/app/page-7b51d29c96f44f61.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/app/run/page-c2cd4dca690d6d29.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/c06218ab.b1da50a91b579a52.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/c911d7bd.bcca2e3dda67a7a6.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/d386b14e.c746c93eac03a58e.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/e925550e.ff706051f5223d26.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/fc645be4-662fd2da08676daa.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/framework-2b8e4864be10152d.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/main-33072985ea766514.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/main-app-4a8ccba13aa7606b.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/pages/_app-c0ae3ec92f260128.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/pages/_error-899a04d491d7df58.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- veadk/cli/studio/web/_next/static/chunks/webpack-14afc8861a1fe293.js +1 -0
- veadk/cli/studio/web/_next/static/css/366cfdd7fdd8bcac.css +1 -0
- veadk/cli/studio/web/_next/static/gvLvin_lQcpkhQupQqPu1/_buildManifest.js +1 -0
- veadk/cli/studio/web/_next/static/gvLvin_lQcpkhQupQqPu1/_ssgManifest.js +1 -0
- veadk/cli/studio/web/_next/static/media/569ce4b8f30dc480-s.p.woff2 +0 -0
- veadk/cli/studio/web/_next/static/media/747892c23ea88013-s.woff2 +0 -0
- veadk/cli/studio/web/_next/static/media/8d697b304b401681-s.woff2 +0 -0
- veadk/cli/studio/web/_next/static/media/93f479601ee12b01-s.p.woff2 +0 -0
- veadk/cli/studio/web/_next/static/media/9610d9e46709d722-s.woff2 +0 -0
- veadk/cli/studio/web/_next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
- veadk/cli/studio/web/favicon.ico +0 -0
- veadk/cli/studio/web/file.svg +1 -0
- veadk/cli/studio/web/globe.svg +1 -0
- veadk/cli/studio/web/index.html +1 -0
- veadk/cli/studio/web/index.txt +43 -0
- veadk/cli/studio/web/next.svg +1 -0
- veadk/cli/studio/web/run.html +1 -0
- veadk/cli/studio/web/run.txt +44 -0
- veadk/cli/studio/web/veadk-logo.png +0 -0
- veadk/cli/studio/web/vercel.svg +1 -0
- veadk/cli/studio/web/window.svg +1 -0
- veadk/cloud/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/cloud/__pycache__/cloud_agent_engine.cpython-310.pyc +0 -0
- veadk/cloud/__pycache__/cloud_app.cpython-310.pyc +0 -0
- veadk/cloud/cloud_agent_engine.py +104 -43
- veadk/cloud/cloud_app.py +82 -14
- veadk/database/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/database/__pycache__/base_database.cpython-310.pyc +0 -0
- veadk/database/__pycache__/database_adapter.cpython-310.pyc +0 -0
- veadk/database/__pycache__/database_factory.cpython-310.pyc +0 -0
- veadk/database/__pycache__/local_database.cpython-310.pyc +0 -0
- veadk/database/database_adapter.py +280 -0
- veadk/database/database_factory.py +3 -3
- veadk/database/kv/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/database/relational/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/database/vector/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/database/vector/__pycache__/opensearch_vector_database.cpython-310.pyc +0 -0
- veadk/database/vector/__pycache__/type.cpython-310.pyc +0 -0
- veadk/database/vector/opensearch_vector_database.py +50 -2
- veadk/database/viking/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/database/viking/viking_database.py +24 -6
- veadk/database/viking/viking_memory_db.py +26 -22
- veadk/evaluation/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/evaluation/__pycache__/base_evaluator.cpython-310.pyc +0 -0
- veadk/evaluation/__pycache__/eval_set_file_loader.cpython-310.pyc +0 -0
- veadk/evaluation/__pycache__/eval_set_recorder.cpython-310.pyc +0 -0
- veadk/evaluation/__pycache__/types.cpython-310.pyc +0 -0
- veadk/evaluation/adk_evaluator/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/evaluation/base_evaluator.py +130 -3
- veadk/evaluation/deepeval_evaluator/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/evaluation/deepeval_evaluator/__pycache__/deepeval_evaluator.cpython-310.pyc +0 -0
- veadk/evaluation/deepeval_evaluator/deepeval_evaluator.py +13 -26
- veadk/evaluation/types.py +33 -0
- veadk/evaluation/utils/__pycache__/prometheus.cpython-310.pyc +0 -0
- veadk/evaluation/utils/prometheus.py +19 -23
- veadk/knowledgebase/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/knowledgebase/__pycache__/knowledgebase.cpython-310.pyc +0 -0
- veadk/knowledgebase/__pycache__/knowledgebase_database_adapter.cpython-310.pyc +0 -0
- veadk/knowledgebase/knowledgebase.py +30 -29
- veadk/memory/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/memory/__pycache__/long_term_memory.cpython-310.pyc +0 -0
- veadk/memory/__pycache__/memory_database_adapter.cpython-310.pyc +0 -0
- veadk/memory/__pycache__/short_term_memory.cpython-310.pyc +0 -0
- veadk/memory/__pycache__/short_term_memory_processor.cpython-310.pyc +0 -0
- veadk/memory/long_term_memory.py +73 -37
- veadk/prompts/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/prompts/__pycache__/agent_default_prompt.cpython-310.pyc +0 -0
- veadk/prompts/__pycache__/prompt_memory_processor.cpython-310.pyc +0 -0
- veadk/prompts/__pycache__/prompt_optimization.cpython-310.pyc +0 -0
- veadk/runner.py +4 -0
- veadk/tools/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/tools/__pycache__/demo_tools.cpython-310.pyc +0 -0
- veadk/tools/__pycache__/load_knowledgebase_tool.cpython-310.pyc +0 -0
- veadk/tools/builtin_tools/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/tools/builtin_tools/__pycache__/lark.cpython-310.pyc +0 -0
- veadk/tools/builtin_tools/__pycache__/web_search.cpython-310.pyc +0 -0
- veadk/tools/builtin_tools/las.py +3 -2
- veadk/{cloud/template/app.py → tools/builtin_tools/mcp_router.py} +5 -13
- veadk/tools/load_knowledgebase_tool.py +3 -5
- veadk/tools/sandbox/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/tracing/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/tracing/__pycache__/base_tracer.cpython-310.pyc +0 -0
- veadk/tracing/base_tracer.py +44 -3
- veadk/tracing/telemetry/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/tracing/telemetry/__pycache__/opentelemetry_tracer.cpython-310.pyc +0 -0
- veadk/tracing/telemetry/exporters/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/tracing/telemetry/exporters/__pycache__/apiserver_exporter.cpython-310.pyc +0 -0
- veadk/tracing/telemetry/exporters/__pycache__/apmplus_exporter.cpython-310.pyc +0 -0
- veadk/tracing/telemetry/exporters/__pycache__/base_exporter.cpython-310.pyc +0 -0
- veadk/tracing/telemetry/exporters/__pycache__/cozeloop_exporter.cpython-310.pyc +0 -0
- veadk/tracing/telemetry/exporters/__pycache__/inmemory_exporter.cpython-310.pyc +0 -0
- veadk/tracing/telemetry/exporters/__pycache__/tls_exporter.cpython-310.pyc +0 -0
- veadk/tracing/telemetry/exporters/inmemory_exporter.py +0 -3
- veadk/tracing/telemetry/metrics/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/tracing/telemetry/metrics/__pycache__/opentelemetry_metrics.cpython-310.pyc +0 -0
- veadk/tracing/telemetry/opentelemetry_tracer.py +73 -29
- veadk/utils/__pycache__/__init__.cpython-310.pyc +0 -0
- veadk/utils/__pycache__/logger.cpython-310.pyc +0 -0
- veadk/utils/__pycache__/mcp_utils.cpython-310.pyc +0 -0
- veadk/utils/__pycache__/misc.cpython-310.pyc +0 -0
- veadk/utils/__pycache__/patches.cpython-310.pyc +0 -0
- veadk/utils/__pycache__/volcengine_sign.cpython-310.pyc +0 -0
- veadk/utils/mcp_utils.py +44 -0
- veadk/version.py +1 -1
- {veadk_python-0.1.0.dist-info → veadk_python-0.2.1.dist-info}/METADATA +14 -5
- veadk_python-0.2.1.dist-info/RECORD +534 -0
- veadk/cli/services/vefaas/template/src/config.py +0 -58
- veadk/cli/studio/agent_processor.py +0 -247
- veadk/cli/studio/model.py +0 -116
- veadk/cloud/template/config.py +0 -55
- veadk/knowledgebase/knowledgebase_database_adapter.py +0 -259
- veadk/memory/memory_database_adapter.py +0 -235
- veadk_python-0.1.0.dist-info/RECORD +0 -110
- {veadk_python-0.1.0.dist-info → veadk_python-0.2.1.dist-info}/WHEEL +0 -0
- {veadk_python-0.1.0.dist-info → veadk_python-0.2.1.dist-info}/entry_points.txt +0 -0
- {veadk_python-0.1.0.dist-info → veadk_python-0.2.1.dist-info}/licenses/LICENSE +0 -0
- {veadk_python-0.1.0.dist-info → veadk_python-0.2.1.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.
|
|
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
|
|
Binary file
|
|
@@ -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(
|
|
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
|
-
|
|
247
|
-
|
|
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
|
-
|
|
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
|
|
69
|
+
class VikingMemoryService(Service):
|
|
69
70
|
_instance_lock = threading.Lock()
|
|
70
71
|
|
|
71
72
|
def __new__(cls, *args, **kwargs):
|
|
72
|
-
if not hasattr(
|
|
73
|
-
with
|
|
74
|
-
if not hasattr(
|
|
75
|
-
|
|
76
|
-
return
|
|
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 =
|
|
90
|
+
self.service_info = VikingMemoryService.get_service_info(
|
|
90
91
|
host, region, scheme, connection_timeout, socket_timeout
|
|
91
92
|
)
|
|
92
|
-
self.api_info =
|
|
93
|
-
super(
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
222
|
+
raise VikingMemoryException(code, request_id, message)
|
|
222
223
|
|
|
223
224
|
if res == "":
|
|
224
|
-
raise
|
|
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
|
|
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
|
|
245
|
+
raise VikingMemoryException(code, request_id, message)
|
|
245
246
|
if res == "":
|
|
246
|
-
raise
|
|
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
|
-
|
|
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 =
|
|
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):
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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
|
|
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
|
|
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
|
-
|
|
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(
|
|
Binary file
|
|
Binary file
|
|
@@ -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
|
|
|
@@ -56,32 +52,19 @@ class DeepevalEvaluator(BaseEvaluator):
|
|
|
56
52
|
"https://ark.cn-beijing.volces.com/api/v3/",
|
|
57
53
|
),
|
|
58
54
|
name: str = "veadk_deepeval_evaluator",
|
|
59
|
-
prometheus_config: PrometheusPushgatewayConfig = None,
|
|
55
|
+
prometheus_config: PrometheusPushgatewayConfig | None = None,
|
|
60
56
|
):
|
|
61
57
|
super().__init__(agent=agent, name=name)
|
|
62
58
|
|
|
63
59
|
self.judge_model_name = judge_model_name
|
|
64
|
-
self.judge_model =
|
|
65
|
-
|
|
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,9 +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
|
-
|
|
94
76
|
# Get evaluation data by parsing eval set file
|
|
95
77
|
self.generate_eval_data(eval_set_file_path)
|
|
78
|
+
|
|
96
79
|
# Get actual data by running agent
|
|
97
80
|
logger.info("Start to run agent for actual data.")
|
|
98
81
|
await self._run_agent_for_actual_data()
|
|
@@ -141,7 +124,11 @@ class DeepevalEvaluator(BaseEvaluator):
|
|
|
141
124
|
|
|
142
125
|
# Run Deepeval evaluation according to metrics
|
|
143
126
|
logger.info("Start to run Deepeval evaluation according to metrics.")
|
|
144
|
-
test_results = evaluate(
|
|
127
|
+
test_results = evaluate(
|
|
128
|
+
test_cases=test_cases,
|
|
129
|
+
metrics=metrics,
|
|
130
|
+
cache_config=CacheConfig(write_cache=False),
|
|
131
|
+
)
|
|
145
132
|
for test_result in test_results.test_results:
|
|
146
133
|
eval_result_data = EvalResultData(metric_results=[])
|
|
147
134
|
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
|
|
Binary file
|
|
@@ -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 =
|
|
43
|
-
|
|
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()
|
|
Binary file
|
|
Binary file
|