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
|
@@ -40,59 +40,59 @@ class CloudAgentEngine(BaseModel):
|
|
|
40
40
|
)
|
|
41
41
|
|
|
42
42
|
def _prepare(self, path: str, name: str):
|
|
43
|
-
#
|
|
44
|
-
if "_" in name:
|
|
45
|
-
raise ValueError(
|
|
46
|
-
f"Invalid Volcengine FaaS function name `{name}`, please use lowercase letters and numbers, or replace it with a `-` char."
|
|
47
|
-
)
|
|
48
|
-
|
|
49
|
-
# project path check
|
|
43
|
+
# basic check
|
|
50
44
|
assert os.path.exists(path), f"Local agent project path `{path}` not exists."
|
|
51
45
|
assert os.path.isdir(path), (
|
|
52
46
|
f"Local agent project path `{path}` is not a directory."
|
|
53
47
|
)
|
|
54
48
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
if os.path.exists(os.path.join(path, "app.py")):
|
|
60
|
-
logger.warning(
|
|
61
|
-
f"Local agent project path `{path}` contains an `app.py` file. Use your own `app.py` file may cause unexpected behavior."
|
|
62
|
-
)
|
|
63
|
-
else:
|
|
64
|
-
logger.info(
|
|
65
|
-
f"No `app.py` detected in local agent project path `{path}`. Prepare it."
|
|
66
|
-
)
|
|
67
|
-
template_app_py = (
|
|
68
|
-
f"{Path(__file__).resolve().parent.resolve()}/template/app.py"
|
|
49
|
+
# VeFaaS application/function name check
|
|
50
|
+
if "_" in name:
|
|
51
|
+
raise ValueError(
|
|
52
|
+
f"Invalid Volcengine FaaS function name `{name}`, please use lowercase letters and numbers, or replace it with a `-` char."
|
|
69
53
|
)
|
|
70
|
-
import shutil
|
|
71
54
|
|
|
72
|
-
|
|
55
|
+
# project structure check
|
|
56
|
+
assert os.path.exists(os.path.join(path, "agent.py")), (
|
|
57
|
+
f"Local agent project path `{path}` does not contain `agent.py` file. Please prepare it according to our document https://volcengine.github.io/veadk-python/deploy.html"
|
|
58
|
+
)
|
|
73
59
|
|
|
74
|
-
if os.path.exists(os.path.join(path, "
|
|
60
|
+
if not os.path.exists(os.path.join(path, "config.yaml")):
|
|
75
61
|
logger.warning(
|
|
76
|
-
f"Local agent project path `{path}`
|
|
77
|
-
)
|
|
78
|
-
else:
|
|
79
|
-
logger.info(
|
|
80
|
-
f"No `run.sh` detected in local agent project path `{path}`. Prepare it."
|
|
81
|
-
)
|
|
82
|
-
template_run_sh = (
|
|
83
|
-
f"{Path(__file__).resolve().parent.resolve()}/template/run.sh"
|
|
62
|
+
f"Local agent project path `{path}` does not contain `config.yaml` file. Some important config items may not be set."
|
|
84
63
|
)
|
|
85
|
-
import shutil
|
|
86
64
|
|
|
87
|
-
|
|
65
|
+
# prepare template files if not have
|
|
66
|
+
template_files = [
|
|
67
|
+
"app.py",
|
|
68
|
+
"studio_app.py",
|
|
69
|
+
"run.sh",
|
|
70
|
+
"requirements.txt",
|
|
71
|
+
"__init__.py",
|
|
72
|
+
]
|
|
73
|
+
for template_file in template_files:
|
|
74
|
+
if os.path.exists(os.path.join(path, template_file)):
|
|
75
|
+
logger.warning(
|
|
76
|
+
f"Local agent project path `{path}` contains a `{template_file}` file. Use your own `{template_file}` file may cause unexpected behavior."
|
|
77
|
+
)
|
|
78
|
+
else:
|
|
79
|
+
logger.info(
|
|
80
|
+
f"No `{template_file}` detected in local agent project path `{path}`. Prepare it."
|
|
81
|
+
)
|
|
82
|
+
template_file_path = f"{Path(__file__).resolve().parent.resolve().parent.resolve()}/cli/services/vefaas/template/src/{template_file}"
|
|
83
|
+
import shutil
|
|
84
|
+
|
|
85
|
+
shutil.copy(template_file_path, os.path.join(path, template_file))
|
|
88
86
|
|
|
89
87
|
def deploy(
|
|
90
88
|
self,
|
|
89
|
+
application_name: str,
|
|
91
90
|
path: str,
|
|
92
|
-
name: str,
|
|
93
91
|
gateway_name: str = "",
|
|
94
92
|
gateway_service_name: str = "",
|
|
95
93
|
gateway_upstream_name: str = "",
|
|
94
|
+
use_studio: bool = False,
|
|
95
|
+
use_adk_web: bool = False,
|
|
96
96
|
) -> CloudApp:
|
|
97
97
|
"""Deploy local agent project to Volcengine FaaS platform.
|
|
98
98
|
|
|
@@ -103,21 +103,46 @@ class CloudAgentEngine(BaseModel):
|
|
|
103
103
|
Returns:
|
|
104
104
|
str: Volcengine FaaS function endpoint.
|
|
105
105
|
"""
|
|
106
|
+
assert not (use_studio and use_adk_web), (
|
|
107
|
+
"use_studio and use_adk_web can not be True at the same time."
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
# prevent deepeval writing operations
|
|
111
|
+
import veadk.config
|
|
112
|
+
|
|
113
|
+
veadk.config.veadk_environments["DEEPEVAL_TELEMETRY_OPT_OUT"] = "YES"
|
|
114
|
+
|
|
115
|
+
if use_studio:
|
|
116
|
+
veadk.config.veadk_environments["USE_STUDIO"] = "True"
|
|
117
|
+
else:
|
|
118
|
+
import veadk.config
|
|
119
|
+
|
|
120
|
+
veadk.config.veadk_environments["USE_STUDIO"] = "False"
|
|
121
|
+
|
|
122
|
+
if use_adk_web:
|
|
123
|
+
import veadk.config
|
|
124
|
+
|
|
125
|
+
veadk.config.veadk_environments["USE_ADK_WEB"] = "True"
|
|
126
|
+
else:
|
|
127
|
+
import veadk.config
|
|
128
|
+
|
|
129
|
+
veadk.config.veadk_environments["USE_ADK_WEB"] = "False"
|
|
130
|
+
|
|
106
131
|
# convert `path` to absolute path
|
|
107
132
|
path = str(Path(path).resolve())
|
|
108
|
-
self._prepare(path,
|
|
133
|
+
self._prepare(path, application_name)
|
|
109
134
|
|
|
110
135
|
if not gateway_name:
|
|
111
|
-
gateway_name = f"{
|
|
136
|
+
gateway_name = f"{application_name}-gw-{formatted_timestamp()}"
|
|
112
137
|
if not gateway_service_name:
|
|
113
|
-
gateway_service_name = f"{
|
|
138
|
+
gateway_service_name = f"{application_name}-gw-svr-{formatted_timestamp()}"
|
|
114
139
|
if not gateway_upstream_name:
|
|
115
|
-
gateway_upstream_name = f"{
|
|
140
|
+
gateway_upstream_name = f"{application_name}-gw-us-{formatted_timestamp()}"
|
|
116
141
|
|
|
117
142
|
try:
|
|
118
143
|
vefaas_application_url, app_id, function_id = self._vefaas_service.deploy(
|
|
119
144
|
path=path,
|
|
120
|
-
name=
|
|
145
|
+
name=application_name,
|
|
121
146
|
gateway_name=gateway_name,
|
|
122
147
|
gateway_service_name=gateway_service_name,
|
|
123
148
|
gateway_upstream_name=gateway_upstream_name,
|
|
@@ -125,9 +150,9 @@ class CloudAgentEngine(BaseModel):
|
|
|
125
150
|
_ = function_id # for future use
|
|
126
151
|
|
|
127
152
|
return CloudApp(
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
153
|
+
vefaas_application_name=application_name,
|
|
154
|
+
vefaas_endpoint=vefaas_application_url,
|
|
155
|
+
vefaas_application_id=app_id,
|
|
131
156
|
)
|
|
132
157
|
except Exception as e:
|
|
133
158
|
raise ValueError(
|
|
@@ -142,3 +167,39 @@ class CloudAgentEngine(BaseModel):
|
|
|
142
167
|
else:
|
|
143
168
|
app_id = self._vefaas_service.find_app_id_by_name(app_name)
|
|
144
169
|
self._vefaas_service.delete(app_id)
|
|
170
|
+
|
|
171
|
+
def update_function_code(
|
|
172
|
+
self,
|
|
173
|
+
application_name: str,
|
|
174
|
+
path: str,
|
|
175
|
+
) -> CloudApp:
|
|
176
|
+
"""Update existing agent project code while keeping the same URL.
|
|
177
|
+
|
|
178
|
+
Args:
|
|
179
|
+
application_name (str): Existing application name to update.
|
|
180
|
+
path (str): Local agent project path.
|
|
181
|
+
|
|
182
|
+
Returns:
|
|
183
|
+
CloudApp: Updated cloud app with same endpoint.
|
|
184
|
+
"""
|
|
185
|
+
# convert `path` to absolute path
|
|
186
|
+
path = str(Path(path).resolve())
|
|
187
|
+
self._prepare(path, application_name)
|
|
188
|
+
|
|
189
|
+
try:
|
|
190
|
+
vefaas_application_url, app_id, function_id = (
|
|
191
|
+
self._vefaas_service._update_function_code(
|
|
192
|
+
application_name=application_name,
|
|
193
|
+
path=path,
|
|
194
|
+
)
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
return CloudApp(
|
|
198
|
+
vefaas_application_name=application_name,
|
|
199
|
+
vefaas_endpoint=vefaas_application_url,
|
|
200
|
+
vefaas_application_id=app_id,
|
|
201
|
+
)
|
|
202
|
+
except Exception as e:
|
|
203
|
+
raise ValueError(
|
|
204
|
+
f"Failed to update agent project on Volcengine FaaS platform. Error: {e}"
|
|
205
|
+
)
|
veadk/cloud/cloud_app.py
CHANGED
|
@@ -15,10 +15,12 @@
|
|
|
15
15
|
from typing import Any
|
|
16
16
|
from uuid import uuid4
|
|
17
17
|
|
|
18
|
+
import json
|
|
18
19
|
import httpx
|
|
19
20
|
from a2a.client import A2ACardResolver, A2AClient
|
|
20
21
|
from a2a.types import AgentCard, Message, MessageSendParams, SendMessageRequest
|
|
21
22
|
|
|
23
|
+
from veadk.config import getenv
|
|
22
24
|
from veadk.utils.logger import get_logger
|
|
23
25
|
|
|
24
26
|
logger = get_logger(__name__)
|
|
@@ -35,19 +37,34 @@ class CloudApp:
|
|
|
35
37
|
|
|
36
38
|
def __init__(
|
|
37
39
|
self,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
vefaas_application_name: str = "",
|
|
41
|
+
vefaas_endpoint: str = "",
|
|
42
|
+
vefaas_application_id: str = "",
|
|
41
43
|
use_agent_card: bool = False,
|
|
42
44
|
):
|
|
43
|
-
self.
|
|
44
|
-
self.
|
|
45
|
-
self.
|
|
45
|
+
self.vefaas_endpoint = vefaas_endpoint
|
|
46
|
+
self.vefaas_application_id = vefaas_application_id
|
|
47
|
+
self.vefaas_application_name = vefaas_application_name
|
|
46
48
|
self.use_agent_card = use_agent_card
|
|
47
49
|
|
|
48
|
-
|
|
50
|
+
# vefaas must be set one of three
|
|
51
|
+
if (
|
|
52
|
+
not vefaas_endpoint
|
|
53
|
+
and not vefaas_application_id
|
|
54
|
+
and not vefaas_application_name
|
|
55
|
+
):
|
|
49
56
|
raise ValueError(
|
|
50
|
-
|
|
57
|
+
"VeFaaS CloudAPP must be set one of endpoint, application_id, or application_name."
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
if not vefaas_endpoint:
|
|
61
|
+
self.vefaas_endpoint = self._get_vefaas_endpoint()
|
|
62
|
+
|
|
63
|
+
if not self.vefaas_endpoint.startswith(
|
|
64
|
+
"http"
|
|
65
|
+
) and not self.vefaas_endpoint.startswith("https"):
|
|
66
|
+
raise ValueError(
|
|
67
|
+
f"Invalid endpoint: {vefaas_endpoint}. The endpoint must start with `http` or `https`."
|
|
51
68
|
)
|
|
52
69
|
|
|
53
70
|
if use_agent_card:
|
|
@@ -57,11 +74,39 @@ class CloudApp:
|
|
|
57
74
|
|
|
58
75
|
self.httpx_client = httpx.AsyncClient()
|
|
59
76
|
|
|
77
|
+
def _get_vefaas_endpoint(
|
|
78
|
+
self,
|
|
79
|
+
volcengine_ak: str = getenv("VOLCENGINE_ACCESS_KEY"),
|
|
80
|
+
volcengine_sk: str = getenv("VOLCENGINE_SECRET_KEY"),
|
|
81
|
+
) -> str:
|
|
82
|
+
from veadk.cli.services.vefaas.vefaas import VeFaaS
|
|
83
|
+
|
|
84
|
+
vefaas_client = VeFaaS(access_key=volcengine_ak, secret_key=volcengine_sk)
|
|
85
|
+
app = vefaas_client.get_application_details(
|
|
86
|
+
app_id=self.vefaas_application_id,
|
|
87
|
+
app_name=self.vefaas_application_name,
|
|
88
|
+
)
|
|
89
|
+
cloud_resource = json.loads(app["CloudResource"])
|
|
90
|
+
try:
|
|
91
|
+
vefaas_endpoint = cloud_resource["framework"]["url"]["system_url"]
|
|
92
|
+
except Exception as e:
|
|
93
|
+
raise ValueError(f"VeFaaS cloudAPP could not get endpoint. Error: {e}")
|
|
94
|
+
return vefaas_endpoint
|
|
95
|
+
|
|
96
|
+
def _get_vefaas_application_id_by_name(self) -> str:
|
|
97
|
+
if not self.vefaas_application_name:
|
|
98
|
+
raise ValueError(
|
|
99
|
+
"VeFaaS CloudAPP must be set application_name to get application_id."
|
|
100
|
+
)
|
|
101
|
+
# TODO(zakahan): get application id from vefaas application name
|
|
102
|
+
vefaas_application_id = ""
|
|
103
|
+
return vefaas_application_id
|
|
104
|
+
|
|
60
105
|
async def _get_a2a_client(self) -> A2AClient:
|
|
61
106
|
if self.use_agent_card:
|
|
62
107
|
async with self.httpx_client as httpx_client:
|
|
63
108
|
resolver = A2ACardResolver(
|
|
64
|
-
httpx_client=httpx_client, base_url=self.
|
|
109
|
+
httpx_client=httpx_client, base_url=self.vefaas_endpoint
|
|
65
110
|
)
|
|
66
111
|
|
|
67
112
|
final_agent_card_to_use: AgentCard | None = None
|
|
@@ -74,10 +119,32 @@ class CloudApp:
|
|
|
74
119
|
httpx_client=self.httpx_client, agent_card=final_agent_card_to_use
|
|
75
120
|
)
|
|
76
121
|
else:
|
|
77
|
-
return A2AClient(httpx_client=self.httpx_client, url=self.
|
|
122
|
+
return A2AClient(httpx_client=self.httpx_client, url=self.vefaas_endpoint)
|
|
123
|
+
|
|
124
|
+
def update_self(
|
|
125
|
+
self,
|
|
126
|
+
volcengine_ak: str = getenv("VOLCENGINE_ACCESS_KEY"),
|
|
127
|
+
volcengine_sk: str = getenv("VOLCENGINE_SECRET_KEY"),
|
|
128
|
+
):
|
|
129
|
+
if not volcengine_ak or not volcengine_sk:
|
|
130
|
+
raise ValueError("Volcengine access key and secret key must be set.")
|
|
131
|
+
|
|
132
|
+
# TODO(floritange): support update cloud app
|
|
133
|
+
|
|
134
|
+
def delete_self(
|
|
135
|
+
self,
|
|
136
|
+
volcengine_ak: str = getenv("VOLCENGINE_ACCESS_KEY"),
|
|
137
|
+
volcengine_sk: str = getenv("VOLCENGINE_SECRET_KEY"),
|
|
138
|
+
):
|
|
139
|
+
if not volcengine_ak or not volcengine_sk:
|
|
140
|
+
raise ValueError("Volcengine access key and secret key must be set.")
|
|
141
|
+
|
|
142
|
+
if not self.vefaas_application_id:
|
|
143
|
+
self.vefaas_application_id = self._get_vefaas_application_id_by_name()
|
|
78
144
|
|
|
79
|
-
|
|
80
|
-
|
|
145
|
+
confirm = input(
|
|
146
|
+
f"Confirm delete cloud app {self.vefaas_application_id}? (y/N): "
|
|
147
|
+
)
|
|
81
148
|
if confirm.lower() != "y":
|
|
82
149
|
print("Delete cancelled.")
|
|
83
150
|
return
|
|
@@ -85,8 +152,8 @@ class CloudApp:
|
|
|
85
152
|
from veadk.cli.services.vefaas.vefaas import VeFaaS
|
|
86
153
|
|
|
87
154
|
vefaas_client = VeFaaS(access_key=volcengine_ak, secret_key=volcengine_sk)
|
|
88
|
-
vefaas_client.delete(self.
|
|
89
|
-
print(f"Cloud app {self.
|
|
155
|
+
vefaas_client.delete(self.vefaas_application_id)
|
|
156
|
+
print(f"Cloud app {self.vefaas_application_id} is deleting...")
|
|
90
157
|
|
|
91
158
|
async def message_send(
|
|
92
159
|
self, message: str, session_id: str, user_id: str, timeout: float = 600.0
|
|
@@ -119,5 +186,6 @@ class CloudApp:
|
|
|
119
186
|
)
|
|
120
187
|
return res.root.result
|
|
121
188
|
except Exception as e:
|
|
189
|
+
# TODO(floritange): show error log on VeFaaS function
|
|
122
190
|
print(e)
|
|
123
191
|
return None
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,280 @@
|
|
|
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
|
+
import re
|
|
16
|
+
import time
|
|
17
|
+
from typing import BinaryIO, TextIO
|
|
18
|
+
from veadk.database.base_database import BaseDatabase
|
|
19
|
+
|
|
20
|
+
from veadk.utils.logger import get_logger
|
|
21
|
+
|
|
22
|
+
logger = get_logger(__name__)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class KVDatabaseAdapter:
|
|
26
|
+
def __init__(self, client):
|
|
27
|
+
from veadk.database.kv.redis_database import RedisDatabase
|
|
28
|
+
|
|
29
|
+
self.client: RedisDatabase = client
|
|
30
|
+
|
|
31
|
+
def add(self, data: list[str], index: str):
|
|
32
|
+
logger.debug(f"Adding documents to Redis database: index={index}")
|
|
33
|
+
|
|
34
|
+
try:
|
|
35
|
+
for _data in data:
|
|
36
|
+
self.client.add(key=index, value=_data)
|
|
37
|
+
logger.debug(f"Added {len(data)} texts to Redis database: index={index}")
|
|
38
|
+
except Exception as e:
|
|
39
|
+
logger.error(
|
|
40
|
+
f"Failed to add data to Redis database: index={index} error={e}"
|
|
41
|
+
)
|
|
42
|
+
raise e
|
|
43
|
+
|
|
44
|
+
def query(self, query: str, index: str, top_k: int = 0) -> list[str]:
|
|
45
|
+
logger.debug(f"Querying Redis database: index={index} query={query}")
|
|
46
|
+
|
|
47
|
+
# ignore top_k, as KV search only return one result
|
|
48
|
+
_ = top_k
|
|
49
|
+
|
|
50
|
+
try:
|
|
51
|
+
result = self.client.query(key=index, query=query)
|
|
52
|
+
return result
|
|
53
|
+
except Exception as e:
|
|
54
|
+
logger.error(f"Failed to search from Redis: index={index} error={e}")
|
|
55
|
+
raise e
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class RelationalDatabaseAdapter:
|
|
59
|
+
def __init__(self, client):
|
|
60
|
+
from veadk.database.relational.mysql_database import MysqlDatabase
|
|
61
|
+
|
|
62
|
+
self.client: MysqlDatabase = client
|
|
63
|
+
|
|
64
|
+
def create_table(self, table_name: str):
|
|
65
|
+
logger.debug(f"Creating table for SQL database: table_name={table_name}")
|
|
66
|
+
|
|
67
|
+
sql = f"""
|
|
68
|
+
CREATE TABLE `{table_name}` (
|
|
69
|
+
`id` BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
70
|
+
`data` TEXT NOT NULL,
|
|
71
|
+
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
72
|
+
) ENGINE=InnoDB DEFAULT CHARSET={self.client.config.charset};
|
|
73
|
+
"""
|
|
74
|
+
self.client.add(sql)
|
|
75
|
+
|
|
76
|
+
def add(self, data: list[str], index: str):
|
|
77
|
+
logger.debug(
|
|
78
|
+
f"Adding documents to SQL database: table_name={index} data_len={len(data)}"
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
if not self.client.table_exists(index):
|
|
82
|
+
logger.warning(f"Table {index} does not exist, creating a new table.")
|
|
83
|
+
self.create_table(index)
|
|
84
|
+
|
|
85
|
+
for _data in data:
|
|
86
|
+
sql = f"""
|
|
87
|
+
INSERT INTO `{index}` (`data`)
|
|
88
|
+
VALUES (%s);
|
|
89
|
+
"""
|
|
90
|
+
self.client.add(sql, params=(_data,))
|
|
91
|
+
logger.debug(f"Added {len(data)} texts to table {index}.")
|
|
92
|
+
|
|
93
|
+
def query(self, query: str, index: str, top_k: int) -> list[str]:
|
|
94
|
+
logger.debug(
|
|
95
|
+
f"Querying SQL database: table_name={index} query={query} top_k={top_k}"
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
if not self.client.table_exists(index):
|
|
99
|
+
logger.warning(
|
|
100
|
+
f"Querying SQL database, but table `{index}` does not exist, returning empty list."
|
|
101
|
+
)
|
|
102
|
+
return []
|
|
103
|
+
|
|
104
|
+
sql = f"""
|
|
105
|
+
SELECT `data` FROM `{index}` ORDER BY `created_at` DESC LIMIT {top_k};
|
|
106
|
+
"""
|
|
107
|
+
results = self.client.query(sql)
|
|
108
|
+
|
|
109
|
+
return [item["data"] for item in results]
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
class VectorDatabaseAdapter:
|
|
113
|
+
def __init__(self, client):
|
|
114
|
+
from veadk.database.vector.opensearch_vector_database import (
|
|
115
|
+
OpenSearchVectorDatabase,
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
self.client: OpenSearchVectorDatabase = client
|
|
119
|
+
|
|
120
|
+
def _validate_index(self, index: str):
|
|
121
|
+
"""
|
|
122
|
+
Verify whether the string conforms to the naming rules of index_name in OpenSearch.
|
|
123
|
+
https://docs.opensearch.org/2.8/api-reference/index-apis/create-index/
|
|
124
|
+
"""
|
|
125
|
+
if not (
|
|
126
|
+
isinstance(index, str)
|
|
127
|
+
and not index.startswith(("_", "-"))
|
|
128
|
+
and index.islower()
|
|
129
|
+
and re.match(r"^[a-z0-9_\-.]+$", index)
|
|
130
|
+
):
|
|
131
|
+
raise ValueError(
|
|
132
|
+
"The index name does not conform to the naming rules of OpenSearch"
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
def add(self, data: list[str], index: str):
|
|
136
|
+
self._validate_index(index)
|
|
137
|
+
|
|
138
|
+
logger.debug(
|
|
139
|
+
f"Adding documents to vector database: index={index} data_len={len(data)}"
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
self.client.add(data, collection_name=index)
|
|
143
|
+
|
|
144
|
+
def query(self, query: str, index: str, top_k: int) -> list[str]:
|
|
145
|
+
logger.debug(
|
|
146
|
+
f"Querying vector database: collection_name={index} query={query} top_k={top_k}"
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
return self.client.query(
|
|
150
|
+
query=query,
|
|
151
|
+
collection_name=index,
|
|
152
|
+
top_k=top_k,
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
class VikingDatabaseAdapter:
|
|
157
|
+
def __init__(self, client):
|
|
158
|
+
from veadk.database.viking.viking_database import VikingDatabase
|
|
159
|
+
|
|
160
|
+
self.client: VikingDatabase = client
|
|
161
|
+
|
|
162
|
+
def _validate_index(self, index: str):
|
|
163
|
+
"""
|
|
164
|
+
Only English letters, numbers, and underscores (_) are allowed.
|
|
165
|
+
It must start with an English letter and cannot be empty. Length requirement: [1, 128].
|
|
166
|
+
For details, please see: https://www.volcengine.com/docs/84313/1254542?lang=zh
|
|
167
|
+
"""
|
|
168
|
+
if not (
|
|
169
|
+
isinstance(index, str)
|
|
170
|
+
and 0 < len(index) <= 128
|
|
171
|
+
and re.fullmatch(r"^[a-zA-Z][a-zA-Z0-9_]*$", index)
|
|
172
|
+
):
|
|
173
|
+
raise ValueError(
|
|
174
|
+
"The index name does not conform to the rules: it must start with an English letter, contain only letters, numbers, and underscores, and have a length of 1-128."
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
def get_or_create_collection(self, collection_name: str):
|
|
178
|
+
if not self.client.collection_exists(collection_name):
|
|
179
|
+
logger.warning(
|
|
180
|
+
f"Collection {collection_name} does not exist, creating a new collection."
|
|
181
|
+
)
|
|
182
|
+
self.client.create_collection(collection_name)
|
|
183
|
+
|
|
184
|
+
# After creation, it is necessary to wait for a while.
|
|
185
|
+
count = 0
|
|
186
|
+
while not self.client.collection_exists(collection_name):
|
|
187
|
+
print("here")
|
|
188
|
+
time.sleep(1)
|
|
189
|
+
count += 1
|
|
190
|
+
if count > 60:
|
|
191
|
+
raise TimeoutError(
|
|
192
|
+
f"Collection {collection_name} not created after 50 seconds"
|
|
193
|
+
)
|
|
194
|
+
|
|
195
|
+
def add(
|
|
196
|
+
self, data: str | list[str] | TextIO | BinaryIO | bytes, index: str, **kwargs
|
|
197
|
+
):
|
|
198
|
+
self._validate_index(index)
|
|
199
|
+
|
|
200
|
+
logger.debug(f"Adding documents to Viking database: collection_name={index}")
|
|
201
|
+
|
|
202
|
+
self.get_or_create_collection(index)
|
|
203
|
+
self.client.add(data, collection_name=index, **kwargs)
|
|
204
|
+
|
|
205
|
+
def query(self, query: str, index: str, top_k: int) -> list[str]:
|
|
206
|
+
self._validate_index(index)
|
|
207
|
+
|
|
208
|
+
logger.debug(f"Querying Viking database: collection_name={index} query={query}")
|
|
209
|
+
|
|
210
|
+
if not self.client.collection_exists(index):
|
|
211
|
+
return []
|
|
212
|
+
|
|
213
|
+
return self.client.query(query, collection_name=index, top_k=top_k)
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
class VikingMemoryDatabaseAdapter:
|
|
217
|
+
def __init__(self, client):
|
|
218
|
+
from veadk.database.viking.viking_memory_db import VikingMemoryDatabase
|
|
219
|
+
|
|
220
|
+
self.client: VikingMemoryDatabase = client
|
|
221
|
+
|
|
222
|
+
def _validate_index(self, index: str):
|
|
223
|
+
if not (
|
|
224
|
+
isinstance(index, str)
|
|
225
|
+
and 1 <= len(index) <= 128
|
|
226
|
+
and re.fullmatch(r"^[a-zA-Z][a-zA-Z0-9_]*$", index)
|
|
227
|
+
):
|
|
228
|
+
raise ValueError(
|
|
229
|
+
"The index name does not conform to the rules: it must start with an English letter, contain only letters, numbers, and underscores, and have a length of 1-128."
|
|
230
|
+
)
|
|
231
|
+
|
|
232
|
+
def add(self, data: list[str], index: str, **kwargs):
|
|
233
|
+
self._validate_index(index)
|
|
234
|
+
|
|
235
|
+
logger.debug(
|
|
236
|
+
f"Adding documents to Viking database memory: collection_name={index} data_len={len(data)}"
|
|
237
|
+
)
|
|
238
|
+
|
|
239
|
+
self.client.add(data, collection_name=index, **kwargs)
|
|
240
|
+
|
|
241
|
+
def query(self, query: str, index: str, top_k: int, **kwargs):
|
|
242
|
+
self._validate_index(index)
|
|
243
|
+
|
|
244
|
+
logger.debug(
|
|
245
|
+
f"Querying Viking database memory: collection_name={index} query={query} top_k={top_k}"
|
|
246
|
+
)
|
|
247
|
+
|
|
248
|
+
result = self.client.query(query, collection_name=index, top_k=top_k, **kwargs)
|
|
249
|
+
return result
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
class LocalDatabaseAdapter:
|
|
253
|
+
def __init__(self, client):
|
|
254
|
+
from veadk.database.local_database import LocalDataBase
|
|
255
|
+
|
|
256
|
+
self.client: LocalDataBase = client
|
|
257
|
+
|
|
258
|
+
def add(self, data: list[str], **kwargs):
|
|
259
|
+
self.client.add(data)
|
|
260
|
+
|
|
261
|
+
def query(self, query: str, **kwargs):
|
|
262
|
+
return self.client.query(query, **kwargs)
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
MAPPING = {
|
|
266
|
+
"RedisDatabase": KVDatabaseAdapter,
|
|
267
|
+
"MysqlDatabase": RelationalDatabaseAdapter,
|
|
268
|
+
"LocalDataBase": LocalDatabaseAdapter,
|
|
269
|
+
"VikingDatabase": VikingDatabaseAdapter,
|
|
270
|
+
"OpenSearchVectorDatabase": VectorDatabaseAdapter,
|
|
271
|
+
"VikingMemoryDatabase": VikingMemoryDatabaseAdapter,
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
def get_knowledgebase_database_adapter(database_client: BaseDatabase):
|
|
276
|
+
return MAPPING[type(database_client).__name__](client=database_client)
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
def get_long_term_memory_database_adapter(database_client: BaseDatabase):
|
|
280
|
+
return MAPPING[type(database_client).__name__](client=database_client)
|
|
@@ -69,12 +69,12 @@ class DatabaseFactory:
|
|
|
69
69
|
return VikingDatabase() if config is None else VikingDatabase(config=config)
|
|
70
70
|
|
|
71
71
|
if backend == DatabaseBackend.VIKING_MEM:
|
|
72
|
-
from .viking.viking_memory_db import
|
|
72
|
+
from .viking.viking_memory_db import VikingMemoryDatabase
|
|
73
73
|
|
|
74
74
|
return (
|
|
75
|
-
|
|
75
|
+
VikingMemoryDatabase()
|
|
76
76
|
if config is None
|
|
77
|
-
else
|
|
77
|
+
else VikingMemoryDatabase(config=config)
|
|
78
78
|
)
|
|
79
79
|
else:
|
|
80
80
|
raise ValueError(f"Unsupported database type: {backend}")
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|