IsakNordgren commited on
Commit
a7a9d9e
·
1 Parent(s): 3fabf6e

fler exempel och förbättrad prompt. Testar steg-för-steg-prompting

Browse files
Arkiv.txt ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Du sammanfattar texter som användaren skickar.
3
+ Syftet är att översätta svårlästa texter som exempelvis myndighetsbeslut,
4
+ kontrakt eller avier/fakturor till klartext som är lättförståelig och tydlig,
5
+ framförallt om det är något som användaren behöver göra själv (exempelvis betala en faktura).
6
+
7
+ Texten som användaren kommer skicka är PDFer som har blivit omformaterade till en lång sträng.
8
+ Detta kan leda till att viss positionell information försvinner, eller att olika textstycken
9
+ kommer i en annan ordning än vad som är tänkt.
10
+
11
+ Du ska först svara med en flytande text som kort förklarar vad som står i dokumentet.
12
+ Om dokumentet ger instruktioner ska du beskriva dessa steg för steg sist i svaret.
13
+ Det ska gå att utföra instruktionerna enbart baserat på det du skriver så användaren inte behöver läsa i pdfen för att veta vad den ska göra.
14
+ Svara på svenska.
15
+ """
__pycache__/groqSummarizer.cpython-310.pyc CHANGED
Binary files a/__pycache__/groqSummarizer.cpython-310.pyc and b/__pycache__/groqSummarizer.cpython-310.pyc differ
 
__pycache__/page.cpython-310.pyc CHANGED
Binary files a/__pycache__/page.cpython-310.pyc and b/__pycache__/page.cpython-310.pyc differ
 
__pycache__/prompts.cpython-310.pyc ADDED
Binary file (1.24 kB). View file
 
__pycache__/summarize.cpython-310.pyc CHANGED
Binary files a/__pycache__/summarize.cpython-310.pyc and b/__pycache__/summarize.cpython-310.pyc differ
 
groqSummarizer.py CHANGED
@@ -3,27 +3,14 @@ from groq import Groq
3
  import os
4
  from dotenv import load_dotenv
5
 
6
- class GroqSummarizer():
7
 
8
- def __init__(self):
9
- #self.systemPrompt = "Du sammanfattar texter som användaren skickar. Var kortfattad. Svara på svenska. Om texten innehåller instruktioner, lista dem punktvis."
10
 
11
- self.systemPrompt = """
12
- Du sammanfattar texter som användaren skickar.
13
- Syftet är att översätta svårlästa texter som exempelvis myndighetsbeslut,
14
- kontrakt eller avier/fakturor till klartext som är lättförståelig och tydlig,
15
- framförallt om det är något som användaren behöver göra själv (exempelvis betala en faktura). \n
16
 
17
- Texten som användaren kommer skicka är PDFer som har blivit omformaterade till en lång sträng.
18
- Detta kan leda till att viss positionell information försvinner, eller att olika textstycken
19
- kommer i en annan ordning än vad som är tänkt. \n
20
 
21
- Outputten ska vara en flytande text som kort förklarar vad som står i dokumentet.
22
- Om dokumentet ger instruktioner ska dessa tydligt beskrivas steg för steg sist i svaret.
23
- Det ska gå att utföra instruktionerna enbart baserat på outputten.
24
- Om det exempelvis är en hyresavi ska bankgiro, OCR-nummer och belopp tydligt framgå.
25
- Svara på Svenska
26
- """
27
 
28
  self.client = self.load_groq()
29
 
@@ -48,10 +35,10 @@ class GroqSummarizer():
48
  },
49
  {
50
  "role": "user",
51
- "content": text,
52
  }
53
  ],
54
  model="llama3-70b-8192",
55
  )
56
-
57
  return chat_completion.choices[0].message.content
 
3
  import os
4
  from dotenv import load_dotenv
5
 
6
+ from prompts import systemPrompt
7
 
 
 
8
 
9
+ class GroqSummarizer():
 
 
 
 
10
 
11
+ def __init__(self):
12
+ self.systemPrompt = systemPrompt
 
13
 
 
 
 
 
 
 
14
 
15
  self.client = self.load_groq()
16
 
 
35
  },
36
  {
37
  "role": "user",
38
+ "content": "\"\"\"" + text + "\"\"\"",
39
  }
40
  ],
41
  model="llama3-70b-8192",
42
  )
43
+ print(chat_completion.choices[0].message.content)
44
  return chat_completion.choices[0].message.content
page.py CHANGED
@@ -11,7 +11,7 @@ def createDemoPage(path):
11
 
12
  with st.spinner("Summarizing text..."):
13
  summarizer = Summarizer(model = "groq")
14
- text = readpdf("Examples/Kris.pdf")
15
  summary = summarizer.summarize(text)
16
 
17
  st.subheader("Summary")
 
11
 
12
  with st.spinner("Summarizing text..."):
13
  summarizer = Summarizer(model = "groq")
14
+ text = readpdf(path)
15
  summary = summarizer.summarize(text)
16
 
17
  st.subheader("Summary")
pages/A-skattsblankett.py ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from summarize import Summarizer
3
+ import page
4
+
5
+ def main():
6
+ st.title("Text Extractor and Summarizer")
7
+
8
+ st.subheader("(Detta är ett exempel på hur en blankett från Skatteverket sammanfattas)")
9
+ page.createDemoPage("Examples/A-skatt.pdf")
10
+
11
+ main()
pages/Bruksanvisning Automower.py ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from summarize import Summarizer
3
+ import page
4
+
5
+ def main():
6
+ st.title("Text Extractor and Summarizer")
7
+
8
+ st.subheader("(Detta är ett exempel på hur en bruksanvisnig för en robotgräsklippare sammanfattas)")
9
+ page.createDemoPage("Examples/BruksanvisningAutomower.pdf")
10
+
11
+ main()
pages/Deklaration.py ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from summarize import Summarizer
3
+ import page
4
+
5
+ def main():
6
+ st.title("Text Extractor and Summarizer")
7
+
8
+ st.subheader("(Detta är ett exempel på hur information på en hemsida om hur man deklarerar sammanfattas)")
9
+ page.createDemoPage("Examples/deklaration.pdf")
10
+
11
+ main()
pages/FHM Covid-information ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from summarize import Summarizer
3
+ import page
4
+
5
+ def main():
6
+ st.title("Text Extractor and Summarizer")
7
+
8
+ st.subheader("(Detta är ett exempel på hur FHMs webbsida om Covid-19 sammanfattas)")
9
+ page.createDemoPage("Examples/FHMCovid.pdf")
10
+
11
+ main()
pages/Hovrättsdom.py ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from summarize import Summarizer
3
+ import page
4
+
5
+ def main():
6
+ st.title("Text Extractor and Summarizer")
7
+
8
+ st.subheader("(Detta är ett exempel på hur en dom från hovrätten sammanfattas)")
9
+ page.createDemoPage("Examples/hovrätt.pdf")
10
+
11
+ main()
pages/Hyresavi.py CHANGED
@@ -1,6 +1,5 @@
1
  import streamlit as st
2
  from summarize import Summarizer
3
- import pdfplumber
4
  import page
5
 
6
  def main():
 
1
  import streamlit as st
2
  from summarize import Summarizer
 
3
  import page
4
 
5
  def main():
pages/Om krisen eller kriget kommer.py CHANGED
@@ -1,6 +1,5 @@
1
  import streamlit as st
2
  from summarize import Summarizer
3
- import pdfplumber
4
  import page
5
 
6
  def main():
 
1
  import streamlit as st
2
  from summarize import Summarizer
 
3
  import page
4
 
5
  def main():
prompts.py ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ systemPrompt = """
3
+ Du sammanfattar texter på ett sätt som är enkelt att förstå och ta till sig.
4
+ Syftet är att hjälpa människor förstå svårlästa texter som exempelvis myndighetsbeslut,
5
+ kontrakt, avier, eller fakturor genom att översätta dem till klartext, alltså till ett språk som är lättförståelig och tydlig.
6
+ Målet med din uppgift är att användaren enkelt ska kunna förstå vad som står i dokumentet och vad som behöver göras.
7
+
8
+ Använd följande metod för att sammanfatta texten:
9
+ 1. Identifiera det viktigaste i texten. Vad är det som är mest relevant för användaren att veta?
10
+ 2. Sammanfatta texten i korta och tydliga meningar. Undvik onödiga detaljer.
11
+ 3. Om det finns siffror, belopp, datum eller liknande som är viktiga, specificera dessa tydligt.
12
+ 4. Sammanställ koncist vad som behöver göras eller vad som är viktigt att veta.
13
+
14
+
15
+ Användaren kommer att skicka en text som representerar den information som finns i dokumentet den vill ha hjälp med att förstå.
16
+ Din uppgift är att sammanfatta denna text enligt instruktionerna ovan.
17
+
18
+ Svara på svenska.
19
+ """
20
+
21
+ #Till exempel, om det är en faktura som ska betalas, ska du beskriva hur mycket pengar personen totalt ska betala, och specificera vilka bankuppgifter dessa ska betalas till.
22
+ #Denna information finns innanför taggarna <dokument> och </dokument>.
summarize.py CHANGED
@@ -18,6 +18,7 @@ import torch
18
  from streamlit import session_state as ss
19
  from streamlit_pdf_viewer import pdf_viewer
20
 
 
21
  class Summarizer:
22
 
23
  def __init__(self, model = "groq"):
 
18
  from streamlit import session_state as ss
19
  from streamlit_pdf_viewer import pdf_viewer
20
 
21
+
22
  class Summarizer:
23
 
24
  def __init__(self, model = "groq"):
test.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "header": {
3
+ "customer_ref": "407025",
4
+ "date": "2024-03-13"
5
+ },
6
+ "payment_info": {
7
+ "payee": "Stockholms Studentbostäder",
8
+ "bankgiro": "5954-0146",
9
+ "ocr_nr": "317925899"
10
+ },
11
+ "invoices": [
12
+ {
13
+ "description": "Hyra Bostad",
14
+ "period": "20240401-20240430",
15
+ "amount": "4170,00 SEK"
16
+ },
17
+ {
18
+ "description": "Internetanslutning",
19
+ "period": "20240401-20240430",
20
+ "amount": "167,00 SEK"
21
+ }
22
+ ],
23
+ "total_amount": "5847,00 SEK",
24
+ "due_date": "2024-03-31",
25
+ "contact_info": {
26
+ "phone": "08-458 10 10",
27
+ "address": "Box 19608, 104 32 Stockholm"
28
+ }
29
+ }
test.py ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import PyPDF2
2
+
3
+ def extract_text_from_pdf(pdf_path):
4
+ # Open the PDF file
5
+ with open(pdf_path, 'rb') as file:
6
+ reader = PyPDF2.PdfReader(file)
7
+ text = ''
8
+
9
+ # Iterate through each page
10
+ for page in reader.pages:
11
+ text += page.extract_text()
12
+
13
+ return text
14
+
15
+ pdf_path = 'Examples/Kris.pdf'
16
+ print(extract_text_from_pdf(pdf_path))