insurance_advisor_wb / rag_app /utils /generate_summary.py
Asaad Almutareb
corrected S3 vectorstore
6f2843a
raw
history blame
2.31 kB
from langchain_huggingface import HuggingFaceEndpoint
from langchain_core.prompts import PromptTemplate
from langchain_core.output_parsers import StrOutputParser
import json
from dotenv import load_dotenv
import os
load_dotenv()
HF_API_TOKEN = os.getenv('HUGGINGFACE_API_TOKEN')
model_id=os.getenv('LLM_MODEL')
LLM = HuggingFaceEndpoint(
repo_id=model_id,
temperature=0.1,
max_new_tokens=512,
repetition_penalty=1.2,
return_full_text=False,
huggingfacehub_api_token=HF_API_TOKEN)
def generate_keywords(document:dict,
llm_model:HuggingFaceEndpoint = LLM) -> str:
""" Generate a meaningful list of meta keywords for the provided document or chunk"""
template = (
"""
Du bist ein SEO-Experten-Bot. Deine Aufgabe ist es, 5 aussagekräftige Schlüsselwörtern zu erstellen, um Dokumente zu organisieren.
Die Schlüsselwörter sollen uns später beim Suchen, Filtern und Abrufen der Dokumente helfen.
Antworte nur mit 5 klaren, prägnanten und aussagekräftigen Schlüsselwörtern, getrennt durch Kommas.
<<<
Document: {document}
>>>
Keywords:
"""
)
prompt = PromptTemplate.from_template(template=template)
chain = prompt | llm_model | StrOutputParser()
result = chain.invoke({'document': document})
return result.strip()
def generate_description(document:dict,
llm_model:HuggingFaceEndpoint = LLM) -> str:
""" Generate a meaningful document description based on document content """
template = (
"""
Du bist ein SEO-Experten-Bot. Deine Aufgabe ist es, eine aussagekräftige Zusammenfassung zu erstellen, um Dokumente zu beschreiben und zu organisieren.
Die Beschreibung sollte eine aussagekräftige Zusammenfassung des Dokumentinhalts sein und uns später beim Suchen und Abrufen der Dokumente helfen.
Antworte nur mit einer klaren, prägnanten und aussagekräftigen Beschreibung in Deutsch.
<<<
Document: {document}
>>>
Description:
"""
)
prompt = PromptTemplate.from_template(template=template)
chain = prompt | llm_model | StrOutputParser()
result = chain.invoke({'document': document})
return result.strip()