{"id":46574,"date":"2024-09-30T19:53:28","date_gmt":"2024-09-30T19:53:28","guid":{"rendered":"https:\/\/fabricegrinda.com\/?p=46574"},"modified":"2024-10-01T14:01:43","modified_gmt":"2024-10-01T14:01:43","slug":"fabrice-ai-implementacao-tecnica-atual","status":"publish","type":"post","link":"https:\/\/grinda.org\/pt-pt\/fabrice-ai-implementacao-tecnica-atual\/","title":{"rendered":"Fabrice AI: Implementa\u00e7\u00e3o t\u00e9cnica atual"},"content":{"rendered":"\n<p>Na \u00faltima publica\u00e7\u00e3o, <a href=\"https:\/\/fabricegrinda.com\/pt-pt\/fabrice-ai-o-percurso-tecnico\/\" data-type=\"link\" data-id=\"https:\/\/fabricegrinda.com\/fabrice-ai-the-technical-journey\/\" target=\"_blank\" rel=\"noreferrer noopener\">Fabrice AI: O percurso t\u00e9cnico<\/a>, expliquei o percurso que fizemos para construir a Fabrice AI, fazendo um c\u00edrculo completo.\nComecei por usar o Chat GPT 3 e 3.5.\nDesapontado com os resultados, tentei utilizar o <a href=\"https:\/\/www.langchain.com\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.langchain.com\/\" rel=\"noreferrer noopener\">Langchain Framework<\/a> para construir o meu pr\u00f3prio modelo de IA em cima dele, antes de voltar ao Chat GPT quando come\u00e7aram a utilizar bases de dados vectoriais e a melhorar imenso os resultados com o 4o.  <\/p>\n\n<p>Eis o processo atual de forma\u00e7\u00e3o da IA do Fabrice:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Os dados de treino (publica\u00e7\u00f5es de blogues, URLs do Youtube, URLs de podcasts, URLs de PDFs e URLs de imagens) s\u00e3o armazenados na nossa base de dados <a href=\"https:\/\/wordpress.com\/\" data-type=\"link\" data-id=\"https:\/\/wordpress.com\/\" target=\"_blank\" rel=\"noopener\">WordPress<\/a>.<\/li>\n\n\n\n<li>Extra\u00edmos os dados e estruturamo-los.<\/li>\n\n\n\n<li>Fornecemos os dados estruturados \u00e0 Open AI para treino utilizando a <a href=\"https:\/\/platform.openai.com\/docs\/assistants\/overview\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/platform.openai.com\/docs\/assistants\/overview\" rel=\"noreferrer noopener\">API Assistants<\/a>.<\/li>\n\n\n\n<li>Em seguida, o Open AI cria uma base de dados de armazenamento de vectores e armazena-a.<\/li>\n<\/ul>\n\n<p>Eis um exemplo de um dado estruturado. Cada parte do conte\u00fado tem o seu pr\u00f3prio ficheiro JSON. Certificamo-nos de que n\u00e3o excedemos o limite de 32.000 fichas.<\/p>\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>{<\/p>\n\n\n\n<p>  &#8220;id&#8221;: &#8220;1&#8221;,<\/p>\n\n\n\n<p>  &#8220;data&#8221;: &#8221; &#8220;,<\/p>\n\n\n\n<p>  &#8220;link&#8221;: &#8220;https:\/\/fabricegrinda.com\/&#8221;,<\/p>\n\n\n\n<p>  &#8220;t\u00edtulo&#8221;: {<\/p>\n\n\n\n<p>  &#8220;renderizado&#8221;: &#8220;O que \u00e9 a IA do Fabrice?&#8221;<\/p>\n\n\n\n<p>\u00a0 },<\/p>\n\n\n\n<p>  &#8220;Categoria&#8221;: &#8220;Sobre o Fabrice&#8221;,<\/p>\n\n\n\n<p>  &#8220;featured_media&#8221;: &#8220;https:\/\/fabricegrinda.com\/wp-content\/uploads\/2023\/12\/About-me.png&#8221;,<\/p>\n\n\n\n<p>  &#8220;outros_meios&#8221;: &#8220;&#8221;,<\/p>\n\n\n\n<p>  &#8220;tipo de conhecimento&#8221;: &#8220;blogue&#8221;,<\/p>\n\n\n\n<p>  &#8220;contentUpdated&#8221;: &#8220;Dado que muitas das transcri\u00e7\u00f5es s\u00e3o imperfeitas e que o blogue \u00e9 apenas uma representa\u00e7\u00e3o limitada da pessoa Fabrice, pedimos desculpa pelas imprecis\u00f5es e informa\u00e7\u00f5es em falta. No entanto, este \u00e9 um bom ponto de partida para conheceres as ideias de Fabrice sobre muitos temas.&#8221;<\/p>\n\n\n\n<p>}<\/p>\n<\/div><\/div>\n\n\n\n<p>Esta \u00e9 a implementa\u00e7\u00e3o t\u00e9cnica atual:<\/p>\n<\/div><\/div>\n\n<ul class=\"wp-block-list\">\n<li>O s\u00edtio Web virado para o consumidor est\u00e1 alojado no <a href=\"https:\/\/aws.amazon.com\/amplify\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/aws.amazon.com\/amplify\/\" rel=\"noreferrer noopener\">AWS Amplify<\/a>.<\/li>\n\n\n\n<li>A integra\u00e7\u00e3o entre o s\u00edtio p\u00fablico e o Open AI \u00e9 feita atrav\u00e9s de uma camada de API, que est\u00e1 alojada no AWS como um servidor de API Python.<\/li>\n\n\n\n<li>Usamos <a href=\"https:\/\/www.mongodb.com\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.mongodb.com\/\" rel=\"noreferrer noopener\">o MongoDB<\/a> como registo para armazenar todas as perguntas feitas pelo p\u00fablico, as respostas dadas pelo Chat GPT e os URLs das fontes.<\/li>\n\n\n\n<li>Utilizamos v\u00e1rios scripts para estruturar os dados do blogue, do YouTube, etc., para os transmitir \u00e0 Open AI para treino.<\/li>\n\n\n\n<li>Utilizamos <a href=\"https:\/\/www.npmjs.com\/package\/react-speech-recognition\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.npmjs.com\/package\/react-speech-recognition\" rel=\"noreferrer noopener\">o React-Speech Recognition<\/a> para converter as perguntas de voz em texto.<\/li>\n\n\n\n<li>Tamb\u00e9m utilizamos o Google Analytics para controlar o tr\u00e1fego do s\u00edtio Web.<\/li>\n<\/ul>\n\n<p>\u00c9 importante notar que utilizamos dois assistentes:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Um para responderes a perguntas.<\/li>\n\n\n\n<li>Um para obter URLs de metadados, os URLs de blogues que t\u00eam o conte\u00fado original para apresentar as fontes no fundo das respostas.<\/li>\n<\/ul>\n\n<p><strong>O que vais fazer agora?<\/strong><\/p>\n\n<ol class=\"wp-block-list\">\n<li><strong>Melhorias na convers\u00e3o de voz em texto<\/strong><\/li>\n<\/ol>\n\n<p>O modelo <a href=\"https:\/\/openai.com\/index\/whisper\/\" data-type=\"link\" data-id=\"https:\/\/openai.com\/index\/whisper\/\" target=\"_blank\" rel=\"noreferrer noopener\">Whisper<\/a> da Open AI para <a href=\"https:\/\/platform.openai.com\/docs\/guides\/speech-to-text\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/platform.openai.com\/docs\/guides\/speech-to-text\" rel=\"noreferrer noopener\">convers\u00e3o de voz em texto<\/a> \u00e9 mais preciso do que o React.\nTamb\u00e9m suporta v\u00e1rios idiomas de imediato e \u00e9 bom a lidar com discurso em v\u00e1rios idiomas, sotaques e dialectos.\nPor isso, \u00e9 muito prov\u00e1vel que o utilize nos pr\u00f3ximos meses.\nDito isto, a sua configura\u00e7\u00e3o \u00e9 mais complexa, pelo que pode demorar algum tempo.\nTens de tratar do modelo, gerir as depend\u00eancias (por exemplo, Python, bibliotecas) e garantir que tens hardware suficiente para um desempenho eficiente.\nAl\u00e9m disso, o Whisper n\u00e3o foi concebido para utiliza\u00e7\u00e3o direta em browsers.\nQuando constr\u00f3i uma aplica\u00e7\u00e3o Web, tem de criar um servi\u00e7o de backend para tratar a transcri\u00e7\u00e3o, o que aumenta a complexidade.      <\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Avatar de Fabrice AI<\/strong><\/li>\n<\/ul>\n\n<p>Quero criar um avatar Fabrice AI que se pare\u00e7a e soe como eu e com o qual possas ter uma conversa.\nAvaliei <a href=\"\" data-type=\"\" data-id=\"\" target=\"\" rel=\"noopener\">o D-iD<\/a>, mas achei-o demasiado caro para os meus objectivos. <a href=\"\" data-type=\"\" data-id=\"\" target=\"\" rel=\"noopener\">O Eleven Labs<\/a> \u00e9 apenas para voz. <a href=\"\" data-type=\"\" data-id=\"\" target=\"\" rel=\"noopener\">O Synthesia<\/a> \u00e9 \u00f3timo, mas atualmente n\u00e3o cria v\u00eddeos em tempo real.\nNo final, decidi utilizar o <a href=\"\" target=\"\" data-type=\"\" data-id=\"\" rel=\"noopener\">HeyGen<\/a> devido ao pre\u00e7o e \u00e0 funcionalidade mais adequados.  <\/p>\n\n<p>Suspeito que, a dada altura, a Open AI lan\u00e7ar\u00e1 a sua pr\u00f3pria solu\u00e7\u00e3o, pelo que este trabalho ter\u00e1 sido em v\u00e3o.\nN\u00e3o me importo com isso e mudarei para a solu\u00e7\u00e3o Open AI quando e se esta for lan\u00e7ada.\nNesta fase, o objetivo de todo este exerc\u00edcio \u00e9 aprender o que \u00e9 poss\u00edvel fazer com a IA e quanto trabalho \u00e9 necess\u00e1rio para me ajudar a compreender melhor o espa\u00e7o.  <\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Painel de controlo personalizado<\/strong><\/li>\n<\/ul>\n\n<p>Neste momento, preciso de executar uma consulta MongoDB para obter um extrato das perguntas e respostas do dia.\nEstou a construir um painel de controlo simples onde posso obter extrac\u00e7\u00f5es e estat\u00edsticas simples sobre o n\u00famero de consultas por l\u00edngua, o n\u00famero de pedidos de voz para texto, etc. <\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Fontes de dados adicionais<\/strong><\/li>\n<\/ul>\n\n<p>Acab\u00e1mos de carregar o <a href=\"https:\/\/fabricegrinda.com\/portfolio\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/fabricegrinda.com\/portfolio\/\" rel=\"noreferrer noopener\">portf\u00f3lio da FJ Labs<\/a> na Fabrice AI.\nAgora, podes perguntar se uma empresa faz parte do portef\u00f3lio.\nA Fabrice AI responde com uma breve descri\u00e7\u00e3o da empresa e uma liga\u00e7\u00e3o ao seu s\u00edtio Web.  <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1492\" height=\"1458\" src=\"https:\/\/fabricegrinda.com\/wp-content\/uploads\/2024\/09\/portfolio3.jpg\" alt=\"\" class=\"wp-image-46459\" style=\"width:650px\" srcset=\"https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/portfolio3.jpg 1492w, https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/portfolio3-768x750.jpg 768w, https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/portfolio3-1200x1173.jpg 1200w, https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/portfolio3-1320x1290.jpg 1320w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n<\/div>\n<p>Dado o n\u00famero de perguntas pessoais que a Fabrice AI estava a receber e para as quais n\u00e3o tinha resposta, dediquei algum tempo a etiquetar manualmente cada orador no meu <a href=\"https:\/\/www.youtube.com\/watch?v=79BKGNv7TMQ\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.youtube.com\/watch?v=79BKGNv7TMQ\" rel=\"noreferrer noopener\">v\u00eddeo do <sup>50\u00ba <\/sup>anivers\u00e1rio<\/a> para lhe dar o conte\u00fado de que necessitava.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1508\" height=\"1633\" src=\"https:\/\/fabricegrinda.com\/wp-content\/uploads\/2024\/09\/Family3.jpg\" alt=\"\" class=\"wp-image-46484\" style=\"width:650px\" srcset=\"https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/Family3.jpg 1508w, https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/Family3-768x832.jpg 768w, https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/Family3-1418x1536.jpg 1418w, https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/Family3-1200x1299.jpg 1200w, https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/Family3-1320x1429.jpg 1320w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n<\/div>\n<p><strong>Conclus\u00e3o<\/strong><\/p>\n\n<p>Com todo o trabalho que fiz nos \u00faltimos doze meses sobre todas as coisas relacionadas com a IA, parece haver uma conclus\u00e3o universal clara: quanto mais esperares, mais barato, mais f\u00e1cil e melhor se torna, e mais prov\u00e1vel \u00e9 que a IA aberta o ofere\u00e7a!\nEntretanto, avisa-me se tiveres alguma d\u00favida. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Na \u00faltima publica\u00e7\u00e3o, Fabrice AI: O percurso t\u00e9cnico, expliquei o percurso que fizemos para construir a Fabrice AI, fazendo um c\u00edrculo completo. Comecei por usar o Chat GPT 3 e &hellip; <a href=\"https:\/\/www.fabricegrinda.com\/pt-pt\/fabrice-ai-implementacao-tecnica-atual\/\" class=\"more-link\">Continuar a ler<span class=\"screen-reader-text\"> &#8220;Fabrice AI: Implementa\u00e7\u00e3o t\u00e9cnica atual&#8221;<\/span><\/a><\/p>\n","protected":false},"author":9,"featured_media":46759,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[867,932],"tags":[],"class_list":["post-46574","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-reflexoes-pessoais-pt-pt","category-gadgets-tecnologicos"],"acf":[],"contentUpdated":"Fabrice AI: Implementa\u00e7\u00e3o t\u00e9cnica atual. Categories - Reflex\u00f5es pessoais, Gadgets tecnol\u00f3gicos. Date-Posted - 2024-09-30T19:53:28 . \n Na \u00faltima publica\u00e7\u00e3o, Fabrice AI: O percurso t\u00e9cnico, expliquei o percurso que fizemos para construir a Fabrice AI, fazendo um c\u00edrculo completo.\n Comecei por usar o Chat GPT 3 e 3.5.\n Desapontado com os resultados, tentei utilizar o Langchain Framework para construir o meu pr\u00f3prio modelo de IA em cima dele, antes de voltar ao Chat GPT quando come\u00e7aram a utilizar bases de dados vectoriais e a melhorar imenso os resultados com o 4o.  \n Eis o processo atual de forma\u00e7\u00e3o da IA do Fabrice:\n Os dados de treino (publica\u00e7\u00f5es de blogues, URLs do Youtube, URLs de podcasts, URLs de PDFs e URLs de imagens) s\u00e3o armazenados na nossa base de dados WordPress.\n Extra\u00edmos os dados e estruturamo-los.\n Fornecemos os dados estruturados \u00e0 Open AI para treino utilizando a API Assistants.\n Em seguida, o Open AI cria uma base de dados de armazenamento de vectores e armazena-a.\n Eis um exemplo de um dado estruturado. Cada parte do conte\u00fado tem o seu pr\u00f3prio ficheiro JSON. Certificamo-nos de que n\u00e3o excedemos o limite de 32.000 fichas.\n {\n   &#8220;id&#8221;: &#8220;1&#8221;,\n   &#8220;data&#8221;: &#8221; &#8220;,\n   &#8220;link&#8221;: &#8220;https:\/\/fabricegrinda.com\/&#8221;,\n   &#8220;t\u00edtulo&#8221;: {\n   &#8220;renderizado&#8221;: &#8220;O que \u00e9 a IA do Fabrice?&#8221;\n \u00a0 },\n   &#8220;Categoria&#8221;: &#8220;Sobre o Fabrice&#8221;,\n   &#8220;featured_media&#8221;: &#8220;https:\/\/fabricegrinda.com\/wp-content\/uploads\/2023\/12\/About-me.png&#8221;,\n   &#8220;outros_meios&#8221;: &#8220;&#8221;,\n   &#8220;tipo de conhecimento&#8221;: &#8220;blogue&#8221;,\n   &#8220;contentUpdated&#8221;: &#8220;Dado que muitas das transcri\u00e7\u00f5es s\u00e3o imperfeitas e que o blogue \u00e9 apenas uma representa\u00e7\u00e3o limitada da pessoa Fabrice, pedimos desculpa pelas imprecis\u00f5es e informa\u00e7\u00f5es em falta. No entanto, este \u00e9 um bom ponto de partida para conheceres as ideias de Fabrice sobre muitos temas.&#8221;\n }\n Esta \u00e9 a implementa\u00e7\u00e3o t\u00e9cnica atual:\n O s\u00edtio Web virado para o consumidor est\u00e1 alojado no AWS Amplify.\n A integra\u00e7\u00e3o entre o s\u00edtio p\u00fablico e o Open AI \u00e9 feita atrav\u00e9s de uma camada de API, que est\u00e1 alojada no AWS como um servidor de API Python.\n Usamos o MongoDB como registo para armazenar todas as perguntas feitas pelo p\u00fablico, as respostas dadas pelo Chat GPT e os URLs das fontes.\n Utilizamos v\u00e1rios scripts para estruturar os dados do blogue, do YouTube, etc., para os transmitir \u00e0 Open AI para treino.\n Utilizamos o React-Speech Recognition para converter as perguntas de voz em texto.\n Tamb\u00e9m utilizamos o Google Analytics para controlar o tr\u00e1fego do s\u00edtio Web.\n \u00c9 importante notar que utilizamos dois assistentes:\n Um para responderes a perguntas.\n Um para obter URLs de metadados, os URLs de blogues que t\u00eam o conte\u00fado original para apresentar as fontes no fundo das respostas.\n O que vais fazer agora?\n Melhorias na convers\u00e3o de voz em texto\n O modelo Whisper da Open AI para convers\u00e3o de voz em texto \u00e9 mais preciso do que o React.\n Tamb\u00e9m suporta v\u00e1rios idiomas de imediato e \u00e9 bom a lidar com discurso em v\u00e1rios idiomas, sotaques e dialectos.\n Por isso, \u00e9 muito prov\u00e1vel que o utilize nos pr\u00f3ximos meses.\n Dito isto, a sua configura\u00e7\u00e3o \u00e9 mais complexa, pelo que pode demorar algum tempo.\n Tens de tratar do modelo, gerir as depend\u00eancias (por exemplo, Python, bibliotecas) e garantir que tens hardware suficiente para um desempenho eficiente.\n Al\u00e9m disso, o Whisper n\u00e3o foi concebido para utiliza\u00e7\u00e3o direta em browsers.\n Quando constr\u00f3i uma aplica\u00e7\u00e3o Web, tem de criar um servi\u00e7o de backend para tratar a transcri\u00e7\u00e3o, o que aumenta a complexidade.      \n Avatar de Fabrice AI\n Quero criar um avatar Fabrice AI que se pare\u00e7a e soe como eu e com o qual possas ter uma conversa.\n Avaliei o D-iD, mas achei-o demasiado caro para os meus objectivos. O Eleven Labs \u00e9 apenas para voz. O Synthesia \u00e9 \u00f3timo, mas atualmente n\u00e3o cria v\u00eddeos em tempo real.\n No final, decidi utilizar o HeyGen devido ao pre\u00e7o e \u00e0 funcionalidade mais adequados.  \n Suspeito que, a dada altura, a Open AI lan\u00e7ar\u00e1 a sua pr\u00f3pria solu\u00e7\u00e3o, pelo que este trabalho ter\u00e1 sido em v\u00e3o.\n N\u00e3o me importo com isso e mudarei para a solu\u00e7\u00e3o Open AI quando e se esta for lan\u00e7ada.\n Nesta fase, o objetivo de todo este exerc\u00edcio \u00e9 aprender o que \u00e9 poss\u00edvel fazer com a IA e quanto trabalho \u00e9 necess\u00e1rio para me ajudar a compreender melhor o espa\u00e7o.  \n Painel de controlo personalizado\n Neste momento, preciso de executar uma consulta MongoDB para obter um extrato das perguntas e respostas do dia.\n Estou a construir um painel de controlo simples onde posso obter extrac\u00e7\u00f5es e estat\u00edsticas simples sobre o n\u00famero de consultas por l\u00edngua, o n\u00famero de pedidos de voz para texto, etc. \n Fontes de dados adicionais\n Acab\u00e1mos de carregar o portf\u00f3lio da FJ Labs na Fabrice AI.\n Agora, podes perguntar se uma empresa faz parte do portef\u00f3lio.\n A Fabrice AI responde com uma breve descri\u00e7\u00e3o da empresa e uma liga\u00e7\u00e3o ao seu s\u00edtio Web.  \n Dado o n\u00famero de perguntas pessoais que a Fabrice AI estava a receber e para as quais n\u00e3o tinha resposta, dediquei algum tempo a etiquetar manualmente cada orador no meu v\u00eddeo do 50\u00ba anivers\u00e1rio para lhe dar o conte\u00fado de que necessitava.\n Conclus\u00e3o\n Com todo o trabalho que fiz nos \u00faltimos doze meses sobre todas as coisas relacionadas com a IA, parece haver uma conclus\u00e3o universal clara: quanto mais esperares, mais barato, mais f\u00e1cil e melhor se torna, e mais prov\u00e1vel \u00e9 que a IA aberta o ofere\u00e7a!\n Entretanto, avisa-me se tiveres alguma d\u00favida. \n ","Category":["Reflex\u00f5es pessoais","Gadgets tecnol\u00f3gicos"],"_links":{"self":[{"href":"https:\/\/grinda.org\/pt-pt\/wp-json\/wp\/v2\/posts\/46574","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grinda.org\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/grinda.org\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/grinda.org\/pt-pt\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/grinda.org\/pt-pt\/wp-json\/wp\/v2\/comments?post=46574"}],"version-history":[{"count":4,"href":"https:\/\/grinda.org\/pt-pt\/wp-json\/wp\/v2\/posts\/46574\/revisions"}],"predecessor-version":[{"id":46796,"href":"https:\/\/grinda.org\/pt-pt\/wp-json\/wp\/v2\/posts\/46574\/revisions\/46796"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/grinda.org\/pt-pt\/wp-json\/wp\/v2\/media\/46759"}],"wp:attachment":[{"href":"https:\/\/grinda.org\/pt-pt\/wp-json\/wp\/v2\/media?parent=46574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/grinda.org\/pt-pt\/wp-json\/wp\/v2\/categories?post=46574"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/grinda.org\/pt-pt\/wp-json\/wp\/v2\/tags?post=46574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}