1. Einführung
Hier erfahren Sie, wie Sie mit den generativen KI-Funktionen von Google die Ansichten von Influencern auf YouTube zu einem beliebigen Unternehmen oder Produkt analysieren können.
Mit dem Aufkommen von LLMs, die Erkenntnisse aus einer Vielzahl von Quellen wie Bilanzen und Ansichten auf Social-Media-Plattformen gewinnen, ist es noch einfacher geworden, die Meinungen von Influencern zu berücksichtigen.
Social-Media-Influencer, insbesondere in der Tech- und Finanzwelt, werden zunehmend als wichtige Befürworter eines Unternehmens oder der Produkte und Richtlinien seiner Wettbewerber angesehen.
Aufgaben
In diesem Codelab erfahren Sie, wie das PaLM2-Modell in Vertex AI und Langchain für die YouTube-Influencer-Analyselösung zusammenarbeiten.
Umgebung
Rufen Sie https://colab.research.google.com/#create=true auf, um ein neues Notebook in der Google Colab-Sandbox-Umgebung zu erstellen.
2. Pakete installieren und authentifizieren
Verwenden Sie in der ersten Zelle des neuen Notebooks diese Befehle, um die erforderlichen Pakete zu installieren.
!pip install google-cloud-aiplatform
!pip install langchain
!pip install chromadb
!pip install pytube
!pip install youtube-transcript-api
!pip install gradio
from google.cloud import aiplatform
Sie werden aufgefordert, die Laufzeitmaschine nach der Installation der oben genannten Pakete neu zu starten. Klicken Sie auf „Laufzeit neu starten“ oder wählen Sie im Menü „Laufzeit“ die Option „Laufzeit neu starten“ aus.
Google Cloud-Konto authentifizieren
Ihr Konto muss die Rolle Vertex AI-Nutzer haben.
- Öffnen Sie die Google Cloud Console und suchen Sie nach dem Dienst „IAM und Verwaltung“. Wählen Sie auf dem Tab „BERECHTIGUNGEN“ unter „NACH HAUPTKONTEN ANSEHEN“ die Option „ZUGRIFF GEWÄHREN“ aus. Geben Sie Ihr Hauptkonto ein oder wählen Sie es aus und fügen Sie dann die Rolle „Vertex AI-Nutzer“ hinzu und klicken Sie auf „SPEICHERN“, wie in der Abbildung unten gezeigt:

Kehren Sie jetzt zum Colab-Tab zurück und geben Sie das folgende Code-Snippet in die zweite Zelle der aktuellen Arbeitsdatei ein. Dadurch wird die Authentifizierung überprüft.
from google.colab import auth as google_auth
google_auth.authenticate_user()
Sie werden aufgefordert, den Zugriff zuzulassen. Fahren Sie damit fort.
3. Initialisieren und importieren
Initialisieren Sie Ihr Projekt, indem Sie das folgende Snippet in die nächste Zelle eingeben.
import vertexai
PROJECT_ID = "<projectid>" #enter your project id here
vertexai.init(project=PROJECT_ID)
Bibliotheken für die Lösung importieren
Verwenden Sie diese Befehle, um die erforderlichen Bibliotheken zu importieren.
from langchain.document_loaders import YoutubeLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.vectorstores import Chroma
from langchain.chains import RetrievalQA
from langchain.llms import VertexAI
Vertex AI LLM-Modell initialisieren
Verwenden Sie dieses Code-Snippet, um das Vertex AI LLM-Modell zu initialisieren. Dadurch wird „llm“ mit dem Text-Bison-Modell von Vertex AI initialisiert.
!python3 -m pip install langchain
llm = VertexAI(
model_name="text-bison@001",
max_output_tokens=256,
temperature=0.1,
top_p=0.8,
top_k=40,
verbose=True,
)
4. Einbettungen initiieren
Wir verwenden die Vertex AI-Einbettungen, um die Video-Chunks in Einbettungen umzuwandeln. In diesem Teil des Codes initialisieren wir nur das Einbettungsobjekt. Im Abschnitt „Speichern und abrufen“ wenden wir die Einbettungen auf die aus dem Video erstellten Chunks an.
Chunking in der generativen KI ist der Prozess, bei dem große Inhalte in kleinere, überschaubare Teile oder „Chunks“ aufgeteilt werden. Das ist erforderlich, da generative KI-Modelle nur eine begrenzte Menge an Daten gleichzeitig verarbeiten können. Durch das Chunking der Daten kann sich das Modell jeweils auf einen Chunk konzentrieren und genauere und kohärentere Ergebnisse generieren.
Einbettungen sind eine Möglichkeit, Inhalte als Vektor von Zahlen darzustellen. So können Computer die Bedeutung von Daten auf eine anspruchsvollere Weise verstehen als mit herkömmlichen Methoden wie der Szenenerkennung oder der Keyframe-Extraktion bei Videos und dem Bag-of-Words-Ansatz bei Sprachdaten.
from langchain.embeddings import VertexAIEmbeddings
# Embedding
EMBEDDING_QPM = 100
EMBEDDING_NUM_BATCH =5
embeddings = VertexAIEmbeddings(
requests_per_minute=EMBEDDING_QPM,
num_instances_per_batch=EMBEDDING_NUM_BATCH,
)
5. Video laden und in Chunks aufteilen
Laden Sie das Video, um es zusammenzufassen oder Fragen dazu zu stellen.
loader = YoutubeLoader.from_youtube_url("https://www.youtube.com/watch?v=A8jyW_6hCGU&t=161s", add_video_info=True)
result = loader.load()
Video aufteilen
Teilen Sie das Video mit der Recursive Character Splitter-Technik in mehrere Chunks auf.
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1500, chunk_overlap=0)
docs = text_splitter.split_documents(result)
print(f"# of documents = {len(docs)}")
6. Speichern und abrufen
Dokumente speichern
Für diese Übung verwenden wir ChromaDB. Sie können auch die Vertex AI-Vektorsuche verwenden. Speichern Sie Ihre Dokumente und indexieren Sie sie in ChromaDB als Vektorspeicher. ChromaDB wird verwendet, um Vektoreinbettungen für die Verwendung mit LLMs zu speichern und abzurufen und um semantische Suchen in Daten durchzuführen.
db = Chroma.from_documents(docs, embeddings)
retriever = db.as_retriever(search_type="similarity", search_kwargs={"k": 2})
Abruferkette erstellen
Erstellen Sie eine Abruferkette, um die Frage zu beantworten. Hier verknüpfen wir das Vertex AI Text Bison-Modell LLM und den Abrufer, der die Einbettungen aus Chroma DB abruft.
qa = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=retriever, return_source_documents=True)
7. Prompt definieren
Definieren Sie Ihren Prompt, um Fragen zu stellen und Antworten aus den indexierten Inhalten zu erhalten.
def sm_ask(question, print_results=True):
video_subset = qa({"query": question})
context = video_subset
prompt = f"""
Answer the following question in a detailed manner, using information from the text below. If the answer is not in the text,say I dont know and do not generate your own response.
Question:
{question}
Text:
{context}
Question:
{question}
Answer:
"""
parameters = {
"temperature": 0.1,
"max_output_tokens": 256,
"top_p": 0.8,
"top_k": 40
}
response = llm.predict(prompt, **parameters)
return {
"answer": response
}
8. LLM-Anwendung integrieren
Integrieren Sie die LLM-Anwendung mit Gradio für eine visuelle Frontend-Interaktion.
import gradio as gr
def get_response(input_text):
response = sm_ask(input_text)
return response
grapp = gr.Interface(fn=get_response, inputs="text", outputs="text")
grapp.launch()
9. Lösung testen
Jetzt testen wir die Lösung. Führen Sie die Zelle mit dem oben genannten Code aus. Sie können die Benutzeroberfläche entweder im Zellenergebnis ansehen oder auf den generierten Link klicken. Sie sollten die Benutzeroberfläche mit den Eingabe- und Ausgabekomponenten visualisieren können. Geben Sie eine Frage zum Video ein und sehen Sie sich die Antwort des Modells an.

So können wir jetzt YouTube-Videos einbinden und mit den Vertex AI PaLM API-Modellen analysieren. Sie können dies weiter ausbauen, um Datenbanken oder Data Warehouses zu integrieren. Weitere Informationen zu den verfügbaren Modellen finden Sie in der Produktdokumentation zu Vertex AI LLM.
10. Glückwunsch!
Glückwunsch! Sie haben ein Vertex AI Text Generation LLM-Programm erfolgreich verwendet, um Textanalysen für Ihre Daten durchzuführen und dabei nur SQL-Abfragen verwendet. Weitere Informationen zu den verfügbaren Modellen finden Sie in der Produktdokumentation zu Vertex AI LLM.