Salta el contingut

1. Preparació de l'entorn

1. El portal d'Azure

Anem a treballar un concepte interessant en aquesta unitat, i és el que s'anomena AIaaS (Intel·ligència artificial as a service). Consistirà en fer servir plataformes amb models i eines ja entrenades, preparades per a utilitzar-les.

Començarem a treballar amb Azure, i podem veure la justificació ací.

Aquests materials complementaris són de Javier Catalá Jiménez.

1.1. Alta amb Azure amb compte educatiu

Actualment la Conselleria d'Educació disposa d'un contracte amb Microsoft on disposem d'un compte corporatiu, dins del domini @alu.edu.gva.es i @edu.gva.es per a alumnes i professors, respectivament. Amb aquest compte disposem de 100$ de saldo per a les recursos que utilitzem, i accès a la capa gratuïta dels serveis durant un any.

Aquests serveis tenen certes limitacions, con per exemple 5000 transaccions mensuals, suficients per a la nostra feina dins del curs.

Podem seguir el procediment d'alta en aquesta presentació

1.2. Alta amb compte gratuït

Suposadament amb aquesta capa gratuïta tindrem prou per a les tasques del nostre curs. Aquesta funcionarà sempre que ens quede algo de saldo. La solució és crear-te un nou compte, amb un correu distint, obviament on tindràs 200$ i la capa gratuita de nou durant un any.

El problema d'aquest recurs és que hem de posar el numero de la targeta de crèdit, amb la qual cosa hem de tenir molta cura de aturar els serveis que puguem arrancar, si no volem tindre sorpreses a final de més. Per sort, sembla que Microsoft abans de carregar-nos res ens enviarà un correu electrònic

capa gratuita

1.3. Configuració general de les API d'azure

Anem a veure com és funcionament general d'aquest serveis d'IA:

  1. Haurem de crear des de la plataforma el recurs que desitjem; veu, imatge, so, etc.
  2. Un cop creat, haurem de veure a la seua configuració els paràmetres:
    1. entrypoint → és la url del recurs, on farem les peticions del mateix
    2. key o token → és el identificador que ens ha assignat Azure per a fer ús del recurs.
  3. Des del nostre programa carregarem la llibreria per a connectar-nos
  4. Farem la petició
  5. Processarem els resultats

Pots veure el procés de creació als següents passos. En auqest cas veurem el de text, que és el primer que treballarem:

  1. Li creem un nou recurs de Anàlisi de text: peticions a la API

  2. Li diguem crear: peticions a la API

  3. Es deixen les característiques per defecte, sense afegir-ne cap altra: peticions a la API

  4. Indiquem que el grup de recursos, o el creem si és el primer cop (com a nom, UDCognitiveServices o simimlar) i un nou recurs d'Anàlisi de Text, per exemple TextAnalyticsDemoJoange peticions a la API

  5. Li indiquem el pla de pagament, gratuït. Revisem i llavors acceptem els termes de licència: peticions a la API

  6. Finalment creem: peticions a la API

  7. I ja tenim el servei a punt. peticions a la API

Podem fer les peticions mitjançant request, postman o curl, però ens serà més complicat, sobretot per temes de seguretat:

peticions a la API

La millor alternativa és fer servir les llibreries del SDK de Azure, disponibles per als llenguatges de programació més utilitzats:

peticions a la SDK

Aquest eines, a banda d'oferir objectes estructurats per a enviar i arreplegar la informació, encripten automàticament les peticions (i la informació que viatja amb elles), donant-li una major capa de protecció.

2. Preparació de l'entorn de treball

Aquesta guia explica com configurar l'entorn local per executar tots els exemples del curs.

2.1. Requisits previs

Comprova que tens Python instal·lat:

Bash
1
2
3
python --version
# o en alguns sistemes:
python3 --version

2.2. Pas 2: Crear un entorn virtual (recomanat)

Un entorn virtual aïlla les dependències d'aquest projecte de la resta del sistema.

Text Only
python -m venv .venv
.venv\Scripts\activate
Bash
python3 -m venv .venv
source .venv/bin/activate

Quan l'entorn està actiu, veuràs (.venv) al principi de la línia de comandes.

2.3. Pas 3: Instal·lar les dependències

Amb l'entorn virtual actiu:

Bash
pip install -r requirements.txt

Això instal·larà automàticament:

Paquet Ús
azure-ai-vision-imageanalysis Azure AI Vision
azure-ai-textanalytics Azure AI Language
azure-cognitiveservices-speech Azure AI Speech
openai Azure OpenAI
requests Azure AI Translator
python-dotenv Gestió de credencials
mkdocs + mkdocs-material Compilar aquesta documentació

Linux: el servei de Speech pot necessitar paquets del sistema addicionals:

Bash
sudo apt-get install libssl-dev libasound2

2.4. Pas 4: Configurar les credencials

Totes les credencials es gestionen mitjançant el fitxer .env que trobaràs a l'arrel del projecte.

2.4.1. 4.1 Obrir el fitxer .env

Bash
1
2
3
# El fitxer ja existeix, només cal omplir-lo:
nano .env        # Linux/macOS
notepad .env     # Windows

2.4.2. 4.2 Estructura del fitxer

INI
# Azure AI Vision
VISION_ENDPOINT=https://<nom-recurs>.cognitiveservices.azure.com/
VISION_KEY=<la-teva-clau>

# Azure AI Language
LANGUAGE_ENDPOINT=https://<nom-recurs>.cognitiveservices.azure.com/
LANGUAGE_KEY=<la-teva-clau>

# Azure AI Speech
SPEECH_KEY=<la-teva-clau>
SPEECH_REGION=westeurope

# Azure OpenAI
OPENAI_ENDPOINT=https://<nom-recurs>.openai.azure.com/
OPENAI_KEY=<la-teva-clau>
OPENAI_DEPLOYMENT=gpt35-practica

# Azure AI Translator
TRANSLATOR_KEY=<la-teva-clau>
TRANSLATOR_REGION=westeurope

2.4.3. 4.3 On trobar les credencials al portal d'Azure

  1. Ves a portal.azure.com
  2. Obre el recurs del servei corresponent
  3. Al menú esquerre, fes clic a "Claus i punt de connexió" (o Keys and Endpoint)
  4. Copia la Clau 1 i l'Endpoint

Seguretat

El fitxer .env conté informació sensible. Mai el pugis a GitHub ni el comparteixis. Comprova que .env apareix al fitxer .gitignore.

2.5. Pas 5: Verificar la instal·lació

Executa el següent script per comprovar que tot funciona:

Bash
1
2
3
4
5
6
7
8
9
python -c "
import azure.ai.vision.imageanalysis
import azure.ai.textanalytics
import azure.cognitiveservices.speech
import openai
import requests
from dotenv import load_dotenv
print('Totes les dependències instal·lades correctament!')
"