Utilizando a biblioteca Azure.Openai para integrar suas aplicações .NET com ChatGpt

Marcio Nizzola
4 min readAug 4, 2023

--

Utilizando a biblioteca Azure.Openai para integrar suas aplicações .NET com ChatGpt

Tempos atrás fiz um artigo (link) descrevendo como fazer uso do ChatGpt utilizando chamadas Http, agora venho demonstrar como utilizar a bibioteca da Microsoft criada justamente para utilização deste serviço através do Azure, esta biblioteca facilita o desenvolvimento ao mesmo tempo que trás algumas vantagens.

Para explicar um pouco do conceito, o Chat Gpt trabalha com um conceito chamado de LLM (Large Language Model) que se alimenta das informações de dados públicos, mas é possível refinar as suas conversas com a IA a partir de contextualização. A cada novo prompt, você pode fornecer mais dados e informações que contribuam para um resultado mais preciso, fazendo com que pareça que o chat está lembrando-se do assunto, mas de fato, estamos alimentando todo o contexto novamente.

Por outro lado, vale a pena ressaltar que o contexto adquirido não fica salvo pelo LLM. Após uma sequência de prompts, a IA encerra a conversa e só é possível começar outro diálogo com os dados públicos da base da ferramenta.

A nuvem Azure da Microsoft provê o serviço OpenAI que possui os mesmos serviços da nuvem da OpenAi, porém na infra estrutura da Microsoft, com muito mais disponibilidade e tempos de resposta melhores.

Então baseados nisso, vamos criar uma aplicação seguindo este molde, primeiramente vamos criar um serviço na conta Azure para utilizar o Azure OpenAI, neste caso vou utilizar-me do ChatGpt 3.5.

Onde vamos escolher o gpt-35-turbo e após esta instalação ele aparecerá assim:

Outro ponto importante é que precisamos obter as informações de acesso da aplicação que são a URL e chave, estes serviços estão disponíveis no painel do Azure e servirão para acessar através da aplicação .NET.

Pronto, então agora vamos ao código !

Depois de criado o serviço, temos que criar a aplicação, para isso, vamos criar uma aplicação console e depois realizar a instalação do pacote Azure.AI.OpenAI que até a data de hoje (31/07/2023) está como 1.0.0 beta 6, ou seja, ainda não foi lançada a sua versão final, para instalar faça pelo Nuget Package Manager ou via linha de comando com o comando abaixo.

dotnet add package Azure.AI.OpenAI --prerelease

Feito isso, vamos estruturar a nossa aplicação para que possamos guardar o histórico da conversa, fazendo com que não haja perda de contexto e possamos seguir a linha de raciocínio.

Então vamos ao código:

nas linhas 7, 8 e 10, definimos a conexão OpenAI como “client”.

na linha 12, foi criada uma lista de objetos do tipo “ChatMessage” que é o tipo de objeto utilizado pela biblioteca, este objeto tem uma característica que é o “ChatRole”, que é o que determina a origem da mensagem, podendo ser: User (usuário), Assistant (mensagem do ChatGpt) e System (mensagem do sistema) que utilizei para orientar o padrão de resposta logo no início do chat.

depois disso, nossa ferramenta entra num loop onde recebemos na linha 20 uma mensagem, incluímos essa mensagem na coleção de mensagens na linha 25, onde cria-se um “ChatCompletionsOptions” contendo as mensagens armazenadas.

depois na linha 27, fazemos a chamada para o serviço “AzureOpenAi” que irá enviar a sequência de mensagens, e devolver a resposta, que será exibida na linha 31, e depois na linha 32, armazenada também na lista de mensagens que vamos manter, com a propriedade ChatRole.Assistant demonstrando que foi a mensagem da própria ferramenta.

Pronto, o código está feito, vamos à sua execução então !

Testando:

primeira tela da execução da aplicação

Agora vamos à segunda pergunta

segunda tela da execução da aplicação
terceira tela da execução da aplicação

Veja que ele manteve a mesma estrutura da conversa, seguindo a lógica da classe previamente criada.

Pronto, agora você pode também criar aplicações e alimentá-las com as informações que quiser, inclusive obtidas em seus bancos de dados.

Gostou do artigo? clique no ícone👏e me siga para ver as próximas publicações !!

Referências:

Microsoft Learn — Começar a usar o GPT-35-Turbo e o GPT-4 com o Serviço OpenAI do Azure (link)

--

--

Marcio Nizzola

Microsoft MVP | Software Architect na CI&T | Prof. da Etec Itu | Membro Fundador da Comunidade Itu Developers.