helpers.py aktualisiert
This commit is contained in:
49
helpers.py
49
helpers.py
@@ -787,43 +787,36 @@ def call_openai_chat(prompt, temperature=0.3, model=None):
|
|||||||
raise e
|
raise e
|
||||||
|
|
||||||
|
|
||||||
|
@retry_on_failure
|
||||||
def summarize_website_content(raw_text, company_name_for_context="einem Unternehmen"):
|
def summarize_website_content(raw_text, company_name_for_context="einem Unternehmen"):
|
||||||
"""
|
"""
|
||||||
Erstellt eine Zusammenfassung eines Website-Rohtextes ueber OpenAI.
|
Fasst den Rohtext einer Website mit OpenAI zusammen.
|
||||||
|
Nutzt nun den Firmennamen für besseren Kontext.
|
||||||
Args:
|
|
||||||
raw_text (str): Der rohe Textinhalt der Website.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
str: Die generierte Zusammenfassung oder ein Fehlerwert ("k.A.", etc.).
|
|
||||||
"""
|
"""
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
if not raw_text or str(raw_text).strip() == "" or str(raw_text).strip().lower() in ["k.a.", "k.a. (nur cookie-banner erkannt)", "k.a. (fehler)"]:
|
if not raw_text or len(raw_text) < 100 or raw_text.lower().strip().startswith('k.a.'):
|
||||||
logger.debug("summarize_website_content skipped: No valid raw text provided.")
|
logger.debug(f"Überspringe Website-Zusammenfassung für '{company_name_for_context}', Text zu kurz oder 'k.A.'.")
|
||||||
return "k.A."
|
return "k.A. (Text zu kurz)"
|
||||||
|
|
||||||
max_raw_length = 3000
|
|
||||||
if len(str(raw_text)) > max_raw_length:
|
|
||||||
logger.debug(f"Kuerze Rohtext fuer Zusammenfassung von {len(str(raw_text))} auf {max_raw_length} Zeichen.")
|
|
||||||
raw_text = str(raw_text)[:max_raw_length]
|
|
||||||
|
|
||||||
|
# NEUER, KONTEXTBEZOGENER PROMPT
|
||||||
prompt = (
|
prompt = (
|
||||||
"Du bist ein KI-Assistent, der Webinhalte analysiert.\n"
|
f"Du bist ein Wirtschaftsanalyst. Deine Aufgabe ist es, den Kern eines Unternehmens zu erfassen.\n"
|
||||||
"Fasse den folgenden Text einer Unternehmenswebsite praegnant zusammen. "
|
f"Fasse den folgenden Rohtext der Website für das Unternehmen '{company_name_for_context}' prägnant zusammen.\n"
|
||||||
"Konzentriere dich dabei auf:\n"
|
"Konzentriere dich ausschließlich auf die folgenden drei Punkte:\n"
|
||||||
"- Haupttaetigkeitsfeld des Unternehmens\n"
|
"- Was ist das Haupttätigkeitsfeld?\n"
|
||||||
"- Wichtigste Produkte und/oder Dienstleistungen\n"
|
"- Was sind die wichtigsten Produkte und/oder Dienstleistungen?\n"
|
||||||
"- Zielgruppe (falls erkennbar)\n\n"
|
"- Wer ist die primäre Zielgruppe (z.B. B2B, B2C, spezifische Industrien)?\n\n"
|
||||||
f"Website-Text:\n```\n{raw_text}\n```\n\n"
|
"Website-Text:\n"
|
||||||
"Zusammenfassung (max. 100 Woerter):"
|
f"```\n{raw_text[:4000]}\n```\n\n" # Längenlimit leicht erhöht
|
||||||
|
"Zusammenfassung (max. 100 Wörter):"
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
summary = call_openai_chat(prompt, temperature=0.2)
|
summary = call_openai_chat(prompt, temperature=0.2, model="gpt-4o-mini")
|
||||||
return summary if summary and summary.strip() else "k.A. (Keine Zusammenfassung erhalten)"
|
return summary if summary else "k.A. (Zusammenfassung fehlgeschlagen)"
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"FEHLER bei Website Zusammenfassung nach Retries: {e}")
|
logger.error(f"Fehler bei der Website-Zusammenfassung für {company_name_for_context}: {e}")
|
||||||
return f"k.A. (Fehler Zusammenfassung: {str(e)[:50]}...)"
|
return "FEHLER (API-Fehler bei Zusammenfassung)"
|
||||||
|
|
||||||
@retry_on_failure
|
@retry_on_failure
|
||||||
def summarize_wikipedia_article(full_text, company_name):
|
def summarize_wikipedia_article(full_text, company_name):
|
||||||
|
|||||||
Reference in New Issue
Block a user