smolinski commited on
Commit
e3fa341
·
verified ·
1 Parent(s): 1550ed2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -15
app.py CHANGED
@@ -208,26 +208,19 @@ def response(query, historia=None):
208
  {CFG.rola}, który szczegółowo i dokładnie odpowiada na pytania w oparciu o przekazaną wiedzę.
209
  Dziel się wszystkimi posiadanymi informacjami na dany temat.
210
  Na pytania o aktualne notowania odpowiadaj: Aktualne notowania dostępne są na stronie GPW.
 
211
  Podczas udzielania odpowiedzi korzystaj wyłącznie z poniższych informacji zawartych w sekcji „Wiedza”.
212
  Bądź miły i uprzejmy, ale rzeczowy. Przykładaj większą wagę do nowszych informacji.
213
  Jeśli pytanie jest zbyt ogólne nie odpowiadaj na nie, lecz poproś o doprecyzowanie.
214
  Jeśli nie znasz odpowiedzi, napisz: Niestety nie posiadam informacji na ten temat. NIE WYMYŚLAJ NICZEGO.\n\n
215
-
216
  {historia_text}
217
-
218
  Pytanie: {query}
219
-
220
-
221
-
222
  Wiedza:\n {knowledge}
223
-
224
  """
225
 
226
  # the response to the Gradio App
227
  response = llm(rag_prompt)
228
 
229
- # return response.content if response and response.content else "Brak odpowiedzi.", sources_markdown, zrodla, cytaty # ✅ Teraz zwracamy także źródła dla pliku Word
230
-
231
  return response.content if response and response.content else "Brak odpowiedzi.", sources_markdown, cytaty
232
 
233
 
@@ -298,6 +291,40 @@ def zapisz_odpowiedz(odpowiedz, pytanie, sources, user_path):
298
  paragraph.paragraph_format.space_before = Pt(0)
299
  paragraph.paragraph_format.space_after = Pt(5)
300
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
301
  p1 = doc.add_paragraph()
302
  formatuj_naglowek(p1, "Pytanie:")
303
  p1 = doc.add_paragraph(pytanie)
@@ -307,9 +334,8 @@ def zapisz_odpowiedz(odpowiedz, pytanie, sources, user_path):
307
 
308
  p2 = doc.add_paragraph()
309
  formatuj_naglowek(p2, "Odpowiedź:")
310
- p2 = doc.add_paragraph(odpowiedz)
311
- formatuj_paragraf(p2)
312
-
313
  doc.add_paragraph(" ")
314
 
315
  if sources and sources.strip():
@@ -356,15 +382,13 @@ def stream_response(query, history):
356
  {CFG.rola}, który szczegółowo i dokładnie odpowiada na pytania w oparciu o przekazaną wiedzę.
357
  Dziel się wszystkimi posiadanymi informacjami na dany temat, tak by Twoje odpowiedzi były wyczerpujące.
358
  Na pytania o aktualne notowania odpowiadaj: Aktualne notowania dostępne są na stronie GPW.
 
359
  Podczas udzielania odpowiedzi korzystaj wyłącznie z poniższych informacji zawartych w sekcji „Wiedza”.
360
  Bądź miły i uprzejmy, ale rzeczowy. Przykładaj większą wagę do nowszych informacji.
361
  Jeśli pytanie jest zbyt ogólne nie odpowiadaj na nie, lecz poproś o doprecyzowanie.
362
  Jeśli nie znasz odpowiedzi, napisz: Niestety nie posiadam informacji na ten temat. NIE WYMYŚLAJ NICZEGO.\n\n
363
-
364
  Pytanie: {query}\n\n
365
-
366
  Historia rozmowy:\n {history}
367
-
368
  Wiedza:\n {knowledge}
369
  """
370
 
@@ -389,6 +413,14 @@ with gr.Blocks(css="""
389
  background-color: #A9A9A9 !important;
390
  color: white !important;
391
  }
 
 
 
 
 
 
 
 
392
  """) as gui:
393
 
394
  session_dir = gr.State(value=init_user_session)
@@ -418,7 +450,12 @@ with gr.Blocks(css="""
418
  with gr.Column(scale=7):
419
  gr.Markdown("")
420
 
421
- output_answer = gr.Textbox(label="Odpowiedź:", interactive=False, lines=5)
 
 
 
 
 
422
  output_cytaty = gr.State("")
423
 
424
  with gr.Row():
 
208
  {CFG.rola}, który szczegółowo i dokładnie odpowiada na pytania w oparciu o przekazaną wiedzę.
209
  Dziel się wszystkimi posiadanymi informacjami na dany temat.
210
  Na pytania o aktualne notowania odpowiadaj: Aktualne notowania dostępne są na stronie GPW.
211
+ Do podkreślenia lub wypunktowania najważniejszych rzeczy używaj pogrubionej czcionki, a do ciekawostek i dodatkowych rzeczy kursywy.
212
  Podczas udzielania odpowiedzi korzystaj wyłącznie z poniższych informacji zawartych w sekcji „Wiedza”.
213
  Bądź miły i uprzejmy, ale rzeczowy. Przykładaj większą wagę do nowszych informacji.
214
  Jeśli pytanie jest zbyt ogólne nie odpowiadaj na nie, lecz poproś o doprecyzowanie.
215
  Jeśli nie znasz odpowiedzi, napisz: Niestety nie posiadam informacji na ten temat. NIE WYMYŚLAJ NICZEGO.\n\n
 
216
  {historia_text}
 
217
  Pytanie: {query}
 
 
 
218
  Wiedza:\n {knowledge}
 
219
  """
220
 
221
  # the response to the Gradio App
222
  response = llm(rag_prompt)
223
 
 
 
224
  return response.content if response and response.content else "Brak odpowiedzi.", sources_markdown, cytaty
225
 
226
 
 
291
  paragraph.paragraph_format.space_before = Pt(0)
292
  paragraph.paragraph_format.space_after = Pt(5)
293
 
294
+ def dodaj_markdown_tekst(doc, text):
295
+ lines = text.splitlines()
296
+ for line in lines:
297
+ # Lista wypunktowana
298
+ if line.strip().startswith(("- ", "* ")):
299
+ para = doc.add_paragraph(style='List Bullet')
300
+ content = line.strip()[2:]
301
+ # Cytat
302
+ elif line.strip().startswith("> "):
303
+ para = doc.add_paragraph()
304
+ para.paragraph_format.left_indent = Pt(20)
305
+ content = line.strip()[2:]
306
+ else:
307
+ para = doc.add_paragraph()
308
+ content = line
309
+
310
+ # Markdown inline: **bold**, *italic*, ~~strikethrough~~
311
+ pattern = r"(\*\*.*?\*\*|\*.*?\*|~~.*?~~|[^*~]+)"
312
+ parts = re.findall(pattern, content)
313
+
314
+ for part in parts:
315
+ clean = part.replace("**", "").replace("*", "").replace("~~", "")
316
+ run = para.add_run(clean)
317
+
318
+ if part.startswith("**") and part.endswith("**"):
319
+ run.bold = True
320
+ elif part.startswith("*") and part.endswith("*"):
321
+ run.italic = True
322
+ elif part.startswith("~~") and part.endswith("~~"):
323
+ run.font.strike = True
324
+
325
+ run.font.name = "Calibri"
326
+ run.font.size = Pt(12)
327
+
328
  p1 = doc.add_paragraph()
329
  formatuj_naglowek(p1, "Pytanie:")
330
  p1 = doc.add_paragraph(pytanie)
 
334
 
335
  p2 = doc.add_paragraph()
336
  formatuj_naglowek(p2, "Odpowiedź:")
337
+ dodaj_markdown_tekst(doc, odpowiedz)
338
+
 
339
  doc.add_paragraph(" ")
340
 
341
  if sources and sources.strip():
 
382
  {CFG.rola}, który szczegółowo i dokładnie odpowiada na pytania w oparciu o przekazaną wiedzę.
383
  Dziel się wszystkimi posiadanymi informacjami na dany temat, tak by Twoje odpowiedzi były wyczerpujące.
384
  Na pytania o aktualne notowania odpowiadaj: Aktualne notowania dostępne są na stronie GPW.
385
+ Do podkreślenia lub wypunktowania najważniejszych rzeczy używaj pogrubionej czcionki, a do ciekawostek i dodatkowych rzeczy kursywy.
386
  Podczas udzielania odpowiedzi korzystaj wyłącznie z poniższych informacji zawartych w sekcji „Wiedza”.
387
  Bądź miły i uprzejmy, ale rzeczowy. Przykładaj większą wagę do nowszych informacji.
388
  Jeśli pytanie jest zbyt ogólne nie odpowiadaj na nie, lecz poproś o doprecyzowanie.
389
  Jeśli nie znasz odpowiedzi, napisz: Niestety nie posiadam informacji na ten temat. NIE WYMYŚLAJ NICZEGO.\n\n
 
390
  Pytanie: {query}\n\n
 
391
  Historia rozmowy:\n {history}
 
392
  Wiedza:\n {knowledge}
393
  """
394
 
 
413
  background-color: #A9A9A9 !important;
414
  color: white !important;
415
  }
416
+ #markdown_odpowiedz {
417
+ border: 1px solid #ccc;
418
+ border-radius: 6px;
419
+ padding: 12px;
420
+ background-color: #f9f9f9;
421
+ margin-top: 6px;
422
+ min-height: 8em;
423
+ }
424
  """) as gui:
425
 
426
  session_dir = gr.State(value=init_user_session)
 
450
  with gr.Column(scale=7):
451
  gr.Markdown("")
452
 
453
+ gr.Markdown("### Odpowiedź:")
454
+ output_answer = gr.Markdown(
455
+ value="",
456
+ elem_id="markdown_odpowiedz"
457
+ )
458
+
459
  output_cytaty = gr.State("")
460
 
461
  with gr.Row():