Deadmon commited on
Commit
95f1cdb
·
verified ·
1 Parent(s): c5e8041

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +51 -19
app.py CHANGED
@@ -108,18 +108,18 @@ class TextEditor:
108
  chunk['text'] = chunk['text'][:start] + chunk['text'][end:]
109
  self.memory.update_chunk(chunk_id, chunk['text'])
110
  logger.info(f"Cut text from chunk: {chunk_id}, start: {start}, end: {end}, clipboard: {self.clipboard}")
111
- else:
112
- logger.warning(f"Failed to cut text, chunk not found: {chunk_id}")
113
- return chunk['text']
114
 
115
  def copy(self, chunk_id, start, end):
116
  chunk = self.memory.get_chunk(chunk_id)
117
  if chunk:
118
  self.clipboard = chunk['text'][start:end]
119
  logger.info(f"Copied text from chunk: {chunk_id}, start: {start}, end: {end}, clipboard: {self.clipboard}")
120
- else:
121
- logger.warning(f"Failed to copy text, chunk not found: {chunk_id}")
122
- return self.clipboard
123
 
124
  def paste(self, chunk_id, position):
125
  chunk = self.memory.get_chunk(chunk_id)
@@ -127,9 +127,9 @@ class TextEditor:
127
  chunk['text'] = chunk['text'][:position] + self.clipboard + chunk['text'][position:]
128
  self.memory.update_chunk(chunk_id, chunk['text'])
129
  logger.info(f"Pasted text to chunk: {chunk_id}, position: {position}, clipboard: {self.clipboard}")
130
- else:
131
- logger.warning(f"Failed to paste text, chunk not found: {chunk_id}")
132
- return chunk['text']
133
 
134
  def add_prefix(self, chunk_id, prefix):
135
  chunk = self.memory.get_chunk(chunk_id)
@@ -137,9 +137,9 @@ class TextEditor:
137
  chunk['text'] = prefix + chunk['text']
138
  self.memory.update_chunk(chunk_id, chunk['text'])
139
  logger.info(f"Added prefix to chunk: {chunk_id}, prefix: {prefix}")
140
- else:
141
- logger.warning(f"Failed to add prefix, chunk not found: {chunk_id}")
142
- return chunk['text']
143
 
144
  def add_suffix(self, chunk_id, suffix):
145
  chunk = self.memory.get_chunk(chunk_id)
@@ -147,9 +147,9 @@ class TextEditor:
147
  chunk['text'] = chunk['text'] + suffix
148
  self.memory.update_chunk(chunk_id, chunk['text'])
149
  logger.info(f"Added suffix to chunk: {chunk_id}, suffix: {suffix}")
150
- else:
151
- logger.warning(f"Failed to add suffix, chunk not found: {chunk_id}")
152
- return chunk['text']
153
 
154
  def diff(self, chunk_id, original_text):
155
  chunk = self.memory.get_chunk(chunk_id)
@@ -380,30 +380,61 @@ def get_logs():
380
  return f"Error reading logs: {str(e)}"
381
 
382
  def select_chunk(evt: gr.SelectData):
383
- logger.info(f"Selected chunk: {evt.value[0]}")
384
  return evt.value[0], evt.value[1]
385
 
386
  async def edit_cut(chunk_id, start, end):
 
 
 
 
 
 
 
387
  api = OpenAIApi(api_key=os.getenv("AZURE_OPENAI_API_KEY"))
388
  result = api.editor.cut(chunk_id, int(start), int(end))
389
  return result, api.editor.diff(chunk_id, result)
390
 
391
  async def edit_copy(chunk_id, start, end):
 
 
 
 
 
 
392
  api = OpenAIApi(api_key=os.getenv("AZURE_OPENAI_API_KEY"))
393
  result = api.editor.copy(chunk_id, int(start), int(end))
394
  return result, ""
395
 
396
  async def edit_paste(chunk_id, position):
 
 
 
 
 
 
397
  api = OpenAIApi(api_key=os.getenv("AZURE_OPENAI_API_KEY"))
398
  result = api.editor.paste(chunk_id, int(position))
399
  return result, api.editor.diff(chunk_id, result)
400
 
401
  async def edit_prefix(chunk_id, prefix):
 
 
 
 
 
 
402
  api = OpenAIApi(api_key=os.getenv("AZURE_OPENAI_API_KEY"))
403
  result = api.editor.add_prefix(chunk_id, prefix)
404
  return result, api.editor.diff(chunk_id, result)
405
 
406
  async def edit_suffix(chunk_id, suffix):
 
 
 
 
 
 
407
  api = OpenAIApi(api_key=os.getenv("AZURE_OPENAI_API_KEY"))
408
  result = api.editor.add_suffix(chunk_id, suffix)
409
  return result, api.editor.diff(chunk_id, result)
@@ -429,13 +460,14 @@ def create_ui():
429
  label="Recent Chunks",
430
  headers=["chunk_id", "text", "role", "timestamp", "intent", "token_count"],
431
  datatype=["str", "str", "str", "str", "str", "number"],
432
- interactive=False
 
433
  )
434
  history_btn = gr.Button("Refresh History")
435
- history_btn.click(fn=get_history, outputs=history)
436
 
437
  with gr.Tab("Text Editor"):
438
- chunk_id = gr.Textbox(label="Selected Chunk ID")
439
  chunk_text = gr.Textbox(label="Chunk Text", interactive=False)
440
  history.select(fn=select_chunk, outputs=[chunk_id, chunk_text])
441
 
 
108
  chunk['text'] = chunk['text'][:start] + chunk['text'][end:]
109
  self.memory.update_chunk(chunk_id, chunk['text'])
110
  logger.info(f"Cut text from chunk: {chunk_id}, start: {start}, end: {end}, clipboard: {self.clipboard}")
111
+ return chunk['text']
112
+ logger.warning(f"Failed to cut text, chunk not found: {chunk_id}")
113
+ return "Error: Chunk not found"
114
 
115
  def copy(self, chunk_id, start, end):
116
  chunk = self.memory.get_chunk(chunk_id)
117
  if chunk:
118
  self.clipboard = chunk['text'][start:end]
119
  logger.info(f"Copied text from chunk: {chunk_id}, start: {start}, end: {end}, clipboard: {self.clipboard}")
120
+ return self.clipboard
121
+ logger.warning(f"Failed to copy text, chunk not found: {chunk_id}")
122
+ return "Error: Chunk not found"
123
 
124
  def paste(self, chunk_id, position):
125
  chunk = self.memory.get_chunk(chunk_id)
 
127
  chunk['text'] = chunk['text'][:position] + self.clipboard + chunk['text'][position:]
128
  self.memory.update_chunk(chunk_id, chunk['text'])
129
  logger.info(f"Pasted text to chunk: {chunk_id}, position: {position}, clipboard: {self.clipboard}")
130
+ return chunk['text']
131
+ logger.warning(f"Failed to paste text, chunk not found: {chunk_id}")
132
+ return "Error: Chunk not found"
133
 
134
  def add_prefix(self, chunk_id, prefix):
135
  chunk = self.memory.get_chunk(chunk_id)
 
137
  chunk['text'] = prefix + chunk['text']
138
  self.memory.update_chunk(chunk_id, chunk['text'])
139
  logger.info(f"Added prefix to chunk: {chunk_id}, prefix: {prefix}")
140
+ return chunk['text']
141
+ logger.warning(f"Failed to add prefix, chunk not found: {chunk_id}")
142
+ return "Error: Chunk not found"
143
 
144
  def add_suffix(self, chunk_id, suffix):
145
  chunk = self.memory.get_chunk(chunk_id)
 
147
  chunk['text'] = chunk['text'] + suffix
148
  self.memory.update_chunk(chunk_id, chunk['text'])
149
  logger.info(f"Added suffix to chunk: {chunk_id}, suffix: {suffix}")
150
+ return chunk['text']
151
+ logger.warning(f"Failed to add suffix, chunk not found: {chunk_id}")
152
+ return "Error: Chunk not found"
153
 
154
  def diff(self, chunk_id, original_text):
155
  chunk = self.memory.get_chunk(chunk_id)
 
380
  return f"Error reading logs: {str(e)}"
381
 
382
  def select_chunk(evt: gr.SelectData):
383
+ logger.info(f"Selected chunk: {evt.value}")
384
  return evt.value[0], evt.value[1]
385
 
386
  async def edit_cut(chunk_id, start, end):
387
+ logger.info(f"edit_cut called with chunk_id: {chunk_id}, start: {start}, end: {end}")
388
+ try:
389
+ # Validate chunk_id as a UUID
390
+ uuid.UUID(chunk_id, version=4)
391
+ except ValueError:
392
+ logger.warning(f"Invalid chunk_id: {chunk_id} is not a valid UUID")
393
+ return "Error: Invalid chunk_id", ""
394
  api = OpenAIApi(api_key=os.getenv("AZURE_OPENAI_API_KEY"))
395
  result = api.editor.cut(chunk_id, int(start), int(end))
396
  return result, api.editor.diff(chunk_id, result)
397
 
398
  async def edit_copy(chunk_id, start, end):
399
+ logger.info(f"edit_copy called with chunk_id: {chunk_id}, start: {start}, end: {end}")
400
+ try:
401
+ uuid.UUID(chunk_id, version=4)
402
+ except ValueError:
403
+ logger.warning(f"Invalid chunk_id: {chunk_id} is not a valid UUID")
404
+ return "Error: Invalid chunk_id", ""
405
  api = OpenAIApi(api_key=os.getenv("AZURE_OPENAI_API_KEY"))
406
  result = api.editor.copy(chunk_id, int(start), int(end))
407
  return result, ""
408
 
409
  async def edit_paste(chunk_id, position):
410
+ logger.info(f"edit_paste called with chunk_id: {chunk_id}, position: {position}")
411
+ try:
412
+ uuid.UUID(chunk_id, version=4)
413
+ except ValueError:
414
+ logger.warning(f"Invalid chunk_id: {chunk_id} is not a valid UUID")
415
+ return "Error: Invalid chunk_id", ""
416
  api = OpenAIApi(api_key=os.getenv("AZURE_OPENAI_API_KEY"))
417
  result = api.editor.paste(chunk_id, int(position))
418
  return result, api.editor.diff(chunk_id, result)
419
 
420
  async def edit_prefix(chunk_id, prefix):
421
+ logger.info(f"edit_prefix called with chunk_id: {chunk_id}, prefix: {prefix}")
422
+ try:
423
+ uuid.UUID(chunk_id, version=4)
424
+ except ValueError:
425
+ logger.warning(f"Invalid chunk_id: {chunk_id} is not a valid UUID")
426
+ return "Error: Invalid chunk_id", ""
427
  api = OpenAIApi(api_key=os.getenv("AZURE_OPENAI_API_KEY"))
428
  result = api.editor.add_prefix(chunk_id, prefix)
429
  return result, api.editor.diff(chunk_id, result)
430
 
431
  async def edit_suffix(chunk_id, suffix):
432
+ logger.info(f"edit_suffix called with chunk_id: {chunk_id}, suffix: {suffix}")
433
+ try:
434
+ uuid.UUID(chunk_id, version=4)
435
+ except ValueError:
436
+ logger.warning(f"Invalid chunk_id: {chunk_id} is not a valid UUID")
437
+ return "Error: Invalid chunk_id", ""
438
  api = OpenAIApi(api_key=os.getenv("AZURE_OPENAI_API_KEY"))
439
  result = api.editor.add_suffix(chunk_id, suffix)
440
  return result, api.editor.diff(chunk_id, result)
 
460
  label="Recent Chunks",
461
  headers=["chunk_id", "text", "role", "timestamp", "intent", "token_count"],
462
  datatype=["str", "str", "str", "str", "str", "number"],
463
+ interactive=False,
464
+ key="history_df"
465
  )
466
  history_btn = gr.Button("Refresh History")
467
+ history_btn.click(fn=get_history, outputs=history, _js="() => new Promise(resolve => setTimeout(resolve, 200))")
468
 
469
  with gr.Tab("Text Editor"):
470
+ chunk_id = gr.Textbox(label="Selected Chunk ID", interactive=False)
471
  chunk_text = gr.Textbox(label="Chunk Text", interactive=False)
472
  history.select(fn=select_chunk, outputs=[chunk_id, chunk_text])
473