darabos commited on
Commit
db436f7
·
1 Parent(s): 4524b65

Format some parameters as <textarea>.

Browse files
server/llm_ops.py CHANGED
@@ -15,11 +15,11 @@ def chat(*args, **kwargs):
15
  return CACHE[key]
16
 
17
  @ops.op("Input")
18
- def input(*, filename: str, key: str):
19
  return pd.read_csv(filename).rename(columns={key: 'text'})
20
 
21
  @ops.op("Create prompt")
22
- def create_prompt(input, *, template: str):
23
  assert template, 'Please specify the template. Refer to columns using their names in uppercase.'
24
  df = input.copy()
25
  prompts = []
 
15
  return CACHE[key]
16
 
17
  @ops.op("Input")
18
+ def input(*, filename: ops.PathStr, key: str):
19
  return pd.read_csv(filename).rename(columns={key: 'text'})
20
 
21
  @ops.op("Create prompt")
22
+ def create_prompt(input, *, template: ops.LongStr):
23
  assert template, 'Please specify the template. Refer to columns using their names in uppercase.'
24
  df = input.copy()
25
  prompts = []
server/ops.py CHANGED
@@ -15,12 +15,21 @@ typeof = type # We have some arguments called "type".
15
  def type_to_json(t):
16
  if isinstance(t, type) and issubclass(t, enum.Enum):
17
  return {'enum': list(t.__members__.keys())}
18
- if isinstance(t, tuple) and t[0] == 'collapsed':
19
- return {'collapsed': str(t[1])}
20
  return {'type': str(t)}
21
  Type = Annotated[
22
  typing.Any, pydantic.PlainSerializer(type_to_json, return_type=dict)
23
  ]
 
 
 
 
 
 
 
 
 
24
  class BaseConfig(pydantic.BaseModel):
25
  model_config = pydantic.ConfigDict(
26
  arbitrary_types_allowed=True,
@@ -40,7 +49,7 @@ class Parameter(BaseConfig):
40
 
41
  @staticmethod
42
  def collapsed(name, default, type=None):
43
- return Parameter.basic(name, default, ('collapsed', type or typeof(default)))
44
 
45
  @staticmethod
46
  def basic(name, default=None, type=None):
 
15
  def type_to_json(t):
16
  if isinstance(t, type) and issubclass(t, enum.Enum):
17
  return {'enum': list(t.__members__.keys())}
18
+ if getattr(t, '__metadata__', None):
19
+ return t.__metadata__[0]
20
  return {'type': str(t)}
21
  Type = Annotated[
22
  typing.Any, pydantic.PlainSerializer(type_to_json, return_type=dict)
23
  ]
24
+ LongStr = Annotated[
25
+ str, {'format': 'textarea'}
26
+ ]
27
+ PathStr = Annotated[
28
+ str, {'format': 'path'}
29
+ ]
30
+ CollapsedStr = Annotated[
31
+ str, {'format': 'collapsed'}
32
+ ]
33
  class BaseConfig(pydantic.BaseModel):
34
  model_config = pydantic.ConfigDict(
35
  arbitrary_types_allowed=True,
 
49
 
50
  @staticmethod
51
  def collapsed(name, default, type=None):
52
+ return Parameter.basic(name, default, CollapsedStr)
53
 
54
  @staticmethod
55
  def basic(name, default=None, type=None):
web/src/NodeParameter.svelte CHANGED
@@ -7,10 +7,15 @@
7
 
8
  <label class="param">
9
  <span class="param-name">{name.replace(/_/g, ' ')}</span>
10
- {#if meta?.type?.collapsed}
11
  <button class="collapsed-param form-control form-control-sm">
12
 
13
  </button>
 
 
 
 
 
14
  {:else if meta?.type?.enum}
15
  <select class="form-select form-select-sm"
16
  value={value || meta.type.enum[0]}
 
7
 
8
  <label class="param">
9
  <span class="param-name">{name.replace(/_/g, ' ')}</span>
10
+ {#if meta?.type?.format === 'collapsed'}
11
  <button class="collapsed-param form-control form-control-sm">
12
 
13
  </button>
14
+ {:else if meta?.type?.format === 'textarea'}
15
+ <textarea class="form-control form-control-sm"
16
+ value={value}
17
+ on:change={(evt) => onChange(evt.currentTarget.value)}
18
+ />
19
  {:else if meta?.type?.enum}
20
  <select class="form-select form-select-sm"
21
  value={value || meta.type.enum[0]}