{"id":218,"date":"2023-12-16T13:13:38","date_gmt":"2023-12-16T16:13:38","guid":{"rendered":"https:\/\/softwarelivre-br.aomega.com.br\/?p=218"},"modified":"2023-12-17T09:24:41","modified_gmt":"2023-12-17T12:24:41","slug":"usando-o-gemini-pro-da-google-para-analisar-o-sentimento-do-mercado-de-acoes","status":"publish","type":"post","link":"https:\/\/softwarelivre-br.aomega.com.br\/index.php\/2023\/12\/16\/usando-o-gemini-pro-da-google-para-analisar-o-sentimento-do-mercado-de-acoes\/","title":{"rendered":"Usando o Gemini Pro da Google para analisar o sentimento do mercado de a\u00e7\u00f5es"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"640\" data-attachment-id=\"174\" data-permalink=\"https:\/\/softwarelivre-br.aomega.com.br\/index.php\/2023\/06\/09\/utilizando-o-chatgpt-para-analisar-sentimentos-num-texto\/analisesentimentos\/\" data-orig-file=\"https:\/\/i0.wp.com\/softwarelivre-br.aomega.com.br\/wp-content\/uploads\/2023\/06\/analisesentimentos.jpg?fit=736%2C736&amp;ssl=1\" data-orig-size=\"736,736\" data-comments-opened=\"1\" data-image-title=\"analisesentimentos\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/softwarelivre-br.aomega.com.br\/wp-content\/uploads\/2023\/06\/analisesentimentos.jpg?fit=640%2C640&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/softwarelivre-br.aomega.com.br\/wp-content\/uploads\/2023\/06\/analisesentimentos.jpg?resize=640%2C640\" alt=\"\" class=\"wp-image-174\" srcset=\"https:\/\/i0.wp.com\/softwarelivre-br.aomega.com.br\/wp-content\/uploads\/2023\/06\/analisesentimentos.jpg?w=736&amp;ssl=1 736w, https:\/\/i0.wp.com\/softwarelivre-br.aomega.com.br\/wp-content\/uploads\/2023\/06\/analisesentimentos.jpg?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/softwarelivre-br.aomega.com.br\/wp-content\/uploads\/2023\/06\/analisesentimentos.jpg?resize=150%2C150&amp;ssl=1 150w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A an\u00e1lise de sentimentos \u00e9 uma aplica\u00e7\u00e3o da intelig\u00eancia artificial muito interessante que permite inferir o sentimento predominante com base num conjunto de informa\u00e7\u00f5es. Neste artigo vamos criar uma aplica\u00e7\u00e3o Python acessando a API da IA generativa Gemini PRO da Google para inferir o sentimento existente no mercado de a\u00e7\u00f5es em rela\u00e7\u00e3o \u00a0 a determinada a\u00e7\u00e3o de uma empresa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos precisar de uma API KEY , ou chave secreta para ter acesso \u00e0 API do<br>Gemini Pro, voc\u00ea a pode obter em https:\/\/makersuite.google.com\/app\/apikey<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos testar nossa aplica\u00e7\u00e3o dentro do ambiente do Google Colab onde j\u00e1 existe<br>uma vers\u00e3o do Python superior \u00e0 3.9, necess\u00e1ria para poder usar os modelos de IA<br>generativa dispon\u00edveis no Gemini Pro (Gemini Pro e Gemini Pro Vision)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dentro do ambiente do Google Colab na pastinha de SECRETS (com o \u00edcone de uma chave) armazenar a api key (chave) obtida anteriormente dentro de uma vari\u00e1vel,<br>por exemplo &#8220;GOOGLE_API_KEY&#8221; e habilitar a op\u00e7\u00e3o de &#8220;Acesso ao Notebook&#8221;,<br>para ela ficar dispon\u00edvel dentro de sua aplica\u00e7\u00e3o quando recuperar os dados do<br>usu\u00e1rio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos come\u00e7ar fazendo a importa\u00e7\u00e3o das bibliotecas necess\u00e1rias:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import pathlib\nimport textwrap\nimport google.generativeai as genai\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Importo minhas vari\u00e1veis de usu\u00e1rio do ambiente do Google Colab mantendo a privacidade de minha chave (GOOGLE API KEY):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from google.colab import userdata\n\nfrom IPython.display import display\nfrom IPython.display import Markdown\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Em alguns caso o uso da instru\u00e7\u00e3o response.text \u00e9 suficiente para imprimir um texto de forma leg\u00edvel. Em outros casos, quando queremos uma formata\u00e7\u00e3o melhor do texto utilizamos o formato MARKDOWN. Criamos uma fun\u00e7\u00e3o simples para converter texto sem formata\u00e7\u00e3o para o formato Markdown.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def to_markdown(text):\n  text = text.replace(\u2022,   *)\n  return Markdown(textwrap.indent(text, &gt; , predicate=lambda _: True))<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Recupera dos dados do usu\u00e1rio a vari\u00e1vel GOOGLE_API_KEY, com sua chave (API key) de acesso ao modelo escolhido do Gemini Pro. No nosso caso o modelo \u00e9 o Gemini Pro mesmo para trabalhar com prompts de texto, ao inv\u00e9s do Gemini Pro View que permite trabalhar com im\u00e1gens.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GOOGLE_API_KEY=userdata.get(GOOGLE_API_KEY)\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># Caso deseje listar todos os modelos de IA generativa dispon\u00edveis pode utilizar\n# o seguinte trecho de c\u00f3digo, dentro do FOR, caso contr\u00e1rio, n\u00e3o precisa.\n\n#for m in genai.list_models():\n#  if generateContent in m.supported_generation_methods:\n#    print(m.name)\n    \n##<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Selecionamos o modelo de IA Generativo a ser utilizado, no caso gemini-pro para prompts em modo texto.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>model = genai.GenerativeModel(gemini-pro)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O gemini-pro n\u00e3o trabalha com textos multimodais mas existe a op\u00e7\u00e3o de trabalhar<br>com o recurso de embeddings que permitiria quebrar esta restri\u00e7\u00e3o do gemini-pro.<br>Neste exemplo para manter a coisa simples coloquei todo o string de texto numa<br>linha s\u00f3, desta forma driblo a restri\u00e7\u00e3o do texto n\u00e3o ser multimodal e mantenho<br>o exemplo simples. Claro que para textos maiores o recurso de embeddings \u00e9 a<br>\u00fanica alternativa poss\u00edvel. Em um futuro exemplo vou mostrar como trabalhar com<br>embeddings.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>meu_prompt = \"Qual o sentimento do mercado em rela\u00e7\u00e3o \u00e0s a\u00e7\u00f5es da Petrobras com base nas seguintes informa\u00e7\u00f5es? Petrobras (PETR4) paga hoje 2a parcela de R$ 15. Petrobras desiste da venda de suas a\u00e7\u00f5es da Usina El\u00e9trica a G\u00e1s de Arauc\u00e1ria. Petrobras (PETR4): a\u00e7\u00f5es fecham em alta em dia de preg\u00e3o vol\u00e1til, As a\u00e7\u00f5es preferenciais da Petrobras (PETR4) subiram 0,23% nesta sexta-feira (15\/12\/2023), cotadas a R$ 35,40. O Ibovespa, por sua vez, recuou 0,49%, aos 130.197,10 pontos. Petr\u00f3leo fecha em baixa, com d\u00f3lar impulsionando a sess\u00e3o. Perspectivas sobre o relaxamento monet\u00e1rio nas principais economias ajudaram a conter a queda hoje (15\/12\/2023). Os contratos futuros de petr\u00f3leo fecharam com modestas perdas nesta sexta-feira (15\/12\/2023), em corre\u00e7\u00e3o ap\u00f3s os ganhos das duas \u00faltimas sess\u00f5es, mas de forma insuficiente para impedir uma valoriza\u00e7\u00e3o semanal. Dados mistos e a recupera\u00e7\u00e3o do d\u00f3lar amplificaram a press\u00e3o, embora perspectivas por relaxamento monet\u00e1rio nas principais economias ajudem a conter queda.\"    <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">As informa\u00e7\u00f5es sobre o exemplo, no caso a Petrobras, a\u00e7\u00f5es e noticias do mercado do petr\u00f3leo foram extraidas dos principais ve\u00edculos de comunica\u00e7\u00e3o.  A ideia \u00e9 analisar o sentimento do mercado com base nas informa\u00e7\u00f5es dispon\u00edveis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E agora, as instru\u00e7\u00f5es para exibir o resultado desta an\u00e1lise, ou seja, o sentimento do mercado no momento em rela\u00e7\u00e3o \u00e0s a\u00e7\u00f5es da Petrobras. Claro que com base nas informa\u00e7\u00f5es que eu disponibilizei para ele, que podem ser incompletas ou n\u00e3o.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>response = model.generate_content(meu_prompt)\nprint(response.text)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e3o foi necess\u00e1rio o uso da fun\u00e7\u00e3o criada anteriormente, to_markdown, ela gerou um texto com formata\u00e7\u00e3o falha.  A instru\u00e7\u00e3o response.text j\u00e1 foi suficiente para gerar um texto leg\u00edvel.A an\u00e1lise de sentimento do mercado dele foi a seguinte:<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>O mercado est\u00e1 otimista em rela\u00e7\u00e3o \u00e0s a\u00e7\u00f5es da Petrobras.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A empresa pagou hoje a segunda parcela de <strong>R$ 15,2 bilh\u00f5es<\/strong> de dividendos, o que \u00e9 um sinal de solidez financeira. A Petrobras tamb\u00e9m desistiu da venda de suas a\u00e7\u00f5es da Usina El\u00e9trica a Gas de Aragua\u00edna, o que indica que a empresa est\u00e1 confiante em seu potencial de gera\u00e7\u00e3o de caixa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As a\u00e7\u00f5es preferenciais da Petrobras (PETR4) subiram <strong>0,23%<\/strong>, a <strong>R$ 35,40<\/strong>, enquanto o Ibovespa recuou <strong>0,49%<\/strong>, aos <strong>130.197,10 pontos<\/strong>. Isso indica que os investidores est\u00e3o mais confiantes nas a\u00e7\u00f5es da Petrobras do que no mercado como um todo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A seguir, o c\u00f3digo completo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import pathlib\nimport textwrap\nimport google.generativeai as genai\n\nfrom google.colab import userdata\nfrom IPython.display import display\nfrom IPython.display import Markdown\n\ndef to_markdown(text):\n  text = text.replace(\u2022,   *)\n  return Markdown(textwrap.indent(text, &gt; , predicate=lambda _: True))\n  \nGOOGLE_API_KEY=userdata.get(GOOGLE_API_KEY)\n\n# Caso deseje listar todos os modelos de IA generativa dispon\u00edveis pode utilizar\n# o seguinte trecho de c\u00f3digo, dentro do FOR, caso contr\u00e1rio, n\u00e3o precisa.\n\n#for m in genai.list_models():\n#  if generateContent in m.supported_generation_methods:\n#    print(m.name)\n\nmodel = genai.GenerativeModel(gemini-pro)\n\nmeu_prompt = \"Qual o sentimento do mercado em rela\u00e7\u00e3o \u00e0s a\u00e7\u00f5es da Petrobras com base nas seguintes informa\u00e7\u00f5es? Petrobras (PETR4) paga hoje 2a parcela de R$ 15. Petrobras desiste da venda de suas a\u00e7\u00f5es da Usina El\u00e9trica a G\u00e1s de Arauc\u00e1ria. Petrobras (PETR4): a\u00e7\u00f5es fecham em alta em dia de preg\u00e3o vol\u00e1til, As a\u00e7\u00f5es preferenciais da Petrobras (PETR4) subiram 0,23% nesta sexta-feira (15\/12\/2023), cotadas a R$ 35,40. O Ibovespa, por sua vez, recuou 0,49%, aos 130.197,10 pontos. Petr\u00f3leo fecha em baixa, com d\u00f3lar impulsionando a sess\u00e3o. Perspectivas sobre o relaxamento monet\u00e1rio nas principais economias ajudaram a conter a queda hoje (15\/12\/2023). Os contratos futuros de petr\u00f3leo fecharam com modestas perdas nesta sexta-feira (15\/12\/2023), em corre\u00e7\u00e3o ap\u00f3s os ganhos das duas \u00faltimas sess\u00f5es, mas de forma insuficiente para impedir uma valoriza\u00e7\u00e3o semanal. Dados mistos e a recupera\u00e7\u00e3o do d\u00f3lar amplificaram a press\u00e3o, embora perspectivas por relaxamento monet\u00e1rio nas principais economias ajudem a conter queda.\"\n\nresponse = model.generate_content(meu_prompt)\nprint(response.text)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O Gemini Pro se saiu muito bem fazendo a an\u00e1lise de sentimento do mercado, com base nas informa\u00e7\u00f5es fornecidas. Aprovado com louvor. Espero que tenham gostado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Autor: Ernesto Villafuerte Oyola<br>            Mestre em Ci\u00eancias da Computa\u00e7\u00e3o \/ IA<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A an\u00e1lise de sentimentos \u00e9 uma aplica\u00e7\u00e3o da intelig\u00eancia artificial muito interessante que permite inferir o sentimento predominante com base num conjunto de informa\u00e7\u00f5es. Neste artigo vamos criar uma aplica\u00e7\u00e3o Python acessando a API da IA generativa Gemini PRO da Google para inferir o sentimento existente no mercado de a\u00e7\u00f5es em rela\u00e7\u00e3o \u00a0 a determinada &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/softwarelivre-br.aomega.com.br\/index.php\/2023\/12\/16\/usando-o-gemini-pro-da-google-para-analisar-o-sentimento-do-mercado-de-acoes\/\" class=\"more-link\">Continue lendo<span class=\"screen-reader-text\"> &#8220;Usando o Gemini Pro da Google para analisar o sentimento do mercado de a\u00e7\u00f5es&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-218","post","type-post","status-publish","format-standard","hentry","category-sem-categoria","entry"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7PCWO-3w","jetpack-related-posts":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/softwarelivre-br.aomega.com.br\/index.php\/wp-json\/wp\/v2\/posts\/218","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/softwarelivre-br.aomega.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/softwarelivre-br.aomega.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/softwarelivre-br.aomega.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/softwarelivre-br.aomega.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=218"}],"version-history":[{"count":5,"href":"https:\/\/softwarelivre-br.aomega.com.br\/index.php\/wp-json\/wp\/v2\/posts\/218\/revisions"}],"predecessor-version":[{"id":225,"href":"https:\/\/softwarelivre-br.aomega.com.br\/index.php\/wp-json\/wp\/v2\/posts\/218\/revisions\/225"}],"wp:attachment":[{"href":"https:\/\/softwarelivre-br.aomega.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=218"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/softwarelivre-br.aomega.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=218"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/softwarelivre-br.aomega.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}