Abbiamo configurato questo repository e corso con un contenitore di sviluppo che include un runtime universale in grado di supportare lo sviluppo in Python3, .NET, Node.js e Java. La configurazione correlata è definita nel file devcontainer.json situato nella cartella .devcontainer/ alla radice di questo repository.
Per attivare il dev container, avvialo in GitHub Codespaces (per un runtime ospitato nel cloud) o in Docker Desktop (per un runtime ospitato localmente). Consulta questa documentazione per maggiori dettagli su come funzionano i dev container all’interno di VS Code.
Tip
Consigliamo di utilizzare GitHub Codespaces per iniziare rapidamente con il minimo sforzo. Offre una generosa quota di utilizzo gratuita per gli account personali. Configura i timeout per interrompere o eliminare i codespaces inattivi e massimizzare l’uso della tua quota.
Ogni lezione potrà includere assignment opzionali forniti in uno o più linguaggi di programmazione, tra cui: Python, .NET/C#, Java e JavaScript/TypeScript. Questa sezione offre indicazioni generali sull’esecuzione di tali assignment.
Gli assignment in Python sono forniti come applicazioni (.py) o notebook Jupyter (.ipynb).
- Per eseguire il notebook, aprilo in Visual Studio Code, quindi clicca su Select Kernel (in alto a destra) e seleziona l’opzione Python 3 predefinita. Ora puoi cliccare su Run All per eseguire tutto il notebook.
- Per eseguire applicazioni Python da linea di comando, segui le istruzioni specifiche dell’assignment per selezionare i file corretti e fornire gli argomenti richiesti.
Gli assignment possono essere configurati per funzionare con uno o più deployment di Large Language Model (LLM) tramite un provider di servizi supportato come OpenAI, Azure o Hugging Face. Questi forniscono un endpoint ospitato (API) a cui possiamo accedere programmaticamente con le credenziali corrette (chiave API o token). In questo corso, trattiamo i seguenti provider:
- OpenAI con modelli diversi, inclusa la serie principale GPT.
- Azure OpenAI per modelli OpenAI con focus sulla readiness enterprise
- Hugging Face per modelli open-source e server di inferenza
Per questi esercizi dovrai utilizzare i tuoi account personali. Gli assignment sono opzionali, quindi puoi scegliere di configurare uno, tutti o nessuno dei provider in base ai tuoi interessi. Ecco alcune indicazioni per la registrazione:
| Registrazione | Costo | Chiave API | Playground | Commenti |
|---|---|---|---|---|
| OpenAI | Prezzi | Basata su progetto | No-Code, Web | Modelli multipli disponibili |
| Azure | Prezzi | SDK Quickstart | Studio Quickstart | È necessario richiedere l’accesso in anticipo |
| Hugging Face | Prezzi | Token di accesso | Hugging Chat | Hugging Chat ha modelli limitati |
Segui le indicazioni qui sotto per configurare questo repository per l’uso con i diversi provider. Gli assignment che richiedono un provider specifico conterranno uno di questi tag nel nome del file:
aoai- richiede endpoint e chiave Azure OpenAIoai- richiede endpoint e chiave OpenAIhf- richiede token Hugging Face
Puoi configurare uno, nessuno o tutti i provider. Gli assignment correlati genereranno un errore in caso di credenziali mancanti.
Si presume che tu abbia già letto le indicazioni sopra, ti sia registrato presso il provider rilevante e abbia ottenuto le credenziali di autenticazione necessarie (API_KEY o token). Nel caso di Azure OpenAI, si presume inoltre che tu abbia un deployment valido di un servizio Azure OpenAI (endpoint) con almeno un modello GPT distribuito per il completamento chat.
Il passo successivo è configurare le tue variabili d’ambiente locali come segue:
-
Cerca nella cartella principale un file
.env.copyche dovrebbe contenere qualcosa di simile a questo:# OpenAI Provider OPENAI_API_KEY='<add your OpenAI API key here>' ## Azure OpenAI AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! AZURE_OPENAI_API_KEY='<add your AOAI key here>' AZURE_OPENAI_ENDPOINT='<add your AOIA service endpoint here>' AZURE_OPENAI_DEPLOYMENT='<add your chat completion model name here>' AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='<add your embeddings model name here>' ## Hugging Face HUGGING_FACE_API_KEY='<add your HuggingFace API or token here>'
-
Copia quel file in
.envusando il comando qui sotto. Questo file è gitignore-d, per mantenere i segreti al sicuro.cp .env.copy .env
-
Compila i valori (sostituisci i segnaposto a destra del
=) come descritto nella sezione successiva. -
(Opzionale) Se usi GitHub Codespaces, puoi salvare le variabili d’ambiente come Codespaces secrets associate a questo repository. In tal caso, non sarà necessario configurare un file .env locale. Tieni però presente che questa opzione funziona solo con GitHub Codespaces. Dovrai comunque configurare il file .env se usi Docker Desktop.
Diamo un’occhiata veloce ai nomi delle variabili per capire cosa rappresentano:
| Variabile | Descrizione |
|---|---|
| HUGGING_FACE_API_KEY | Questo è il token di accesso utente che hai configurato nel tuo profilo |
| OPENAI_API_KEY | Questa è la chiave di autorizzazione per usare il servizio OpenAI non Azure |
| AZURE_OPENAI_API_KEY | Questa è la chiave di autorizzazione per usare il servizio Azure OpenAI |
| AZURE_OPENAI_ENDPOINT | Questo è l’endpoint distribuito per una risorsa Azure OpenAI |
| AZURE_OPENAI_DEPLOYMENT | Questo è l’endpoint di deployment del modello per la generazione di testo |
| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Questo è l’endpoint di deployment del modello per gli embedding di testo |
Nota: Le ultime due variabili Azure OpenAI riflettono un modello predefinito per il completamento chat (generazione testo) e per la ricerca vettoriale (embedding) rispettivamente. Le istruzioni per configurarli saranno definite negli assignment rilevanti.
I valori dell’endpoint e della chiave Azure OpenAI si trovano nel Portale Azure, quindi iniziamo da lì.
- Vai al Portale Azure
- Clicca sull’opzione Keys and Endpoint nella barra laterale (menu a sinistra).
- Clicca su Show Keys - dovresti vedere: KEY 1, KEY 2 e Endpoint.
- Usa il valore di KEY 1 per AZURE_OPENAI_API_KEY
- Usa il valore di Endpoint per AZURE_OPENAI_ENDPOINT
Ora ci servono gli endpoint per i modelli specifici che abbiamo distribuito.
- Clicca sull’opzione Model deployments nella barra laterale (menu a sinistra) per la risorsa Azure OpenAI.
- Nella pagina di destinazione, clicca su Manage Deployments
Questo ti porterà al sito Azure OpenAI Studio, dove troveremo gli altri valori come descritto di seguito.
- Naviga su Azure OpenAI Studio dalla tua risorsa come descritto sopra.
- Clicca sulla scheda Deployments (barra laterale, sinistra) per vedere i modelli attualmente distribuiti.
- Se il modello desiderato non è distribuito, usa Create new deployment per distribuirlo.
- Ti servirà un modello di text-generation - consigliamo: gpt-35-turbo
- Ti servirà un modello di text-embedding - consigliamo text-embedding-ada-002
Ora aggiorna le variabili d’ambiente per riflettere il nome del Deployment usato. Di solito sarà lo stesso nome del modello, a meno che tu non l’abbia cambiato esplicitamente. Ad esempio, potresti avere:
AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo'
AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002'Non dimenticare di salvare il file .env quando hai finito. Ora puoi uscire dal file e tornare alle istruzioni per eseguire il notebook.
La tua chiave API OpenAI si trova nel tuo account OpenAI. Se non ne hai una, puoi registrarti e crearne una. Una volta ottenuta la chiave, puoi usarla per compilare la variabile OPENAI_API_KEY nel file .env.
Il tuo token Hugging Face si trova nel tuo profilo sotto Access Tokens. Non pubblicare o condividere questi token pubblicamente. Crea invece un nuovo token per l’uso in questo progetto e copialo nel file .env sotto la variabile HUGGING_FACE_API_KEY. Nota: tecnicamente non è una chiave API, ma viene usato per l’autenticazione, quindi manteniamo questa convenzione di denominazione per coerenza.
Disclaimer:
Questo documento è stato tradotto utilizzando il servizio di traduzione automatica Co-op Translator. Pur impegnandoci per garantire accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un umano. Non ci assumiamo alcuna responsabilità per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione.