davidkhala.ai 0.1.9__tar.gz → 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/PKG-INFO +1 -1
  2. davidkhala_ai-0.2.0/davidkhala/ai/agent/dify/ops/console/plugin.py +68 -0
  3. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/console/session.py +3 -1
  4. davidkhala_ai-0.2.0/davidkhala/ai/agent/dify/plugins/popular.py +36 -0
  5. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/pyproject.toml +1 -1
  6. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/.gitignore +0 -0
  7. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/README.md +0 -0
  8. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/__init__.py +0 -0
  9. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/README.md +0 -0
  10. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/__init__.py +0 -0
  11. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/__init__.py +0 -0
  12. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/api/__init__.py +0 -0
  13. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/api/app.py +0 -0
  14. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/api/knowledge.py +0 -0
  15. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/const.py +0 -0
  16. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/interface.py +0 -0
  17. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/model.py +0 -0
  18. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/__init__.py +0 -0
  19. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/console/__init__.py +0 -0
  20. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/console/knowledge.py +0 -0
  21. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/db/__init__.py +0 -0
  22. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/db/app.py +0 -0
  23. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/db/knowledge.py +0 -0
  24. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/db/orm.py +0 -0
  25. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/db/sys.py +0 -0
  26. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/plugins/__init__.py +0 -0
  27. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/plugins/file.py +0 -0
  28. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/plugins/firecrawl.py +0 -0
  29. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/plugins/jina.py +0 -0
  30. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/langgraph.py +0 -0
  31. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/ragflow.py +0 -0
  32. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/ali/__init__.py +0 -0
  33. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/ali/agentbay.py +0 -0
  34. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/ali/dashscope.py +0 -0
  35. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/api/__init__.py +0 -0
  36. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/api/openrouter.py +0 -0
  37. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/api/siliconflow.py +0 -0
  38. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/google/__init__.py +0 -0
  39. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/google/adk.py +0 -0
  40. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/google/gemini.py +0 -0
  41. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/huggingface/BAAI.py +0 -0
  42. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/huggingface/__init__.py +0 -0
  43. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/huggingface/inference.py +0 -0
  44. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/model.py +0 -0
  45. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/openai/__init__.py +0 -0
  46. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/openai/azure.py +0 -0
  47. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/openai/native.py +0 -0
  48. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/openrouter/__init__.py +0 -0
  49. {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/opik.py +0 -0
@@ -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
@@ -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
  [project]
2
2
  name = "davidkhala.ai"
3
- version = "0.1.9"
3
+ version = "0.2.0"
4
4
  description = "misc AI modules"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
File without changes
File without changes