Integre o Azure OpenAI em seu aplicativo
O Azure OpenAI oferece SDKs específicos de linguagem e uma API REST que os desenvolvedores podem usar para adicionar funcionalidade de IA aos seus aplicativos. Os recursos de IA generativa no Azure OpenAI são fornecidos por meio de modelos. Os modelos disponíveis no serviço Azure OpenAI pertencem a famílias diferentes, cada uma com seu próprio foco. Para usar um desses modelos, você precisa implantar por meio do Serviço OpenAI do Azure.
Criar um recurso do Azure OpenAI
Um recurso do Azure OpenAI pode ser implantado por meio da interface de linha de comando (CLI) do Azure e do portal do Azure. Criar o recurso OpenAI do Azure por meio do portal do Azure é semelhante à implantação de recursos individuais dos Serviços de IA do Azure e faz parte dos serviços dos Serviços de IA do Azure.
- Navegue para o portal do Azure
- Procure o Azure OpenAI, selecione-o e clique em Criar
- Insira os valores apropriados para os campos vazios e crie o recurso.
As regiões possíveis para o Azure OpenAI são atualmente limitadas. Escolha a região mais próxima da sua localização física ou a mais próxima que tenha disponibilidade para o(s) modelo(s) que pretende utilizar.
Depois que o recurso for criado, você terá chaves e um ponto de extremidade que poderá usar em seu aplicativo.
Escolher e implantar um modelo
Cada família de modelos se destaca em tarefas diferentes, e há diferentes capacidades dos modelos dentro de cada família. As famílias modelo dividem-se em três famílias principais:
- Transformador Generativo Pré-treinado (GPT) - Modelos que compreendem e geram linguagem natural e algum código. Esses modelos são melhores em tarefas gerais, conversas e formatos de bate-papo.
- Código (
gpt-3
e anteriores) - Os modelos de código são construídos com base em modelos 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.gpt-35-turbo
e modelos posteriores têm essa funcionalidade de código incluída sem a necessidade de um modelo de código separado. - Incorporações - Esses modelos podem entender e usar incorporações, que são um formato especial de dados que podem ser usados por modelos e algoritmos de aprendizado de máquina.
Este módulo concentra-se em modelos GPT gerais, com outros modelos sendo abordados em outros módulos.
Para modelos mais antigos, a família de modelos e a capacidade são indicadas no nome do modelo base, como text-davinci-003
, que especifica que é um modelo de texto, com davinci
capacidade de nível e identificador 3
. Detalhes sobre modelos, níveis de capacidade e convenções de nomenclatura podem ser encontrados na página de documentação de Modelos OpenAI do Azure.
Os modelos mais recentes especificam qual gpt
geração, e se são a turbo
versão, como gpt-35-turbo
representar o modelo GPT 3.5 Turbo .
Para implantar um modelo para você usar, navegue até o Azure AI Studio 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 Azure OpenAI, você escolhe um nome de implantação para fornecê-lo. Ao configurar seu aplicativo, você precisa especificar seu ponto de extremidade de recurso, chave e nome de 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 pedidos
A forma como o prompt de entrada é escrito desempenha um grande papel em como o modelo de IA responderá. Por exemplo, se solicitado com uma solicitação simples, como "O que é o Azure OpenAI", você geralmente obtém uma resposta genérica semelhante ao uso de um mecanismo de pesquisa.
No entanto, se lhe der mais detalhes sobre o que pretende na sua 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 receberá a "Categoria:" sob o título preenchido com "Negócios".
Vários exemplos semelhantes a este podem ser encontrados no Azure AI Studio Playground, no menu suspenso Prompt . Tente ser o mais específico possível sobre o que você quer em resposta do modelo, e você pode se surpreender com o quão perspicaz pode ser!
Nota
Nunca é seguro assumir que as respostas de um modelo de IA são factuais ou corretas. As equipes ou indivíduos encarregados de desenvolver e implantar sistemas de IA devem trabalhar para identificar, medir e mitigar danos. É sua responsabilidade verificar quaisquer respostas de um modelo de IA e usar a IA de forma responsável. Consulte as Notas de Transparência da Microsoft sobre o Azure OpenAI para obter mais orientações sobre como utilizar os modelos OpenAI do Azure de forma responsável.
Mais detalhes podem ser encontrados na página de documentação de engenharia do Prompt.
Pontos finais disponíveis
O Azure OpenAI pode ser acessado por meio de uma API REST ou um SDK disponível para Python, C#, JavaScript e muito mais. Os pontos de extremidade disponíveis para interagir com um modelo implantado são usados de forma diferente, e certos pontos de extremidade só podem usar determinados modelos. Os parâmetros de avaliação disponíveis são:
- Conclusão - o modelo usa um prompt de entrada e gera uma ou mais conclusões previstas. Você verá este playground no estúdio, mas não será abordado em profundidade neste módulo.
- ChatCompletion - o modelo recebe entrada na forma de uma conversa de bate-papo (onde as funções são especificadas com a mensagem que enviam) e a próxima conclusão do bate-papo é gerada.
- Incorporações - o modelo recebe a entrada e retorna uma representação vetorial 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, fraseado e contexto mais precisos. O ChatCompletion
endpoint permite que o modelo ChatGPT tenha uma conversa mais realista, enviando o histórico do bate-papo com a próxima mensagem do usuário.
ChatCompletion
Também permite cenários que não sejam de chat, como sumarização 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 de trabalho, forneça ChatCompletion
algo como a seguinte entrada de conversa.
{"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."}
Nota
Completion
está disponível para todos os gpt-3
modelos de geração, enquanto ChatCompletion
é a única opção suportada para gpt-4
modelos e é o ponto de extremidade preferido ao usar o gpt-35-turbo
modelo. O laboratório neste módulo usa gpt-35-turbo
com o ponto de ChatCompletion
extremidade.