Configurámos este repositório e curso com um contentor de desenvolvimento que possui um runtime Universal capaz de suportar desenvolvimento em Python3, .NET, Node.js e Java. A configuração relacionada está definida no ficheiro devcontainer.json localizado na pasta .devcontainer/ na raiz deste repositório.
Para ativar o contentor de desenvolvimento, inicie-o no GitHub Codespaces (para um runtime alojado na cloud) ou no Docker Desktop (para um runtime alojado localmente). Leia esta documentação para mais detalhes sobre como funcionam os contentores de desenvolvimento no VS Code.
Tip
Recomendamos usar o GitHub Codespaces para um início rápido com esforço mínimo. Ele oferece uma generosa quota de uso gratuita para contas pessoais. Configure timeouts para parar ou eliminar codespaces inativos e assim maximizar a utilização da sua quota.
Cada aula terá trabalhos opcionais que podem ser fornecidos numa ou mais linguagens de programação, incluindo: Python, .NET/C#, Java e JavaScript/TypeScript. Esta secção fornece orientações gerais relacionadas com a execução desses trabalhos.
Os trabalhos em Python são fornecidos como aplicações (.py) ou notebooks Jupyter (.ipynb).
- Para executar o notebook, abra-o no Visual Studio Code, clique em Select Kernel (no canto superior direito) e selecione a opção padrão Python 3 apresentada. Pode agora clicar em Run All para executar o notebook.
- Para executar aplicações Python a partir da linha de comandos, siga as instruções específicas do trabalho para garantir que seleciona os ficheiros corretos e fornece os argumentos necessários.
Os trabalhos podem também estar configurados para funcionar com uma ou mais implementações de Large Language Models (LLM) através de um fornecedor de serviços suportado como OpenAI, Azure ou Hugging Face. Estes fornecem um endpoint alojado (API) que podemos aceder programaticamente com as credenciais corretas (chave API ou token). Neste curso, abordamos estes fornecedores:
- OpenAI com diversos modelos, incluindo a série principal GPT.
- Azure OpenAI para modelos OpenAI com foco em prontidão empresarial
- Hugging Face para modelos open-source e servidor de inferência
Vai precisar de usar as suas próprias contas para estes exercícios. Os trabalhos são opcionais, por isso pode escolher configurar um, todos - ou nenhum - dos fornecedores conforme os seus interesses. Algumas orientações para registo:
| Registo | Custo | Chave API | Playground | Comentários |
|---|---|---|---|---|
| OpenAI | Preços | Baseado em projeto | Sem código, Web | Vários Modelos Disponíveis |
| Azure | Preços | Início rápido SDK | Início rápido Studio | É necessário solicitar acesso antecipadamente |
| Hugging Face | Preços | Tokens de Acesso | Hugging Chat | Hugging Chat tem modelos limitados |
Siga as instruções abaixo para configurar este repositório para uso com diferentes fornecedores. Os trabalhos que requerem um fornecedor específico terão uma destas etiquetas no nome do ficheiro:
aoai- requer endpoint e chave Azure OpenAIoai- requer endpoint e chave OpenAIhf- requer token Hugging Face
Pode configurar um, nenhum ou todos os fornecedores. Os trabalhos relacionados simplesmente apresentarão erro se faltarem credenciais.
Assumimos que já leu as orientações acima, registou-se no fornecedor relevante e obteve as credenciais de autenticação necessárias (API_KEY ou token). No caso do Azure OpenAI, assumimos também que tem uma implementação válida de um Serviço Azure OpenAI (endpoint) com pelo menos um modelo GPT implementado para chat completion.
O próximo passo é configurar as suas variáveis de ambiente locais da seguinte forma:
-
Procure na pasta raiz um ficheiro
.env.copyque deverá ter um conteúdo semelhante a este:# 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>'
-
Copie esse ficheiro para
.envusando o comando abaixo. Este ficheiro está gitignore-d, mantendo os segredos seguros.cp .env.copy .env
-
Preencha os valores (substitua os espaços reservados à direita do
=) conforme descrito na secção seguinte. -
(Opcional) Se usar GitHub Codespaces, tem a opção de guardar as variáveis de ambiente como segredos do Codespaces associados a este repositório. Nesse caso, não precisará de configurar um ficheiro .env local. No entanto, note que esta opção funciona apenas se usar GitHub Codespaces. Ainda precisará de configurar o ficheiro .env se usar Docker Desktop.
Vamos dar uma vista rápida aos nomes das variáveis para entender o que representam:
| Variável | Descrição |
|---|---|
| HUGGING_FACE_API_KEY | Este é o token de acesso do utilizador que configurou no seu perfil |
| OPENAI_API_KEY | Esta é a chave de autorização para usar o serviço para endpoints OpenAI não Azure |
| AZURE_OPENAI_API_KEY | Esta é a chave de autorização para usar esse serviço |
| AZURE_OPENAI_ENDPOINT | Este é o endpoint implementado para um recurso Azure OpenAI |
| AZURE_OPENAI_DEPLOYMENT | Este é o endpoint de implementação do modelo de geração de texto |
| AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | Este é o endpoint de implementação do modelo de embeddings de texto |
Nota: As duas últimas variáveis do Azure OpenAI refletem um modelo padrão para chat completion (geração de texto) e pesquisa vetorial (embeddings), respetivamente. As instruções para configurá-las serão definidas nos trabalhos relevantes.
Os valores do endpoint e da chave Azure OpenAI serão encontrados no Portal Azure, por isso vamos começar por aí.
- Aceda ao Portal Azure
- Clique na opção Keys and Endpoint na barra lateral (menu à esquerda).
- Clique em Show Keys - deverá ver o seguinte: KEY 1, KEY 2 e Endpoint.
- Use o valor de KEY 1 para AZURE_OPENAI_API_KEY
- Use o valor do Endpoint para AZURE_OPENAI_ENDPOINT
De seguida, precisamos dos endpoints para os modelos específicos que implementámos.
- Clique na opção Model deployments na barra lateral (menu à esquerda) do recurso Azure OpenAI.
- Na página de destino, clique em Manage Deployments
Isto levará ao website Azure OpenAI Studio, onde encontraremos os outros valores conforme descrito abaixo.
- Navegue para o Azure OpenAI Studio a partir do seu recurso conforme descrito acima.
- Clique no separador Deployments (barra lateral, à esquerda) para ver os modelos atualmente implementados.
- Se o modelo desejado não estiver implementado, use Create new deployment para o implementar.
- Vai precisar de um modelo de text-generation - recomendamos: gpt-35-turbo
- Vai precisar de um modelo de text-embedding - recomendamos text-embedding-ada-002
Agora atualize as variáveis de ambiente para refletir o nome da implementação usado. Normalmente será o mesmo nome do modelo, a menos que o tenha alterado explicitamente. Por exemplo, poderá ter:
AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo'
AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002'Não se esqueça de guardar o ficheiro .env quando terminar. Pode agora sair do ficheiro e voltar às instruções para executar o notebook.
A sua chave API OpenAI pode ser encontrada na sua conta OpenAI. Se não tiver uma, pode criar uma conta e gerar uma chave API. Depois de obter a chave, pode usá-la para preencher a variável OPENAI_API_KEY no ficheiro .env.
O seu token Hugging Face pode ser encontrado no seu perfil em Access Tokens. Não publique nem partilhe estes publicamente. Em vez disso, crie um novo token para uso neste projeto e copie-o para o ficheiro .env na variável HUGGING_FACE_API_KEY. Nota: Tecnicamente, isto não é uma chave API, mas é usado para autenticação, por isso mantemos esta convenção de nomes para consistência.
Aviso Legal:
Este documento foi traduzido utilizando o serviço de tradução automática Co-op Translator. Embora nos esforcemos pela precisão, por favor tenha em conta que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes da utilização desta tradução.