1. Introduzione
Scopri come analizzare le visualizzazioni degli influencer su YouTube per qualsiasi azienda o prodotto utilizzando le funzionalità di AI generativa di Google.
Con l'avvento degli LLM, attingere a informazioni da un'ampia gamma di fonti, come bilanci, visualizzazioni sulle piattaforme di social media e opinioni degli influencer, è diventato ancora più semplice.
Gli influencer dei social media, in particolare nel mondo della tecnologia e della finanza, sono sempre più considerati i principali sostenitori di un'organizzazione o dei prodotti e delle politiche dei suoi concorrenti.
Cosa creerai
In questo codelab, esplorerai come il modello PaLM2 in Vertex AI e Langchain si combinano per la soluzione di analisi degli influencer di YouTube.
Ambiente
Vai a https://colab.research.google.com/#create=true per creare un nuovo notebook nell'ambiente sandbox di Google Colab.
2. Installare i pacchetti e autenticarsi
Nella prima cella del nuovo blocco note, utilizza questi comandi per installare i pacchetti richiesti.
!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
Ti verrà chiesto di riavviare la macchina di runtime dopo l'installazione dei pacchetti precedenti. Fai clic su RIAVVIA RUNTIME o seleziona Riavvia runtime dal menu Runtime.
Autenticare il tuo account Google Cloud
Il tuo account deve avere il ruolo Utente Vertex AI.
- Apri la console Google Cloud e cerca il servizio IAM e amministrazione. Nella scheda AUTORIZZAZIONI, in VISUALIZZA PER ENTITÀ, seleziona CONCEDI ACCESSO. Inserisci / seleziona la tua entità, quindi aggiungi il ruolo "Utente Vertex AI" e SALVA, come mostrato nell'immagine seguente:

Ora torna alla scheda Colab e inserisci lo snippet di codice riportato di seguito nella seconda cella del file di lavoro corrente. Verrà eseguita la verifica dell'autenticazione.
from google.colab import auth as google_auth
google_auth.authenticate_user()
Ti verrà chiesto di consentire l'accesso. Continua a farlo.
3. Inizializza e importa
Inizializza il progetto inserendo lo snippet riportato di seguito nella cella successiva.
import vertexai
PROJECT_ID = "<projectid>" #enter your project id here
vertexai.init(project=PROJECT_ID)
Importa le librerie per la soluzione
Utilizza questi comandi per importare le librerie richieste.
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
Inizializza il modello LLM Vertex AI
Utilizza questo snippet di codice per inizializzare il modello LLM Vertex AI. In questo modo, "llm" viene inizializzato con il modello Text-Bison di Vertex AI.
!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. Avviare gli incorporamenti
Utilizzeremo gli embedding di Vertex AI per convertire i segmenti video in embedding. In questa parte del codice, inizializzeremo solo l'oggetto degli incorporamenti. Nella sezione di archiviazione e recupero, applicheremo gli embedding ai chunk creati dal video.
Il chunking nell'AI generativa è il processo di suddivisione di contenuti di grandi dimensioni in parti più piccole e gestibili o "chunk". Ciò avviene perché i modelli di AI generativa hanno limiti alla quantità di dati che possono elaborare contemporaneamente. Suddividendo i dati in blocchi, il modello può concentrarsi su un blocco alla volta e generare output più accurati e coerenti.
Gli embedding sono un modo per rappresentare i contenuti come un vettore di numeri. Ciò consente ai computer di comprendere il significato dei dati in modo più sofisticato rispetto ai metodi tradizionali, come il rilevamento degli scatti o l'estrazione dei keyframe, se si tratta di video, e il modello bag-of-words, se si tratta di dati linguistici.
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. Caricare e dividere il video in segmenti
Carica il video da riassumere o da cui porre domande.
loader = YoutubeLoader.from_youtube_url("https://www.youtube.com/watch?v=A8jyW_6hCGU&t=161s", add_video_info=True)
result = loader.load()
Dividere il video
Dividi il video in più parti utilizzando la tecnica di suddivisione ricorsiva dei caratteri.
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1500, chunk_overlap=0)
docs = text_splitter.split_documents(result)
print(f"# of documents = {len(docs)}")
6. Archiviazione e recupero
Archiviare i documenti
Per questo esercizio, utilizziamo ChromaDB. Puoi anche utilizzare Vertex AI Vector Search. Archivia i tuoi documenti e indicizzali in ChromaDB come archivio vettoriale. ChromaDB viene utilizzato per archiviare e recuperare gli incorporamenti vettoriali da utilizzare con gli LLM ed eseguire la ricerca semantica nei dati.
db = Chroma.from_documents(docs, embeddings)
retriever = db.as_retriever(search_type="similarity", search_kwargs={"k": 2})
Crea una catena di recupero
Crea una catena di recupero per rispondere alla domanda. È qui che associamo il modello LLM Vertex AI Text Bison e il recuperatore che recupera gli incorporamenti da Chroma DB.
qa = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=retriever, return_source_documents=True)
7. Definisci il prompt
Definisci il prompt per fare domande e ottenere risposte dai contenuti indicizzati.
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. Integra l'applicazione LLM
Integra l'applicazione LLM con Gradio per un'interazione visiva del front-end.
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. Testare la soluzione
Ora procediamo a testare la soluzione. Esegui la cella contenente il codice riportato sopra. Visualizza l'interfaccia utente nel risultato della cella o fai clic sul link generato. Dovresti essere in grado di visualizzare l'interfaccia con i componenti di input e output. Inserisci una domanda sul video e visualizza la risposta del modello.

In questo modo, ora possiamo integrare i video di YouTube e analizzarli utilizzando i modelli dell'API Vertex AI PaLM. Puoi estenderlo ulteriormente per l'integrazione con database o data warehouse. Consulta la documentazione del prodotto Vertex AI LLM per saperne di più sui modelli disponibili.
10. Complimenti!
Complimenti! Hai utilizzato correttamente un programma LLM di generazione di testo di Vertex AI in modo programmatico per eseguire l'analisi del testo sui tuoi dati utilizzando solo query SQL. Consulta la documentazione del prodotto Vertex AI LLM per scoprire di più sui modelli disponibili.