Im Zeitalter der Informationsüberflutung verliert man leicht den Überblick in der großen Menge a web-based verfügbaren Inhalten. YouTube bietet Milliarden von Movies und das Web ist voll von Artikeln, Blogs und wissenschaftlichen Arbeiten. Bei solch großen Datenmengen ist es oft schwierig, nützliche Erkenntnisse zu gewinnen, ohne stundenlang zu lesen und zuzusehen. Hier kommt der KI-gestützte Internet-Zusammenfassungsdienst zur Hilfe.
In diesem Artikel erstellen wir eine Streamlit-basierte App mit NLP und KI, die YouTube-Movies und Web sites in sehr detaillierten Zusammenfassungen zusammenfasst. Diese App verwendet Groqs Modell Lama-3.2 und die Zusammenfassungsketten von LangChain, um sehr detaillierte Zusammenfassungen anzubieten, die dem Leser Zeit sparen, ohne einen interessanten Punkt zu verpassen.
Lernergebnisse
- Verstehen Sie die Herausforderungen der Informationsüberflutung und die Vorteile der KI-gestützten Zusammenfassung.
- Erfahren Sie, wie Sie eine Streamlit-App erstellen, die Inhalte von YouTube und Web sites zusammenfasst.
- Entdecken Sie die Rolle von LangChain und Llama 3.2 bei der Erstellung detaillierter Inhaltszusammenfassungen.
- Entdecken Sie, wie Sie Instruments wie yt-dlp und UnstructuredURLLoader für die Verarbeitung von Multimedia-Inhalten integrieren.
- Erstellen Sie mit Streamlit und LangChain eine leistungsstarke Internet-Zusammenfassung, um YouTube-Movies und Web sites sofort zusammenzufassen.
- Erstellen Sie mit LangChain eine Webzusammenfassung für prägnante, genaue Inhaltszusammenfassungen aus URLs und Movies.
Dieser Artikel wurde im Rahmen der veröffentlicht Knowledge Science-Blogathon.
Zweck und Vorteile der Summarizer-App
Von YouTube über Veröffentlichungen auf Webseiten bis hin zu ausführlichen Forschungsartikeln – dieser riesige Informationsspeicher steht buchstäblich vor der Tür. Allerdings schließt der Zeitfaktor für die meisten von uns das Durchblättern von mehrminütigen Movies oder das Lesen langer Artikel aus. Studien zufolge verbringt eine Particular person nur wenige Sekunden auf einer Web site, bevor sie sich entscheidet, sie weiterzulesen oder nicht. Hier liegt nun das Downside, das einer Lösung bedarf.
Nutzen Sie die KI-gestützte Zusammenfassung: eine Technik, die es KI-Modellen ermöglicht, große Mengen an Inhalten zu verarbeiten und prägnante, für Menschen lesbare Zusammenfassungen bereitzustellen. Dies kann besonders für vielbeschäftigte Berufstätige, Studenten oder alle nützlich sein, die schnell den Kern eines Inhalts verstehen möchten, ohne stundenlang damit zu verbringen.
Komponenten der Zusammenfassungs-App
Bevor wir uns mit dem Code befassen, wollen wir die Schlüsselelemente aufschlüsseln, die dafür sorgen, dass diese Anwendung funktioniert:
- LangChain: Dieses leistungsstarke Framework vereinfacht die Interaktion mit große Sprachmodelle (LLMs). Es bietet eine standardisierte Möglichkeit, Eingabeaufforderungen zu verwalten, verschiedene Sprachmodelloperationen miteinander zu verketten und auf eine Vielzahl von LLMs zuzugreifen.
- Streamlit: Mit dieser Open-Supply-Python-Bibliothek können wir schnell interaktive Webanwendungen erstellen. Es ist benutzerfreundlich und eignet sich daher perfekt für die Erstellung des Frontends unseres Summierers.
- yt-dlp: Beim Zusammenfassen von YouTube-Movies wird yt_dlp verwendet, um Metadaten wie Titel und Beschreibung zu extrahieren. Im Gegensatz zu anderen YouTube-Downloadern ist yt_dlp vielseitiger und unterstützt eine Vielzahl von Formaten. Es ist die ideale Wahl zum Extrahieren von Videodetails, die dann zur Zusammenfassung in das LLM eingespeist werden.
- UnstrukturierterURLLoader: Dieses LangChain-Dienstprogramm hilft uns beim Laden und Verarbeiten von Inhalten von Web sites. Es bewältigt die Komplexität des Abrufens von Webseiten und des Extrahierens ihrer Textinformationen.
Erstellen der App: Schritt-für-Schritt-Anleitung
In diesem Abschnitt gehen wir jede Section der Entwicklung Ihrer KI-Zusammenfassungs-App durch. Wir kümmern uns um die Einrichtung der Umgebung, das Design der Benutzeroberfläche, die Implementierung des Zusammenfassungsmodells und das Testen der App, um eine optimale Leistung sicherzustellen.“
Notiz: Holen Sie sich die Datei „Necessities.txt“ und den vollständigen Code auf GitHub Hier.
Bibliotheken importieren und Umgebungsvariablen laden
Dieser Schritt umfasst die Einrichtung der wesentlichen Bibliotheken, die für die App benötigt werden, einschließlich aller Frameworks für maschinelles Lernen und NLP. Wir laden außerdem Umgebungsvariablen, um API-Schlüssel, Anmeldeinformationen und Konfigurationseinstellungen, die während des gesamten Entwicklungsprozesses erforderlich sind, sicher zu verwalten.
import os
import validators
import streamlit as st
from langchain.prompts import PromptTemplate
from langchain_groq import ChatGroq
from langchain.chains.summarize import load_summarize_chain
from langchain_community.document_loaders import UnstructuredURLLoader
from yt_dlp import YoutubeDL
from dotenv import load_dotenv
from langchain.schema import Doc
load_dotenv()
groq_api_key = os.getenv("GROQ_API_KEY")
In diesem Abschnitt werden Bibliotheken importiert und der API-Schlüssel aus einer .env-Datei geladen, wodurch vertrauliche Informationen wie API-Schlüssel geschützt bleiben.
Gestaltung des Frontends mit Streamlit
In diesem Schritt erstellen wir mit Streamlit eine interaktive und benutzerfreundliche Oberfläche für die App. Dazu gehört das Hinzufügen von Eingabeformularen und Schaltflächen sowie die Anzeige von Ausgaben, sodass Benutzer nahtlos mit den Backend-Funktionalitäten interagieren können.
st.set_page_config(page_title="LangChain Enhanced Summarizer", page_icon="🌟")
st.title("YouTube or Web site Summarizer")
st.write("Welcome! Summarize content material from YouTube movies or web sites in a extra detailed method.")
st.sidebar.title("About This App")
st.sidebar.data(
"This app makes use of LangChain and the Llama 3.2 mannequin from Groq API to offer detailed summaries. "
"Merely enter a URL (YouTube or web site) and get a concise abstract!"
)
st.header("The way to Use:")
st.write("1. Enter the URL of a YouTube video or web site you want to summarize.")
st.write("2. Click on **Summarize** to get an in depth abstract.")
st.write("3. Benefit from the outcomes!")
Diese Zeilen legen die Seitenkonfiguration, den Titel und den Begrüßungstext für die Hauptbenutzeroberfläche der App fest.
Texteingabe für URL und Modellladen
Hier richten wir ein Texteingabefeld ein, in das Benutzer eine URL zur Analyse eingeben können. Darüber hinaus werden wir die erforderliche Modellladefunktion integrieren, um sicherzustellen, dass die App die URL effizient verarbeiten und das maschinelle Lernmodell nach Bedarf für die Analyse anwenden kann.
st.subheader("Enter the URL:")
generic_url = st.text_input("URL", label_visibility="collapsed", placeholder="https://instance.com")
Benutzer können die URL (YouTube oder Web site) eingeben, die sie in einem Texteingabefeld zusammenfassen möchten.
llm = ChatGroq(mannequin="llama-3.2-11b-text-preview", groq_api_key=groq_api_key)
prompt_template = """
Present an in depth abstract of the next content material in 300 phrases:
Content material: {textual content}
"""
immediate = PromptTemplate(template=prompt_template, input_variables=("textual content"))
Das Modell verwendet eine Eingabeaufforderungsvorlage, um eine 300 Wörter lange Zusammenfassung des bereitgestellten Inhalts zu generieren. Diese Vorlage wird in die Zusammenfassungskette integriert, um den Prozess zu steuern.
Funktion zum Laden von YouTube-Inhalten definieren
In diesem Schritt definieren wir eine Funktion, die das Abrufen und Laden von Inhalten von YouTube übernimmt. Diese Funktion übernimmt die bereitgestellte URL, extrahiert relevante Videodaten und bereitet sie für die Analyse durch das in die App integrierte Modell für maschinelles Lernen vor.
def load_youtube_content(url):
ydl_opts = {'format': 'bestaudio/finest', 'quiet': True}
with YoutubeDL(ydl_opts) as ydl:
data = ydl.extract_info(url, obtain=False)
title = data.get("title", "Video")
description = data.get("description", "No description accessible.")
return f"{title}nn{description}"
Diese Funktion verwendet yt_dlp, um YouTube-Videoinformationen zu extrahieren, ohne sie herunterzuladen. Es gibt den Titel und die Beschreibung des Movies zurück, die vom LLM zusammengefasst werden.
Umgang mit der Zusammenfassungslogik
if st.button("Summarize"):
if not generic_url.strip():
st.error("Please present a URL to proceed.")
elif not validators.url(generic_url):
st.error("Please enter a legitimate URL (YouTube or web site).")
else:
strive:
with st.spinner("Processing..."):
# Load content material from URL
if "youtube.com" in generic_url:
# Load YouTube content material as a string
text_content = load_youtube_content(generic_url)
docs = (Doc(page_content=text_content))
else:
loader = UnstructuredURLLoader(
urls=(generic_url),
ssl_verify=False,
headers={"Person-Agent": "Mozilla/5.0"}
)
docs = loader.load()
# Summarize utilizing LangChain
chain = load_summarize_chain(llm, chain_type="stuff", immediate=immediate)
output_summary = chain.run(docs)
st.subheader("Detailed Abstract:")
st.success(output_summary)
besides Exception as e:
st.exception(f"Exception occurred: {e}")
- Wenn es sich um einen YouTube-Hyperlink handelt, extrahiert load_youtube_content den Inhalt, verpackt ihn in ein Dokument und speichert ihn in Dokumenten.
- Wenn es sich um eine Web site handelt, ruft UnstructuredURLLoader den Inhalt als Dokumente ab.
Ausführen der Zusammenfassungskette: Die LangChain-Zusammenfassungskette verarbeitet den geladenen Inhalt und generiert mithilfe der Eingabeaufforderungsvorlage und des LLM eine Zusammenfassung.
Um Ihrer App ein elegantes Aussehen zu verleihen und wichtige Informationen bereitzustellen, fügen wir mithilfe von Streamlit eine benutzerdefinierte Fußzeile hinzu. In dieser Fußzeile können wichtige Hyperlinks, Danksagungen oder Kontaktdaten angezeigt werden, um eine saubere und professionelle Benutzeroberfläche zu gewährleisten.
st.sidebar.header("Options Coming Quickly")
st.sidebar.write("- Choice to obtain summaries")
st.sidebar.write("- Language choice for summaries")
st.sidebar.write("- Abstract size customization")
st.sidebar.write("- Integration with different content material platforms")
st.sidebar.markdown("---")
st.sidebar.write("Developed with ❤️ by Gourav Lohar")
Ausgabe
Eingang: https://www.analyticsvidhya.com/weblog/2024/10/nvidia-nim/
YouTube-Videozusammenfassung
Eingabevideo:
Abschluss
Durch die Nutzung des LangChain-Frameworks haben wir die Interaktion mit dem leistungsstarken Llama 3.2-Sprachmodell optimiert und so die Erstellung hochwertiger Zusammenfassungen ermöglicht. Streamlit erleichterte die Entwicklung einer intuitiven und benutzerfreundlichen Webanwendung und machte das Zusammenfassungstool zugänglich und ansprechend.
Abschließend bietet der Artikel einen praktischen Ansatz und nützliche Ideen für die Erstellung eines umfassenden Zusammenfassungstools. Durch die Kombination modernster Sprachmodelle mit effizienten Frameworks und benutzerfreundlichen Schnittstellen können wir neue Möglichkeiten zur Erleichterung des Informationskonsums und zur Verbesserung des Wissenserwerbs in der heutigen inhaltsreichen Welt eröffnen.
Wichtige Erkenntnisse
- LangChain erleichtert die Entwicklung, indem es einen konsistenten Ansatz für die Interaktion mit Sprachmodellen, die Verwaltung von Eingabeaufforderungen und die Verkettung von Prozessen bietet.
- Das Llama 3.2-Modell von Groq API zeigt starke Fähigkeiten beim Verstehen und Verdichten von Informationen, was zu genauen und prägnanten Zusammenfassungen führt.
- Durch die Integration von Instruments wie yt-dlp und UnstructuredURLLoader kann die Anwendung problemlos Inhalte aus verschiedenen Quellen wie YouTube und Webartikeln verarbeiten.
- Der Internet Summaryr verwendet LangChain und Streamlit, um schnelle und genaue Zusammenfassungen von YouTube-Movies und Web sites bereitzustellen.
- Durch die Nutzung des Llama 3.2-Modells fasst der Internet-Summierer komplexe Inhalte effizient in leicht verständliche Zusammenfassungen zusammen.
Häufig gestellte Fragen
A. LangChain ist ein Framework, das die Interaktion mit großen Sprachmodellen vereinfacht. Es hilft bei der Verwaltung von Eingabeaufforderungen, der Verkettung von Vorgängen und dem Zugriff auf verschiedene LLMs und erleichtert so die Erstellung von Anwendungen wie dieser Zusammenfassung.
A. Llama 3.2 generiert qualitativ hochwertigen Textual content und zeichnet sich durch das Verstehen und Verdichten von Informationen aus, wodurch es sich intestine für Zusammenfassungsaufgaben eignet. Es ist auch ein Open-Supply-Modell.
A: Es kann zwar ein breites Spektrum an Inhalten verarbeiten, es bestehen jedoch Einschränkungen. Extrem lange Movies oder Artikel erfordern möglicherweise zusätzliche Funktionen wie Audiotranskription oder Textaufteilung für optimale Zusammenfassungen.
A. Derzeit ja. Zukünftige Verbesserungen könnten jedoch eine Sprachauswahl für eine breitere Anwendbarkeit beinhalten.
A. Sie müssen den bereitgestellten Code in einer Python-Umgebung ausführen, in der die erforderlichen Bibliotheken installiert sind. Überprüfen Sie GitHub auf den vollständigen Code und die Datei „necessities.txt“.
Die in diesem Artikel gezeigten Medien sind nicht Eigentum von Analytics Vidhya und werden nach Ermessen des Autors verwendet.