Summarize / groqSummarizer.py
IsakNordgren's picture
Added trucation if the document has too many tokens
0efbb5e
raw
history blame
2.25 kB
# 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