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.
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/PKG-INFO +1 -1
- davidkhala_ai-0.2.0/davidkhala/ai/agent/dify/ops/console/plugin.py +68 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/console/session.py +3 -1
- davidkhala_ai-0.2.0/davidkhala/ai/agent/dify/plugins/popular.py +36 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/pyproject.toml +1 -1
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/.gitignore +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/README.md +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/__init__.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/README.md +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/__init__.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/__init__.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/api/__init__.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/api/app.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/api/knowledge.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/const.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/interface.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/model.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/__init__.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/console/__init__.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/console/knowledge.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/db/__init__.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/db/app.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/db/knowledge.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/db/orm.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/db/sys.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/plugins/__init__.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/plugins/file.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/plugins/firecrawl.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/plugins/jina.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/langgraph.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/ragflow.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/ali/__init__.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/ali/agentbay.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/ali/dashscope.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/api/__init__.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/api/openrouter.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/api/siliconflow.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/google/__init__.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/google/adk.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/google/gemini.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/huggingface/BAAI.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/huggingface/__init__.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/huggingface/inference.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/model.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/openai/__init__.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/openai/azure.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/openai/native.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/openrouter/__init__.py +0 -0
- {davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/opik.py +0 -0
|
@@ -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
|
+
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/console/__init__.py
RENAMED
|
File without changes
|
{davidkhala_ai-0.1.9 → davidkhala_ai-0.2.0}/davidkhala/ai/agent/dify/ops/console/knowledge.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|