workbykait commited on
Commit
788e25a
·
verified ·
1 Parent(s): 80f4fa8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +6 -22
app.py CHANGED
@@ -42,31 +42,16 @@ def generate_random_log():
42
  entries.append(f"{time} | {lat}N, {lon}W | Frequency: {freq} GHz | Signal Strength: {signal}% | Message: {message}")
43
  return "\n".join(entries)
44
 
45
- def filter_log_by_frequency(log_text, min_freq, max_freq):
46
  if not log_text.strip():
47
- return log_text
48
- filtered = []
49
- for line in log_text.split("\n"):
50
- match = re.search(r"Frequency: (\d+\.\d) GHz", line)
51
- if match:
52
- freq = float(match.group(1))
53
- if min_freq <= freq <= max_freq:
54
- filtered.append(line)
55
- else:
56
- filtered.append(line) # Keep non-frequency lines
57
- return "\n".join(filtered) if filtered else "No logs in frequency range."
58
-
59
- def analyze_log(log_text, min_freq, max_freq):
60
- filtered_log = filter_log_by_frequency(log_text, min_freq, max_freq)
61
- if not filtered_log.strip() or filtered_log.startswith("No logs"):
62
- return filtered_log, None, None, None
63
- LOG_HISTORY.append(filtered_log)
64
  data = {
65
  "model": "llama-4-scout-17b-16e-instruct",
66
  "messages": [
67
  {
68
  "role": "user",
69
- "content": "Analyze this satellite radio log and summarize in bullet points. Include interference risk scores (0-100, low signal <70% = high risk >80, emergency = 90). Ensure frequencies in issues and details:\n- Issues (e.g., low signal, noise, interference with frequency, risk score)\n- High-priority messages (e.g., emergencies, warnings)\n- Key details (coordinates, times, frequencies, signal strengths)\nLog:\n" + filtered_log
70
  }
71
  ],
72
  "max_completion_tokens": 500,
@@ -88,7 +73,7 @@ def analyze_log(log_text, min_freq, max_freq):
88
  html += "</ul></div>"
89
  signals = []
90
  times = []
91
- for line in filtered_log.split("\n"):
92
  if "Signal Strength" in line:
93
  match = re.search(r"Signal Strength: (\d+)%", line)
94
  if match:
@@ -168,7 +153,6 @@ with gr.Blocks(css=css) as interface:
168
  gr.Markdown("# Satellite Signal Log Analyzer", elem_classes="header")
169
  gr.Markdown("Analyze logs for issues, alerts, and trends.", elem_classes="subheader")
170
  log_input = gr.Textbox(lines=5, show_label=False, placeholder="Enter or generate a log...")
171
- freq_slider = gr.Slider(minimum=14.0, maximum=15.0, step=0.1, value=[14.0, 15.0], label="Frequency Range (GHz)")
172
  with gr.Row():
173
  sample_button = gr.Button("Sample Log")
174
  random_button = gr.Button("Random Log")
@@ -186,7 +170,7 @@ with gr.Blocks(css=css) as interface:
186
  sample_button.click(fn=load_sample_log, outputs=log_input)
187
  random_button.click(fn=generate_random_log, outputs=log_input)
188
  clear_button.click(fn=clear_log, outputs=log_input)
189
- analyze_button.click(fn=analyze_log, inputs=[log_input, freq_slider], outputs=[output, output, plot_output, export_output])
190
  alert_button.click(fn=generate_alert, inputs=log_input, outputs=alert_output)
191
  compare_button.click(fn=compare_logs, outputs=[compare_output, compare_output])
192
  export_button.click(fn=lambda: None, outputs=export_output)
 
42
  entries.append(f"{time} | {lat}N, {lon}W | Frequency: {freq} GHz | Signal Strength: {signal}% | Message: {message}")
43
  return "\n".join(entries)
44
 
45
+ def analyze_log(log_text):
46
  if not log_text.strip():
47
+ return "Error: Please enter a log.", None, None, None
48
+ LOG_HISTORY.append(log_text)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  data = {
50
  "model": "llama-4-scout-17b-16e-instruct",
51
  "messages": [
52
  {
53
  "role": "user",
54
+ "content": "Analyze this satellite radio log and summarize in bullet points. Include interference risk scores (0-100, low signal <70% = high risk >80, emergency = 90). Ensure frequencies in issues and details:\n- Issues (e.g., low signal, noise, interference with frequency, risk score)\n- High-priority messages (e.g., emergencies, warnings)\n- Key details (coordinates, times, frequencies, signal strengths)\nLog:\n" + log_text
55
  }
56
  ],
57
  "max_completion_tokens": 500,
 
73
  html += "</ul></div>"
74
  signals = []
75
  times = []
76
+ for line in log_text.split("\n"):
77
  if "Signal Strength" in line:
78
  match = re.search(r"Signal Strength: (\d+)%", line)
79
  if match:
 
153
  gr.Markdown("# Satellite Signal Log Analyzer", elem_classes="header")
154
  gr.Markdown("Analyze logs for issues, alerts, and trends.", elem_classes="subheader")
155
  log_input = gr.Textbox(lines=5, show_label=False, placeholder="Enter or generate a log...")
 
156
  with gr.Row():
157
  sample_button = gr.Button("Sample Log")
158
  random_button = gr.Button("Random Log")
 
170
  sample_button.click(fn=load_sample_log, outputs=log_input)
171
  random_button.click(fn=generate_random_log, outputs=log_input)
172
  clear_button.click(fn=clear_log, outputs=log_input)
173
+ analyze_button.click(fn=analyze_log, inputs=log_input, outputs=[output, output, plot_output, export_output])
174
  alert_button.click(fn=generate_alert, inputs=log_input, outputs=alert_output)
175
  compare_button.click(fn=compare_logs, outputs=[compare_output, compare_output])
176
  export_button.click(fn=lambda: None, outputs=export_output)