Spaces:
Sleeping
Sleeping
# 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 |