<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ricardo Souza</title>
    <description>The latest articles on DEV Community by Ricardo Souza (@rickeletro).</description>
    <link>https://dev.to/rickeletro</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2170198%2Fd37e1cd8-c91c-4025-aba4-da8640e28cf0.png</url>
      <title>DEV Community: Ricardo Souza</title>
      <link>https://dev.to/rickeletro</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rickeletro"/>
    <language>en</language>
    <item>
      <title># Como Utilizar a IA Generativa do Google Cloud com o Vertex AI para Criar um Projeto Simples</title>
      <dc:creator>Ricardo Souza</dc:creator>
      <pubDate>Sat, 05 Oct 2024 11:36:48 +0000</pubDate>
      <link>https://dev.to/rickeletro/como-utilizar-ia-generativa-do-google-cloud-com-vertex-ai-para-criar-um-projeto-simples-3e2b</link>
      <guid>https://dev.to/rickeletro/como-utilizar-ia-generativa-do-google-cloud-com-vertex-ai-para-criar-um-projeto-simples-3e2b</guid>
      <description>&lt;p&gt;Hoje, vou te mostrar como utilizar a &lt;strong&gt;IA Generativa do Google Cloud&lt;/strong&gt;, mais especificamente com o &lt;strong&gt;Vertex AI&lt;/strong&gt;, para criar uma aplicação simples que gera texto com base em prompts fornecidos. Vamos passar pela criação de um projeto no Google Cloud, configurar o Vertex AI e criar um pequeno exemplo em Node.js para gerar texto.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pré-requisitos
&lt;/h2&gt;

&lt;p&gt;Antes de começarmos, você precisa ter os seguintes itens configurados:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Conta no Google Cloud: Se ainda não tiver, crie uma &lt;a href="https://cloud.google.com" rel="noopener noreferrer"&gt;https://cloud.google.com&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Google Cloud SDK instalado na sua máquina. Veja o tutorial de &lt;a href="https://cloud.google.com/sdk/docs/install" rel="noopener noreferrer"&gt;Instalação do Google Cloud SDK&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Node.js: Vamos utilizar o Node.js para criar nossa aplicação.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Passo 1: Criar e Configurar um Projeto no Google Cloud
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Acesse o Google Cloud Console&lt;/strong&gt; e crie um novo projeto:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vá para o &lt;a href="https://console.cloud.google.com/" rel="noopener noreferrer"&gt;Console do Google Cloud&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;No menu, clique em &lt;strong&gt;Selecionar Projeto&lt;/strong&gt; e depois em &lt;strong&gt;Novo Projeto&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Dê um nome ao projeto e clique em &lt;strong&gt;Criar&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ativar a Vertex AI API&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No seu projeto, vá até &lt;strong&gt;APIs e Serviços&lt;/strong&gt; no menu lateral e clique em &lt;strong&gt;Ativar APIs e serviços&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Pesquise por &lt;strong&gt;Vertex AI API&lt;/strong&gt; e ative-a.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Criar Credenciais&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vá em &lt;strong&gt;APIs e Serviços &amp;gt; Credenciais&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Crie uma nova chave de conta de serviço clicando em &lt;strong&gt;Criar Credenciais &amp;gt; Conta de Serviço&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Dê um nome para a conta de serviço e clique em &lt;strong&gt;Criar&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;No próximo passo, escolha o papel "Proprietário" e clique em &lt;strong&gt;Concluir&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Faça o download do arquivo de chave JSON. Este arquivo será usado para autenticar a aplicação com o Vertex AI.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Passo 2: Instalando Dependências no Projeto Node.js
&lt;/h2&gt;

&lt;p&gt;Agora, vamos criar o projeto em Node.js para interagir com o Vertex AI e gerar texto. Siga os passos abaixo:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Inicie um projeto Node.js:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="nb"&gt;mkdir &lt;/span&gt;vertex-ai-text-gen
   &lt;span class="nb"&gt;cd &lt;/span&gt;vertex-ai-text-gen
   npm init &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Instale as dependências necessárias:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;google-cloud vertex-ai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3- Configurar as credenciais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Coloque o arquivo JSON baixado anteriormente dentro do diretório do seu projeto e renomeie para vertex-ai-key.json.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Passo 3: Criar a IA Generativa com Vertex AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Agora vamos criar o código para gerar texto com a API do Vertex AI.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Crie um arquivo index.js e adicione o código abaixo:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Instancia o cliente da API&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;PredictionServiceClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;clientOptions&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Função para gerar texto&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;gerarTexto&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Configurações do modelo de geração de texto&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;endpoint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`projects/SEU-PROJETO-ID/locations/us-central1/publishers/google/models/text-bison-001`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Substitua pelo ID do seu projeto&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;predict&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="nx"&gt;endpoint&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;instances&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt; &lt;span class="p"&gt;}],&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="c1"&gt;// Exibe o texto gerado&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;generatedText&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;predictions&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Texto gerado:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;generatedText&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Chamada da função para gerar texto&lt;/span&gt;
&lt;span class="nf"&gt;gerarTexto&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Escreva uma introdução sobre inteligência artificial.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Substitua o valor SEU-PROJETO-ID pelo ID do seu projeto no Google Cloud.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Execute a aplicação:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node index.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se tudo estiver configurado corretamente, o Vertex AI responderá com um texto gerado com base no prompt que você passou.&lt;/p&gt;

&lt;p&gt;Passo 4: Expandindo o Projeto&lt;br&gt;
Agora que você tem um projeto básico que gera texto, você pode expandi-lo com uma interface, por exemplo, utilizando React para criar uma página onde os usuários possam enviar prompts e obter o texto gerado em tempo real.&lt;/p&gt;

&lt;p&gt;Aqui está uma sugestão de como você pode usar Express para criar uma API simples que gera texto:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instale o Express:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;express
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Atualize o index.js para criar um servidor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;express&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;express&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;express&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;port&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Middleware para processar JSON&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;express&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;

&lt;span class="c1"&gt;// Endpoint para gerar texto&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/gerar-texto&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;prompt&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;gerarTexto&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;textoGerado&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;status&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Erro ao gerar texto&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;port&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Servidor rodando em http://localhost:&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;port&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora você pode enviar requisições POST para localhost:3000/gerar-texto com um prompt no corpo da requisição e obter o texto gerado como resposta.&lt;/p&gt;

&lt;p&gt;Conclusão&lt;br&gt;
Neste post, você aprendeu a criar uma aplicação simples para gerar texto usando a IA generativa do Google Cloud com o Vertex AI. Este projeto pode ser expandido para várias outras aplicações, como chatbots, assistentes de escrita, ou até mesmo para gerar conteúdo personalizado.&lt;/p&gt;

&lt;p&gt;Se tiver alguma dúvida ou sugestões de como melhorar o projeto, fique à vontade para comentar abaixo!&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
