Skip to content

Commit 1b58676

Browse files
committed
Stuff
1 parent 296a295 commit 1b58676

6 files changed

Lines changed: 74 additions & 8 deletions

File tree

src/steamship/data/plugin_instance.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33

44
from steamship.base import Client, Request
55
from steamship.base.response import Response
6+
from steamship.plugin.inputs.export_plugin_input import ExportPluginInput
67
from steamship.plugin.inputs.training_parameter_plugin_input import TrainingParameterPluginInput
8+
from steamship.plugin.outputs.raw_data_plugin_output import RawDataPluginOutput
79
from steamship.plugin.outputs.training_parameter_plugin_output import TrainingParameterPluginOutput
810

911

@@ -92,6 +94,14 @@ def delete(self) -> PluginInstance:
9294
expect=PluginInstance
9395
)
9496

97+
def export(self, input: ExportPluginInput) -> RawDataPluginOutput:
98+
input.pluginInstance = self.handle
99+
return self.client.post(
100+
'plugin/instance/export',
101+
payload=input,
102+
expect=RawDataPluginOutput
103+
)
104+
95105
def train(self, trainingRequest: TrainingParameterPluginInput) -> PluginInstance:
96106
return self.client.post(
97107
'plugin/instance/train',

src/steamship/plugin/inputs/export_plugin_input.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ def from_dict(d: any = None, client: Client = None) -> "ExportPluginInput":
1919

2020
return ExportPluginInput(
2121
pluginInstance = d.get('pluginInstance', None),
22-
id = d.get(': str = None', None),
23-
handle = d.get(': str = None', None),
24-
type = d.get(': str = None', None),
25-
filename = d.get(': str = None', None)
22+
id = d.get('id', None),
23+
handle = d.get('id', None),
24+
type = d.get('type', None),
25+
filename = d.get('filename', None)
2626
)
2727

2828
def to_dict(self) -> Dict:

src/steamship/plugin/inputs/train_plugin_input.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ def from_dict(d: any = None, client: Client = None) -> "TrainPluginInput":
4747
return None
4848

4949
return TrainPluginInput(
50-
tenantId = d.get(': str = None', None),
51-
spaceId = d.get(': str = None', None),
50+
tenantId = d.get('tenantId', None),
51+
spaceId = d.get('spaceId', None),
5252
pluginInstance=d.get('pluginInstance', None),
5353
pluginInstanceId=d.get('pluginInstanceId', None),
5454
modelName = d.get('modelName', None),

src/steamship/plugin/inputs/train_plugin_output.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ def from_dict(d: any = None, client: Client = None) -> "TrainPluginOutput":
3333
return None
3434

3535
return TrainPluginOutput(
36-
tenantId = d.get(': str = None', None),
37-
spaceId = d.get(': str = None', None),
36+
tenantId = d.get('tenantId', None),
37+
spaceId = d.get('spaceId', None),
3838
modelName = d.get('modelName', None),
3939
modelFilename = d.get('modelFilename', None),
4040
modelUploadUrl = d.get('modelUploadUrl', None),
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
from dataclasses import asdict
2+
3+
from steamship.data.plugin_instance import PluginInstance
4+
from steamship.data.plugin import TrainingPlatform
5+
from steamship.extension.file import File
6+
from steamship.plugin.inputs.export_plugin_input import ExportPluginInput
7+
from steamship.plugin.inputs.training_parameter_plugin_input import TrainingParameterPluginInput
8+
import time
9+
10+
from ..client.helpers import deploy_plugin, upload_file, _steamship
11+
12+
__copyright__ = "Steamship"
13+
__license__ = "MIT"
14+
15+
EXPORTER_HANDLE = "signed-url-exporter"
16+
17+
def test_e2e_corpus_export():
18+
client = _steamship()
19+
versionConfigTemplate = dict(
20+
textColumn=dict(type="string"),
21+
tagColumns=dict(type="string"),
22+
tagKind=dict(type="string")
23+
)
24+
instanceConfig = dict(
25+
textColumn="Message",
26+
tagColumns="Category",
27+
tagKind="Intent"
28+
)
29+
exporterPluginR = PluginInstance.create(
30+
client=client,
31+
handle=EXPORTER_HANDLE,
32+
pluginHandle=EXPORTER_HANDLE,
33+
upsert=True
34+
)
35+
assert (exporterPluginR.data is not None)
36+
exporterPlugin = exporterPluginR.data
37+
assert (exporterPlugin.handle is not None)
38+
39+
input = ExportPluginInput(handle='default', type="corpus")
40+
print(asdict(input))
41+
42+
# Make a blockifier which will generate our training corpus
43+
with deploy_plugin("plugin_blockifier_csv.py", "blockifier", versionConfigTemplate=versionConfigTemplate, instanceConfig=instanceConfig) as (plugin, version, instance):
44+
with upload_file("utterances.csv") as file:
45+
assert (len(file.query().data.blocks) == 0)
46+
# Use the plugin we just registered
47+
file.blockify(pluginInstance=instance.handle).wait()
48+
assert (len(file.query().data.blocks) == 5)
49+
50+
# Now export the corpus
51+
rawDataR = exporterPlugin.export(input)
52+
assert (rawDataR is not None)
53+
54+
# The results of a corpus exporter are MD5 encoded!
55+
rawData = rawDataR.data

tests/plugin/test_e2e_trainable_tagger.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252

5353
def test_e2e_trainable_tagger_ecs_training():
5454
client = _steamship()
55+
5556
versionConfigTemplate = dict(
5657
textColumn=dict(type="string"),
5758
tagColumns=dict(type="string"),

0 commit comments

Comments
 (0)