licos-platform-cli 0.4.3__tar.gz → 0.4.4__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.
Potentially problematic release.
This version of licos-platform-cli might be problematic. Click here for more details.
- {licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/.gitignore +63 -57
- {licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/PKG-INFO +2 -2
- {licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/pyproject.toml +2 -2
- {licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/help_commands.py +6 -0
- {licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/knowledge_commands.py +193 -193
- {licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/uns_commands.py +57 -0
- {licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/tests/test_cli.py +38 -2
- {licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/__init__.py +0 -0
- {licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/database_commands.py +0 -0
- {licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/industrial_commands.py +0 -0
- {licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/main.py +0 -0
- {licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/oauth_commands.py +0 -0
- {licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/project_config_commands.py +0 -0
- {licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/storage_commands.py +0 -0
- {licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/tests/test_project_config.py +0 -0
|
@@ -1,57 +1,63 @@
|
|
|
1
|
-
# Rust
|
|
2
|
-
/target/
|
|
3
|
-
**/*.rs.bk
|
|
4
|
-
Cargo.lock
|
|
5
|
-
|
|
6
|
-
# Node
|
|
7
|
-
node_modules/
|
|
8
|
-
packages/*/dist/
|
|
9
|
-
|
|
10
|
-
# IDE
|
|
11
|
-
.idea/
|
|
12
|
-
.vscode/
|
|
13
|
-
*.swp
|
|
14
|
-
*.swo
|
|
15
|
-
*.pyc
|
|
16
|
-
|
|
17
|
-
# OS
|
|
18
|
-
.DS_Store
|
|
19
|
-
Thumbs.db
|
|
20
|
-
|
|
21
|
-
# Environment
|
|
22
|
-
.env
|
|
23
|
-
.env.local
|
|
24
|
-
crates/industrial/industrial-stack.env
|
|
25
|
-
|
|
26
|
-
# Workspace
|
|
27
|
-
/workspace/
|
|
28
|
-
|
|
29
|
-
# Test runtime data
|
|
30
|
-
/test/licos-data/
|
|
31
|
-
/test/screenshots/
|
|
32
|
-
/test/vue-app/
|
|
33
|
-
|
|
34
|
-
# Build
|
|
35
|
-
*.log
|
|
36
|
-
*.pid
|
|
37
|
-
.licos
|
|
38
|
-
.tmp
|
|
39
|
-
.playwright-cli
|
|
40
|
-
|
|
41
|
-
/tmp
|
|
42
|
-
crates/industrial/bin/
|
|
43
|
-
|
|
44
|
-
tools/android-sdk-cache/*.zip
|
|
45
|
-
tools/codegraph-cache/*.tgz
|
|
46
|
-
tools/codegraph-cache/*.tgz
|
|
47
|
-
|
|
48
|
-
*.codex-*
|
|
49
|
-
|
|
50
|
-
__pycache__
|
|
51
|
-
|
|
52
|
-
dist
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
1
|
+
# Rust
|
|
2
|
+
/target/
|
|
3
|
+
**/*.rs.bk
|
|
4
|
+
Cargo.lock
|
|
5
|
+
|
|
6
|
+
# Node
|
|
7
|
+
node_modules/
|
|
8
|
+
packages/*/dist/
|
|
9
|
+
|
|
10
|
+
# IDE
|
|
11
|
+
.idea/
|
|
12
|
+
.vscode/
|
|
13
|
+
*.swp
|
|
14
|
+
*.swo
|
|
15
|
+
*.pyc
|
|
16
|
+
|
|
17
|
+
# OS
|
|
18
|
+
.DS_Store
|
|
19
|
+
Thumbs.db
|
|
20
|
+
|
|
21
|
+
# Environment
|
|
22
|
+
.env
|
|
23
|
+
.env.local
|
|
24
|
+
crates/industrial/industrial-stack.env
|
|
25
|
+
|
|
26
|
+
# Workspace
|
|
27
|
+
/workspace/
|
|
28
|
+
|
|
29
|
+
# Test runtime data
|
|
30
|
+
/test/licos-data/
|
|
31
|
+
/test/screenshots/
|
|
32
|
+
/test/vue-app/
|
|
33
|
+
|
|
34
|
+
# Build
|
|
35
|
+
*.log
|
|
36
|
+
*.pid
|
|
37
|
+
.licos
|
|
38
|
+
.tmp
|
|
39
|
+
.playwright-cli
|
|
40
|
+
|
|
41
|
+
/tmp
|
|
42
|
+
crates/industrial/bin/
|
|
43
|
+
|
|
44
|
+
tools/android-sdk-cache/*.zip
|
|
45
|
+
tools/codegraph-cache/*.tgz
|
|
46
|
+
tools/codegraph-cache/*.tgz
|
|
47
|
+
|
|
48
|
+
*.codex-*
|
|
49
|
+
|
|
50
|
+
__pycache__
|
|
51
|
+
|
|
52
|
+
dist
|
|
53
|
+
!tools/licos-chat-sdk/dist/
|
|
54
|
+
!tools/licos-chat-sdk/dist/**
|
|
55
|
+
!tools/licos-api-sdk/dist/
|
|
56
|
+
!tools/licos-api-sdk/dist/**
|
|
57
|
+
tools/licos-chat-sdk/node_modules/
|
|
58
|
+
tools/licos-api-sdk/node_modules/
|
|
59
|
+
logs
|
|
60
|
+
|
|
61
|
+
source
|
|
62
|
+
|
|
63
|
+
平台API
|
|
@@ -4,11 +4,11 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "licos-platform-cli"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.4"
|
|
8
8
|
description = "LICOS platform CLI"
|
|
9
9
|
requires-python = ">=3.10"
|
|
10
10
|
dependencies = [
|
|
11
|
-
"licos-platform-sdk>=0.5.
|
|
11
|
+
"licos-platform-sdk>=0.5.2",
|
|
12
12
|
]
|
|
13
13
|
|
|
14
14
|
[project.scripts]
|
{licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/help_commands.py
RENAMED
|
@@ -833,16 +833,22 @@ UNS_HELP = {
|
|
|
833
833
|
"operations": {"description": "List all operations and errors for a provisioning job.", "parameters": [{"name": "job_id", "required": True, "description": "Provisioning job ID."}], "example": "licos-platform uns operations <jobId>"},
|
|
834
834
|
"wait": {"description": "Wait for a provisioning job terminal status.", "parameters": [{"name": "job_id", "required": True, "description": "Provisioning job ID."}, {"name": "--timeout", "required": False, "description": "Maximum seconds, default 600."}, {"name": "--interval", "required": False, "description": "Poll interval seconds, default 1.5."}], "example": "licos-platform uns wait <jobId>"},
|
|
835
835
|
"nodes": {"description": "List the tenant UNS directory tree.", "parameters": [], "example": "licos-platform uns nodes"},
|
|
836
|
+
"node-get": {"description": "Get one UNS node by its exact ID.", "parameters": [{"name": "node_id", "type": "string", "required": True, "description": "UNS node ID."}], "example": "licos-platform uns node-get <nodeId>"},
|
|
837
|
+
"node-children": {"description": "List direct or recursive children of one UNS directory.", "parameters": [{"name": "node_id", "type": "string", "required": True, "description": "Parent UNS node ID."}, {"name": "--recursive", "type": "flag", "required": False, "description": "Include all descendants instead of direct children only."}, {"name": "--kind", "type": "enum", "required": False, "values": ["FOLDER", "FILE"], "description": "Optionally return only folders or files."}], "example": "licos-platform uns node-children <nodeId> --recursive --kind FILE"},
|
|
836
838
|
"node-create": {"description": "Create one directory or file node.", "parameters": [{"name": "--json", "required": True, "description": "Node request JSON object."}], "example": "licos-platform uns node-create --json <node-json>"},
|
|
837
839
|
"node-batch-create": {"description": "Batch create directory/file nodes.", "parameters": [{"name": "--file", "required": True, "description": "JSON array or {nodes:[...]} file."}], "example": "licos-platform uns node-batch-create --file nodes.json"},
|
|
838
840
|
"node-copy": {"description": "Copy one node under an optional target directory.", "parameters": [{"name": "node_id", "required": True, "description": "Source node ID."}, {"name": "--parent-id", "required": False, "description": "Target parent node ID; omit for root."}], "example": "licos-platform uns node-copy <nodeId> --parent-id <parentId>"},
|
|
839
841
|
"node-update": {"description": "Update one node with a structured request.", "parameters": [{"name": "node_id", "required": True, "description": "Node ID."}, {"name": "--json", "required": True, "description": "Node update JSON object."}], "example": "licos-platform uns node-update <nodeId> --json <node-json>"},
|
|
840
842
|
"node-delete": {"description": "Delete one node after explicit confirmation.", "parameters": [{"name": "node_id", "required": True, "description": "Node ID."}, {"name": "--confirm", "required": True, "description": "Confirm deletion."}], "example": "licos-platform uns node-delete <nodeId> --confirm"},
|
|
841
843
|
"templates": {"description": "List UNS templates.", "parameters": [], "example": "licos-platform uns templates"},
|
|
844
|
+
"template-get": {"description": "Get one UNS template by its exact ID.", "parameters": [{"name": "template_id", "type": "string", "required": True, "description": "UNS template ID."}], "example": "licos-platform uns template-get <templateId>"},
|
|
845
|
+
"template-nodes": {"description": "List UNS nodes that use one template.", "parameters": [{"name": "template_id", "type": "string", "required": True, "description": "UNS template ID."}], "example": "licos-platform uns template-nodes <templateId>"},
|
|
842
846
|
"template-create": {"description": "Create an UNS template.", "parameters": [{"name": "--json", "required": True, "description": "Template JSON object."}], "example": "licos-platform uns template-create --json '{...}'"},
|
|
843
847
|
"template-update": {"description": "Update an UNS template.", "parameters": [{"name": "template_id", "required": True, "description": "Template ID."}, {"name": "--json", "required": True, "description": "Template JSON object."}], "example": "licos-platform uns template-update <id> --json '{...}'"},
|
|
844
848
|
"template-delete": {"description": "Delete an UNS template after confirmation.", "parameters": [{"name": "template_id", "required": True, "description": "Template ID."}, {"name": "--confirm", "required": True, "description": "Confirm deletion."}], "example": "licos-platform uns template-delete <id> --confirm"},
|
|
845
849
|
"labels": {"description": "List UNS labels.", "parameters": [], "example": "licos-platform uns labels"},
|
|
850
|
+
"label-get": {"description": "Get one UNS label by its exact ID.", "parameters": [{"name": "label_id", "type": "string", "required": True, "description": "UNS label ID."}], "example": "licos-platform uns label-get <labelId>"},
|
|
851
|
+
"label-node-list": {"description": "List UNS nodes assigned to one label.", "parameters": [{"name": "label_id", "type": "string", "required": True, "description": "UNS label ID."}], "example": "licos-platform uns label-node-list <labelId>"},
|
|
846
852
|
"label-create": {"description": "Create an UNS label.", "parameters": [{"name": "--json", "required": True, "description": "Label JSON object."}], "example": "licos-platform uns label-create --json '{...}'"},
|
|
847
853
|
"label-update": {"description": "Update an UNS label.", "parameters": [{"name": "label_id", "required": True, "description": "Label ID."}, {"name": "--json", "required": True, "description": "Label JSON object."}], "example": "licos-platform uns label-update <id> --json '{...}'"},
|
|
848
854
|
"label-nodes": {"description": "Replace all nodes assigned to one label.", "parameters": [{"name": "label_id", "required": True, "description": "Label ID."}, {"name": "--node-ids-json", "required": True, "description": "JSON string array of node IDs."}], "example": "licos-platform uns label-nodes <id> --node-ids-json <node-id-array>"},
|
{licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/knowledge_commands.py
RENAMED
|
@@ -1,123 +1,123 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
3
|
import argparse
|
|
4
4
|
import json
|
|
5
5
|
from typing import Any, Callable
|
|
6
6
|
|
|
7
7
|
from licos_platform_sdk import enterprise_knowledge, knowledge
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
Handler = Callable[[argparse.Namespace], Any]
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
def _set_handler(parser: argparse.ArgumentParser, handler: Handler) -> None:
|
|
14
|
-
parser.set_defaults(handler=handler)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def _chunk_config(args: argparse.Namespace) -> knowledge.ChunkConfig | None:
|
|
18
|
-
if not any(
|
|
19
|
-
[
|
|
20
|
-
args.separator is not None,
|
|
21
|
-
args.max_tokens is not None,
|
|
22
|
-
args.remove_extra_spaces,
|
|
23
|
-
args.remove_urls_emails,
|
|
24
|
-
]
|
|
25
|
-
):
|
|
26
|
-
return None
|
|
27
|
-
return knowledge.ChunkConfig(
|
|
28
|
-
separator=args.separator or "\n",
|
|
29
|
-
max_tokens=args.max_tokens or 2000,
|
|
30
|
-
remove_extra_spaces=args.remove_extra_spaces,
|
|
31
|
-
remove_urls_emails=args.remove_urls_emails,
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
def _dataset_selector(args: argparse.Namespace) -> dict[str, str | None]:
|
|
36
|
-
return {"dataset_id": args.dataset_id, "dataset_name": args.dataset}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
def _cmd_runtime(_args: argparse.Namespace) -> Any:
|
|
40
|
-
return knowledge.runtime()
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
def _cmd_model_catalog(_args: argparse.Namespace) -> Any:
|
|
44
|
-
return knowledge.model_catalog()
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
def _cmd_datasets(args: argparse.Namespace) -> Any:
|
|
48
|
-
return knowledge.list_datasets(
|
|
49
|
-
name=args.name,
|
|
50
|
-
space_id=args.space_id,
|
|
51
|
-
page_size=args.page_size,
|
|
52
|
-
page_num=args.page_num,
|
|
53
|
-
format_type=args.format_type,
|
|
54
|
-
)
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
def _cmd_create_dataset(args: argparse.Namespace) -> Any:
|
|
58
|
-
return knowledge.create_dataset(
|
|
59
|
-
args.name,
|
|
60
|
-
description=args.description,
|
|
61
|
-
space_id=args.space_id,
|
|
62
|
-
format_type=args.format_type,
|
|
63
|
-
source_type=args.source_type,
|
|
64
|
-
engine_type=args.engine_type,
|
|
65
|
-
access_scope=args.access_scope,
|
|
66
|
-
)
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
def _cmd_ensure_dataset(args: argparse.Namespace) -> Any:
|
|
70
|
-
return knowledge.ensure_dataset(args.name, description=args.description, space_id=args.space_id)
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
def _cmd_get_dataset(args: argparse.Namespace) -> Any:
|
|
74
|
-
return knowledge.get_dataset(args.dataset_id)
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
def _cmd_delete_dataset(args: argparse.Namespace) -> Any:
|
|
78
|
-
return knowledge.delete_dataset(args.dataset_id)
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
def _cmd_add(args: argparse.Namespace) -> Any:
|
|
82
|
-
selector = _dataset_selector(args)
|
|
83
|
-
chunk_config = _chunk_config(args)
|
|
84
|
-
if args.content is not None:
|
|
85
|
-
return knowledge.add_text(args.content, name=args.name or "document.txt", chunk_config=chunk_config, **selector)
|
|
86
|
-
if args.url is not None:
|
|
87
|
-
return knowledge.add_url(args.url, name=args.name, chunk_config=chunk_config, **selector)
|
|
88
|
-
return knowledge.add_documents(
|
|
89
|
-
[
|
|
90
|
-
knowledge.KnowledgeDocument(
|
|
91
|
-
source=knowledge.DataSourceType.URI,
|
|
92
|
-
source_file_id=args.source_file_id,
|
|
93
|
-
name=args.name,
|
|
94
|
-
file_type=args.file_type,
|
|
95
|
-
)
|
|
96
|
-
],
|
|
97
|
-
chunk_config=chunk_config,
|
|
98
|
-
**selector,
|
|
99
|
-
)
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
def _cmd_search(args: argparse.Namespace) -> Any:
|
|
103
|
-
return knowledge.search(
|
|
104
|
-
args.query,
|
|
105
|
-
dataset_id=args.dataset_id,
|
|
106
|
-
dataset_ids=args.dataset_ids,
|
|
107
|
-
dataset_name=args.dataset,
|
|
108
|
-
dataset_names=args.datasets,
|
|
109
|
-
top_k=args.top_k,
|
|
110
|
-
min_score=args.min_score,
|
|
111
|
-
candidate_top_k=args.candidate_top_k,
|
|
112
|
-
search_method=args.search_method,
|
|
113
|
-
enable_rerank=args.enable_rerank,
|
|
114
|
-
)
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
def _cmd_documents(args: argparse.Namespace) -> Any:
|
|
118
|
-
return knowledge.list_documents(args.dataset_id, page=args.page, size=args.size)
|
|
119
|
-
|
|
120
|
-
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
Handler = Callable[[argparse.Namespace], Any]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def _set_handler(parser: argparse.ArgumentParser, handler: Handler) -> None:
|
|
14
|
+
parser.set_defaults(handler=handler)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def _chunk_config(args: argparse.Namespace) -> knowledge.ChunkConfig | None:
|
|
18
|
+
if not any(
|
|
19
|
+
[
|
|
20
|
+
args.separator is not None,
|
|
21
|
+
args.max_tokens is not None,
|
|
22
|
+
args.remove_extra_spaces,
|
|
23
|
+
args.remove_urls_emails,
|
|
24
|
+
]
|
|
25
|
+
):
|
|
26
|
+
return None
|
|
27
|
+
return knowledge.ChunkConfig(
|
|
28
|
+
separator=args.separator or "\n",
|
|
29
|
+
max_tokens=args.max_tokens or 2000,
|
|
30
|
+
remove_extra_spaces=args.remove_extra_spaces,
|
|
31
|
+
remove_urls_emails=args.remove_urls_emails,
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _dataset_selector(args: argparse.Namespace) -> dict[str, str | None]:
|
|
36
|
+
return {"dataset_id": args.dataset_id, "dataset_name": args.dataset}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def _cmd_runtime(_args: argparse.Namespace) -> Any:
|
|
40
|
+
return knowledge.runtime()
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def _cmd_model_catalog(_args: argparse.Namespace) -> Any:
|
|
44
|
+
return knowledge.model_catalog()
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _cmd_datasets(args: argparse.Namespace) -> Any:
|
|
48
|
+
return knowledge.list_datasets(
|
|
49
|
+
name=args.name,
|
|
50
|
+
space_id=args.space_id,
|
|
51
|
+
page_size=args.page_size,
|
|
52
|
+
page_num=args.page_num,
|
|
53
|
+
format_type=args.format_type,
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def _cmd_create_dataset(args: argparse.Namespace) -> Any:
|
|
58
|
+
return knowledge.create_dataset(
|
|
59
|
+
args.name,
|
|
60
|
+
description=args.description,
|
|
61
|
+
space_id=args.space_id,
|
|
62
|
+
format_type=args.format_type,
|
|
63
|
+
source_type=args.source_type,
|
|
64
|
+
engine_type=args.engine_type,
|
|
65
|
+
access_scope=args.access_scope,
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def _cmd_ensure_dataset(args: argparse.Namespace) -> Any:
|
|
70
|
+
return knowledge.ensure_dataset(args.name, description=args.description, space_id=args.space_id)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def _cmd_get_dataset(args: argparse.Namespace) -> Any:
|
|
74
|
+
return knowledge.get_dataset(args.dataset_id)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def _cmd_delete_dataset(args: argparse.Namespace) -> Any:
|
|
78
|
+
return knowledge.delete_dataset(args.dataset_id)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def _cmd_add(args: argparse.Namespace) -> Any:
|
|
82
|
+
selector = _dataset_selector(args)
|
|
83
|
+
chunk_config = _chunk_config(args)
|
|
84
|
+
if args.content is not None:
|
|
85
|
+
return knowledge.add_text(args.content, name=args.name or "document.txt", chunk_config=chunk_config, **selector)
|
|
86
|
+
if args.url is not None:
|
|
87
|
+
return knowledge.add_url(args.url, name=args.name, chunk_config=chunk_config, **selector)
|
|
88
|
+
return knowledge.add_documents(
|
|
89
|
+
[
|
|
90
|
+
knowledge.KnowledgeDocument(
|
|
91
|
+
source=knowledge.DataSourceType.URI,
|
|
92
|
+
source_file_id=args.source_file_id,
|
|
93
|
+
name=args.name,
|
|
94
|
+
file_type=args.file_type,
|
|
95
|
+
)
|
|
96
|
+
],
|
|
97
|
+
chunk_config=chunk_config,
|
|
98
|
+
**selector,
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def _cmd_search(args: argparse.Namespace) -> Any:
|
|
103
|
+
return knowledge.search(
|
|
104
|
+
args.query,
|
|
105
|
+
dataset_id=args.dataset_id,
|
|
106
|
+
dataset_ids=args.dataset_ids,
|
|
107
|
+
dataset_name=args.dataset,
|
|
108
|
+
dataset_names=args.datasets,
|
|
109
|
+
top_k=args.top_k,
|
|
110
|
+
min_score=args.min_score,
|
|
111
|
+
candidate_top_k=args.candidate_top_k,
|
|
112
|
+
search_method=args.search_method,
|
|
113
|
+
enable_rerank=args.enable_rerank,
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def _cmd_documents(args: argparse.Namespace) -> Any:
|
|
118
|
+
return knowledge.list_documents(args.dataset_id, page=args.page, size=args.size)
|
|
119
|
+
|
|
120
|
+
|
|
121
121
|
def _cmd_delete_documents(args: argparse.Namespace) -> Any:
|
|
122
122
|
return knowledge.delete_documents(args.dataset_id, args.document_id)
|
|
123
123
|
|
|
@@ -345,17 +345,17 @@ def _cmd_enterprise_delete_object(args: argparse.Namespace) -> Any:
|
|
|
345
345
|
def _cmd_enterprise_object_task(args: argparse.Namespace) -> Any:
|
|
346
346
|
return enterprise_knowledge.get_object_upload_task(args.task_id)
|
|
347
347
|
|
|
348
|
-
|
|
349
|
-
def _add_dataset_selector(parser: argparse.ArgumentParser) -> None:
|
|
350
|
-
dataset = parser.add_mutually_exclusive_group(required=True)
|
|
351
|
-
dataset.add_argument("--dataset-id", default=None, help="Knowledge dataset ID")
|
|
352
|
-
dataset.add_argument("--dataset", default=None, help="Knowledge dataset name")
|
|
353
|
-
|
|
354
|
-
|
|
348
|
+
|
|
349
|
+
def _add_dataset_selector(parser: argparse.ArgumentParser) -> None:
|
|
350
|
+
dataset = parser.add_mutually_exclusive_group(required=True)
|
|
351
|
+
dataset.add_argument("--dataset-id", default=None, help="Knowledge dataset ID")
|
|
352
|
+
dataset.add_argument("--dataset", default=None, help="Knowledge dataset name")
|
|
353
|
+
|
|
354
|
+
|
|
355
355
|
def _add_chunk_args(parser: argparse.ArgumentParser) -> None:
|
|
356
|
-
parser.add_argument("--separator", default=None, help="Chunk separator, default newline")
|
|
357
|
-
parser.add_argument("--max-tokens", type=int, default=None, help="Max tokens per chunk, default 2000")
|
|
358
|
-
parser.add_argument("--remove-extra-spaces", action="store_true")
|
|
356
|
+
parser.add_argument("--separator", default=None, help="Chunk separator, default newline")
|
|
357
|
+
parser.add_argument("--max-tokens", type=int, default=None, help="Max tokens per chunk, default 2000")
|
|
358
|
+
parser.add_argument("--remove-extra-spaces", action="store_true")
|
|
359
359
|
parser.add_argument("--remove-urls-emails", action="store_true")
|
|
360
360
|
|
|
361
361
|
|
|
@@ -576,74 +576,74 @@ def _add_enterprise_parser(
|
|
|
576
576
|
|
|
577
577
|
|
|
578
578
|
def add_knowledge_parser(subparsers: argparse._SubParsersAction[argparse.ArgumentParser]) -> None:
|
|
579
|
-
knowledge_parser = subparsers.add_parser("knowledge", help="Call LICOS Knowledge APIs")
|
|
580
|
-
knowledge_subparsers = knowledge_parser.add_subparsers(dest="knowledge_command", required=True)
|
|
581
|
-
|
|
582
|
-
_set_handler(knowledge_subparsers.add_parser("runtime", help="Show knowledge runtime status"), _cmd_runtime)
|
|
583
|
-
_set_handler(knowledge_subparsers.add_parser("model-catalog", help="Show knowledge model catalog"), _cmd_model_catalog)
|
|
584
|
-
|
|
585
|
-
datasets = knowledge_subparsers.add_parser("datasets", help="List knowledge datasets")
|
|
586
|
-
datasets.add_argument("--name", default=None, help="Filter by dataset name")
|
|
587
|
-
datasets.add_argument("--space-id", default=None)
|
|
588
|
-
datasets.add_argument("--format-type", type=int, default=None)
|
|
589
|
-
datasets.add_argument("--page-size", type=int, default=None)
|
|
590
|
-
datasets.add_argument("--page-num", type=int, default=None)
|
|
591
|
-
_set_handler(datasets, _cmd_datasets)
|
|
592
|
-
|
|
593
|
-
create_dataset = knowledge_subparsers.add_parser("create-dataset", help="Create a knowledge dataset")
|
|
594
|
-
create_dataset.add_argument("name")
|
|
595
|
-
create_dataset.add_argument("--description", default=None)
|
|
596
|
-
create_dataset.add_argument("--space-id", default=None)
|
|
597
|
-
create_dataset.add_argument("--format-type", type=int, default=None)
|
|
598
|
-
create_dataset.add_argument("--source-type", default=None)
|
|
599
|
-
create_dataset.add_argument("--engine-type", default=None)
|
|
600
|
-
create_dataset.add_argument("--access-scope", default=None)
|
|
601
|
-
_set_handler(create_dataset, _cmd_create_dataset)
|
|
602
|
-
|
|
603
|
-
ensure_dataset = knowledge_subparsers.add_parser("ensure-dataset", help="Find a dataset by name or create it")
|
|
604
|
-
ensure_dataset.add_argument("name")
|
|
605
|
-
ensure_dataset.add_argument("--description", default=None)
|
|
606
|
-
ensure_dataset.add_argument("--space-id", default=None)
|
|
607
|
-
_set_handler(ensure_dataset, _cmd_ensure_dataset)
|
|
608
|
-
|
|
609
|
-
get_dataset = knowledge_subparsers.add_parser("get-dataset", help="Get one knowledge dataset")
|
|
610
|
-
get_dataset.add_argument("dataset_id")
|
|
611
|
-
_set_handler(get_dataset, _cmd_get_dataset)
|
|
612
|
-
|
|
613
|
-
delete_dataset = knowledge_subparsers.add_parser("delete-dataset", help="Delete one knowledge dataset")
|
|
614
|
-
delete_dataset.add_argument("dataset_id")
|
|
615
|
-
_set_handler(delete_dataset, _cmd_delete_dataset)
|
|
616
|
-
|
|
617
|
-
add = knowledge_subparsers.add_parser("add", help="Import text, URL, or object-storage file into a dataset")
|
|
618
|
-
_add_dataset_selector(add)
|
|
619
|
-
source = add.add_mutually_exclusive_group(required=True)
|
|
620
|
-
source.add_argument("--content", default=None, help="Raw text content to import")
|
|
621
|
-
source.add_argument("--url", default=None, help="Web URL to import")
|
|
622
|
-
source.add_argument("--source-file-id", default=None, help="Object storage file ID or URI to import")
|
|
623
|
-
add.add_argument("--name", default=None, help="Document display name")
|
|
624
|
-
add.add_argument("--file-type", default=None, help="File type for source-file-id import")
|
|
625
|
-
_add_chunk_args(add)
|
|
626
|
-
_set_handler(add, _cmd_add)
|
|
627
|
-
|
|
628
|
-
search = knowledge_subparsers.add_parser("search", help="Search knowledge datasets semantically")
|
|
629
|
-
search.add_argument("--query", "-q", required=True)
|
|
630
|
-
search.add_argument("--dataset-id", action="append", dest="dataset_ids", default=None, help="Dataset ID; can repeat")
|
|
631
|
-
search.add_argument("--dataset", action="append", dest="datasets", default=None, help="Dataset name; can repeat")
|
|
632
|
-
search.add_argument("--top-k", type=int, default=5)
|
|
633
|
-
search.add_argument("--min-score", type=float, default=0.0)
|
|
634
|
-
search.add_argument("--candidate-top-k", type=int, default=None)
|
|
635
|
-
search.add_argument("--search-method", default=None)
|
|
636
|
-
search.add_argument("--enable-rerank", action="store_true", default=None)
|
|
637
|
-
search.set_defaults(dataset_id=None, dataset=None)
|
|
638
|
-
_set_handler(search, _cmd_search)
|
|
639
|
-
|
|
640
|
-
documents = knowledge_subparsers.add_parser("documents", help="List documents in a dataset")
|
|
641
|
-
documents.add_argument("dataset_id")
|
|
642
|
-
documents.add_argument("--page", type=int, default=None)
|
|
643
|
-
documents.add_argument("--size", type=int, default=None)
|
|
644
|
-
_set_handler(documents, _cmd_documents)
|
|
645
|
-
|
|
646
|
-
delete_documents = knowledge_subparsers.add_parser("delete-documents", help="Delete documents from a dataset")
|
|
579
|
+
knowledge_parser = subparsers.add_parser("knowledge", help="Call LICOS Knowledge APIs")
|
|
580
|
+
knowledge_subparsers = knowledge_parser.add_subparsers(dest="knowledge_command", required=True)
|
|
581
|
+
|
|
582
|
+
_set_handler(knowledge_subparsers.add_parser("runtime", help="Show knowledge runtime status"), _cmd_runtime)
|
|
583
|
+
_set_handler(knowledge_subparsers.add_parser("model-catalog", help="Show knowledge model catalog"), _cmd_model_catalog)
|
|
584
|
+
|
|
585
|
+
datasets = knowledge_subparsers.add_parser("datasets", help="List knowledge datasets")
|
|
586
|
+
datasets.add_argument("--name", default=None, help="Filter by dataset name")
|
|
587
|
+
datasets.add_argument("--space-id", default=None)
|
|
588
|
+
datasets.add_argument("--format-type", type=int, default=None)
|
|
589
|
+
datasets.add_argument("--page-size", type=int, default=None)
|
|
590
|
+
datasets.add_argument("--page-num", type=int, default=None)
|
|
591
|
+
_set_handler(datasets, _cmd_datasets)
|
|
592
|
+
|
|
593
|
+
create_dataset = knowledge_subparsers.add_parser("create-dataset", help="Create a knowledge dataset")
|
|
594
|
+
create_dataset.add_argument("name")
|
|
595
|
+
create_dataset.add_argument("--description", default=None)
|
|
596
|
+
create_dataset.add_argument("--space-id", default=None)
|
|
597
|
+
create_dataset.add_argument("--format-type", type=int, default=None)
|
|
598
|
+
create_dataset.add_argument("--source-type", default=None)
|
|
599
|
+
create_dataset.add_argument("--engine-type", default=None)
|
|
600
|
+
create_dataset.add_argument("--access-scope", default=None)
|
|
601
|
+
_set_handler(create_dataset, _cmd_create_dataset)
|
|
602
|
+
|
|
603
|
+
ensure_dataset = knowledge_subparsers.add_parser("ensure-dataset", help="Find a dataset by name or create it")
|
|
604
|
+
ensure_dataset.add_argument("name")
|
|
605
|
+
ensure_dataset.add_argument("--description", default=None)
|
|
606
|
+
ensure_dataset.add_argument("--space-id", default=None)
|
|
607
|
+
_set_handler(ensure_dataset, _cmd_ensure_dataset)
|
|
608
|
+
|
|
609
|
+
get_dataset = knowledge_subparsers.add_parser("get-dataset", help="Get one knowledge dataset")
|
|
610
|
+
get_dataset.add_argument("dataset_id")
|
|
611
|
+
_set_handler(get_dataset, _cmd_get_dataset)
|
|
612
|
+
|
|
613
|
+
delete_dataset = knowledge_subparsers.add_parser("delete-dataset", help="Delete one knowledge dataset")
|
|
614
|
+
delete_dataset.add_argument("dataset_id")
|
|
615
|
+
_set_handler(delete_dataset, _cmd_delete_dataset)
|
|
616
|
+
|
|
617
|
+
add = knowledge_subparsers.add_parser("add", help="Import text, URL, or object-storage file into a dataset")
|
|
618
|
+
_add_dataset_selector(add)
|
|
619
|
+
source = add.add_mutually_exclusive_group(required=True)
|
|
620
|
+
source.add_argument("--content", default=None, help="Raw text content to import")
|
|
621
|
+
source.add_argument("--url", default=None, help="Web URL to import")
|
|
622
|
+
source.add_argument("--source-file-id", default=None, help="Object storage file ID or URI to import")
|
|
623
|
+
add.add_argument("--name", default=None, help="Document display name")
|
|
624
|
+
add.add_argument("--file-type", default=None, help="File type for source-file-id import")
|
|
625
|
+
_add_chunk_args(add)
|
|
626
|
+
_set_handler(add, _cmd_add)
|
|
627
|
+
|
|
628
|
+
search = knowledge_subparsers.add_parser("search", help="Search knowledge datasets semantically")
|
|
629
|
+
search.add_argument("--query", "-q", required=True)
|
|
630
|
+
search.add_argument("--dataset-id", action="append", dest="dataset_ids", default=None, help="Dataset ID; can repeat")
|
|
631
|
+
search.add_argument("--dataset", action="append", dest="datasets", default=None, help="Dataset name; can repeat")
|
|
632
|
+
search.add_argument("--top-k", type=int, default=5)
|
|
633
|
+
search.add_argument("--min-score", type=float, default=0.0)
|
|
634
|
+
search.add_argument("--candidate-top-k", type=int, default=None)
|
|
635
|
+
search.add_argument("--search-method", default=None)
|
|
636
|
+
search.add_argument("--enable-rerank", action="store_true", default=None)
|
|
637
|
+
search.set_defaults(dataset_id=None, dataset=None)
|
|
638
|
+
_set_handler(search, _cmd_search)
|
|
639
|
+
|
|
640
|
+
documents = knowledge_subparsers.add_parser("documents", help="List documents in a dataset")
|
|
641
|
+
documents.add_argument("dataset_id")
|
|
642
|
+
documents.add_argument("--page", type=int, default=None)
|
|
643
|
+
documents.add_argument("--size", type=int, default=None)
|
|
644
|
+
_set_handler(documents, _cmd_documents)
|
|
645
|
+
|
|
646
|
+
delete_documents = knowledge_subparsers.add_parser("delete-documents", help="Delete documents from a dataset")
|
|
647
647
|
delete_documents.add_argument("dataset_id")
|
|
648
648
|
delete_documents.add_argument("document_id", nargs="+")
|
|
649
649
|
_set_handler(delete_documents, _cmd_delete_documents)
|
{licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/uns_commands.py
RENAMED
|
@@ -84,6 +84,18 @@ def _cmd_nodes(_args: argparse.Namespace) -> Any:
|
|
|
84
84
|
return uns.list_nodes()
|
|
85
85
|
|
|
86
86
|
|
|
87
|
+
def _cmd_node_get(args: argparse.Namespace) -> Any:
|
|
88
|
+
return uns.get_node(args.node_id)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def _cmd_node_children(args: argparse.Namespace) -> Any:
|
|
92
|
+
return uns.list_children(
|
|
93
|
+
args.node_id,
|
|
94
|
+
recursive=args.recursive,
|
|
95
|
+
kind=args.kind,
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
|
|
87
99
|
def _cmd_node_create(args: argparse.Namespace) -> Any:
|
|
88
100
|
return uns.create_node(_object(args.json, "node"))
|
|
89
101
|
|
|
@@ -114,6 +126,14 @@ def _cmd_templates(_args: argparse.Namespace) -> Any:
|
|
|
114
126
|
return uns.list_templates()
|
|
115
127
|
|
|
116
128
|
|
|
129
|
+
def _cmd_template_get(args: argparse.Namespace) -> Any:
|
|
130
|
+
return uns.get_template(args.template_id)
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
def _cmd_template_nodes(args: argparse.Namespace) -> Any:
|
|
134
|
+
return uns.list_nodes_by_template(args.template_id)
|
|
135
|
+
|
|
136
|
+
|
|
117
137
|
def _cmd_template_create(args: argparse.Namespace) -> Any:
|
|
118
138
|
return uns.create_template(_object(args.json, "template"))
|
|
119
139
|
|
|
@@ -132,6 +152,14 @@ def _cmd_labels(_args: argparse.Namespace) -> Any:
|
|
|
132
152
|
return uns.list_labels()
|
|
133
153
|
|
|
134
154
|
|
|
155
|
+
def _cmd_label_get(args: argparse.Namespace) -> Any:
|
|
156
|
+
return uns.get_label(args.label_id)
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
def _cmd_label_node_list(args: argparse.Namespace) -> Any:
|
|
160
|
+
return uns.list_nodes_by_label(args.label_id)
|
|
161
|
+
|
|
162
|
+
|
|
135
163
|
def _cmd_label_create(args: argparse.Namespace) -> Any:
|
|
136
164
|
return uns.create_label(_object(args.json, "label"))
|
|
137
165
|
|
|
@@ -281,6 +309,17 @@ def add_uns_parser(subparsers: argparse._SubParsersAction[argparse.ArgumentParse
|
|
|
281
309
|
_set_handler(wait, _cmd_wait)
|
|
282
310
|
|
|
283
311
|
_set_handler(commands.add_parser("nodes", help="List tenant UNS nodes"), _cmd_nodes)
|
|
312
|
+
node_get = commands.add_parser("node-get", help="Get one UNS node by ID")
|
|
313
|
+
node_get.add_argument("node_id")
|
|
314
|
+
_set_handler(node_get, _cmd_node_get)
|
|
315
|
+
node_children = commands.add_parser(
|
|
316
|
+
"node-children",
|
|
317
|
+
help="List direct or recursive children of one UNS node",
|
|
318
|
+
)
|
|
319
|
+
node_children.add_argument("node_id")
|
|
320
|
+
node_children.add_argument("--recursive", action="store_true")
|
|
321
|
+
node_children.add_argument("--kind", choices=("FOLDER", "FILE"))
|
|
322
|
+
_set_handler(node_children, _cmd_node_children)
|
|
284
323
|
node_create = commands.add_parser("node-create", help="Create one UNS folder or file")
|
|
285
324
|
_add_json_argument(node_create, "node")
|
|
286
325
|
_set_handler(node_create, _cmd_node_create)
|
|
@@ -308,6 +347,15 @@ def add_uns_parser(subparsers: argparse._SubParsersAction[argparse.ArgumentParse
|
|
|
308
347
|
_cmd_template_update,
|
|
309
348
|
_cmd_template_delete,
|
|
310
349
|
)
|
|
350
|
+
template_get = commands.add_parser("template-get", help="Get one UNS template by ID")
|
|
351
|
+
template_get.add_argument("template_id")
|
|
352
|
+
_set_handler(template_get, _cmd_template_get)
|
|
353
|
+
template_nodes = commands.add_parser(
|
|
354
|
+
"template-nodes",
|
|
355
|
+
help="List UNS nodes using one template",
|
|
356
|
+
)
|
|
357
|
+
template_nodes.add_argument("template_id")
|
|
358
|
+
_set_handler(template_nodes, _cmd_template_nodes)
|
|
311
359
|
_add_resource_commands(
|
|
312
360
|
commands,
|
|
313
361
|
"label",
|
|
@@ -316,6 +364,15 @@ def add_uns_parser(subparsers: argparse._SubParsersAction[argparse.ArgumentParse
|
|
|
316
364
|
_cmd_label_update,
|
|
317
365
|
_cmd_label_delete,
|
|
318
366
|
)
|
|
367
|
+
label_get = commands.add_parser("label-get", help="Get one UNS label by ID")
|
|
368
|
+
label_get.add_argument("label_id")
|
|
369
|
+
_set_handler(label_get, _cmd_label_get)
|
|
370
|
+
label_node_list = commands.add_parser(
|
|
371
|
+
"label-node-list",
|
|
372
|
+
help="List UNS nodes assigned to one label",
|
|
373
|
+
)
|
|
374
|
+
label_node_list.add_argument("label_id")
|
|
375
|
+
_set_handler(label_node_list, _cmd_label_node_list)
|
|
319
376
|
label_nodes = commands.add_parser("label-nodes", help="Replace all nodes assigned to one label")
|
|
320
377
|
label_nodes.add_argument("label_id")
|
|
321
378
|
label_nodes.add_argument("--node-ids-json", required=True)
|
|
@@ -295,7 +295,7 @@ class PlatformCliTests(unittest.TestCase):
|
|
|
295
295
|
|
|
296
296
|
def test_uns_collectors_forwards_source_type_and_pagination(self) -> None:
|
|
297
297
|
with mock.patch.object(
|
|
298
|
-
uns_commands.uns, "list_collectors", return_value={"
|
|
298
|
+
uns_commands.uns, "list_collectors", return_value={"items": []}
|
|
299
299
|
) as collectors:
|
|
300
300
|
code, stdout, stderr = run_cli(
|
|
301
301
|
"uns",
|
|
@@ -310,13 +310,49 @@ class PlatformCliTests(unittest.TestCase):
|
|
|
310
310
|
|
|
311
311
|
self.assertEqual(code, 0)
|
|
312
312
|
self.assertEqual(stderr, "")
|
|
313
|
-
self.assertEqual(json.loads(stdout), {"
|
|
313
|
+
self.assertEqual(json.loads(stdout), {"items": []})
|
|
314
314
|
collectors.assert_called_once_with(
|
|
315
315
|
"IOT_POINT_COLLECTOR",
|
|
316
316
|
page=2,
|
|
317
317
|
page_size=50,
|
|
318
318
|
)
|
|
319
319
|
|
|
320
|
+
def test_uns_targeted_queries_forward_filters(self) -> None:
|
|
321
|
+
with mock.patch.object(
|
|
322
|
+
uns_commands.uns,
|
|
323
|
+
"list_children",
|
|
324
|
+
return_value=[{"id": "node-2"}],
|
|
325
|
+
) as children:
|
|
326
|
+
code, stdout, stderr = run_cli(
|
|
327
|
+
"uns",
|
|
328
|
+
"node-children",
|
|
329
|
+
"node-1",
|
|
330
|
+
"--recursive",
|
|
331
|
+
"--kind",
|
|
332
|
+
"FILE",
|
|
333
|
+
)
|
|
334
|
+
|
|
335
|
+
self.assertEqual(code, 0)
|
|
336
|
+
self.assertEqual(stderr, "")
|
|
337
|
+
self.assertEqual(json.loads(stdout), [{"id": "node-2"}])
|
|
338
|
+
children.assert_called_once_with("node-1", recursive=True, kind="FILE")
|
|
339
|
+
|
|
340
|
+
with mock.patch.object(
|
|
341
|
+
uns_commands.uns,
|
|
342
|
+
"list_nodes_by_template",
|
|
343
|
+
return_value=[{"id": "node-3"}],
|
|
344
|
+
) as template_nodes:
|
|
345
|
+
code, stdout, stderr = run_cli(
|
|
346
|
+
"uns",
|
|
347
|
+
"template-nodes",
|
|
348
|
+
"template-1",
|
|
349
|
+
)
|
|
350
|
+
|
|
351
|
+
self.assertEqual(code, 0)
|
|
352
|
+
self.assertEqual(stderr, "")
|
|
353
|
+
self.assertEqual(json.loads(stdout), [{"id": "node-3"}])
|
|
354
|
+
template_nodes.assert_called_once_with("template-1")
|
|
355
|
+
|
|
320
356
|
def test_storage_files_wraps_sdk_and_outputs_json(self) -> None:
|
|
321
357
|
with mock.patch.object(storage_commands.storage, "list_files", return_value=[{"id": "file-1"}]) as list_files:
|
|
322
358
|
code, stdout, stderr = run_cli("storage", "files")
|
|
File without changes
|
{licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/database_commands.py
RENAMED
|
File without changes
|
{licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/industrial_commands.py
RENAMED
|
File without changes
|
|
File without changes
|
{licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/oauth_commands.py
RENAMED
|
File without changes
|
|
File without changes
|
{licos_platform_cli-0.4.3 → licos_platform_cli-0.4.4}/src/licos_platform_cli/storage_commands.py
RENAMED
|
File without changes
|
|
File without changes
|