davidkhala.ai 0.1.9__py3-none-any.whl → 0.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,68 @@
1
+ from time import sleep
2
+
3
+ from davidkhala.ai.agent.dify.ops.console import API
4
+ from davidkhala.ai.agent.dify.ops.console.session import ConsoleUser
5
+
6
+
7
+ class ConsolePlugin(API):
8
+ def __init__(self, context: ConsoleUser):
9
+ super().__init__()
10
+ self.base_url = f"{context.base_url}/workspaces/current/plugin"
11
+ self.session.cookies = context.session.cookies
12
+ self.options = context.options
13
+
14
+ def upgrade(self, *plugin_names: str) -> list[dict]:
15
+ versions = self.latest_version(*plugin_names)
16
+ self.async_install(*versions)
17
+
18
+ current = []
19
+ while len(current) < len(versions):
20
+ current = self.get(*plugin_names)
21
+ sleep(1)
22
+ return current
23
+
24
+ def async_install(self, *plugin_versioned_names: str) -> str | None:
25
+ url = f"{self.base_url}/install/marketplace"
26
+ r = self.request(url, method="POST", json={
27
+ 'plugin_unique_identifiers': plugin_versioned_names,
28
+ })
29
+ if r['all_installed']:
30
+ # plugins exist, no need to install
31
+ return None
32
+
33
+ return r['task_id']
34
+
35
+ def plugins(self, *, page=1, size=100):
36
+ url = f"{self.base_url}/list?page={page}&page_size={size}"
37
+ r = self.request(url, method="GET")
38
+ _ = r['plugins']
39
+ assert r['total'] == len(_)
40
+ return _
41
+
42
+ def get(self, *plugin_names: str) -> list[dict]:
43
+ "inspect installed plugins"
44
+ url = f"{self.base_url}/list/installations/ids"
45
+ r = self.request(url, method="POST", json={
46
+ 'plugin_ids': plugin_names,
47
+ })
48
+ return r['plugins']
49
+
50
+ def latest_version(self, *plugin_names: str) -> dict:
51
+ url = f"{self.base_url}/list/latest-versions"
52
+ r = self.request(url, method="POST", json={
53
+ 'plugin_ids': plugin_names,
54
+ })
55
+ return [r['versions'][name]['unique_identifier'] for name in plugin_names]
56
+
57
+ def uninstall(self, id: str):
58
+ url = f"{self.base_url}/uninstall"
59
+
60
+ r = self.request(url, method="POST", json={
61
+ 'plugin_installation_id': id
62
+ })
63
+ assert r['success'] is True
64
+
65
+ def uninstall_by(self, *plugin_names: str):
66
+ for name in plugin_names:
67
+ r = self.get(name)
68
+ self.uninstall(r[0]['id'])
@@ -1,3 +1,5 @@
1
+ from base64 import b64encode
2
+
1
3
  from davidkhala.ai.agent.dify.ops.console import API
2
4
 
3
5
 
@@ -11,7 +13,7 @@ class ConsoleUser(API):
11
13
 
12
14
  r = self.request(url, "POST", json={
13
15
  'email': email,
14
- 'password': password,
16
+ 'password': b64encode(password.encode()).decode(), # use base64 from dify 1.11
15
17
  'remember_me': remember_me,
16
18
  'language': language,
17
19
  })
@@ -0,0 +1,36 @@
1
+ model_provider = [
2
+ 'langgenius/siliconflow',
3
+ 'langgenius/azure_openai',
4
+ 'langgenius/tongyi',
5
+ 'langgenius/jina',
6
+ 'langgenius/openrouter',
7
+ 'langgenius/deepseek',
8
+ ]
9
+
10
+ class Knowledge:
11
+ data_source = [
12
+ 'langgenius/firecrawl_datasource',
13
+ ]
14
+ chunk = [
15
+ 'langgenius/parentchild_chunker',
16
+ 'langgenius/general_chunker',
17
+ ]
18
+ api = [
19
+ 'abesticode/knowledge_pro',
20
+ ]
21
+
22
+ class Node:
23
+ format = [
24
+ 'langgenius/json_process',
25
+ 'langgenius/dify_extractor',
26
+ ]
27
+ agent = [
28
+ 'langgenius/agent',
29
+ ]
30
+ data = [
31
+ 'langgenius/chart',
32
+ 'junjiem/db_query',
33
+ 'junjiem/db_query_pre_auth',
34
+ ]
35
+
36
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: davidkhala.ai
3
- Version: 0.1.9
3
+ Version: 0.2.0
4
4
  Summary: misc AI modules
5
5
  Requires-Python: >=3.12
6
6
  Provides-Extra: ali
@@ -15,7 +15,8 @@ davidkhala/ai/agent/dify/api/knowledge.py,sha256=5ePqvzjBHNtQ64Dzt39wBWedYVeQJc2
15
15
  davidkhala/ai/agent/dify/ops/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
16
16
  davidkhala/ai/agent/dify/ops/console/__init__.py,sha256=-a81jgCJ3s2B3i1GQ7ge1aZRfbvlALwGDHVu_GEET-A,237
17
17
  davidkhala/ai/agent/dify/ops/console/knowledge.py,sha256=I1v0iE_b4VPc2Zsyt4ci_oX080Qbgn3oXObP4uVEphg,5788
18
- davidkhala/ai/agent/dify/ops/console/session.py,sha256=Kt8vzZJUlyqD8G8_OsrOD-WQwyDor8tqNwV0jJ738wE,902
18
+ davidkhala/ai/agent/dify/ops/console/plugin.py,sha256=iJxC0xLBgSIbiumcYc35mKVMuxG6t5gsNUFOtk52ilY,2356
19
+ davidkhala/ai/agent/dify/ops/console/session.py,sha256=9IIdQqtTuYrc7QI9XpZxrCMb-K3m6QWH5FlsckSGCgg,991
19
20
  davidkhala/ai/agent/dify/ops/db/__init__.py,sha256=HYfJEnoFAoJJck2xvTDYx8zpw9Qao7sHXOGvW0diPqw,517
20
21
  davidkhala/ai/agent/dify/ops/db/app.py,sha256=IRiSiR0v387p4p3J7M9xEkJ7pfQyO5DL6chpx7Z2IzA,1319
21
22
  davidkhala/ai/agent/dify/ops/db/knowledge.py,sha256=GVaK5QmU_VxB8fDxV60uiYiIeR3JEn3IXJTlJHLiT5U,2917
@@ -25,6 +26,7 @@ davidkhala/ai/agent/dify/plugins/__init__.py,sha256=iTWvutlkN9bXgptesi05M447nTeF
25
26
  davidkhala/ai/agent/dify/plugins/file.py,sha256=o-HjHSFwRTNIYs8IxqZUSnBbh-xr8f-xMUM3iU9wCCQ,390
26
27
  davidkhala/ai/agent/dify/plugins/firecrawl.py,sha256=lB_f8W_bdg-7PeBKmF0-HdwYyakV_0D3nET5iT-Z1KM,460
27
28
  davidkhala/ai/agent/dify/plugins/jina.py,sha256=dQ5iJxDLWtChXb1IjCtsHctgUtgjOiDfWOuR2u0aUIM,190
29
+ davidkhala/ai/agent/dify/plugins/popular.py,sha256=QseXF_R7-6jFmHmuXgScoCjhrOS_xiC0DTqW8oOoMGM,731
28
30
  davidkhala/ai/ali/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
31
  davidkhala/ai/ali/agentbay.py,sha256=O5t71GGwtDgBE1zUXJDYe5djMVwSaNOwn5k8zg1xa18,1200
30
32
  davidkhala/ai/ali/dashscope.py,sha256=SZIzRhVHlLx3s5I2RNUh2-u8OoSdrbvoN5e1k8Mh8N0,1943
@@ -41,6 +43,6 @@ davidkhala/ai/openai/__init__.py,sha256=GXzWaw2ER3YFGHG6TPD9SmAHV6Tpsnqxj6tXlaWs
41
43
  davidkhala/ai/openai/azure.py,sha256=WmWSz9pKlUrQLSH25m1jE1l-mNWw9QQARj8uliOv8VU,1138
42
44
  davidkhala/ai/openai/native.py,sha256=MB0nDnzCOj_M42RMhdK3HTMVnxGnwpLT2GeLwSrepwI,704
43
45
  davidkhala/ai/openrouter/__init__.py,sha256=P8UvolZihN_CVBQ7BT1Fb6mSMFEQLyLY9G5bBDZhC0o,1037
44
- davidkhala_ai-0.1.9.dist-info/METADATA,sha256=d1eUCeXWEewssHevligqENx8Thz7rd_2wVhcdvAmjKQ,1607
45
- davidkhala_ai-0.1.9.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
46
- davidkhala_ai-0.1.9.dist-info/RECORD,,
46
+ davidkhala_ai-0.2.0.dist-info/METADATA,sha256=jWA9caQqfyxxVWCj8i9nAw8Ni4Fkf7-kKjjDZvjr0r4,1607
47
+ davidkhala_ai-0.2.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
48
+ davidkhala_ai-0.2.0.dist-info/RECORD,,