Prasanna Kumar commited on
Commit
007d05b
1 Parent(s): 0d3569b

Added validation on token ids input part

Browse files
Files changed (1) hide show
  1. app.py +20 -3
app.py CHANGED
@@ -12,7 +12,7 @@ import anthropic
12
  model_path = "models/"
13
 
14
  # Available models
15
- MODELS = ["Meta-Llama-3.1-8B", "gemma-2b", "gpt-3.5-turbo","gpt-4","gpt-4o" "Claude-3-Sonnet"]
16
  openai_models = ["gpt-3.5-turbo","gpt-4","gpt-4o"]
17
  # Color palette visible on both light and dark themes
18
  COLOR_PALETTE = [
@@ -38,6 +38,20 @@ def create_vertical_histogram(data, title):
38
  )
39
  return fig
40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  def process_text(text: str, model_name: str, api_key: str = None):
42
  if model_name in ["Meta-Llama-3.1-8B", "gemma-2b"]:
43
  tokenizer = AutoTokenizer.from_pretrained(model_path + model_name)
@@ -102,6 +116,9 @@ def create_html_tokens(tokens):
102
  return html_output
103
 
104
  def process_input(input_type, input_value, model_name, api_key):
 
 
 
105
  if input_type == "Text":
106
  text, tokens, token_ids = process_text(text=input_value, model_name=model_name, api_key=api_key)
107
  elif input_type == "Token IDs":
@@ -150,7 +167,7 @@ with gr.Blocks() as iface:
150
  input_type = gr.Radio(["Text", "Token IDs"], label="Input Type", value="Text")
151
  model_name = gr.Dropdown(choices=MODELS, label="Select Model", value=MODELS[0])
152
 
153
- api_key = gr.Textbox(label="API Key Claude models)", type="password")
154
  input_text = gr.Textbox(lines=5, label="Input")
155
 
156
  with gr.Row():
@@ -181,7 +198,7 @@ with gr.Blocks() as iface:
181
 
182
  submit_button.click(
183
  process_input,
184
- inputs=[input_type, input_text, model_name, api_key],
185
  outputs=[analysis_output, text_output, tokens_output, token_ids_output, words_plot, special_chars_plot, numbers_plot]
186
  )
187
 
 
12
  model_path = "models/"
13
 
14
  # Available models
15
+ MODELS = ["Meta-Llama-3.1-8B", "gemma-2b", "gpt-3.5-turbo","gpt-4","gpt-4o"]
16
  openai_models = ["gpt-3.5-turbo","gpt-4","gpt-4o"]
17
  # Color palette visible on both light and dark themes
18
  COLOR_PALETTE = [
 
38
  )
39
  return fig
40
 
41
+ def validate_input(input_type, input_value):
42
+ if input_type == "Text":
43
+ if not isinstance(input_value, str):
44
+ return False, "Input must be a string for Text input type."
45
+ elif input_type == "Token IDs":
46
+ try:
47
+ token_ids = ast.literal_eval(input_value)
48
+ if not isinstance(token_ids, list) or not all(isinstance(id, int) for id in token_ids):
49
+ return False, "Token IDs must be a list of integers."
50
+ except (ValueError, SyntaxError):
51
+ return False, "Invalid Token IDs format. Please provide a valid list of integers."
52
+ return True, ""
53
+
54
+
55
  def process_text(text: str, model_name: str, api_key: str = None):
56
  if model_name in ["Meta-Llama-3.1-8B", "gemma-2b"]:
57
  tokenizer = AutoTokenizer.from_pretrained(model_path + model_name)
 
116
  return html_output
117
 
118
  def process_input(input_type, input_value, model_name, api_key):
119
+ is_valid, error_message = validate_input(input_type, input_value)
120
+ if not is_valid:
121
+ raise gr.Error(error_message)
122
  if input_type == "Text":
123
  text, tokens, token_ids = process_text(text=input_value, model_name=model_name, api_key=api_key)
124
  elif input_type == "Token IDs":
 
167
  input_type = gr.Radio(["Text", "Token IDs"], label="Input Type", value="Text")
168
  model_name = gr.Dropdown(choices=MODELS, label="Select Model", value=MODELS[0])
169
 
170
+ # api_key = gr.Textbox(label="API Key Claude models)", type="password")
171
  input_text = gr.Textbox(lines=5, label="Input")
172
 
173
  with gr.Row():
 
198
 
199
  submit_button.click(
200
  process_input,
201
+ inputs=[input_type, input_text, model_name],
202
  outputs=[analysis_output, text_output, tokens_output, token_ids_output, words_plot, special_chars_plot, numbers_plot]
203
  )
204