Artigo
· jan 23 9min de leitura

Integração de Open AI com o IRIS

 

Como todos vocês sabem, o mundo da inteligência artificial já está aqui, e todos querem usá-la em seu benefício próprio.

Há várias plataformas que oferecem serviços de inteligência artificial gratuitos, por assinatura ou particulares. No entanto, a que se destaca pelo grande "alvoroço" que fez no mundo da computação é a Open AI, sobretudo devido aos seus serviços mais renomados: ChatGPT e DALL-E.

<--break->O que é a Open AI?

Open AI é um laboratório de pesquisa de IA sem fins lucrativos lançado em 2015 por Sam Altman, Ilya Sutskever, Greg Brockman, Wojciech Zaremba, Elon Musk, John Schulman e Andrej Karpathy, com o objetivo de promover e desenvolver inteligência artificial amigável para beneficiar a humanidade como um todo.

Desde sua criação, eles lançaram alguns produtos fascinantes que, se usados para bons fins, podem ser ferramentas realmente poderosas. Porém, como qualquer tecnologia nova, ela representa a ameaça de ser possivelmente usada para cometer crimes ou fazer o mal.

Decidi testar o serviço do ChatGPT e perguntei qual era a definição de inteligência artificial. A resposta que recebi foi um acúmulo de noções encontradas na Internet e resumidas da maneira que um ser humano responderia.

Resumindo, uma IA só consegue dar respostas usando as informações usadas para treiná-la. Usando seus algoritmos internos e os dados alimentados durante o treinamento, ela pode compor artigos, poemas ou até mesmo trechos de código de programação.

A inteligência artificial vai afetar a indústria significativamente e, por fim, revolucionar tudo…. Talvez as expectativas sobre como a inteligência artificial afetará nosso futuro estejam sendo exageradas, por isso devemos começar a usá-la corretamente para o bem comum.

Estamos cansados de ouvir que essa nova tecnologia mudará tudo e que o ChatGPT é a ferramenta que virará nosso mundo de cabeça para baixo, assim como seu irmão GPT-4. Essas ferramentas não deixarão as pessoas sem emprego, nem governarão o mundo (como a Skynet). O que estamos tentando analisar aqui é a tendência. Começamos observando onde estávamos antes para entender o que alcançamos até agora e, assim, prever onde estaremos no futuro.

Em 2020, o psicólogo e cientista cognitivo Gary Marcus publicou um artigo analisando como o GPT-2 funcionava. Ele conduziu um estudo metódico do seu funcionamento, revelando que, na verdade, esse tipo de ferramenta não conseguia entender o que estava escrevendo ou as ordens recebidas.

"Eis o problema: após uma inspeção minuciosa, fica aparente que o sistema não tem ideia do que está falando: ele não consegue seguir uma sequência simples de eventos nem ter alguma ideia confiável sobre o que pode ocorrer a seguir."

Siga o link abaixo para ver o artigo completo: https://thegradient.pub/gpt2-and-the-nature-of-intelligence/

Você pode ver claramente a evolução aqui! GPT-3 (2020) precisava ser treinado usando entradas suficientes indicando o que você queria alcançar, enquanto a versão atual do GPT-4 pode usar uma linguagem natural, fazendo com que seja mais fácil fornecer essas entradas. Agora, ele "parece" nos entender, além de saber o que está falando sobre si mesmo.

Quando usamos o mesmo exemplo criado por Gary Marcus em 2020 para o GPT-2, obtemos o resultado esperado:
 

No momento, a OpenAI pode fornecer um conjunto de ferramentas que evoluíram com rapidez surpreendente e, se combinadas corretamente, será muito mais fácil obter um resultado mais eficiente em comparação com o passado.

Quais produtos a OpenAI oferece?

Vou falar sobre os dois mais conhecidos, como DALL-E e Chat-GPT. No entanto, há outros serviços disponíveis, como o Whisper, que transcreve áudio em texto e até traduz para um idioma diferente, ou Embeddings, que permite medir a relação de strings de texto para pesquisas, recomendações, agrupamentos etc…

O que eu preciso para usar esses serviços?

Você precisará criar uma conta da OpenAI, que é muito fácil de fazer, para começar a usar os serviços diretamente pelo site.

Chat: https://chat.openai.com

DALL-E: https://labs.openai.com

Queremos integrar esses serviços no IRIS, então devemos usar sua API para acessá-los. Primeiro, precisamos criar uma conta e fornecer uma forma de pagamento para usar a API. O custo é relativamente pequeno e depende do uso pretendido. Quanto mais tokens você consumir, mais terá que pagar 😉

O que é um token?

É a forma que os modelos usam para entender e processar os textos. Os tokens podem ser palavras ou apenas fragmentos de caracteres. Por exemplo, a palavra "hambúrguer" é dividida nos blocos "ham", "búr" e "guer", enquanto uma palavra curta e comum, como “pera”, é um bloco único. Vários tokens começam com um espaço em branco, por exemplo, " olá" e " tchau".

É complicado usar a API?

De jeito nenhum. Siga os passos abaixo e você não terá problemas:

Etapa 1: crie uma chave de API

Selecione a opção "View API Key" (Ver chave de API) no menu do seu usuário

 

Etapa 2: crie uma nova chave secreta

Pressione o botão na parte inferior da seção Chaves de API

 

MUITO IMPORTANTE: após criar a chave secreta, ela não poderá mais ser recuperada, então não se esqueça de salvar essas informações em um local seguro​.

Etapa 3: defina o nome da sua organização

A definição da sua organização não é obrigatória, mas recomendada. Faz parte do cabeçalho das chamadas de API. Você também deve copiar o código da sua organização para uso posterior.

 Você pode modificá-lo quantas vezes quiser.

Etapa 4: prepare a chamada de API usando a chave secreta e o ID da organização

Como parte da chamada de API, você precisa usar um cabeçalho de autenticação de token do Bearer e indicar a chave secreta.

Ela também deve ser indicada como um parâmetro de cabeçalho ao lado do ID da organização

Parâmetro do cabeçalho Valor
api-key sk-MyPersonalSecretKey12345
OpenAI-Organization org-123ABCFakeId

Isto seria um exemplo de invocação

POST https://api.openai.com/v1/images/create
header 'Authorization: Bearer sk-MyPersonalSecretKey12345'
header 'api-key: sk-MyPersonalSecretKey12345'
header 'OpenAI-Organization: org-123ABCFakeId '
header 'Content-Type: application/json'

Essa configuração é comum para todos os endpoints, então vamos ver como funcionam alguns dos métodos mais conhecidos.

Modelos

Endpoint: GET https://api.openai.com/v1/models

Você pode baixar todos os modelos que a OpenAI definiu para serem usados. Porém, cada um deles tem características diferentes. O último modelo mais recente para uso no Chat é o "gpt-4". Lembre-se de que todos os IDs dos modelos estão em letras minúsculas.

Se o nome do modelo não for informado, serão retornados todos os modelos existentes.

Você pode ver seus recursos e onde usá-lo na página de documentação da OpenAIhttps://platform.openai.com/docs/models/overview

Chat

Endpoint: POST https://api.openai.com/v1/chat/completions

Ele permite que você crie uma conversa com o modelo indicado ou através de um aviso. Você pode indicar o máximo de tokens que deseja usar e quando deve interromper a conversa.

Os parâmetros de entrada serão os seguintes:

  • model: obrigatório. É o ID do modelo que será usado. Você pode usar a API ListModels para ver todos os modelos disponíveis ou verificar nossa visão geral de modelos para conferir sua descrição.
  • messages: obrigatório. Contém o tipo de mensagem indicando a função que será usada. Você pode definir um formulário de diálogo indicando se é o usuário ou o assistente.
    • role: é a função da pessoa da mensagem.
    • content: é o conteúdo da mensagem.
  • temperature: opcional. Descreve a temperatura demonstrada com o valor entre 0 e 2. Ao fornecer um número muito alto, o resultado será mais aleatório. Se optar por um número mais baixo, a resposta será mais focada e determinística. Se não for definido, o valor padrão será 1.
  • stop: opcional. Está relacionado às sequências em que a API para de gerar mais tokens. Se for indicado "none", os tokens serão gerados infinitamente.
  • max_tokens: opcional. Descreve o número máximo de tokens para gerar o conteúdo e é limitado ao número máximo de tokens permitidos pelo modelo.

Confira no link abaixo a documentação que descreve esse método: https://platform.openai.com/docs/api-reference/chat/create

Imagem

Endpoint: POST https://api.openai.com/v1/images/generations

Ele permite que você crie uma imagem conforme indicado pelo parâmetro do prompt. Além disso, é possível definir o tamanho e a forma como queremos que o resultado seja retornado, por exemplo, através de um link ou conteúdo em Base64.

Os parâmetros de entrada seriam os mencionados abaixo:

  • message: obrigatório. Refere-se ao texto que descreve a imagem que desejamos gerar.
  • n: opcional. Refere-se ao número máximo de imagens geradas. Esse valor deve estar entre 1 e 10. Se não for indicado, o valor padrão será 1.
  • size: opcional. Refere-se ao tamanho da imagem gerada. O valor precisa ser "256x256", "512x512" ou "1024x1024". Se não for indicado, o valor padrão será "1024x1024"
  • response_format: opcional. Refere-se ao formato desejado para retornar as imagens geradas. Os valores devem ser "url" ou "b64_json". Se não for indicado, o valor padrão será "url".

Confira no link abaixo a documentação que descreve esse método: https://platform.openai.com/docs/api-reference/images/create

O que o iris-openai oferece?

Link: https://openexchange.intersystems.com/package/iris-openai

Esse framework foi criado para utilizar mensagens de solicitação e resposta com as propriedades necessárias para se conectar com a OpenAi e usar seus métodos como Chat, Modelos e Imagens.

Você pode configurar sua produção de modo que permita usar as classes de mensagens para chamar uma operação de negócios que se conecte à API OpenAI.

Lembre-se que você precisa configurar a produção para indicar os valores da chave secreta e do ID da organização, conforme indicado acima.

 

Se você quiser criar uma imagem, precisará produzir uma instância de classe "St.OpenAi.Msg.Images.ImagesRequest" e preencher os valores das opções para criar uma nova imagem.

Exemplo:

Set image=##class(St.OpenAi.Msg.Images.ImagesRequest).%New()
Set image.Operation = "generations"
Set image.Prompt = "Two cats with a hat reading a comic"
Set image.NumOfImages = 2

Quando acabar, chame a operação de negócios "St.OpenAi.BO.Api.Connect"

 

Observação: nesse caso, será recuperado o link das duas imagens criadas.

{
    "created": 1683482604,
    "data": [
        {
            "url": "https://link_of_image_01.png”
        },
        {
            "url": "https://link_of_image_02.png”
        }
    ]
}

Se foi indicado que queremos operar uma Base64 em vez de um link, será recuperada a seguinte mensagem:

{
    "created": 1683482604,
    "data": [
        {
            "b64_json": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAADwf7zUAAAAaGVYSWZNTQAqAAAACAACknwAAgAAACkAAAAmkoYAAgAAABgAAABQAAAAAE9wZW5BSS0tZjM5NTgwMmMzNTZiZjNkMDFjMzczOGM2OTAxYWJiNzUAAE1hZGUgd2l0aCBPcGVuQUkgREFMTC1FAAjcEcwAAQAASURBVHgBAAuE9HsBs74g/wHtAAL7AAP6AP8E+/z/BQYAAQH++vz+CQcH+fn+AgMBAwQAAPr++///AwD+BgYGAAIC/fz9//3+AAL7AwEF/wL+9/j9DQ0O/vz/+ff0CQUJAQQF/f/89fj4BwcD/wEAAfv//f4BAQQDAQH9AgIA/f3+AAABAgAA/wH8Af/9AQMGAQIBAvv+/////v/+/wEA/wEAAgMA//sCBAYCAQ”
        },
        {
            "b64_json": "D99vf7BwcI/v0A/vz9/wH8CQcI+vz8AQL9/vv+CAcF+wH/AwMA9/f8BwUEAwEB9fT+BAcKBAIB//7//gX5//v8/P7+DgkO+fr6/wD8AP8B/wAC/f4CAwD+/wT+Av79BwcE/Pz7+/sBAAD+AAQE//8BAP79AgIE///+AQABAv8BAwYA+vkB/v7/AwQE//7+/Pr6BAYCBgkE/f0B/Pr6AQP+BAED/gMC/fr+AwEC/v/+//7+CQcH+fz5BAYB9vf9BgQD+/n+BwYK/wD////9/gD5AwIDAAQE+/j6BAUD//rwAC/fr6+wYEBAQAA/4B//v6+/8AAAUDB/L49woGAQMDCfr7+wMCAQMHBPvy+AQJBQD+/wEEAfr3+gIGBgP/Af3++gUFAvz9//4A/wP/AQIGBPz+/QD7/wEDAgkGCPX29wMCAP4FBwX/+23"
        }
    ]
}

O que vem a seguir?

Após o lançamento deste artigo, o conteúdo do iris-openai será estendido para possibilitar o uso de métodos do Whisper e modificação de imagens.

Um outro artigo explicará como usar esses métodos e como incluir nossas imagens ou fazer transcrições do conteúdo de áudio.

Discussão (0)1
Entre ou crie uma conta para continuar