File size: 2,249 Bytes
0efbb5e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# groq
from groq import Groq
import os
from dotenv import load_dotenv

class GroqSummarizer():

    def __init__(self):
        #self.systemPrompt = "Du sammanfattar texter som användaren skickar. Var kortfattad. Svara på svenska. Om texten innehåller instruktioner, lista dem punktvis."

        self.systemPrompt = """
                    Du sammanfattar texter som användaren skickar. 
                    Syftet är att översätta svårlästa texter som exempelvis myndighetsbeslut, 
                    kontrakt eller avier/fakturor till klartext som är lättförståelig och tydlig, 
                    framförallt om det är något som användaren behöver göra själv (exempelvis betala en faktura). \n

                    Texten som användaren kommer skicka är PDFer som har blivit omformaterade till en lång sträng. 
                    Detta kan leda till att viss positionell information försvinner, eller att olika textstycken 
                    kommer i en annan ordning än vad som är tänkt. \n

                    Outputten ska vara en flytande text som kort förklarar vad som står i dokumentet. 
                    Om dokumentet ger instruktioner ska dessa tydligt beskrivas steg för steg sist i svaret.
                    Det ska gå att utföra instruktionerna enbart baserat på outputten. 
                    Om det exempelvis är en hyresavi ska bankgiro, OCR-nummer och belopp tydligt framgå.
                    Svara på Svenska
                    """
        
        self.client = self.load_groq()

    def load_groq(self):
        load_dotenv()
    
        GROQ_API_KEY = os.getenv("GROQ_API_KEY")
    
        client = Groq(
            api_key=GROQ_API_KEY
        )
    
        return client

    def summarize(self, text):
        chat_completion = self.client.chat.completions.create(
            messages=[
                {
                    "role": "system",
                    'content': self.systemPrompt
                    
                },
                {
                    "role": "user",
                    "content": text,
                }
            ],
            model="llama3-70b-8192",
        )
    
        return chat_completion.choices[0].message.content