Vai al contenuto

Cercare Immagini con Vettori: Guida Tecnica su Azure OpenAI e AI Search

Scopri come implementare un sistema avanzato di ricerca delle immagini utilizzando le infinite potenzialità di Azure.

La ricerca di immagini tramite vettori rappresenta una **soluzione innovativa** che trasforma la modalità di recupero delle immagini nel contesto digitale. Questo articolo esplorerà le sinergie tra l’**Azure OpenAI** e l’**Azure AI Search**, presentando un approccio dettagliato da seguire per sviluppatori e operatori del settore. Discuteremo step by step come effettuare la configurazione, il deployment e l’utilizzo di queste tecnologie per ottimizzare le ricerche visive, con particolare attenzione ai metodi di ricerca e vettorizzazione definiti nella **function_app.py**.

Prerequisiti per iniziare con questo progetto includono:

  • Un account Azure con un abbonamento attivo, per il quale puoi registrarti gratuitamente.
  • Un account di archiviazione Azure per memorizzare le immagini, da creare seguendo questo link.
  • Servizi Azure AI Search configurabili in qualsiasi regione, segui questo link o verifica un servizio esistente.
  • Un servizio Azure OpenAI per ogni livello e regione, per cui le istruzioni sono disponibili qui.
  • Strumenti utili: Azure CLI, Visual Studio Code e Postman per testare le API.

Impostazione del servizio AI Search

È fondamentale caricare i file di schema di Azure AI Search che specificano le informazioni sul indice, l’indexer e il skillset per la memorizzazione e il processamento delle immagini. Questi elementi devono essere impostati tramite l’interfaccia del portale Azure.

> Passo 1: Crea un nuovo indice utilizzando il file di definizione JSON vector-image-index-db.json.

> Passo 2: Crea un nuovo indexer usando il file vector-image-indexer.json.

> Passo 3: Crea un nuovo skillset utilizzando il file di definizione JSON vector-image-skillset.json.

Questi passaggi sono essenziali affinché l’ingestione, la trasformazione e l’indicizzazione dei dati delle immagini avvengano in modo efficiente, abilitando così ricerche efficaci e veloci.

Impostazione delle Azure Functions

Le variabili di configurazione sono fondamentali e vanno impostate nel file local.settings.json. Le variabili chiave da configurare comprendono:

export AZURE_OPENAI_API_KEY=export AZURE_OPENAI_ENDPOINT=export OPEN_AI_MODEL=gpt-35-turboexport API_VERSION=2024-02-01export AI_VISION_ENDPOINT=export AI_VISION_API_KEY=export AI_SEARCH_SERVICE_ENDPOINT=export AZURE_SEARCH_ADMIN_KEY=export AI_SEARCH_INDEX_NAME=export ACCOUNT_KEY=

Un’appropriata impostazione di queste variabili nel pannello di configurazione dell’applicazione Azure Function assicura una gestione corretta.

Workflow di GitHub Actions

Il deployment della funzione avviene automaticamente tramite un workflow di GitHub Action. La funzione si occupa di trattare i dati delle immagini e di effettuare ricerche di similarità utilizzando Azure AI Search, attraverso due metodi fondamentali: vectorize e search.

Per una corretta operatività del workflow, è necessario impostare i seguenti segreti nel tuo repository GitHub:

  • AZURE_RBAC_CREDENTIALS: Credenziali del servizio Azure con accesso all’abbonamento Azure. maggiori dettagli qui.
  • AZURE_FUNCTIONAPP_PUBLISH_PROFILE_PREMIUM: Pubblica il profilo per l’app della funzione Azure. maggiori dettagli qui.

Testare la Soluzione

Per testare la soluzione:

  • Carica i file nell’archiviazione e avvia l’indexer di Azure AI Search per la generazione delle embedded.
  • Monitora il processo di indicizzazione tramite il portale Azure.

Utilizza l’API di ricerca per effettuare query basate su vettori, consentendo un accesso efficiente alle immagini più simili ai criteri di ricerca definiti.

Concludendo, questa guida tecnica ha fornito le basi per combinare Azure OpenAI e Azure AI Search, implementando una tecnica di ricerca delle immagini tramite vettori all’avanguardia. L’adozione di questa tecnologia non solo facilita ma ottimizza notevolmente il processo di recupero delle immagini, rendendolo adatto per settori come l’e-commerce e la gestione dei contenuti digitali.