davidmezzetti commited on
Commit
08d28ec
1 Parent(s): 343c23e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -16
app.py CHANGED
@@ -24,18 +24,19 @@ class Process:
24
 
25
  @staticmethod
26
  @st.cache(ttl=30 * 60, max_entries=3, allow_output_mutation=True, show_spinner=False)
27
- def get(components):
28
  """
29
  Lookup or creates a new workflow process instance.
30
 
31
  Args:
32
  components: input components
 
33
 
34
  Returns:
35
  Process
36
  """
37
 
38
- process = Process()
39
 
40
  # Build workflow
41
  with st.spinner("Building workflow...."):
@@ -43,9 +44,12 @@ class Process:
43
 
44
  return process
45
 
46
- def __init__(self):
47
  """
48
  Creates a new Process.
 
 
 
49
  """
50
 
51
  # Component options
@@ -60,7 +64,7 @@ class Process:
60
  # Embeddings index params
61
  self.embeddings = None
62
  self.documents = None
63
- self.data = None
64
 
65
  def build(self, components):
66
  """
@@ -615,12 +619,13 @@ class Application:
615
  # Wrap data as list for workflow processing
616
  return [data]
617
 
618
- def query(self, workflow):
619
  """
620
  Gets input query.
621
 
622
  Args:
623
  workflow: workflow configuration
 
624
 
625
  Returns:
626
  input query
@@ -629,35 +634,37 @@ class Application:
629
  default = self.appsetting(workflow, "query")
630
  default = default if default else ""
631
 
632
- # Set query and limit
633
- query = st.text_input("Query", value=default)
634
 
635
  # Save query state
636
  st.session_state["query"] = query
637
 
638
  return query
639
 
640
- def process(self, workflow, components):
641
  """
642
  Processes the current application action.
643
 
644
  Args:
645
  workflow: workflow configuration
646
  components: workflow components
 
647
  """
648
 
 
 
 
 
649
  # Get workflow process
650
- process = Process.get(components)
651
 
652
  # Run workflow process
653
- process.run(self.data(workflow))
654
 
655
  # Run search
656
- if process.embeddings:
657
- process.search(self.query(workflow))
658
- else:
659
- # Clear session query
660
- st.session_state["query"] = None
661
 
662
  def run(self):
663
  """
@@ -680,7 +687,7 @@ class Application:
680
 
681
  if selected:
682
  # Process current action
683
- self.process(workflow, components)
684
 
685
  with st.sidebar:
686
  # Generate export button after workflow is complete
 
24
 
25
  @staticmethod
26
  @st.cache(ttl=30 * 60, max_entries=3, allow_output_mutation=True, show_spinner=False)
27
+ def get(components, data):
28
  """
29
  Lookup or creates a new workflow process instance.
30
 
31
  Args:
32
  components: input components
33
+ data: initial data, only passed when indexing
34
 
35
  Returns:
36
  Process
37
  """
38
 
39
+ process = Process(data)
40
 
41
  # Build workflow
42
  with st.spinner("Building workflow...."):
 
44
 
45
  return process
46
 
47
+ def __init__(self, data):
48
  """
49
  Creates a new Process.
50
+
51
+ Args:
52
+ data: initial data, only passed when indexing
53
  """
54
 
55
  # Component options
 
64
  # Embeddings index params
65
  self.embeddings = None
66
  self.documents = None
67
+ self.data = data
68
 
69
  def build(self, components):
70
  """
 
619
  # Wrap data as list for workflow processing
620
  return [data]
621
 
622
+ def query(self, workflow, index):
623
  """
624
  Gets input query.
625
 
626
  Args:
627
  workflow: workflow configuration
628
+ index: True if this is an indexing workflow
629
 
630
  Returns:
631
  input query
 
634
  default = self.appsetting(workflow, "query")
635
  default = default if default else ""
636
 
637
+ # Get query if this is an indexing workflow
638
+ query = st.text_input("Query", value=default) if index else None
639
 
640
  # Save query state
641
  st.session_state["query"] = query
642
 
643
  return query
644
 
645
+ def process(self, workflow, components, index):
646
  """
647
  Processes the current application action.
648
 
649
  Args:
650
  workflow: workflow configuration
651
  components: workflow components
652
+ index: True if this is an indexing workflow
653
  """
654
 
655
+ # Get input data and initialize query
656
+ data = self.data(workflow)
657
+ query = self.query(workflow, index)
658
+
659
  # Get workflow process
660
+ process = Process.get(components, data if index else None)
661
 
662
  # Run workflow process
663
+ process.run(data)
664
 
665
  # Run search
666
+ if index:
667
+ process.search(query)
 
 
 
668
 
669
  def run(self):
670
  """
 
687
 
688
  if selected:
689
  # Process current action
690
+ self.process(workflow, components, "embeddings" in selected)
691
 
692
  with st.sidebar:
693
  # Generate export button after workflow is complete