Integrar o OpenAI do Azure ao seu aplicativo
O OpenAI do Azure oferece SDKs específicos de linguagem e uma API REST que os desenvolvedores podem usar para adicionar funcionalidade de IA aos seus aplicativos. As funcionalidades de IA generativa no OpenAI do Azure são fornecidas por meio de modelos. Os modelos disponíveis no serviço de OpenAI do Azure pertencem a famílias diferentes, cada uma com o próprio foco. Para usar um desses modelos, você precisa implantar por meio do Serviço OpenAI do Azure.
Criar um recurso OpenAI do Azure
Um recurso de OpenAI do Azure pode ser implantado por meio da CLI (interface de linha de comando) do Azure e do portal do Azure. A criação do recurso de OpenAI do Azure por meio do portal do Azure é semelhante à implantação de recursos Serviços de IA do Azure e faz parte dos Serviços de IA do Azure.
- Navegue até o portal do Azure
- Pesquise pelo OpenAI do Azure, selecione-o e clique em Criar
- Insira os valores apropriados para os campos vazios e crie o recurso.
No momento, as regiões possíveis para o OpenAI do Azure são limitadas. Escolha a região mais próxima da sua localização física ou a mais próxima que tenha a disponibilidade para o(s) modelo(s) que você deseja usar.
Depois que o recurso for criado, você terá chaves e um ponto de extremidade que pode usar em seu aplicativo.
Escolher e implantar um modelo
Cada família de modelos se destaca em tarefas diferentes e há diferentes funcionalidades dos modelos em cada família. As famílias de modelos são divididas em três famílias principais:
- GPT (transformador pré-treinado gerativo) – modelos que entendem e geram linguagem natural e algum código. Esses modelos são melhores em tarefas gerais, conversas e formatos de chat.
- Código (
gpt-3
e anterior) – modelos de código são criados com base em modelos de GPT e treinados em milhões de linhas de código. Esses modelos podem entender e gerar código, incluindo a interpretação de comentários ou linguagem natural para gerar código. Modelosgpt-35-turbo
e posteriores têm essa funcionalidade de código incluída sem a necessidade de um modelo de código separado. - Inserções – esses modelos podem entender e usar inserções, que são um formato especial de dados que podem ser usados por modelos e algoritmos de machine learning.
Este módulo se concentra em modelos gerais de GPT, com outros modelos sendo abordados em outros módulos.
Para modelos mais antigos, a família do modelo e a funcionalidade são indicadas no nome do modelo base, como text-davinci-003
, que especifica que ele é um modelo de texto, com capacidade de nível davinci
e o identificador 3
. Detalhes sobre modelos, níveis de funcionalidade e convenções de nomenclatura podem ser encontrados na página da Documentação de modelos de OpenAI do Azure.
Modelos mais recentes especificam qual geração de gpt
e se são da versão turbo
, como gpt-35-turbo
representando o modelo GPT 3.5 Turbo.
Para implantar um modelo para você usar, navegue até o Estúdio de IA do Azure e vá para a página Implantações. O laboratório mais adiante neste módulo aborda exatamente como fazer isso.
Autenticação e especificação do modelo implantado
Ao implantar um modelo no OpenAI do Azure, você escolhe um nome de implantação para dar a ele. Ao configurar o aplicativo, você precisa especificar o ponto de extremidade do recurso, a chave e o nome da implantação para especificar para qual modelo de implantação enviar sua solicitação. Isso permite implantar vários modelos dentro do mesmo recurso e fazer solicitações para o modelo apropriado, dependendo da tarefa.
Engenharia de prompt
A forma como o prompt de entrada é gravado desempenha um papel importante em como o modelo de IA responderá. Por exemplo, se receber uma solicitação simples como "O que é o OpenAI do Azure", você geralmente obtém uma resposta genérica semelhante ao uso de um mecanismo de pesquisa.
No entanto, se você fornecer mais detalhes sobre o que deseja na resposta, obterá uma resposta mais específica. Por exemplo, dado este prompt:
Classify the following news headline into 1 of the following categories: Business, Tech, Politics, Sport, Entertainment
Headline 1: Donna Steffensen Is Cooking Up a New Kind of Perfection. The Internet’s most beloved cooking guru has a buzzy new book and a fresh new perspective
Category: Entertainment
Headline 2: Major Retailer Announces Plans to Close Over 100 Stores
Category:
Você provavelmente obterá a "Categoria:" na manchete preenchida com "Negócios".
Vários exemplos semelhantes a este podem ser encontrados no Playground do Estúdio de IA do Azure, na lista suspensa Amostras de prompts. Tente ser o mais específico possível sobre o que você deseja na resposta do modelo e você poderá se surpreender com o quão perspicaz ele pode ser!
Observação
Nunca é seguro assumir que as respostas de um modelo de IA são factuais ou corretas. Equipes ou indivíduos encarregados de desenvolver e implantar sistemas de IA devem trabalhar para identificar, medir e mitigar os danos. É sua responsabilidade verificar as respostas de um modelo de IA e usar a IA de modo responsável. Confira as Notas de Transparência da Microsoft sobre o OpenAI do Azure para obter mais diretrizes sobre como usar modelos de OpenAI do Azure de forma responsável.
Mais detalhes podem ser encontrados na página de documentação da Engenharia de prompt.
Pontos de extremidade disponíveis
O OpenAI do Azure pode ser acessado por meio de uma API REST ou de um SDK disponível para Python, C#, JavaScript e outros. Os pontos de extremidade disponíveis para interagir com um modelo implantado são usados de maneiras diferentes e determinados pontos de extremidade só podem usar determinados modelos. Os pontos de extremidade disponíveis são:
- Preenchimento – o modelo recebe um prompt de entrada e gera um ou mais preenchimentos previstos. Você verá esse playground no estúdio, mas ele não será abordado detalhadamente neste módulo.
- ChatCompletion – o modelo recebe a entrada na forma de uma conversa de chat (em que as funções são especificadas com a mensagem enviada) e o próximo preenchimento do chat é gerado.
- Inserções – o modelo recebe a entrada e retorna uma representação de vetor dessa entrada.
Por exemplo, a entrada para ChatCompletion
é uma conversa com funções claramente definidas para cada mensagem:
{"role": "system", "content": "You are a helpful assistant, teaching people about AI."},
{"role": "user", "content": "Does Azure OpenAI support multiple languages?"},
{"role": "assistant", "content": "Yes, Azure OpenAI supports several languages, and can translate between them."},
{"role": "user", "content": "Do other Azure AI Services support translation too?"}
Quando você dá ao modelo de IA uma conversa real, ele pode gerar uma resposta melhor com tom, frase e contexto mais precisos. O ponto de extremidade ChatCompletion
permite que o modelo ChatGPT tenha uma conversa mais realista enviando o histórico do chat com a próxima mensagem do usuário.
ChatCompletion
também permite cenários que não são de chat, como resumo ou extração de entidade. Isso pode ser feito fornecendo uma breve conversa, especificando as informações do sistema e o que você deseja, juntamente com a entrada do usuário. Por exemplo, se você quiser gerar uma descrição do trabalho, forneça a ChatCompletion
algo como a entrada de conversa a seguir.
{"role": "system", "content": "You are an assistant designed to write intriguing job descriptions. "},
{"role": "user", "content": "Write a job description for the following job title: 'Business Intelligence Analyst'. It should include responsibilities, required qualifications, and highlight benefits like time off and flexible hours."}
Observação
Completion
está disponível para todos os modelos de geração gpt-3
, enquanto ChatCompletion
é a única opção com suporte para modelos gpt-4
e é o ponto de extremidade preferencial ao usar o modelo gpt-35-turbo
. O laboratório neste módulo usa gpt-35-turbo
com o ponto de extremidade ChatCompletion
.