Commit
·
e748e0f
1
Parent(s):
0c57aea
Update app.py
Browse files
app.py
CHANGED
|
@@ -8,6 +8,7 @@ import os
|
|
| 8 |
import re
|
| 9 |
|
| 10 |
import nltk
|
|
|
|
| 11 |
|
| 12 |
import pandas as pd
|
| 13 |
import streamlit as st
|
|
@@ -171,6 +172,73 @@ class Application:
|
|
| 171 |
|
| 172 |
self.workflow = Workflow(tasks)
|
| 173 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 174 |
def find(self, key):
|
| 175 |
"""
|
| 176 |
Lookup record from cached data by uid key.
|
|
@@ -271,12 +339,19 @@ class Application:
|
|
| 271 |
st.sidebar.markdown("---")
|
| 272 |
|
| 273 |
with st.sidebar:
|
|
|
|
|
|
|
| 274 |
# Build or re-build workflow when build button clicked
|
| 275 |
-
build =
|
| 276 |
if build:
|
| 277 |
with st.spinner("Building workflow...."):
|
| 278 |
self.build(components)
|
| 279 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 280 |
with st.expander("Data", expanded=not self.data):
|
| 281 |
data = st.text_area("Input", height=10)
|
| 282 |
|
|
|
|
| 8 |
import re
|
| 9 |
|
| 10 |
import nltk
|
| 11 |
+
import yaml
|
| 12 |
|
| 13 |
import pandas as pd
|
| 14 |
import streamlit as st
|
|
|
|
| 172 |
|
| 173 |
self.workflow = Workflow(tasks)
|
| 174 |
|
| 175 |
+
def yaml(self, components):
|
| 176 |
+
"""
|
| 177 |
+
Builds a yaml string for components.
|
| 178 |
+
|
| 179 |
+
Args:
|
| 180 |
+
components: list of components to export to YAML
|
| 181 |
+
|
| 182 |
+
Returns:
|
| 183 |
+
YAML string
|
| 184 |
+
"""
|
| 185 |
+
|
| 186 |
+
# pylint: disable=W0108
|
| 187 |
+
data = {}
|
| 188 |
+
tasks = []
|
| 189 |
+
name = None
|
| 190 |
+
|
| 191 |
+
for component in components:
|
| 192 |
+
component = dict(component)
|
| 193 |
+
name = wtype = component.pop("type")
|
| 194 |
+
|
| 195 |
+
if wtype == "summary":
|
| 196 |
+
data["summary"] = {"path": component.pop("path")}
|
| 197 |
+
tasks.append({"action": "summary"})
|
| 198 |
+
|
| 199 |
+
elif wtype == "segment":
|
| 200 |
+
data["segmentation"] = component
|
| 201 |
+
tasks.append({"action": "segmentation"})
|
| 202 |
+
|
| 203 |
+
elif wtype == "service":
|
| 204 |
+
config = dict(**component)
|
| 205 |
+
config["task"] = "service"
|
| 206 |
+
tasks.append(config)
|
| 207 |
+
|
| 208 |
+
elif wtype == "tabular":
|
| 209 |
+
data["tabular"] = component
|
| 210 |
+
tasks.append({"action": "tabular"})
|
| 211 |
+
|
| 212 |
+
elif wtype == "textract":
|
| 213 |
+
data["textractor"] = component
|
| 214 |
+
tasks.append({"action": "textractor", "task": "url"})
|
| 215 |
+
|
| 216 |
+
elif wtype == "transcribe":
|
| 217 |
+
data["transcription"] = {"path": component.pop("path")}
|
| 218 |
+
tasks.append({"action": "transcription", "task": "url"})
|
| 219 |
+
|
| 220 |
+
elif wtype == "translate":
|
| 221 |
+
data["translation"] = {}
|
| 222 |
+
tasks.append({"action": "translation", "args": list(component.values())})
|
| 223 |
+
|
| 224 |
+
elif wtype == "embeddings":
|
| 225 |
+
index = component.pop("index")
|
| 226 |
+
upsert = component.pop("upsert")
|
| 227 |
+
|
| 228 |
+
data["embeddings"] = component
|
| 229 |
+
data["writable"] = True
|
| 230 |
+
|
| 231 |
+
if index:
|
| 232 |
+
data["path"] = index
|
| 233 |
+
|
| 234 |
+
name = "index"
|
| 235 |
+
tasks.append({"action": "upsert" if upsert else "index"})
|
| 236 |
+
|
| 237 |
+
# Add in workflow
|
| 238 |
+
data["workflow"] = {name: {"tasks": tasks}}
|
| 239 |
+
|
| 240 |
+
return (name, yaml.dump(data))
|
| 241 |
+
|
| 242 |
def find(self, key):
|
| 243 |
"""
|
| 244 |
Lookup record from cached data by uid key.
|
|
|
|
| 339 |
st.sidebar.markdown("---")
|
| 340 |
|
| 341 |
with st.sidebar:
|
| 342 |
+
col1, col2 = st.columns(2)
|
| 343 |
+
|
| 344 |
# Build or re-build workflow when build button clicked
|
| 345 |
+
build = col1.button("Build", help="Build the workflow and run within this application")
|
| 346 |
if build:
|
| 347 |
with st.spinner("Building workflow...."):
|
| 348 |
self.build(components)
|
| 349 |
|
| 350 |
+
# Generate API configuration
|
| 351 |
+
_, config = self.yaml(components)
|
| 352 |
+
|
| 353 |
+
col2.download_button("Export", config, file_name="workflow.yml", mime="text/yaml", help="Export the API workflow as YAML")
|
| 354 |
+
|
| 355 |
with st.expander("Data", expanded=not self.data):
|
| 356 |
data = st.text_area("Input", height=10)
|
| 357 |
|