{"id":368,"date":"2024-02-07T08:25:33","date_gmt":"2024-02-07T11:25:33","guid":{"rendered":"https:\/\/portal7ia.com.br\/?p=368"},"modified":"2024-02-08T06:19:43","modified_gmt":"2024-02-08T09:19:43","slug":"a-fascinante-hugging-face","status":"publish","type":"post","link":"https:\/\/portal7ia.com.br\/index.php\/2024\/02\/07\/a-fascinante-hugging-face\/","title":{"rendered":"A Fascinante Hugging Face"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A primeira vez que assisti um v\u00eddeo no YouTube sobre a Hugging Face achei que era algo muito interessante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sabe aquelas coisas muito interessantes que existem mais voc\u00ea n\u00e3o conhece! Pois \u00e9, isso descreve um pouco de como eu me sentir quando conheci a Hugging Face. Algo muito interessante mas eu n\u00e3o conhecia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mas agora, que j\u00e1 tive o primeiro contato com essa plataforma, gostaria de passar esse conhecimento inicial a outras pessoas, atrav\u00e9s da transcri\u00e7\u00e3o e tradu\u00e7\u00e3o de um v\u00eddeo do YouTube bem interessante que me fez conhecer essa plataforma muito interessante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eis aqui a transcri\u00e7\u00e3o e tradu\u00e7\u00e3o do v\u00eddeo do YouTube:<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Introdu\u00e7\u00e3o<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Se voc\u00ea est\u00e1 construindo aplicativos de IA, voc\u00ea precisa aprender a usar o Hugging Face. \u00c9 uma das principais empresas de IA, <strong>avaliada em mais de 2 bilh\u00f5es de d\u00f3lares<\/strong>, com mais de 16.000 seguidores no GitHub. <strong>Seus produtos s\u00e3o usados por Google, Amazon, Microsoft e Meta<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Com mais de 200.000 tipos diferentes de modelos de IA, incluindo imagem para texto, texto para fala, texto para imagem e muitos outros.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 por isso que, se voc\u00ea est\u00e1 construindo aplicativos de IA, voc\u00ea precisa aprender a us\u00e1-lo.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E eu vou te mostrar como voc\u00ea pode usar a <strong>plataforma Hugging Face<\/strong> e constru\u00ed-la com outras bibliotecas p\u00fablicas como o LangChain. Vamos come\u00e7ar!<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Vis\u00e3o Geral do Hugging Face<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">O Hugging Face \u00e9 um lugar para voc\u00ea <strong>descobrir e compartilhar modelos de IA<\/strong>. A plataforma Hugging Face \u00e9 composta por tr\u00eas partes: <strong>Modelos, Datasets e Spaces.<\/strong><\/p>\n\n\n\n<h6 class=\"wp-block-heading\">MODELOS<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Primeiro, Modelos. Este \u00e9 o lugar onde voc\u00ea pode encontrar todos os diferentes tipos de modelos para usar. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo, se voc\u00ea estiver interessado em usar <strong>imagem para texto<\/strong>, voc\u00ea pode selecionar a categoria \u00e0 esquerda e ent\u00e3o no lado direito escolher qualquer um dos modelos populares de imagem para texto.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E uma vez que voc\u00ea entra na p\u00e1gina do modelo selecionado, no lado esquerdo ter\u00e1 uma descri\u00e7\u00e3o sobre o modelo e no lado direito ele permite que voc\u00ea visualize e teste o modelo de IA diretamente na vers\u00e3o hospedada por eles.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>E \u00e9 por isso que o Hugging Face \u00e9 t\u00e3o \u00fatil, sem ele, voc\u00ea precisaria encontrar os modelos, baix\u00e1-los para sua m\u00e1quina local ou hosped\u00e1-los em algum lugar e ent\u00e3o tentar execut\u00e1-los para saber se \u00e9 o modelo certo para voc\u00ea.&nbsp;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Mas com o Hugging Face, eles est\u00e3o hospedados nos servidores do Hugging Face e voc\u00ea pode test\u00e1-lo imediatamente.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mas para este modelo de imagem para texto, voc\u00ea pode arrastar e soltar a imagem diretamente e ver que tipo de resultados ele vai obter.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E se voc\u00ea quiser us\u00e1-lo, ele permite que voc\u00ea implemente facilmente este modelo em diferentes servidores.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea tamb\u00e9m pode usar a API de host no Hugging Face Hub gratuitamente. \u00c9 um pouco lento e eles t\u00eam limites de taxa, mas \u00e9 definitivamente suficiente para voc\u00ea executar alguns testes.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mas por outro lado, se voc\u00ea prefere executar os modelos localmente em sua pr\u00f3pria m\u00e1quina, voc\u00ea tamb\u00e9m pode usar a <strong>biblioteca Transformers<\/strong> deles e eu vou falar sobre como fazer isso muito em breve.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Explorando os Recursos do Hugging Face<\/h5>\n\n\n\n<h6 class=\"wp-block-heading\">BIBLIOTECA TRANSFORMERS<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">A <strong>biblioteca Transformers<\/strong> da Hugging Face permite que voc\u00ea execute modelos de IA em sua pr\u00f3pria m\u00e1quina.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea pode baixar a biblioteca do site deles e instal\u00e1-la em seu <strong>ambiente Python<\/strong>. Uma vez que voc\u00ea tenha instalado a biblioteca, voc\u00ea pode come\u00e7ar a carregar e executar modelos.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">OBJETO PIPELINE<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Para carregar um modelo, voc\u00ea pode usar a fun\u00e7\u00e3o <strong>`pipeline`<\/strong>. Esta fun\u00e7\u00e3o leva o nome do modelo como entrada e retorna um objeto pipeline. O <strong>objeto pipeline<\/strong> pode ser usado para executar o modelo em uma entrada de texto ou imagem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para executar um modelo, voc\u00ea pode usar o m\u00e9todo <strong>`predict`<\/strong>. Este m\u00e9todo leva a entrada de texto ou imagem como entrada e retorna a sa\u00edda do modelo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqui est\u00e1 um exemplo de como usar a biblioteca Transformers para executar um modelo de imagem para texto:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># python\nfrom transformers import pipeline\n\n# Carregar o modelo\nmodel = pipeline(\"image-to-text\")\n\n# Executar o modelo\noutputs = model(\"image.jpg\")\n\n# Imprimir a sa\u00edda\nprint(outputs)\n\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este c\u00f3digo ir\u00e1 carregar o modelo de imagem para texto, executar o modelo na imagem `image.jpg` e imprimir a sa\u00edda do modelo.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">DATASETS<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">A se\u00e7\u00e3o Datasets fornece acesso a v\u00e1rios conjuntos de dados para treinamento e avalia\u00e7\u00e3o de modelos de IA. Voc\u00ea pode encontrar conjuntos de dados para uma variedade de tarefas, incluindo classifica\u00e7\u00e3o de imagem, tradu\u00e7\u00e3o de idiomas e resposta a perguntas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esses dados s\u00e3o primariamente usados para os usu\u00e1rios treinarem os seus pr\u00f3prios modelos.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">SPACES<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">A se\u00e7\u00e3o Spaces foi projetada inicialmente para que as pessoas mostrassem e compartilhassem os aplicativos de IA que constru\u00edram.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eles permitem que voc\u00ea instale, muito facilmente, nas m\u00e1quinas da Hugging face os aplicativos que voc\u00ea criar e eles fornecem uma vers\u00e3o gratuita tamb\u00e9m.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E voc\u00ea ainda pode explorar outros aplicativos de IA que as pessoas est\u00e3o construindo e h\u00e1 muitas coisas muito legais que voc\u00ea pode simplesmente clicar neles e come\u00e7ar a brincar com esses aplicativos e voc\u00ea tamb\u00e9m pode aprender como eles constroem essas coisas, basta clicar no \u00edcone com tr\u00eas pontinhos, no canto superior direito da tela, que vai mostrar todos os modelos que foram usados para construir o APP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E clicando em <strong>Files<\/strong>, mostrar\u00e1 todos os modelos que s\u00e3o usados para construir esse aplicativo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como vamos utilizar esses modelos do Hugging Face? N\u00f3s vamos implementar em LangChain.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Construindo um App de IA com Hugging Face<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos demonstrar a constru\u00e7\u00e3o de um app de IA que converte uma imagem em uma hist\u00f3ria em \u00e1udio, mostrando a implementa\u00e7\u00e3o passo a passo usando modelos do Hugging Face. O app usar\u00e1 tr\u00eas modelos do Hugging Face:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&nbsp;<strong>Modelo de imagem para texto (Blip)<\/strong> para entender o conte\u00fado da imagem.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&nbsp;<strong>Modelo de linguagem grande(LLM)<\/strong> para gerar uma hist\u00f3ria curta baseada na imagem.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&nbsp;<strong>Modelo de texto para fala<\/strong> para converter a hist\u00f3ria em \u00e1udio.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Iniciamente,  criaremos um token de API e faremos o download dos modelos usando a biblioteca Transformers.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Implementando o Modelo de Imagem para Texto<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Para iniciar voc\u00ea vai precisar criar uma conta no Hugging Face.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para encontrar o modelo de Image-to-speech que vamos usar nesse projeto, vamos \u00e0 pagina inicial do Hugging Face e filtramos a procura usando a op\u00e7\u00e3o de filtragem <strong>Image-to-Text<\/strong>, do lado esquerdo da p\u00e1gina, na se\u00e7\u00e3o Multimodal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">V\u00e1 em <strong>Setting &gt; Acess Tokens<\/strong> e crie um token de acesso para LangChain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em nosso computador, vamos abrir o Microsoft Visual Studio Code e criar um <strong>.env<\/strong> file onde vamos colocar as nossas credenciais. E vamos colocar aqui a <strong>Hugging Face Hub API Token<\/strong>, da seguinte forma:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>HUGGINGFACEHUB_API_TOKEN = seu_huggingface_api_token_vai_aqui<\/code><\/pre>\n\n\n\n<h6 class=\"wp-block-heading\">Biblioteca Python dotenv<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Agora, vamos importar algumas <strong>bibliotecas<\/strong>. Entretanto, primeiro, vamos <strong>importar dotenv<\/strong> para podermos acessar a <strong>Hugging Face Hub API Token<\/strong> que n\u00f3s colocamos no arquivo <strong>.env<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para isso,&nbsp;digite&nbsp;o comando abaixo no seu terminal.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code class=\"\">pip install python-dotenv<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A biblioteca&nbsp;<code class=\"\">dotenv<\/code>&nbsp;facilita o gerenciamento de vari\u00e1veis de ambiente em seus projetos Python.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O uso da biblioteca dotenv \u00e9 \u00fatil especialmente em projetos onde voc\u00ea n\u00e3o deseja ou n\u00e3o pode expor informa\u00e7\u00f5es sens\u00edveis diretamente no c\u00f3digo-fonte, como ao compartilhar o c\u00f3digo em um reposit\u00f3rio p\u00fablico.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Fun\u00e7\u00f5es find_dotenv e load_dotenv<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Agora, vamos importar as <strong>fun\u00e7\u00f5es find_dotenv<\/strong> e <strong>load_dotenv<\/strong>, para o nosso c\u00f3digo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from dotenv import find_dotenv, load_dotenv<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A fun\u00e7\u00e3o <code class=\"\"><strong>find_dotenv()<\/strong><\/code> procura um arquivo&nbsp;<code class=\"\">.env<\/code>&nbsp;no diret\u00f3rio atual ou em seus diret\u00f3rios pais.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enquanto que a fun\u00e7\u00e3o <code class=\"\"><strong>load_dotenv()<\/strong><\/code> carrega as vari\u00e1veis de ambiente definidas no arquivo&nbsp;<code class=\"\">.env<\/code>&nbsp;para o dicion\u00e1rio&nbsp;<code class=\"\">os.environ<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Depois de importarmos as func\u00f5es mencionadas, vamos cham\u00e1-las(executar) com o comando abaixo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>load_dotenv(find_dotenv())<\/code><\/pre>\n\n\n\n<h6 class=\"wp-block-heading\">Biblioteca transformers<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00f3s vamos precisar da biblioteca Transformers que fornece acesso a diversos modelos pr\u00e9-treinados e ferramentas para tarefas de Processamento de Linguagem Natural (PLN).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para tanto, vamos instal\u00e1-la usando o seguinte c\u00f3digo no terminal do nosso computador:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code class=\"\"><strong>pip install transformers<\/strong><\/code><\/code><\/pre>\n\n\n\n<h6 class=\"wp-block-heading\">Fun\u00e7\u00e3o Pipeline<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Ent\u00e3o, agora, n\u00f3s vamos importar a fun\u00e7\u00e3o pipeline da biblioteca transformers, que acabamos de instalar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta fun\u00e7\u00e3o simplifica a utiliza\u00e7\u00e3o de modelos pr\u00e9-treinados para tarefas espec\u00edficas de Processamento de Linguagem Natural (PLN).&nbsp;Ela lida com tarefas como pr\u00e9-processamento de dados,&nbsp;infer\u00eancia do modelo e p\u00f3s-processamento,&nbsp;oferecendo uma interface amig\u00e1vel ao usu\u00e1rio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para importar essa fun\u00e7\u00e3o, utilizamos o comando abaixo no nosso terminal.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from transformers import pipeline<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">Criando o nosso modelo<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Agora, estamos prontos para implementar o nosso modelo <strong>image to text<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos fazer essa implementa\u00e7\u00e3o atrav\u00e9s do c\u00f3digo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def img2text(url):\n    img_to_text = pipeline(\"image-to-text\", model=\"Salesforce\/blip-captioning-base\")\n\n    text = image_to_text(url)&#91;0]&#91;'generated_text']\n\n    print(text)\n    return text\n\n    img2text(\"photo.png\")<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;O c\u00f3digo extrai com sucesso uma descri\u00e7\u00e3o textual da imagem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para voc\u00ea se familiarizar com os par\u00e2metros das func\u00f5es pr\u00e9-definidas pela Hugging Face, voc\u00ea pode acessar o seguinte site:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>hugginggface.co\/tasks<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ent\u00e3o, no c\u00f3digo acima, n\u00f3s definimos uma fun\u00e7\u00e3o chamada img2text que recebe um par\u00e2metro que chamamos de url.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esse fun\u00e7\u00e3o chama(executa) a fun\u00e7\u00e3o pr\u00e9-definida <strong>pipeline <\/strong>que n\u00f3s importamos para o nosso c\u00f3digo. E s\u00e3o passados dois par\u00e2metros para essa fun\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O primeiro par\u00e2metro \u00e9 o <strong>image-to-text<\/strong>. Essa express\u00e3o image-to-text \u00e9 uma express\u00e3o reservada, pois foi definida na cria\u00e7\u00e3o da fun\u00e7\u00e3o <strong>pipeline<\/strong>, que determina o que a fun\u00e7\u00e3o pipeline vai fazer. No caso, ler a imagem que ser\u00e1 identificada e gerar uma descri\u00e7\u00e3o dessa imagem, em formato de texto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O segundo par\u00e2metro \u00e9 o modelo que ser\u00e1 usado na execu\u00e7\u00e3o da fun\u00e7\u00e3o. Nesse caso: <strong>model=&#8221;Salesforce\/blip-captioning-base&#8221; <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea pode obter o nome dos modelos clicando no bot\u00e3o <strong>Use in Transformers<\/strong> que fica localizado no lado direito da p\u00e1gina.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Implementando o Modelo de Linguagem Grande (LLM)<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;A pr\u00f3xima etapa \u00e9 implementar o LLM para gerar uma hist\u00f3ria baseada na descri\u00e7\u00e3o da imagem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqui voc\u00ea pode usar modelos open source mas aqui usaremos o ChatGPT.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para isso, colocaremos a nossa OpenAI API key no nosso arquivo .env.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>OPENAI_API_KEY=coloque-a-sua-openai-key-aqui.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">E tamb\u00e9m vamos importar mais uma biblioteca, agora da langchain.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install langchain<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Depois, de instalarmos a <strong>biblioteca langchain<\/strong> podemos importar as fun\u00e7\u00f5es <strong>PromptTemplate<\/strong>, <strong>LLMChan<\/strong> e <strong>OpenAI<\/strong>, que vamos precisar.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from langchain import PromptTemplate, LLMChain, OpenAI<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">E agora, vamos criar uma fun\u00e7\u00e3o que vai gerar o texto baseado na imagem.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def generate_story(scenario):\n    template = \"\"\"\n    You are a story teller;\n    You can generate a short story based on a simple narrative, the story should be no more than 20 words.\n\n    CONTEXT: {scenario}\n    STORY:\n    \"\"\"\n    prompt = PromptTemplate(template=template, input_variables=&#91;scenario])\n\n    story_llm = LLMChain(llm=OpenaAI(model_name=\"gpt-3.5-turbo\", temperature=1), prompt=prompt, verbose=True)\n\n    story = story_llm.predict(scenario=scenario)<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">Implementando o Modelo de Texto para Fala (m\u00e9todo alternativo)<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos at\u00e9 a p\u00e1gina que se encontram os modelos e procure por um modelo <strong>Text-to-Speech<\/strong>, que fica sob a se\u00e7\u00e3o Audio, no lado esquerdo da p\u00e1gina, e escolha um dos mais populares.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">M\u00e9todo Alternativo<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Mas n\u00f3s usaremos um modelo do Hugging Face.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea pode clicar no <strong>bot\u00e3o Deploy<\/strong> e escolher <strong>Inference API<\/strong>. Essa \u00e9 uma maneira r\u00e1pida para voc\u00ea testar a Hugging Face API de gra\u00e7a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos adicionar ao nosso c\u00f3digo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import request\nimport os \/\/para extrairmos os API Tokens<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">E incluiremos o Hugging Face API Token em nosso c\u00f3digo, para passarmos quando requisitado pelo API.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>HUGGINGFACEHUB_API_TOKEN = os.getenv(\"HUGGINGFACEHUB_API_TOKEN\")<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ent\u00e3o, criamos a fun\u00e7\u00e3o text2speech:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def text2speech(message):\n    API_URL = \"http:\/\/api-inference.huggingface.co\/models\/espnet\/kan-bayashi_ljspeech_vits\"\n    headers = {\"Authorization\": f\"Bearer {HUGGINGFACEHUB_API_TOKEN}\"}\n    payloads = {\n        \"inputs\": message\n    }\n\n    response = requests.post(API_URL, heeaders=headers, json=payloads)\n    with open('audio.flac', 'wb') as file:\n        file.write(response.content)\n\nscenario = img2text(\"photo.png\")\nstory = generate_story(scenario)\ntext2speech(story)<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">Construindo a Interface do Usu\u00e1rio<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;Para criarmos a interface do usu\u00e1rio vamos fazer uso da <strong>biblioteca Python Streamlit<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para tanto, precisamos instarmos essa biblioteca:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install streamlit<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Agora, podemos importar para o nosso programa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import streamlit as st<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">No final, vamos acrescentar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&nbsp;if __name__=='__main__':\n    main()<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos criar a fun\u00e7\u00e3o main(), que vamos cham\u00e1-la quando o APP for acionado.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def main():\n    st.set_page_config(page_title=\"img 2 audio story\", page_icon=\"\")\n    \n    st.header(\"Turn img into audio story\")\n\n# File upload para o usu\u00e1rio enviar um arquivo.\n    uploaded_file = st.file_uploader(\"Choose an image...\", type=\"jpg\")\n\n   if uploaded_file is not Nome:\n# Se o arquivo for uploaded, salvamos o arquivo.\n       bytes_data = upload_file.getvalue()\n       with open(uploaded_file.name, \"wb\") as file:\n           file.write(bytes_data)\n\n# mostra a imagem\n       st.image(uploaded_file,caption='Uploaded Image.', use_column_width=True)\n\n# executamos a fun\u00e7\u00e3o img2text para criar o texto a partir da imagem\n       scenario = img2text(uploaded_file.name)\n\n# cria a est\u00f3ria baseada no cen\u00e1rio passado como argumento.\n       story = generate_story(scenario)\n\n# gera o oudio a partir da est\u00f3ria criada.\n       text2speech(story)\n\n# mostra(display) o cen\u00e1rio e a est\u00f3ria\n       with st.expander(\"scenario\"):\n            st.write(scenario)\n       with st.expanderr(\"story\")\n            st.write(story)\n\n# display o arquivo de audio final\n        st.audio(\"audio.flac\")<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esse trecho de c\u00f3digo acima, mostra elementos b\u00e1sicos da interface do usu\u00e1rio, como t\u00edtulo, cabe\u00e7alho e carregador de arquivos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;O carregador permitir\u00e1 que os usu\u00e1rios insiram imagens para o aplicativo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para executarmos o programa, digitamos no terminal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>streamlit run app.py<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">E ent\u00e3o, vai carrega a p\u00e1gina no seu localhost e voc\u00ea vai poder subir uma imagem que ser\u00e1 analizada, ser\u00e1 gerada uma hist\u00f3ria baseada na imagem e finalmente ser\u00e1 gerado o audio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pode-se tamb\u00e9m usar uma outra plataforma de IA de low code, a <strong>Relevance AI<\/strong>, para facilitar a constru\u00e7\u00e3o desse tipo de aplicativos. D\u00eaem uma olhada no Relevance AI, parece muito bom.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pronto, nosso projeto est\u00e1 conclu\u00eddo. O Hugging face tem uma infinidade de modelos open source que podem ser aproveitados nos seus projetos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">_________<\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\"><em>Fonte Youtube v\u00eddeo: <\/em><a href=\"https:\/\/www.youtube.com\/watch?v=_j7JEDWuqLE&amp;t=29s\"><em>Hugging Face + Langchain in 5 mins | Access 200k+ FREE AI models for your AI apps (youtube.com)<\/em><\/a><br>Transcri\u00e7\u00e3o e tradu\u00e7\u00e3o Google Bard e Admin<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A primeira vez que assisti um v\u00eddeo no YouTube sobre a Hugging Face achei que era algo muito interessante. Sabe aquelas coisas muito interessantes que existem mais voc\u00ea n\u00e3o conhece! Pois \u00e9, isso descreve um pouco de como eu me sentir quando conheci a Hugging Face. Algo muito interessante mas eu n\u00e3o conhecia. Mas agora, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":432,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,16,53,17],"tags":[],"class_list":["post-368","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-ferramentas-ia","category-how-to","category-linguagens-de-programacao"],"blocksy_meta":[],"brizy_media":[],"_links":{"self":[{"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/posts\/368","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=368"}],"version-history":[{"count":33,"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/posts\/368\/revisions"}],"predecessor-version":[{"id":433,"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/posts\/368\/revisions\/433"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/media\/432"}],"wp:attachment":[{"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=368"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=368"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/portal7ia.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}