# Open Web UI: Uma Alternativa Privada ao ChatGPT

Olá a todos! Todos adoramos usar o ChatGPT, e eu compreendo — o ChatGPT é excelente para fazer muitas coisas interessantes. Mas aqui está o problema: a OpenAI está a recolher os nossos dados e a usá-los para treinar os seus modelos. Isto significa que muita da informação sensível que utilizamos no ChatGPT pode aparecer em conversas com outras pessoas. Não queremos isso, e é exatamente por isso que empresas como a Samsung tiveram de proibir o uso do ChatGPT entre os seus funcionários. Muito código sensível de produção estava a aparecer nos dados.

Então, existe uma alternativa ao ChatGPT? Estou aqui para vos dizer que sim! Chama-se **Open Web UI**. É completamente open source, totalmente privado (ou seja, utiliza apenas os recursos do seu computador) e é gratuito. Pode descarregar qualquer modelo de linguagem grande, como os da Meta, Microsoft ou Google, e mesmo que desligue a internet, ainda poderá utilizar esses modelos.

Neste momento, não estou ligado à internet e acabei de carregar o **F3.5**, que é o modelo da Microsoft. Vou pedir-lhe para escrever uma introdução de 300 palavras para um ensaio sobre o Império Romano, e aqui estou a obter uma resposta.

## Armazenar e Reutilizar Prompts

Suponha que tem um prompt que utiliza repetidamente. Com o ChatGPT, provavelmente terá de guardar o seu prompt nalgum lugar, como num documento Word. Com o Open Web UI, há um local onde pode simplesmente armazenar todos os seus prompts. Por exemplo, aqui tenho um prompt sobre "Resumo de Candidato". Simplesmente guardei-o, e se quiser chamar esse prompt, tudo o que precisa de fazer é adicionar uma barra e escrever "resumo de candidato", e está feito.

## Geração de Código em Tempo Real

Pedi ao modelo **F3.5** para escrever código para criar uma interface front-end simples para um site sobre cães. Ele escreveu todo este código em HTML, CSS e JavaScript, e isto é o que foi exibido. Posso ver o impacto deste código em tempo real e como vai ficar.

## Acesso a Múltiplos Modelos

Todo este tempo, estivemos a utilizar o modelo **F3.5**, mas não estamos limitados a estes modelos. No site **AMA**, temos acesso a todos estes diferentes modelos, como o **Llama** (o modelo do Facebook), o **Gemma** (o modelo da Google) e o **Quen** (o modelo da Alibaba). Suponha que quer descarregar um modelo; tudo o que precisa de fazer é ir ao painel de administração, colar o modelo que quer descarregar e selecionar descarregar. É basicamente isso — vai descarregar o modelo para que possa usá-lo em tempo real, e é muito rápido.

## Comparar Modelos

Se tiver alguns modelos descarregados, pode pedir-lhes para escrever uma história sobre o tempo a andar para trás, por exemplo, e depois ver em tempo real a comparação de três modelos diferentes: o **Llama**, o **Gemma** e o **F3.5**.

## Usar o ChatGPT Dentro do Open Web UI

Aqui está a questão: se realmente quiser usar o ChatGPT dentro desta interface, pode. Tudo o que precisa de fazer é obter uma API para o ChatGPT através do **open.com**, e depois pode simplesmente chamar qualquer modelo do ChatGPT. Aqui, tenho acesso a todos estes modelos **3.5** e **4.0**, e posso perguntar: "Quem é o teu criador?" e ele responde: "Uma equipa de investigadores da OpenAI."

## Comunidade e Funcionalidades Avançadas

Tudo isto é apenas a ponta do icebergue. Temos uma comunidade inteira de diferentes desenvolvedores que todos os dias estão a criar novos modelos, novos prompts e novas ferramentas. Todos os dias, vemos todas estas diferentes ferramentas que os desenvolvedores criam, e também podemos tentar usá-las dentro dos nossos modelos. No **openwebui.com**, temos acesso a todas estas coisas completamente de graça.

## Começar a Usar o Open Web UI

Se é como eu, provavelmente está ansioso por usar o Open Web UI. Bem, criei uma playlist completa no YouTube que o guiará pela instalação básica. Mesmo que seja um completo iniciante e nunca tenha usado a interface de linha de comandos ou o terminal antes, não se preocupe porque vamos guiá-lo por tudo isso desde o início. Depois, vamos mergulhar em todas as diferentes funcionalidades avançadas que o Open Web UI tem para oferecer.

Se achou este vídeo interessante, por favor deixe um like, um comentário e subscreva. Vejo-o no próximo vídeo sobre a instalação do Open Web UI.

---

# Como Instalar o Open Web UI do Zero

Olá a todos, este é o Amish da Digital Brainbase. Neste vídeo, vou mostrar-vos como podem instalar o Open Web UI do zero. Vamos começar.

## O Que Precisa para Instalar

Para instalar o Open Web UI, vai precisar de instalar três coisas:
1. **Docker**
2. **AMA**
3. **Open Web UI**

Vou explicar o que cada um destes componentes é.

### Instalar o Docker

Vamos começar por instalar o Docker. O Docker permite-nos instalar aplicações de forma muito fácil através de algo conhecido como contentores. Primeiro, vá ao Docker e descarregue o Docker Desktop. Escolha o seu sistema operativo, seja Mac, Windows ou Linux.

Depois de descarregar e instalar o Docker, pode abrir o Docker Desktop, e isto é o que verá. Inicialmente, não temos contentores, então vamos adicionar o nosso primeiro contentor, que vai ser o do Open Web UI.

### Adicionar o Contentor do Open Web UI

Para isso, podemos simplesmente procurar por Open Web UI. Não o primeiro link, mas o segundo link — a página do GitHub — é o que queremos clicar. Vou partilhar os links para tudo isto na descrição.

Continue a descer até onde diz "Quick Start with Docker". Há algumas opções disponíveis aqui, mas a que vou selecionar é a primeira. Destaque isto e clique com o botão direito para copiar ou simplesmente pressione o botão que vai copiá-lo para si.

A seguir, abra o seu prompt de comando ou janela de terminal e cole este comando. Execute-o. A primeira vez que executar este comando, vai instalar o contentor **Ol Lama** para si.

### Executar o Open Web UI

Depois de terminar, pode abrir o Docker Desktop e verá que o Open Web UI está a ser executado na Porta 3000. Clique nisto, e levará ao **Local Host 3000**.

A primeira vez que usar o Open Web UI, terá de se registar. Eu já tenho uma conta, então vou simplesmente usar essa. Depois de entrar, tenho esta interface que parece muito semelhante ao ChatGPT.

### Instalar Modelos

Aqui está a questão: quando descarregar o Open Web UI pela primeira vez, não vai ter nenhum modelo como eu. O nosso objetivo é primeiro instalar alguns modelos. Como instalamos um modelo?

Primeiro, vá ao painel de administração, depois vá às definições e clique em ligações. Clique no ícone de gestão, e pode ver que diz "Puxar um modelo de ama.com". Para aceder a todos os nomes de modelos disponíveis, clique aqui, e levará ao site da AMA.

Se não tiver a AMA, vai ter de a descarregar primeiro. Clique no botão e descarregue a versão para Windows. Depois de descarregar a AMA, pode simplesmente executá-la. Não é como uma aplicação ou software; é apenas um processo que corre em segundo plano, então não precisa de fazer nada ou configurar nada.

Depois de a AMA estar a correr, pode ir à página de modelos. Aqui, há vários modelos diferentes como o **Llama**, o **Gemma** (o modelo da Google) e o **Quen** (o modelo da Alibaba). Vá a qualquer uma destas páginas de modelos e simplesmente copie o nome do modelo. Por exemplo, aqui tenho o **Lama 3.2**. Copie isto, volte ao Open Web UI e simplesmente cole-o.

---

É tudo por agora! Se achou este guia útil, não se esqueça de deixar um like, comentar e subscrever para mais tutoriais. Vejo-o no próximo vídeo!

# Vídeo 3: Compreender os Componentes do Sistema para Modelos de Linguagem de Grande Escala

## Introdução
Olá a todos e bem-vindos a este vídeo! Neste vídeo, vamos desconstruir os componentes importantes do nosso sistema, que são a CPU, a memória e a GPU.

## CPU: O Cérebro do Seu Sistema
Podemos pensar na CPU como algo que gere todos os processos computacionais pesados no seu sistema. Tarefas como instalar grandes projetos de software, executar simulações complexas ou processar grandes quantidades de dados são todas geridas pela CPU.

Por exemplo, a minha CPU está atualmente a cerca de 10% de utilização. No entanto, se eu estivesse a renderizar um vídeo, a converter um vídeo de um formato para outro ou a instalar um pacote de software completo do zero, a utilização da minha CPU provavelmente subiria para 100%.

## Memória (RAM): O Espaço de Trabalho
O próximo componente é a nossa memória, ou RAM. A utilização da RAM normalmente atinge os 100% ao executar aplicações ou tarefas que requerem mais memória. Por exemplo, se tiver demasiadas aplicações ou separadores do browser abertos, cada separador ocupa uma porção da sua memória.

Pode ter um separador do browser a reproduzir um vídeo, outro a executar um jogo online, ou até mesmo um software de edição de vídeo ou uma máquina virtual aberta. Cada um destes ocupa um pouco da sua memória e, eventualmente, pode atingir a utilização total da memória. Quando isto acontece, o seu sistema começa a funcionar muito lentamente e terá de fechar algumas aplicações para libertar memória.

## GPU: A Potência para Modelos de Linguagem de Grande Escala
No contexto dos modelos de linguagem de grande escala, geralmente preferimos executá-los na GPU porque é muito mais rápido para cálculos. No entanto, se não tiver os recursos computacionais para executar um modelo de linguagem de grande escala na GPU, pode ser executado na CPU. Neste caso, a memória torna-se o componente mais importante.

Por exemplo, atualmente tenho cerca de 31,7 GB de memória. Se quisesse executar um modelo de linguagem de grande escala, preciso de garantir que a minha memória é suficiente para carregar esse modelo. Idealmente, gostamos de carregar estes modelos numa GPU, mas se uma GPU não estiver disponível, podemos carregar o modelo na nossa memória ou CPU. A única desvantagem é que executar um modelo de linguagem de grande escala numa CPU é mais lento.

## Memória da GPU (VRAM)
Preferimos carregar modelos de linguagem de grande escala na nossa GPU porque é aqui que podemos executar toda a nossa inferência principal. Ao executar uma inferência de um modelo de linguagem de grande escala, o modelo é normalmente carregado na memória dedicada da GPU.

Por exemplo, atualmente tenho cerca de 24 GB de memória dedicada da GPU. Se tiver um modelo de linguagem de grande escala como o Llama ou o Mistral, e esse modelo tiver cerca de 7 GB, preciso de garantir que tenho 7 GB de memória dedicada da GPU disponível para executar o meu modelo. Isto é referido como VRAM (Virtual RAM) e limita o tamanho do modelo que pode executar para inferência.

## Exemplo Prático
Vamos entender isto com um exemplo. Vou abrir o terminal e usar `AMA list` para ver todos os modelos que tenho disponíveis. Também vou monitorizar a utilização da minha GPU.

Primeiro, vou executar `oama run` com um modelo específico. Vai ver que a minha memória dedicada da GPU está agora a usar 5,2 dos 24 GB de memória. Se pedir ao modelo para escrever um ensaio sobre o Império Romano em 5.000 palavras, vai notar que a utilização da minha GPU começa a subir. Assim que o ensaio estiver escrito, a utilização desce para cerca de 10-5%.

A seguir, vou tentar executar o modelo Mistral Nemo, que tem 7,1 GB. Quando executo este modelo, a minha memória dedicada da GPU sobe para 13,7 GB dos 24 GB. Se pedir para escrever outro ensaio, a utilização da GPU sobe para 80% enquanto o ensaio está a ser escrito e depois desce para perto de zero assim que estiver terminado.

## Resumo
Para resumir, a GPU é onde preferimos armazenar e carregar os nossos modelos de linguagem de grande escala. O tamanho da memória dedicada da GPU determina o tamanho do modelo que podemos carregar. A memória é a segunda opção se uma GPU não estiver disponível, e a quantidade de memória impacta o tamanho do modelo que podemos carregar.

Se quiser carregar um modelo muito grande mas não tiver recursos computacionais suficientes, técnicas como a quantização podem ajudar. Por agora, entender como a CPU, a memória e a GPU interagem com modelos de linguagem de grande escala vai ajudá-lo a determinar quais os modelos que pode usar.

---

# Vídeo 4: Visão Geral do Painel de Administração para a Versão 0.4 do Open Web UI

## Introdução
Olá a todos, sou o Amish da Digital Brainbase. Neste vídeo, vou guiá-lo através do painel de administração para a versão 0.4 do Open Web UI.

## Começar
Vamos começar por ir ao nosso painel de administração. No painel de administração, vemos várias opções e configurações diferentes.

## Gestão de Utilizadores
Primeiro, temos a opção para utilizadores. Dentro do Open Web UI, pode adicionar outros utilizadores. Por exemplo, pode querer adicionar membros da família como a sua esposa, irmã ou outros ao sistema.

---

Obrigado por assistir e até ao próximo vídeo! Adeus!

# Gestão de Contas e Modelos no Open WebUI

Para gerir contas no Open WebUI, pode permitir que os utilizadores se registem diretamente ao aceder ao Local Host 3000 ou adicionar manualmente um utilizador, inserindo o e-mail e definindo uma palavra-passe. Após este processo, os utilizadores poderão fazer login com essas credenciais.

## Criação de Grupos e Controlo de Acesso

Também pode criar grupos específicos, como um grupo de marketing, e limitar o acesso a determinados modelos. Por exemplo, ao permitir o acesso a modelos, os utilizadores poderão visualizar todos os modelos disponíveis. Da mesma forma, ao permitir o acesso a bases de conhecimento, terão acesso a todas as bases de conhecimento disponíveis.

## Avaliação de Modelos

Na secção de avaliações, é possível ver o desempenho de cada modelo utilizado no "Arena Model". No separador de feedback, pode identificar quais os modelos que se destacam em tarefas específicas. Por exemplo, ao selecionar o ChatGPT-4, é possível ver que obteve sucesso em fornecer respostas precisas, com base no feedback gerado pelos utilizadores.

## Funções e Integrações

Na secção de funções, pode visualizar e descarregar diversas funções diretamente do Open WebUI. Ao aceder a [openwebui.com](https://openwebui.com) e selecionar "New Functions", verá uma lista de funções disponíveis para importação. Por exemplo, se desejar carregar uma função para visualização de dados, basta visualizar o código e importá-lo para o Open WebUI. É importante ter cuidado ao descarregar funções, utilizando apenas fontes confiáveis.

## Configurações de Segurança e Conexões

Nas configurações, pode gerir aspetos relacionados com a conta do utilizador, como permitir novos registos, definir papéis de utilizador e configurar autenticação por API key. Também é possível configurar webhooks e integrar LDAP para aumentar a segurança.

Na secção de conexões, pode configurar APIs para modelos alojados na cloud, como o Groq, ou utilizar modelos locais. Por exemplo, ao adicionar a API da OpenAI, pode aceder a modelos como o ChatGPT. Para adicionar um novo modelo, como o Llama 3.1, basta selecionar o modelo desejado, copiar o link e iniciar o download.

## Gestão de Modelos

Pode ativar ou desativar modelos específicos para evitar sobrecarregar o espaço de modelos. Na secção de avaliações, é possível comparar o desempenho de modelos específicos, como o Anthropic Claude 3.5 Sonet e o ChatGPT-4, sem revelar qual o modelo que está a ser utilizado até que o feedback seja fornecido.

## Documentos e Pesquisa na Web

Na secção de documentos, pode configurar como interagir com documentos carregados, definindo o modelo de embedding e outros parâmetros. Para ativar a pesquisa na web, pode configurar serviços como o Google PSE, permitindo que os modelos procurem informações atualizadas na internet.

## Interface e Configurações de Áudio e Imagem

Na interface, pode escolher quais os modelos a incluir, ativar ou desativar a geração de tags e consultas, e configurar opções de texto para fala e fala para texto. Para processamento de imagens, pode utilizar modelos como o Automatic 1111 ou ComfyUI, ou integrar a API da OpenAI para aceder ao modelo DALL-E 3.

## Pipelines e Base de Dados

Na secção de pipelines, pode configurar pipelines após ativar o contentor Docker. Na base de dados, é possível guardar todas as configurações atuais, incluindo chaves de API, para evitar a perda de informações em caso de problemas.

## Conclusão

Este vídeo abordou diversas funcionalidades do Open WebUI, desde a gestão de contas e modelos até configurações avançadas de segurança e integração. Se gostou do conteúdo, deixe um like e subscreva o canal para mais vídeos. Deixe os seus comentários com sugestões para futuros vídeos. Obrigado por assistir e até à próxima!

---

**Vídeo 5:** [https://www.youtube.com/watch?v=CDiVq3mPZc8](https://www.youtube.com/watch?v=CDiVq3mPZc8) (Idioma: en)

Olá, pessoal! Aqui é o Amish, do Digital Brainbase. No vídeo de hoje, vamos explorar a plataforma Open WebUI. Antes de começarmos, é importante verificar se o Open WebUI está em execução. Para isso, abro o Docker Desktop e confirmo que o contentor do Open WebUI está a correr na porta 3000. Também verifico se o AMA está a funcionar corretamente em segundo plano.

Agora, seleciono um modelo local, como o Llama 3.2. Se não tiver este modelo, pode descarregá-lo facilmente. Vamos explorar mais funcionalidades a seguir!

# Introdução ao Open Web UI e Modelos Personalizados

Descarregue a versão mais recente do **Llama 3.2** ou qualquer outro modelo que prefira. O primeiro passo é familiarizar-se com os controlos. Aqui, pode ajustar várias definições para personalizar o comportamento do modelo.

## Personalização do System Prompt

O **system prompt** define como o modelo responde às suas perguntas. Por exemplo, se pedir ao modelo para responder como um papagaio e solicitar um facto divertido sobre o Império Romano, este será o tipo de resposta que obterá. Também pode alterar o system prompt para que o modelo responda como um pirata, e o resultado refletirá esse tom.

O system prompt é uma ferramenta poderosa para adaptar as respostas do modelo às suas necessidades. Existem parâmetros adicionais que pode ajustar, mas não vou aprofundar muito aqui. Em vez disso, vou deixar um link para um vídeo que fornece uma explicação detalhada desses parâmetros.

## Personalização de Modelos

Na secção **Models**, pode criar os seus próprios modelos personalizados. Comece por selecionar um modelo base, como o **Claude Sonet 3.5**. Pode editar o system prompt, ajustar parâmetros avançados e adicionar ferramentas ou filtros. Também pode ativar capacidades adicionais como visão, rastreamento de utilização ou citações. Depois de clicar em **Save and Create**, o seu modelo personalizado estará pronto a ser utilizado.

## Base de Conhecimento

A funcionalidade **Knowledge** permite-lhe criar coleções de dados baseados em texto que pode referenciar dentro da plataforma Open Web UI. Por exemplo, pode criar uma coleção para o seu pool de currículos de candidatos ou para o manual do funcionário.

Digamos que quer contratar alguém com experiência em SQL. Pode pedir ao modelo para analisar o seu pool de currículos, e ele identificará **Brad Olivier** como o candidato com as melhores competências em SQL. Esta é a essência da base de conhecimento—ajuda-o a organizar e recuperar informações de forma eficiente.

Pode criar várias coleções, como um pool de currículos ou um manual do funcionário. Pode até construir a sua própria base de conhecimento com uma coleção de itens, criando um repositório digital adaptado às suas necessidades.

## Prompts

A secção **Prompts** permite-lhe guardar e reutilizar prompts específicos. Imagine que gastou muito tempo a criar um prompt perfeito para uma aplicação específica. Em vez de o guardar num documento separado, pode armazená-lo diretamente no Open Web UI.

Por exemplo, se tiver um prompt para criar uma carta de apresentação, pode guardá-lo aqui. Para aceder a ele, basta referenciá-lo com uma barra (por exemplo, `/carta-apresentacao`). Pode então preencher os detalhes, e o modelo gerará uma carta de apresentação personalizada para si.

## Ferramentas

O Open Web UI também suporta **ferramentas**, que pode criar você mesmo ou importar da comunidade. Ao clicar no link fornecido, será direcionado para a página inicial do Open Web UI, onde pode explorar várias ferramentas da comunidade.

Por exemplo, pode importar uma ferramenta para verificar o tempo, executar código ou até navegar no Reddit. Depois de importada, pode ativar a ferramenta e começar a usá-la. Por exemplo, pode pedir ao modelo para recuperar os posts mais populares do subreddit de Data Science. Ele mostrará os posts mais recentes, e pode pedir mais detalhes sobre tópicos específicos.

## Comparação de Modelos

Também pode comparar o desempenho de vários modelos em simultâneo. Por exemplo, pode executar o **ChatGPT 4.0** e o **Claude 3.5 Sonet** lado a lado. Peça a ambos os modelos para escrever código Python para inverter uma lista ligada, e verá as suas respostas. Enquanto o ChatGPT 4.0 pode ser mais lento, ambos os modelos fornecerão resultados semelhantes, com o Claude 3.5 Sonet a oferecer código mais detalhado e testado.

---

# Carregar e Conversar com Documentos no Open Web UI

Nesta secção, vou mostrar-lhe como carregar documentos no Open Web UI e interagir com eles. Imagine que o seu senhorio lhe dá um contrato de arrendamento de 30 páginas e quer descobrir a penalização por pagamento atrasado sem ler o documento inteiro. Basta carregar o documento no Open Web UI, referenciá-lo e perguntar: "Qual é a penalização por pagamento atrasado?" O modelo responderá rapidamente—$25 neste caso.

## Configuração da Base de Conhecimento

A magia acontece no separador **Workspace** na secção **Knowledge**. Aqui, pode criar coleções de documentos para interagir. Por exemplo, pode ter uma coleção de documentos de arrendamento ou artigos de investigação.

Para criar a sua própria base de conhecimento, comece por dar-lhe um nome (por exemplo, "Artigo de Investigação") e carregar os documentos relevantes. Por exemplo, pode carregar um artigo de investigação intitulado *Attention Is All You Need*. Depois de carregado, pode conversar com o documento e extrair informações específicas.

---

Se achou este vídeo útil, por favor deixe um like e subscreva o canal. Se tiver sugestões para tópicos futuros, deixe um comentário abaixo, e abordá-los-ei em vídeos futuros. Obrigado por assistir, e até à próxima!

**Vídeo 6:** [https://www.youtube.com/watch?v=lqKapMX2GAI](https://www.youtube.com/watch?v=lqKapMX2GAI) (Idioma: Inglês)

# Interagir com Documentos no Open Web UI

Para referenciar os seus documentos, primeiro adiciona o símbolo e, em seguida, seleciona a sua coleção ou documentos individuais. Vou referenciar a coleção de artigos de pesquisa e selecionar o meu modelo como o Mistal Nemo. O prompt que vou utilizar é: "Podes dar-me um resumo deste artigo?"

Podes ver que está a utilizar os recursos do meu computador, por isso demora um segundo a iniciar. É um modelo um pouco maior, mas aqui está: obtemos um breve resumo do artigo e podemos ver que está a referenciar todo o material dessa coleção. Neste caso, o único material na coleção é apenas um artigo de pesquisa.

Imagina um cenário em que podes ter 5, 10 ou 15 artigos de pesquisa diferentes e queres que a IA resuma todos eles. Agora podes fazê-lo.

Outro caso de uso poderia ser algo assim: imagina que és um recrutador e publicaste uma descrição de emprego no LinkedIn. De repente, tens mais de 50 candidatos. Agora, não sabes realmente quem entrevistar com base nesses 50 candidatos. O que podes fazer é, na tua base de conhecimento, carregar diretamente um diretório. Isso significa que podes carregar todos os 50 currículos de uma vez nessa base de conhecimento. Isso facilita muito o processo.

Aqui, tenho três currículos diferentes: um para Asuk, um para Stefano e um para Juan. O que vou fazer é usar um prompt que reutilizo bastante. Vou colocar uma barra e selecionar "Melhores currículos". O prompt basicamente diz: "Dá uma vista de olhos nos currículos e dá-me uma classificação de primeiro, segundo e terceiro lugar para cada candidato."

Vou modificar um pouco: "Com base na descrição do trabalho, dá-me apenas o candidato classificado em primeiro lugar que eu deveria entrevistar." Podes ver que, quando tens prompts como estes, também podes editá-los.

Agora, algo que também precisaria de fazer é fornecer a coleção de currículos. Aqui está o meu diretório de correção de currículos que tem todos os diferentes currículos das pessoas. Vamos ver se ele me diz quem seria o melhor candidato para este trabalho.

Algo que me esqueci de fazer é adicionar a descrição do trabalho. Vou fazê-lo também. Aqui está: coloquei uma descrição de trabalho aleatória do LinkedIn e ele ainda recomenda Stefano como o candidato número um. Ele deu uma razão pela qual essa pessoa se alinha bem com base nesta descrição de trabalho.

E aí está! Podes ver como foi fácil para nós simplesmente carregar documentos no Open Web UI para que possamos interagir com eles. Também vimos como podemos carregar pastas inteiras e usar essa pasta para criar uma base de conhecimento.

Se és novo neste canal e não tinhas ideia do que eu estava a falar, partilhei um link para a playlist completa onde podes começar na descrição. Definitivamente, dá uma vista de olhos nisso primeiro. Eu realmente apreciaria se pudesses gostar, comentar e subscrever. Se puderes enviar-me um comentário na secção de comentários sobre qualquer ideia ou caso de uso futuro que tenhas em mente, definitivamente deixa um comentário e verei se posso fazer um vídeo sobre isso também.

É isso por hoje. Obrigado por assistir e vemo-nos no próximo vídeo. Adeus!

---

# Habilitar Pesquisa em Tempo Real no Open Web UI

Olá a todos, este é Amish do Digital Brainbase. No vídeo de hoje, vou mostrar como podes habilitar a pesquisa em tempo real no Open Web UI.

A razão pela qual queremos fazer isso é imaginar que tiveste de perguntar ao teu modelo algo como: "Qual é o resumo das notícias de hoje?" Ele diz que não tem acesso em tempo real a notícias e eventos atuais porque os seus dados de treinamento só vão até dezembro de 2023. Então, como habilitamos a pesquisa em tempo real para os teus modelos para que ele possa realmente buscar as informações relevantes?

Para fazer isso, primeiro vamos para o nosso painel de administração, em Configurações, e clicamos em "Pesquisa na Web". Aqui, temos algumas opções disponíveis. Vou usar o Google PSE. Tentei algumas das outras opções, mas nada se compara ao Google.

Como obtemos essa chave de API e o ID do mecanismo de pesquisa do Google PSE? Primeiro, precisas de ir ao Google e pesquisar por "Programmable Search Engine" ou apenas digitar "PSE". Isso levar-te-á a esta página aqui. Vou selecionar "Começar" e adicionar um novo. Vamos chamá-lo de "Open Web UI". Esse é o nome do meu mecanismo de pesquisa. Vou dizer que posso pesquisar em toda a web e que não sou um robô. Não preciso habilitar a pesquisa de imagens ou salvar a pesquisa.

Depois de fazer isso, posso personalizá-lo. Primeiro, tenho o ID do mecanismo de pesquisa. Vou copiar isso e colar o ID do mecanismo de pesquisa. Depois disso, irias para o Custom Search JSON API. Se eu selecionar "Começar", posso selecionar "Obter uma chave" e chamar isso de meu projeto. Quando aceito os termos e condições e seleciono "Próximo", ele dar-me-á uma chave de API. Obviamente, vou cortar essa parte do vídeo, mas quando obtiveres essa chave de API, tudo o que farás é copiar essa chave.

Depois de copiar a chave, simplesmente colas a chave de API aqui e clicas em "Salvar". Depois que as configurações forem salvas com sucesso, posso voltar ao meu chat. Aqui, vou selecionar o ícone de mais, habilitar a pesquisa na web e, como a pesquisa na web está habilitada, posso simplesmente perguntar: "Qual é o tempo em Nova York?" Podes ver que ele está a pesquisar o tempo na cidade de Nova York hoje e está a procurar essas informações em alguns sites. Ele vai obter algumas informações e resumi-las.

Ele diz que, com base nas informações, parece que está previsto estar em torno de 45 graus em Manhattan, enquanto em Nova York está previsto estar 44 graus. Se clicares em alguns desses links, ele mostrará de onde está a obter essas informações. Aqui, podemos ver que ele diz que está 45 graus atualmente na cidade de Nova York.

É assim que podes habilitar a pesquisa em tempo real no Open Web UI. Se quiseres, podes até mudar algumas dessas configurações. Vai para o painel de administração, em Configurações e Pesquisa na Web. A contagem de resultados de pesquisa está definida como três, mas se quiseres pesquisar em mais sites, talvez queiras pesquisar em cinco ou dez sites, podes sempre aumentar esse número. Se quiseres tentar idiomas diferentes, também podes fazê-lo.

Basicamente, a coisa mais importante a notar é que queres habilitar a pesquisa na web porque, se a pesquisa na web não estiver habilitada, ele não será capaz de pesquisar essas informações em tempo real.

É isso por hoje. Se gostaste, por favor, deixa um like. Se és novo no canal, por favor, subscreve. Isso ajuda o canal. Se tiveres alguma ideia ou sugestão para vídeos futuros, por favor, deixa um comentário na secção de comentários abaixo. Vou certificar-me de que seja abordado.

É isso por hoje. Obrigado por assistir e vemo-nos no próximo vídeo. Adeus!

---

# Usar Modelos como GPT-3.5 e GPT-4 no Open Web UI

Olá a todos! Até agora, todos os modelos que usamos são modelos que obtivemos da interface OLlama. No entanto, e se quisesses usar algo como o ChatGPT, como o modelo GPT-3.5 ou o GPT-4? Existem maneiras de aceder a esses modelos através da interface do Open Web UI, e ao final deste vídeo, vais aprender como configurar isso.

Vamos começar. Aqui estou na minha interface do Open Web UI. A primeira coisa que vou fazer é ir para o painel de administração. Aqui, dentro das configurações, posso ver que, se eu for para "Conexões", há a API da OpenAI. A API da OpenAI requer...

# Como Configurar e Usar a API da OpenAI

Para começar, precisará de uma chave de API da OpenAI. Se ainda não configurou uma conta na OpenAI, recomendo que o faça antes de prosseguir com este tutorial.

## Passo 1: Criar uma Chave de API

1. Aceda ao site da OpenAI e faça login na sua conta.
2. No painel de controlo, verá opções como "Playground", onde pode experimentar diferentes modelos disponíveis.
3. Navegue até ao seu perfil e localize a secção "User API Keys".
4. Crie uma nova chave secreta. Não é necessário fornecer um nome para a chave.
5. Copie a chave gerada.

## Passo 2: Configurar a Chave de API na Interface Web

1. Volte para a interface web da OpenAI e cole a chave de API.
2. Verifique a ligação com a OpenAI.
3. Agora, ao criar um novo chat e selecionar um modelo, verá opções como GPT-3.5 Turbo e GPT-4 Turbo.

## Passo 3: Usar os Modelos

Por exemplo, se quiser usar o GPT-4, basta selecioná-lo e começar a interagir como faria normalmente na interface do ChatGPT. Pode pedir para escrever código, como inverter uma lista, e obter respostas diretamente do modelo.

# Explorando Ferramentas na Open Web UI

Neste vídeo, vamos explorar como usar a Open Web UI Community para aceder a diversas funções, ferramentas e modelos criados por outros utilizadores.

## Passo 1: Visualizar Ferramentas da Comunidade

1. Aceda à secção de ferramentas na Open Web UI.
2. Aqui, encontrará várias ferramentas como busca na web, raspagem de dados, previsão do tempo, e até mesmo geração de fala a partir de texto com a 11 Labs TTS.

## Passo 2: Adicionar uma Ferramenta

1. Para adicionar uma ferramenta, como uma calculadora, selecione "View" e copie o código fornecido.
2. Importe a ferramenta para a sua interface web, que está a correr em `localhost:3000`.
3. Guarde a ferramenta e confirme o aviso.

## Passo 3: Usar uma Ferramenta

1. Selecione um modelo, como o Mistral Nemo.
2. Habilite a ferramenta desejada, como a de raspagem de dados.
3. Forneça um prompt, como "Raspe os livros deste site", e veja a resposta do modelo.

# Funcionalidades de Áudio na Open Web UI

Neste vídeo, vamos explorar como usar as funcionalidades de texto para fala e fala para texto na Open Web UI.

## Passo 1: Resposta de Áudio Simples

1. Forneça um prompt e obtenha uma resposta.
2. Use a função de leitura em voz alta para ouvir a resposta.

## Passo 2: Usar a Função de Chamada

1. Selecione a função de chamada.
2. A sua fala será convertida em texto, processada pelo modelo de linguagem, e a resposta será lida em voz alta.

## Passo 3: Melhorar a Qualidade da Voz

1. Aceda ao painel de administração e vá para as configurações de áudio.
2. Ajuste as configurações para obter uma voz mais natural e com emoção.

Estes são os passos básicos para configurar e usar a API da OpenAI, explorar ferramentas na Open Web UI, e utilizar funcionalidades de áudio. Continue a acompanhar os próximos vídeos para aprender mais sobre como criar as suas próprias ferramentas e personalizar ainda mais a sua experiência.

# Configurações de Conversão de Fala para Texto e Texto para Fala

## Escolhendo o Modelo de Conversão de Fala para Texto

O primeiro aspecto a considerar é a configuração de conversão de fala para texto. Este é o modelo que converterá toda a nossa fala em texto. Se perceber que o modelo não está entendendo o que está a dizer, talvez seja necessário selecionar um modelo diferente, como o OpenAI, o Web API ou o Whisper Local, para obter uma transcrição mais precisa.

## Explorando as Opções de Texto para Fala

Se estiver a usar o Web API, pode experimentar várias vozes de texto para fala para encontrar uma que atenda às suas necessidades. Além das vozes padrão, há uma opção chamada **11 Labs**, uma plataforma de fala realista que permite gerar vozes que soam muito mais naturais.

### Testando o 11 Labs

Vamos testar o 11 Labs. No aplicativo, selecionei a opção "Voices" e vejo uma variedade de vozes disponíveis, como Arya, Alice e Lily. Por exemplo, ao selecionar Lily, posso usar essa voz na minha plataforma. A melhor parte é que só precisa de uma conta para começar a usar a API inicial sem custos.

### Configurando a Chave API

Para configurar, vá ao seu workspace, selecione "API Keys" e copie a chave gerada. Cole essa chave no 11 Labs e escolha uma voz, como Lily. Também pode selecionar diferentes modelos de texto para fala, como o modelo multilíngue ou o modelo turbo. Após salvar as configurações, volte ao conteúdo e veja como a voz agora soa muito mais natural e realista.

### Funcionalidades Adicionais do 11 Labs

Outra funcionalidade interessante do 11 Labs é a capacidade de clonar a sua própria voz. Com a assinatura "Starter", pode fornecer amostras da sua voz e gerar um sistema de IA que responde exatamente como você. Isso é útil se preferir interagir com uma voz personalizada em vez de usar vozes pré-definidas.

# Criando Modelos Personalizados para Tarefas Específicas

## Introdução à Criação de Modelos Personalizados

Neste vídeo, vamos aprender como criar modelos personalizados para tarefas específicas. Ao final, terá um entendimento sólido de como personalizar modelos como Mistol, GPT ou Llama.

## Passo a Passo para Criar um Modelo Personalizado

1. **Acesse o Workspace**: No workspace, crie um novo modelo. Se já tiver modelos antigos, pode excluí-los para começar do zero.

2. **Defina o Propósito do Modelo**: Às vezes, quer que o modelo tenha um conjunto específico de conhecimentos. Por exemplo, se deseja que o modelo saiba tudo sobre um conceito específico ou um tópico de nicho, pode criar um modelo personalizado e fornecer documentos relevantes.

3. **Carregue Documentos**: Se trabalha em uma empresa e tem um documento de 100 páginas que deseja que o modelo conheça, basta carregar esse documento e especificar os parâmetros do modelo.

4. **Personalize as Respostas**: Ao trabalhar com modelos conversacionais, pode notar que as respostas são longas e cheias de pontos de bala. Para criar uma conversa mais amigável, defina um prompt de sistema que oriente o modelo a evitar listas longas, fórmulas ou trechos de código.

### Exemplo de Modelo Conversacional

Vamos criar um modelo chamado "Conversation Model" com o GPT-3.5 como base. A descrição será: "Este é um modelo que se destaca em conversas, fornecendo respostas rápidas e evitando parágrafos longos e códigos em suas respostas."

#### Prompt de Sistema

O prompt de sistema pode ser algo como: "Você é uma IA conversacional avançada projetada para envolver os usuários em diálogos naturais e significativos. Seu principal objetivo é emular o fluxo e a nuance de uma conversa humana, evitando listas, fórmulas ou trechos de código. O objetivo final é tornar a interação o mais envolvente e agradável possível."

### Testando o Modelo

Após salvar e criar o modelo, pode iniciar uma conversa com ele. Por exemplo, pergunte: "Não estou me sentindo muito produtivo hoje. O que posso fazer?" A resposta será mais conversacional e menos formal, diferindo de modelos como o GPT-4, que tendem a fornecer respostas mais elaboradas.

# Conclusão

Essas funcionalidades de conversão de fala para texto e texto para fala são extremamente úteis, especialmente se estiver a interagir com um modelo de linguagem grande em movimento. Obrigado por assistir a este vídeo e nos vemos no próximo. Adeus!

---

**Vídeo 11**: [Assista ao vídeo completo aqui](https://www.youtube.com/watch?v=Fd_1zePgCLE) (Idioma: en)

# Vídeo 12: Criar Modelos Personalizados

Aqui estão algumas dicas para melhorar a produtividade:
- Priorizar tarefas
- Estabelecer metas pequenas
- Fazer pausas
- Exercitar-se
- Manter-se hidratado

Pode ver que esta lista não é muito conversacional, ao contrário do que veremos a seguir. Esta será a principal diferença. Pode até personalizar os seus próprios modelos. Por exemplo, se voltar aos seus modelos e selecionar o modelo conversacional, pode editá-lo. Vou definir o prompt do sistema para que responda como um pirata. Vamos guardar e atualizar.

Agora, selecionamos o nosso modelo conversacional e digo: "Não me sinto muito produtivo hoje". Pode ver que ele dá-me uma resposta como um pirata. É basicamente como configuramos os controlos aqui, exceto que agora não apenas criamos o nosso modelo conversacional, mas também podemos partilhar esse modelo com outros utilizadores. Isto é o que torna tudo muito interessante.

É tudo por este vídeo. Espero que tenha dado uma compreensão sobre o que são modelos personalizados e alguns cenários em que pode querer usá-los. Obrigado por assistir e vemo-nos no próximo vídeo.

[Vídeo 12](https://www.youtube.com/watch?v=3rg8Tdyn_RA)

---

# Vídeo 13: Gerar Imagens com Open Web UI

Olá a todos! Neste vídeo, vamos aprender como usar a interface Open Web UI para gerar imagens. No final deste vídeo, terá um sólido entendimento sobre como usar esta interface para gerar todos os tipos de imagens. Vamos começar!

Primeiro, vou aceder ao meu painel de administração. Aqui, vou para as configurações e, dentro delas, clico em "Imagens". A primeira coisa que vou fazer é fornecer a minha chave de API da OpenAI. Se se lembra, gerei esta chave indo ao site da OpenAI API. Lá, pode clicar no seu perfil e, em seguida, em "API Keys", onde pode gerar uma nova chave. Eu criei uma nova chave secreta e copiei e colei nesta secção. Depois de guardar, agora posso usar a API de imagens.

Para gerar uma imagem, primeiro preciso selecionar um modelo. Isto não precisa de ser necessariamente um modelo da OpenAI; posso usar um dos modelos gratuitos ou mais pequenos disponíveis aqui. Vou usar o modelo Neotron Mini. Por exemplo, posso escrever um prompt para criar uma imagem de seis cães em Itália a comer pizza, talvez a fumar charutos e a jogar póquer.

Vamos tentar um modelo diferente, como o Llama 3.2. Este modelo permitiu criar o prompt e podemos até editá-lo. Vou manter a parte sobre criar uma ilustração de seis cães numa reunião italiana, com roupas estilosas e um baralho de cartas no centro da mesa. O fundo terá uma iluminação quente e dourada com colinas toscanas. Vou guardar e clicar no ícone para gerar a imagem.

Agora, ele está a usar a API da OpenAI DALL·E 3 para gerar a imagem. Está a demorar um pouco porque selecionei o tamanho da imagem como 1024x1024, mas aqui pode ver que ele conseguiu gerar a imagem dos cães a fumar charutos, a comer pizza e a jogar póquer. É assim que podemos usar a API da OpenAI para gerar imagens. É simples e rápido de configurar; não precisa de nada como Stable Diffusion, Automatic 1111 ou ComfyUI. Tudo o que precisa é fornecer a chave da API.

Se houver interesse em usar outras ferramentas como Stable Diffusion, deixe um comentário e posso criar um vídeo sobre isso. É tudo por hoje. Obrigado por assistir e vemo-nos no próximo vídeo. Adeus!

[Vídeo 13](https://www.youtube.com/watch?v=yZkmolyV0Zk)

---

# Vídeo 14: Usar o Recurso de Upload de Imagens no Open Web UI

Olá a todos! Neste vídeo, vamos aprender como usar o recurso de upload de imagens no Open Web UI. No final deste vídeo, terá um sólido entendimento sobre como fazer upload de imagens e obter respostas de qualquer modelo de linguagem no Open Web UI. Vamos começar!

Primeiro, vou aceder ao meu painel de administração. Aqui, vou para as configurações, seleciono "Modelos" e vou puxar um modelo do Hugging Face. Pode perguntar: "Eu já não tenho uma lista de todos estes modelos diferentes, como o Llama, o Neotron, o 53?" Sim, mas o problema é que nem todos os modelos de linguagem são multimodais, ou seja, nem todos podem olhar para uma imagem e dar uma resposta.

Vou rolar para baixo e pode ver que tenho acesso ao LLaVA, um modelo multimodal grande que combina um codificador de visão e uma rede neural para compreensão visual e linguística geral. Isto é exatamente o que queremos. Agora, qual versão do LLaVA eu quero? A de 7 mil milhões, 13 mil milhões ou 34 mil milhões de parâmetros? O tamanho faz diferença. O modelo de 7 mil milhões de parâmetros é muito mais pequeno, ocupando apenas 4,7 GB de memória, enquanto o de 34 mil milhões ocupa quase 20 GB.

O problema é que, ao usar um modelo de 34 mil milhões de parâmetros, precisamos ter recursos computacionais e hardware suficientes para suportá-lo. Eu tenho acesso a estes recursos, então posso usar este modelo, mas se tiver problemas, sinta-se à vontade para usar o modelo de 7 mil milhões de parâmetros. O de 34 mil milhões pode ter um desempenho melhor em algumas circunstâncias, mas o de 7 mil milhões ainda será capaz de dar uma resposta.

Tudo o que precisa fazer é selecionar o modelo, copiá-lo e colá-lo aqui, depois selecionar "Download". É assim que puxa o modelo LLaVA do Hugging Face. Eu já puxei o modelo LLaVA de 34 mil milhões de parâmetros, então vou fazer upload de uma imagem de um raio-X e pedir para que ele descreva a imagem o mais detalhadamente possível.

Isto vai demorar um pouco, especialmente na primeira vez que rodar o modelo, porque ele precisa carregar o modelo na memória. Podemos ver que ele consegue detetar que é uma imagem de um raio-X de tórax de uma pessoa. Ele mostra a estrutura esquelética do tórax, os pulmões são visíveis, há uma ligeira assimetria na caixa torácica, mas não parece significativa o suficiente para sugerir um grande problema de saúde. No final, ele diz: "Eu sou apenas um assistente de IA".

É assim que podemos usar o modelo LLaVA. Também temos outros modelos, como o ChatGPT-4. Vamos tentar usar o ChatGPT-4 com a mesma imagem e prompt. Ele diz que é um raio-X de tórax de alta resolução, a estrutura esquelética e as costelas são claramente visíveis, a coluna vertebral é vista no meio, os ombros são visíveis e não há deslocamento. Ele fala sobre os pulmões e as sombras ramificadas da árvore brônquica, que são ligeiramente visíveis nas regiões centrais.

[Vídeo 14](https://www.youtube.com/watch?v=yZkmolyV0Zk)

# Como Configurar um Sistema de IA Personalizado

## Introdução

Imagine que existe um sistema de IA que pode conversar consigo, sabe tudo sobre si e até responde com a sua voz. Parece impossível, certo? Bem, não exatamente. Vou mostrar como isso funciona.

## Configurar a Interface Open Web UI

Aqui, tenho a interface Open Web UI, e a melhor parte é que é completamente gratuita. Vou começar por tentar chamar-me. Na primeira vez, pode demorar um pouco a carregar, mas depois disso, a conversa deve fluir naturalmente.

**Exemplo de Conversa:**
- **Utilizador:** Ei, qual é o teu nome?
- **IA:** Olá, o meu nome é Amish Suuk. O que posso fazer por ti?
- **Utilizador:** Amish, porque não me contas sobre as coisas de que gostas?
- **IA:** Gosto de comer pizza, paneer chica masala e naan de alho. Também adoro jogar no meu PS5, especialmente GTA Online. O meu filme favorito é "Idiocracy", e gosto de bandas como Metallica, Led Zeppelin e Pink Floyd. Estas são as coisas que me trazem alegria.
- **Utilizador:** Isso é ótimo, Amish. Tens algum animal de estimação?
- **IA:** Sim, tenho um cão chamado Lulu. Ela é uma companheira adorável.

## Configurar a Voz Personalizada

Agora, se estás curioso sobre como configurar isto para ti mesmo, vamos lá. Primeiro, acede ao site [11 Labs](https://11labs.io) e vai para a secção de aplicações. Lá, verás várias vozes disponíveis, como Brian, Alice, Eric e Lily. Na versão gratuita, tens acesso a todas estas vozes. No pacote inicial, que custa cerca de 5 dólares por mês, podes clonar a tua própria voz com apenas um minuto de áudio.

**Passos para Clonar a Voz:**
1. Gera uma chave API na secção de chaves API.
2. Copia a chave e cola na interface Open Web UI, que está a correr no teu localhost:3000.
3. No painel de administração, vai para Configurações > Áudio e seleciona a tua voz clonada.
4. Escolhe o modelo de linguagem, como o modelo multilíngue ou o 11 Labs Turbo.

## Configurar o Conhecimento do Modelo

Agora, vamos configurar como o modelo sabe informações sobre ti. No teu workspace, cria um novo modelo. Escolhe um modelo existente, como o GPT-3.5 Turbo, e dá um nome e uma descrição. No prompt, podes definir como o modelo deve responder, por exemplo, mantendo as respostas curtas e simples.

**Exemplo de Prompt:**
- "Respondes em mensagens curtas. Estás a ter uma conversa com alguém. Não dês respostas muito longas."

A parte importante é o conhecimento. Aqui, podes carregar um documento com todas as informações sobre ti, como o teu histórico, coisas de que gostas e não gostas.

**Exemplo de Documento:**
- "O meu nome é Amish Suuk. Tenho 15 anos. O nome do meu cão é Peter Parker. O meu filme favorito é Homem-Aranha."

Depois de carregares o documento, seleciona-o no modelo e guarda. Agora, podes iniciar uma nova conversa com o bot e verificar se ele responde corretamente com as informações fornecidas.

**Exemplo de Conversa com o Bot:**
- **Utilizador:** Ei, qual é o teu nome?
- **Bot:** Amish.
- **Utilizador:** Amish, qual é o teu filme favorito?
- **Bot:** Homem-Aranha.
- **Utilizador:** E o nome do teu cão?
- **Bot:** Peter Parker.
- **Utilizador:** Quantos anos tens?
- **Bot:** Tenho 15 anos.

## Conclusão

Espero que este vídeo te tenha ajudado a entender como configurar o 11 Labs, importar a chave API e criar um bot de conversa personalizado. Imagina um mundo onde podes criar um documento com todas as tuas informações e conversar com ele. Isto é o que mostrámos hoje. Obrigado por assistires e até ao próximo vídeo!

**Vídeo 14:** [https://www.youtube.com/watch?v=dXaFbHw5-m8](https://www.youtube.com/watch?v=dXaFbHw5-m8) (Idioma: en)

# Vídeo 15: Criar Websites e Apps com Open Web UI

Olá a todos! Alguma vez já pediram ao ChatGPT para criar um site ou uma aplicação para vocês, e ele simplesmente vos deu uma série de código, deixando-vos sem saber o que fazer com tudo aquilo? Bem, com esta ferramenta, tudo o que precisam de fazer é pedir ao vosso modelo de linguagem para criar um site ou uma aplicação, e ele será capaz de renderizar esse site ou aplicação diretamente na interface do chat. É tão simples! Deixem-me mostrar como começar.

## Passo a Passo para Criar um Site

1. **Abra o Open Web UI**: Se não sabem como fazer isto, adicionei um link na descrição abaixo para vos ajudar a configurar.
2. **Selecione um Modelo**: Podem selecionar qualquer modelo gratuitamente, como o Code Gemma.
3. **Peça para Criar um Site**: Aqui, pedi ao modelo para escrever um código para criar um site interessante. Ele gerou HTML, CSS e JavaScript.
4. **Visualize o Site**: Rolem até ao final para ver o site completo. Por exemplo, ele criou um site chamado "Puppy Paradise - Bem-vindo ao maravilhoso mundo dos cachorrinhos". Podem adicionar imagens e ver como o site se apresenta em desktop, tablet e mobile.

## Criar uma Aplicação de Gestão de Tarefas

Da mesma forma, podem pedir para criar uma aplicação de gestão de tarefas. Mesmo sem entender o código JavaScript, o modelo criou uma aplicação funcional. Por exemplo, podem adicionar uma tarefa como "Fazer um vídeo" e marcá-la como concluída.

## Configurar no Open Web UI

1. **Aceda ao Open Web UI**: Vão ao site do Open Web UI.
2. **Funções**: Usem a função `artifacts V2` para visualizar e obter o código.
3. **Importe e Guarde**: Cliquem em "Importar" e depois em "Guardar". A função estará disponível para uso.
4. **Ative a Função**: Cliquem em "Ativar" e ativem globalmente para que funcione com todos os modelos.
5. **Use a Função**: Criem um novo chat com qualquer modelo, como o Code Gemma, e peçam para gerar código HTML, CSS ou JavaScript.

## Exemplo Prático

Peçam ao modelo para gerar um código HTML simples para um site "Hello World". Ele gerará o código e renderizará o site para desktop, tablet e mobile.

## Conclusão

Existem várias funções disponíveis no Open Web UI, e encorajo-vos a experimentar diferentes funções. Deixem nos comentários quais funções funcionaram melhor para vocês. Isto é tudo por este vídeo, e vemo-nos no próximo. Obrigado!

---

# Vídeo 16: Evitar Alucinações em Modelos de Linguagem

Olá a todos! Já se depararam com uma publicação onde alguém pede ao ChatGPT para contar quantos "R"s existem na palavra "strawberry", e ele não consegue fazer isso? O problema é que muitos modelos de linguagem começam a "alucinar". Neste vídeo, vamos ver como podemos evitar que os modelos alucinem e forneçam respostas mais diretas.

## Exemplo Prático

Aqui, tenho o modelo GPT-4, que é o estado da arte. Se eu perguntar quantos "R"s existem em "strawberry", ele responde que há dois "R"s, o que está incorreto. No Open Web UI, temos acesso a controlos diretos que o modelo utiliza. Por exemplo, posso definir o valor da temperatura para zero e fazer a mesma pergunta. Desta vez, obtemos a resposta correta.

## Parâmetros que Influenciam o Modelo

1. **Temperatura**: Controla o quão criativo querem que o vosso modelo seja. Valores mais altos significam que o modelo será mais criativo, enquanto valores mais baixos resultam em respostas mais diretas e concisas.
   - **Exemplo**: Peçam ao modelo para descrever como é segurar neve pela primeira vez. Com temperatura zero, a resposta é direta. Com temperatura um, a resposta torna-se mais criativa e descritiva.

2. **Sequência de Paragem**: Define quando o modelo deve parar de gerar texto. Por exemplo, se o modelo encontrar a palavra "número de rastreamento" na resposta, ele para de gerar texto. Isto é útil para adicionar manualmente informações específicas, como números de rastreamento de encomendas.

3. **Top P e Top K**: Estes parâmetros controlam a diversidade das respostas geradas pelo modelo. São mais avançados e não precisamos de nos aprofundar muito aqui.

## Conclusão

Compreender e ajustar estes parâmetros pode melhorar significativamente a qualidade das respostas do vosso modelo. Experimentem diferentes configurações e vejam como elas impactam as respostas. Isto é tudo por este vídeo, e vemo-nos no próximo. Obrigado!

---

**Links dos Vídeos:**
- [Vídeo 15](https://www.youtube.com/watch?v=KbkfaapAvpE)
- [Vídeo 16](https://www.youtube.com/watch?v=OWsFsnnrMdE)

# Controlo de Respostas em Modelos de Linguagem

## Parâmetros de Controlo

Ao ajustar os parâmetros de um modelo de linguagem, pode controlar a aleatoriedade e a diversidade das respostas. Valores mais baixos resultam em respostas repetitivas, enquanto valores mais altos permitem uma gama mais diversificada de vocabulário e respostas mais variadas.

Outro parâmetro importante é o **comprimento do contexto**. Quando o comprimento do contexto é baixo (por exemplo, 2048 palavras), o modelo só consegue lembrar as últimas 2048 palavras ao gerar uma resposta. Com um comprimento de contexto maior, o modelo pode lembrar partes anteriores da conversa, embora isto possa afectar o desempenho, tornando as respostas mais lentas.

## Acesso a Parâmetros Avançados

No ChatGPT, não tem acesso a estes parâmetros avançados, mas com o **Open Web UI**, é possível controlar as saídas de qualquer modelo de linguagem disponível na AMA. Se achou este vídeo útil, por favor, dê um like, comente e subscreva o canal. A sua interacção ajuda muito!

Para sugestões de vídeos futuros, deixe um comentário. Obrigado por assistir e até à próxima!

---

# Escolhendo o Modelo Certo na AMA

## Introdução

Escolher o modelo certo na AMA pode ser confuso. Neste vídeo, vamos entender o que cada modelo significa, qual usar dependendo da tarefa e os diferentes níveis de quantização.

## Modelos Disponíveis

- **Llama 3.2**: Ideal para seguir instruções, sumarização, reescrita de prompts e uso de ferramentas.
- **53.5**: Suporta um comprimento de contexto de 128.000 tokens, perfeito para tarefas de longo contexto.
- **Gemma 2**: Excelente para geração de texto, chatbots e sumarização.
- **Lava**: Modelo multimodal que pode analisar imagens e até gerá-las.
- **Quen 2**: Supera muitos modelos de código aberto em operações matemáticas.

## Escolhendo o Modelo

Dentro de cada página de modelo, verá diferentes tags, como "1 Bill" e "3 Bill" para o Llama 3.2. O tamanho indicado refere-se à VRAM ou memória da GPU disponível. Se não tem uma GPU, pode levar muito tempo a rodar inferências com modelos maiores.

## Modelos do Hugging Face

Na AMA, também pode aceder a modelos do Hugging Face, como Stable Diffusion e Whisper. Basta procurar modelos com a tag "ggf" e usar o comando `ama run` para integrá-los ao Open Web UI.

## Conclusão

Escolher o modelo certo depende da sua aplicação e do nível de quantização que o seu sistema suporta. Se é novo no canal, confira a playlist com tutoriais passo a passo para configurar o Open Web UI. Deixe as suas sugestões nos comentários e não se esqueça de dar like, comentar e subscrever!

---

# Rodar Modelos no Seu Telemóvel

## Introdução

O Open Web UI é uma ferramenta poderosa que permite rodar modelos como o Meta Llama e o Google Gemma de forma privada, sem enviar dados para a OpenAI. Neste vídeo, vamos aprender como rodar estes modelos no seu telemóvel.

## Como Funciona

O Open Web UI no telemóvel usa os recursos do seu computador como servidor. Quando faz uma pergunta ao modelo no telemóvel, a informação é enviada para o computador, que processa e retorna a resposta.

## Configuração

A ferramenta que vamos usar é o **Enro**. Basta aceder ao site [en.c](https://en.c) e inscrever-se. Depois de configurado, pode rodar qualquer modelo de linguagem directamente no seu telemóvel.

## Conclusão

Rodar modelos no telemóvel pode parecer complicado, mas com as ferramentas certas, é simples e eficiente. Se gostou deste conteúdo, por favor, dê um like, comente e subscreva o canal. Até à próxima!

# Configurar e Utilizar o Enro

## Introdução

Ao inscrever-se, será direcionado para uma página de configuração, onde poderá configurar e instalar o Enro pela primeira vez. Se estiver a utilizar um sistema operativo Windows, basta clicar em "Download". Após o download, extraia a pasta e dê um duplo clique no ficheiro que será aberto. De seguida, copie o comando fornecido e cole-o na janela que se abrir.

Para utilizadores de Mac, o processo é igualmente simples. Copie o comando fornecido e, após a instalação do Enro, copie o comando para adicionar o token de autenticação. Com isto, estará pronto para prosseguir.

## Implementar a sua Aplicação Online

A nossa aplicação está a correr por predefinição no Local Host 3000. Vou copiar o comando fornecido e alterar o número de 8080 para 3000. Após executar o comando, utilizando uma conta gratuita, o sistema indicará que está a correr no Local Host 3000 e fará o redirecionamento para um site. Basta copiar o link e enviá-lo por e-mail para o seu telemóvel. Ao abrir o link no telemóvel, verá a mesma interface web aberta no computador.

## Utilizar Recursos do Computador

Aqui, podemos ver os recursos do meu computador. No telemóvel, vou tentar executar o modelo ML Nemo, que utiliza cerca de 16 GB de memória. Pedi-lhe para escrever um ensaio de 2.000 palavras. Ao executar o comando no telemóvel, o GPU começa a ser utilizado, chegando quase a 100% de capacidade. Isto ocorre porque o modelo está a correr no telemóvel, mas a utilizar os recursos do computador. O mais importante é que estes dados estão apenas no meu computador, não sendo enviados para a OpenAI.

## Considerações Finais

Imagine que queira executar um modelo de linguagem grande, mas não tem um GPU. Nesse caso, pode alugar um GPU de serviços como AWS, Microsoft Azure, Google Cloud ou outros fornecedores de serviços em cloud. Normalmente, isto custaria entre $2 e $5 por hora. Pode configurar um servidor, utilizar o Enro para redirecionar para o telemóvel e, assim, executar o modelo de linguagem no telemóvel sem precisar de um computador com recursos de GPU. Pode até mesmo executar o link gerado pelo fornecedor de serviços em cloud no computador, seguindo o mesmo processo.

Espero que este vídeo tenha ajudado a entender como configurar o Enro. Se é novo no canal, partilhei um link para a playlist completa sobre como configurar a Open Web UI e um vídeo sobre os recursos do computador ao executar modelos de linguagem grandes. Inscreva-se no canal e deixe um comentário se tiver ideias para vídeos futuros ou quiser mais explicações sobre algum tópico. Obrigado por assistir e até ao próximo vídeo!

---

# Escolher o Melhor Modelo de Linguagem

## Introdução

Muitas vezes, ao navegar em sites como Old Lama e Hugging Face, vemos diversos modelos como Llama, Mistol, Gemma e outros, sem saber qual escolher. Este vídeo aborda qual seria o melhor modelo para tarefas baseadas em texto. Chamo a isto de "melhor" entre aspas, pois não é baseado num estudo científico, mas na minha própria avaliação, que chamo de Critério Amish.

## Categorias de Modelos

Dividi os modelos em três categorias distintas: pequenos, médios e grandes. Modelos pequenos podem ser executados em qualquer computador, sem necessidade de GPU. Modelos médios exigem um portátil de $600 a $1.000. Modelos grandes geralmente requerem um portátil de $2.000 ou mais, com 4 a 5 GB de VRAM.

## Fatores de Avaliação

Avaliei os modelos com base em vários fatores, como velocidade, inferência (não apenas a precisão, mas também a relevância da resposta), versatilidade (capacidade de responder a perguntas de codificação, pensamento lógico e criativo). Se quiser apenas o resultado final, está na descrição do vídeo. Caso queira entender o processo, continue a assistir.

## Comparação de Modelos Pequenos

Começamos por comparar modelos pequenos, que podem ser executados em qualquer CPU ou GPU. Compararemos o Small LM (229 MB), o Quin 2.0 (0.5 mil milhões de parâmetros, 400 MB) e o Llama 3.2 (1 mil milhões de parâmetros, 1.3 GB). Espera-se que o Llama 3.2 tenha melhor desempenho.

## Desempenho em Diferentes Tarefas

Após testar os modelos em tarefas de raciocínio abstrato, escrita criativa, senso comum e lógica, concluí que o Llama 3.2 é o melhor na categoria pequena. O Quin 2.0 cometia erros repetidamente em cálculos e raciocínio lógico. O Small LM teve um desempenho fraco em matemática e raciocínio, mas destacou-se em explicações sobre termodinâmica e exemplos práticos.

## Conclusão

O Llama 3.2, com 1 mil milhões de parâmetros, é o melhor modelo na categoria pequena. No entanto, se precisa de um modelo para escrita criativa, sem muita necessidade de raciocínio, o Small LM, com 360 milhões de parâmetros, pode ser uma boa opção.

---

**Vídeo 19:** [https://www.youtube.com/watch?v=-yhChXlYjbQ](https://www.youtube.com/watch?v=-yhChXlYjbQ) (Idioma: en)

# Análise de Modelos de Linguagem e Visão Computacional

## Comparação de Modelos de Linguagem

### Modelos Pequenos (até 2 mil milhões de parâmetros)

Nesta categoria, analisei modelos que podem ser executados em GPUs mais modestas. Os principais modelos comparados foram:

- **Small Language Model (1.7 mil milhões de parâmetros)**: Cerca de 991 MB.
- **Gemma 2 (2 mil milhões de parâmetros)**: Cerca de 1.6 GB.
- **Quen 2.5 (1.5 mil milhões de parâmetros)**: Cerca de 986 MB.

Durante os testes de desempenho, o Small Language Model de 1.7 mil milhões de parâmetros causou bloqueios no sistema, entrando num ciclo infinito ao tentar resolver problemas de otimização. Por isso, foi descartado da análise.

Comparando **Gemma 2** e **Quen 2.5**, ambos tiveram dificuldades com quebra-cabeças lógicos e raciocínio matemático. No entanto, em termos de escrita criativa, o **Gemma 2** destacou-se, enquanto o **Quen 2.5** apresentou direções aleatórias e incoerentes nas suas histórias. Assim, o **Gemma 2** é o vencedor nesta categoria.

### Modelos Médios (cerca de 4 GB de memória)

Nesta categoria, os modelos comparados foram:

- **Llama 3.2 (3.2 mil milhões de parâmetros)**
- **Neotron Mini (4.2 mil milhões de parâmetros)**
- **53.5 (3.8 mil milhões de parâmetros)**

O **Llama 3.2** destacou-se significativamente, superando os outros modelos em tarefas como explicação de entropia, resolução de problemas lógicos e storytelling. Enquanto o **53.5** forneceu respostas mais elaboradas, o **Llama 3.2** foi mais consistente e detalhado. Portanto, o **Llama 3.2** é o claro vencedor nesta categoria.

## Resumo e Recomendações

Se tiver capacidade para hospedar o **Llama 3.2**, ele é a melhor escolha. Caso contrário, o **Quen 2.5** é uma boa alternativa. No próximo vídeo, mostrarei como hospedar estes modelos, incluindo o **Llama 3.2**, mesmo em hardware modesto, como um Chromebook ou um portátil de 200 dólares.

Se gostou deste conteúdo, não se esqueça de gostar, comentar e subscrever o canal. Deixe as suas sugestões para vídeos futuros nos comentários. Obrigado por assistir e até à próxima!

---

# Modelos de Linguagem com Capacidade Visual

## Introdução

Neste vídeo, abordamos modelos de linguagem capazes de processar imagens, descrevendo os seus aspetos. Embora fornecedores como a Anthropic e a OpenAI sejam líderes, muitos preferem modelos locais para evitar que as suas imagens sejam usadas no treinamento destes modelos.

## Melhores Modelos Locais

Após testar vários modelos, os destaques foram:

- **Lava 3.8 (3.8 mil milhões de parâmetros)**: Requer 2-3 GB de VRAM e é ideal para uso diário.
- **Lava 34 (34 mil milhões de parâmetros)**: Oferece a maior precisão, mas exige cerca de 20 GB de VRAM, recomendando-se uma GPU como a Nvidia 490 com 24 GB de VRAM.

## Processo de Avaliação

Os critérios de avaliação incluíram:

1. **Reconhecimento geral de imagens**: Desempenho ao analisar imagens comuns.
2. **OCR (Reconhecimento Ótico de Caracteres)**: Capacidade de identificar texto em imagens, como documentos digitalizados.
3. **Imagens médicas**: Deteção de condições como cancro em imagens médicas.
4. **Reconhecimento de texto em cenas**: Identificação de texto em fotos do dia a dia.

Estes critérios ajudaram a determinar quais modelos são mais eficazes para diferentes tarefas visuais.

---

**Vídeo 20**: [Assista aqui](https://www.youtube.com/watch?v=VDLNtKbfewQ) (Idioma: Inglês)

# Comparação de Modelos de IA para Análise de Imagens e Texto

## Introdução

Neste vídeo, explorei diferentes modelos de IA para verificar as suas capacidades em várias tarefas, como reconhecimento de texto, deteção de objetos e classificação de imagens. O objetivo foi avaliar o desempenho de cada modelo e determinar qual seria o mais adequado para uso diário.

## Testes Realizados

### Reconhecimento de Texto

Primeiramente, testei se o modelo conseguia compreender o texto presente em imagens, como placas de sinalização e anúncios.

### Deteção de Objetos

Em seguida, avaliei a capacidade de deteção de objetos em imagens complexas. Por exemplo, verifiquei se o modelo conseguia identificar um cão, uma bola ou um jet ski numa cena de praia.

### Classificação de Imagens

Finalmente, examinei a capacidade de classificação fina, onde forneci uma imagem com várias espécies de flores e plantas para ver se o modelo conseguia reconhecer cada espécie individualmente.

## Comparação entre Modelos

### GPT-4 vs. LLaMA F3

No caso do GPT-4, ao fornecer uma imagem com múltiplas flores, ele conseguiu identificar sete espécies diferentes. Já o LLaMA F3 foi capaz de nomear doze espécies. Noutra imagem, onde eu estava com um cavalo, o GPT-4 descreveu o cenário em quatro parágrafos, mencionando a quinta e outros cavalos ao fundo. O LLaMA F3, por sua vez, descreveu o cenário em dois parágrafos e meio, mas ainda assim de forma detalhada.

### Análise de Código

Quando dei ao modelo uma tarefa mais complexa, como a análise de um excerto de código, o LLaMA F3 não conseguiu resolver. Ele inferiu que eu tinha anexado dois ficheiros não relacionados à imagem. O GPT-4, por outro lado, não só reconheceu o código Python, como também forneceu uma análise detalhada do que ele fazia.

## Conclusão

Embora o GPT-4 seja considerado o estado da arte, o LLaMA F3 também se mostrou bastante competente, especialmente para uso diário. Ele é uma boa alternativa por várias razões:

- As imagens não são enviadas para a OpenAI.
- O desempenho é comparável ao do GPT-4.
- Não é necessário ter um hardware caro para utilizá-lo.

No entanto, se precisar de uma análise mais profunda, como decifrar excertos de código, pode ser necessário um modelo maior, como o LLaMA com 34 mil milhões de parâmetros, que requer uma GPU mais poderosa.

## Detalhes do Experimento

Se quiser mais detalhes sobre como configurei o experimento, deixei um link na descrição do vídeo com todas as imagens utilizadas, caso queira tentar replicar o teste.

## Agradecimentos

Se gostou do vídeo, por favor, deixe um like. Se tiver alguma sugestão de modelo que gostaria que eu explorasse, deixe um comentário. Obrigado por assistir e até ao próximo vídeo!

---

# Experimento com IA em Entrevistas de Recrutamento

## Introdução

Recentemente, vi um vídeo viral no LinkedIn sobre alguém a ser entrevistado por um bot de IA. Pensei: se as empresas estão a usar bots de IA para entrevistar candidatos, por que não podem os candidatos usar bots para responder a esses entrevistadores? Vou mostrar como isso pode ser feito.

## Configuração do Bot de Entrevista

### Criação do Modelo

Configurei um bot de entrevista usando o Open Web UI, uma alternativa privada e gratuita ao ChatGPT. O bot usa os recursos do seu computador, permitindo que descarregue qualquer modelo de linguagem grande diretamente na sua máquina.

### Personalização do Bot

Criei um modelo chamado "Interviewing Bot" e configurei o prompt do sistema para que ele se comportasse como um entrevistador gentil. Além disso, adicionei um currículo e documentos com informações sobre o candidato, incluindo habilidades e projetos passados.

### Testes e Ajustes

Durante os testes, o bot leva de quatro a cinco segundos para responder, especialmente se a pergunta for longa. No entanto, é possível ajustar a latência usando um modelo menor, embora isso possa afetar a precisão. Também é possível remover a clonagem de voz, o que reduziria o tempo de resposta em mais um segundo.

## Conclusão

Embora ainda não estejamos no ponto em que um clone de IA pode substituir completamente um candidato numa entrevista, ele faz um bom trabalho ao conversar com um recrutador de IA. Para mais detalhes sobre como configurar o Open Web UI, confira o link na descrição do vídeo.

## Agradecimentos

Se gostou do vídeo, por favor, deixe um like. Se tiver alguma dúvida ou quiser explorar outro tipo de modelo, deixe um comentário. Obrigado por assistir e até à próxima!

---

Vídeo 21: [https://www.youtube.com/watch?v=649qtKjbnk4](https://www.youtube.com/watch?v=649qtKjbnk4)

# Configurando Modelos de Linguagem e Open Web UI

## Escolhendo o Modelo Base

O modelo base que escolhi foi o **GPT-4 Mini**, que utilizei através da API da OpenAI. No entanto, se preferir usar um modelo local, baixado diretamente para o seu computador, também é possível. Por exemplo, eu poderia ter selecionado o modelo **Llama 3.2**, que utiliza apenas os recursos do meu computador.

## Configuração do Clone de Voz

Se quiser saber como configurei o meu clone de voz, adicionei outro vídeo sobre isso. Basicamente, no painel de administração, pode ir para **Configurações** > **Áudio** e, em seguida, configurar a API da **Eleven Labs**. O modelo de texto para fala que selecionei foi o **Eleven Labs Turbo**.

## Passos Recomendados

1. Assista ao vídeo sobre **Open Web UI** se não estiver familiarizado com ele.
2. Em seguida, assista ao vídeo sobre como configurar o **Open Web UI** e o **Llama**.
3. Por fim, assista ao vídeo sobre como configurar uma API com a **Eleven Labs**.

Depois de assistir a esses três vídeos, estará pronto para configurar tudo.

## Entrevista Completa com um Recrutador AI

Se quiser ver uma entrevista completa e sem cortes com um recrutador AI, deixe um comentário na seção de comentários. Se achou este vídeo interessante, por favor, curta, comente e se inscreva no canal. Isso ajuda muito e eu realmente agradeço.

---

# Hosting Large Language Models Locally

## Introdução ao Groq

Recentemente, tenho recebido muitas perguntas sobre como hospedar grandes modelos de linguagem localmente, especialmente para quem não tem uma GPU ou tem um computador modesto. Uma das opções disponíveis é o **Groq GQ** (não confundir com o modelo de linguagem do Twitter, **GK**).

O Groq hospeda grandes modelos de linguagem na nuvem e fornece acesso a eles através de uma API. Tudo o que precisa fazer é criar uma conta no **Groq Cloud**, copiar a chave da API e colá-la no **Open Web UI**.

## Configurando o Groq

1. **Crie uma conta no Groq Cloud**: Depois de se inscrever, terá acesso a uma interface com vários modelos disponíveis, como o **Llama 3** com 70 bilhões de parâmetros.
2. **Gere uma chave de API**: Após criar a chave, copie e cole-a no **Open Web UI**.
3. **Verifique a conexão**: No painel de administração do Open Web UI, vá para **Configurações** > **Conexões** e cole a chave da API. Se a conexão for verificada, poderá usar os modelos disponíveis.

## Desempenho do Modelo

O modelo **Llama 3** com 70 bilhões de parâmetros é extremamente rápido, com um tempo de inferência de **888 milissegundos** e **311 tokens por segundo**. Isso é mais rápido do que muitos modelos da OpenAI.

## Custos e Limitações

O Groq oferece uma versão gratuita, mas com limitações de uso. Para uso mais intensivo, há planos pagos com preços razoáveis. Pode encontrar mais detalhes sobre os preços no site deles.

---

# Mantendo Docker Containers Atualizados

## Desafio de Atualização

O **Docker** é excelente para rodar o **Open Web UI**, mas manter os contêineres atualizados pode ser um desafio, já que o Open Web UI é atualizado com frequência.

## Como Manter os Contêineres Atualizados

1. **Acompanhe as versões no GitHub**: No repositório do Open Web UI no GitHub, pode ver todas as versões lançadas e as mudanças incluídas.
2. **Ative notificações**: No GitHub, vá para **Configurações de Usuário** > **Notificações** e selecione a opção para ser notificado por e-mail sempre que uma nova versão for lançada.

Assim, será alertado sempre que houver uma nova atualização disponível, permitindo que mantenha seus contêineres sempre atualizados.

---

Se achou este vídeo útil ou interessante, por favor, deixe um comentário abaixo. Se tiver sugestões para vídeos futuros, também adoraria ouvir. Se esta é sua primeira vez no canal, não se esqueça de curtir e se inscrever. Obrigado por assistir e até o próximo vídeo!

# Atualizar e Gerir Containers Docker no Open Web UI

## Atualização Manual de Containers

Quando é lançada uma nova versão do Open Web UI, o primeiro passo é executar o comando `docker pull` para obter a versão mais recente. Se já tiver a última versão, o Docker informará que a imagem está atualizada.

Caso precise de atualizar, siga estes passos:

1. Pare o container atual com `docker stop open-web-ui`
2. Remova o container com `docker rm open-web-ui`
3. Execute novamente o comando inicial para rodar o container

Este é um método manual para manter os seus containers atualizados. Receberá notificações por e-mail sobre novas versões e poderá seguir estes passos sempre que necessário.

## Atualização Automática com Watchtower

Para uma abordagem mais automatizada, pode utilizar o Watchtower. Este é um container adicional que monitoriza o container do Open Web UI e instala automaticamente as atualizações quando disponíveis.

Para configurar:

1. Execute o comando `docker run` especificando o nome do container como "watchtower" e indicando que deve monitorizar o Open Web UI
2. O Watchtower verificará a cada 24 horas se há novas versões e instalá-las-á automaticamente

# Trabalhar com Pipelines no Open Web UI

## Introdução aos Pipelines

Os pipelines permitem uma grande personalização da interface do Open Web UI. Com poucas linhas de código, podemos criar workflows dinâmicos e reutilizar códigos de outros utilizadores para melhorar a interação com modelos de linguagem.

## Exemplo Prático: Limite de Interações

Vamos começar com um exemplo simples: um pipeline que limita o número de interações com um modelo de linguagem caro. Isto é útil quando queremos restringir o uso a, por exemplo, 5 interações por utilizador.

Configuração:

1. No painel de administração, vá para "Pipelines"
2. Selecione o filtro de limite de turnos de conversação
3. Copie a URL do GitHub e cole no painel de administração
4. Guarde as alterações

## Instalar e Configurar Pipelines

Se ainda não tiver pipelines instalados:

1. Aceda à página do GitHub
2. Execute o comando Docker fornecido
3. Adicione a conexão na porta 9099 com a chave API "open-web-ui"
4. Verifique a conexão do servidor

## Utilizar Pipelines Existentes

Pode explorar e utilizar diversos pipelines disponíveis, como o filtro de mensagens tóxicas. Para cada pipeline:

1. Copie a URL do GitHub
2. Cole no painel de pipelines
3. Faça o download
4. Configure as variáveis (valores e prioridade)

A prioridade determina a ordem de execução dos filtros, com números mais baixos a indicar maior prioridade.

# Gestão de Acesso com Controlo Baseado em Funções

## O Problema do Acesso Partilhado

Quando várias pessoas utilizam a mesma conta numa organização, pode haver:

- Múltiplos utilizadores a tentar conversar simultaneamente
- Falta de privacidade nas conversas
- Desorganização geral

## Solução: Controlo de Acesso Baseado em Funções

No painel de administração do Open Web UI, pode configurar diferentes níveis de acesso para utilizadores. Isto permite:

- Gerir quem pode aceder a quais modelos
- Manter a privacidade das conversas
- Organizar melhor o uso dos recursos

Para configurar:

1. Aceda ao painel de administração
2. Crie contas de utilizador com diferentes níveis de permissão
3. Atribua funções específicas a cada utilizador

Esta abordagem ajuda a manter a organização e a privacidade em ambientes com múltiplos utilizadores.

---

**Links úteis:**
- [Vídeo 24: Pipelines no Open Web UI](https://www.youtube.com/watch?v=DFlSd6GrMIk)
- [Vídeo 25: Controlo de Acesso Baseado em Funções](https://www.youtube.com/watch?v=xlE782FrW_s)

# Contas de Administrador e Utilizador na Interface Web

Vamos usar o John Doe como exemplo. O John não tem acesso ao painel de administração. Em vez disso, ele só tem acesso a um modelo específico: o **modelo 53.5**. Ele está na minha conta, mas restrinji o seu acesso a este único modelo.

Aqui está como funciona:
- O John não consegue ver os chats que estou a usar, mas eu consigo ver os chats que ele tem com o modelo.
- Se o John interagir com o modelo—por exemplo, ao pedir "Ajuda-me a estudar" ou "Escreve-me uma frase"—eu posso rever o histórico de chats dele no painel de administração.

No **painel de administração**, na secção **Chats**, posso ver todas as interações do John com o **modelo 53.5**. Esta é uma diferença crucial entre contas de administrador e de utilizador. Os administradores têm acesso total e visibilidade completa, enquanto os utilizadores têm permissões limitadas.

## Gestão de Acesso de Utilizadores
Nas **definições de administração**, em **Perfis de Utilizador**, pode permitir o acesso a modelos específicos para cada utilizador. Por exemplo, atualmente só permiti o acesso ao **modelo 53.5** para o John. Se quiser conceder-lhe acesso a outro modelo, como o **GPT-4 Turbo**, posso guardar as alterações, atualizar a página, e o novo modelo aparecerá no perfil do John.

## Adicionar e Gerir Utilizadores
Existem duas formas de adicionar utilizadores:
1. **Individualmente**: Introduza o nome completo, email e palavra-passe do utilizador.
2. **Importação em Massa**: Utilize um ficheiro CSV para adicionar vários utilizadores de uma só vez.

Se um utilizador se esquecer da palavra-passe, pode repô-la no painel de administração. Além disso, se quiser revogar o acesso de um utilizador, pode simplesmente eliminar a conta dele.

## Integração de Contas de Utilizadores com Pipelines
No vídeo anterior, discutimos a configuração de pipelines. Por exemplo, pode utilizar o **Conversation Turn Limit Filter** para limitar a frequência com que um utilizador pode interagir com um modelo. Se quiser que o John tenha acesso ao **GPT-4 Turbo**, mas limitá-lo a cinco interações por sessão, posso configurar isto nas definições do pipeline.

Para mais detalhes sobre pipelines, consulte o vídeo ligado: [Pipelines Explained](#)

---

# O Que Torna um Prompt Eficaz?

Ao trabalhar com modelos de linguagem de grande escala, a diferença entre um **mau prompt** e um **bom prompt** é significativa. Aqui estão dois exemplos para ilustrar isto:

## Exemplo de Bom Prompt
Imagine um chatbot criado pela Tesla. O objetivo deste chatbot é:
- Manter-se formal
- Manter-se no tópico
- Evitar oferecer descontos ou promoções

Quando testado sob pressão, o chatbot manteve-se consistente. Não ofereceu descontos, não discutiu promoções, nem se desviou do tópico, mesmo quando questionado sobre assuntos não relacionados, como atividades favoritas ou expressões de infelicidade.

## Exemplo de Mau Prompt
Em contraste, um chatbot mal concebido:
- Usou emoticons
- Partilhou interesses pessoais quando questionado sobre atividades favoritas
- Ofereceu opções de financiamento e comportou-se como um terapeuta quando confrontado com insatisfação

## Criar Prompts Eficazes
A chave para escrever um bom prompt está nos detalhes. Aqui está como:
1. **Fornecer Objetivos Claros**: Especifique o que o chatbot deve e não deve fazer.
2. **Evitar Ambiguidades**: Seja explícito sobre o tom, estilo e limitações (por exemplo, "Use linguagem formal; evite gíria").
3. **Incluir Exemplos**: Quanto mais detalhes fornecer, melhor a resposta do modelo estará alinhada com as suas expectativas.

Por exemplo, um prompt bem elaborado para um chatbot da Tesla incluiria:
- Um objetivo claro
- Instruções para evitar descontos ou promoções
- Uma diretiva para usar linguagem formal

Sem estes detalhes, os modelos podem desviar-se—como no caso infame de uma concessionária de automóveis que ofereceu carros por $1 devido à falta de restrições no prompt.

## Utilizar Estratégias de Prompt da OpenAI
A OpenAI fornece excelentes recursos sobre como escrever prompts eficientes. Estas estratégias incluem:
- Incluir consultas detalhadas
- Fornecer exemplos
- Pedir ao modelo para adotar uma persona específica

Visite o [Guia de Engenharia de Prompts da OpenAI](#) para mais dicas.

## Aproveitar LLMs para Melhorar Prompts
Em vez de criar prompts manualmente, pode usar modelos de linguagem de grande escala para gerar prompts melhores para si. Por exemplo:
1. Peça ao modelo para listar estratégias para escrever prompts eficazes.
2. Use essas estratégias para refinar o seu prompt existente (por exemplo, "Escreva-me uma carta de apresentação para este emprego").
3. Guarde o prompt melhorado para uso futuro.

Esta abordagem poupa tempo e garante que os seus prompts estão otimizados para os melhores resultados.

---

Obrigado por assistir! Se achou este vídeo útil, por favor deixe um like e subscreva o canal para mais insights. Sinta-se à vontade para partilhar as suas sugestões ou ideias nos comentários—adoraria ouvi-las. Até à próxima, adeus!

# Reutilização de Prompts no Open Web UI

No Open Web UI, é possível reutilizar prompts criados por outros utilizadores. Na secção de prompts, encontrará uma variedade de exemplos criados por diferentes utilizadores. Contudo, muitos desses prompts podem ser inconsistentes. Por exemplo, o prompt "Code Expert" é bastante simples.

Um exemplo de um prompt bem elaborado é o "Docker Compose". Este é detalhado e fornece uma quantidade adequada de informações. Para importar este prompt, basta selecionar "Get Import" no Open Web UI. Ao guardar e criar, o prompt será automaticamente armazenado e estará pronto para uso. Para o utilizar, basta selecionar "Docker Compose" e voilà!

Espero que este vídeo tenha dado uma ideia sobre o que diferencia um bom prompt de um mau: basicamente, está nos detalhes. Se achou o vídeo útil, por favor deixe um like. Se ainda não se inscreveu no canal, por favor faça-o, ajuda bastante o canal. Se tiver sugestões para vídeos futuros, deixe um comentário na secção de comentários. Obrigado por estar aqui, e até ao próximo vídeo! 👋

# Explorando o Arena Model

Hoje vamos explorar o **Arena Model**. Imagine um cenário onde tem carregados 50 ou 60 modelos diferentes—talvez alguns de AMA, Grock, ou OpenAI. Se não sabe como carregar esses modelos via API, por favor veja os links na descrição do vídeo.

O **Arena Model** ajuda a determinar qual modelo é mais adequado para uma tarefa específica. Ele fornece uma interface anónima onde não sabe qual modelo está a ser utilizado. Por exemplo, se pedir um facto curioso sobre o Império Romano, recebe uma resposta sem saber qual modelo a gerou. Depois, pode rodar a resposta e então descobrir o modelo. Neste exemplo, foi **GPT 3.5 Turbo**. Posso dizer que a resposta era precisa e detalhada.

Se rodar essa resposta, pode ver as avaliações no painel de admin > avaliações. Essa rodada aparece nas listas. Pode partilhar essas rodadas com a comunidade **Open Web UI**, mas sem metadados sobre o chat—apenas a avaliação.

Também pode adicionar o seu próprio **Arena Model**, comparando modelos específicos, como **GPT 4** e **GPT 3.5 Turbo**. As avaliações são visíveis para todos na sua equipa—muito útil para ver o desempenho de modelos do lado de toda a equipa.

O **Arena Model** é uma ferramenta bastante recente e ainda em desenvolvimento, mas já bastante útil para comparar o desempenho de modelos diferentes, especialmente com o leaderboard que indica o melhor modelo para a sua tarefa específica.

Obrigado por estar aqui. Se achou útil, por favor deixe um like. Se ainda não se inscreveu no canal, por favor faça-o. Se tiver sugestões para vídeos futuros, deixe um comentário na secção de comentários. Até ao próximo vídeo! 👋

# Configuração de um Servidor Local de Texto para Voz

Tive vídeos anteriores sobre o uso do 11 Labs para inferência de texto para voz. Recebi muitos comentários a perguntar se posso fazer inferências localmente—este vídeo é o resultado dessas perguntas. Hoje, configuramos um **servidor local de inferência de texto para voz**.

Primeiro, vou ler uma frase utilizando este servidor: "I can understand simple commands now." Note que só utiliza os recursos do meu computador, sem enviar dados para o 11 Labs.

Para configurar, primeiro visitei o repositório de **OpenAI** (links na descrição) e clonámo-lo localmente num diretório vazio. Depois, renomeámos o ficheiro `sample.env` para `speech.env`, conforme as instruções. Basta rodar `docker-compose up` para montar o contentor. Posso testar tudo no browser utilizando localhost:8000. 👋

[Vídeo 27: https://www.youtube.com/watch?v=Gs-NdY-6gBc (Sem transcrição disponível)]
[Vídeo 28: https://www.youtube.com/watch?v=PU7B5FHalrg]
[Vídeo 29: https://www.youtube.com/watch?v=lwk0QGLou9Y]

# Configuração de Texto para Voz e Vozes Personalizadas

Comecei por verificar o estado de saúde do contentor, que estava OK, indicando que está a funcionar conforme esperado. De seguida, examinei os modelos e encontrei dois modelos ativos no backend: **Text to Speech 1 HD** e **Text to Speech 1**. Ambos estão a funcionar corretamente.

Para configurar a API, naveguei até ao painel de administração, em definições, e cliquei em áudio. Adicionei o URL da API para as definições de texto para voz. A configuração está a correr localmente no **Local Host 8000**. Para a voz de texto para voz, selecionei **Nova**, e para o modelo, **tts1 HD**. Depois de guardar estas definições, testei a funcionalidade "Ler em voz alta" para garantir que funciona.

Para alterar a voz, voltei ao repositório e selecionei uma voz diferente, como **Alloy**. Depois de guardar, testei a nova voz, e funcionou bem. Repeti este processo com outra voz, **Fable**, e confirmei que também estava a funcionar.

# Adicionar Vozes Personalizadas com Piper

Para adicionar vozes personalizadas, explorei o **repositório GitHub** da Open AI, especificamente a secção **Piper**. O Piper oferece uma variedade de amostras de voz. Selecionei uma voz da Grã-Bretanha, **Alba**, e testei-a. Para integrar esta voz, descarreguei dois ficheiros necessários para cada voz: um **ficheiro de modelo onyx** e um **ficheiro Json onyx**. Estes ficheiros são essenciais para configurar as vozes no repositório.

# Conclusão

Esta é a visão geral da configuração e personalização de vozes de texto para voz. Se achou este vídeo útil, por favor deixe um like. Se é novo no canal, subscreva para mais conteúdo. Sinta-se à vontade para deixar comentários com quaisquer perguntas ou sugestões. Obrigado por assistir, e vemo-nos no próximo vídeo!

---

# Funcionalidade de Memória no Open Web UI

Olá a todos, sou o Amish da **Digital Brainbase**. No vídeo de hoje, vou demonstrar a **funcionalidade de memória** no Open Web UI utilizando o **modelo Llama 3.2**.

## Demonstração

Inicialmente, interagi com o modelo sem fornecer qualquer informação. Perguntei:

> "Olá, o que estou a estudar para me tornar?"

O modelo respondeu:

> "Parece que estás a trabalhar arduamente para alcançar o teu objetivo de te tornares um cientista de dados profissional."

Depois perguntei sobre os meus atuais fatores de stress, recebendo:

> "Lamento muito saber que te sentes stressado e ansioso com a procura de emprego."

## Como Funciona

O modelo sabia estes detalhes através da **funcionalidade de memória**. Para a ativar, fui ao **painel de administração**, em **definições**, e dentro de **personalização**, ativei a **funcionalidade experimental de memória**. Aqui, adicionei memórias como:

> "Quero tornar-me um cientista de dados profissional,"

e

> "Estou a sentir-me ansioso com o mercado de trabalho."

Depois de guardar estas memórias, testei a memória do modelo perguntando sobre o meu saldo bancário, e ele reconheceu corretamente que só tenho $1000.

## Casos de Utilização

Esta funcionalidade é útil para armazenar informações de clientes. Por exemplo, adicionei memórias sobre um cliente chamado **John**, incluindo preferências e desgostos. Quando perguntei por recomendações de presentes para o John, o modelo sugeriu uma **experiência de F1**, alinhada com as suas preferências.

## Conclusão

A **funcionalidade de memória** serve como uma base de conhecimento para o modelo, garantindo que ele referencia informações armazenadas ao gerar respostas. Se tiver casos de utilização únicos, partilhe-os nos comentários. Adoraria explorar como outros estão a aproveitar esta funcionalidade.

Obrigado por assistir! Se gostou do vídeo, deixe um like, e subscreva se é novo no canal. Vemo-nos no próximo vídeo!

# O que é Quantização?

Olá a todos, sou o Amish do DigitalBrainbase.com. No vídeo de hoje, vamos explorar o que significa quantização. Já devem ter ouvido este termo ou visto a aparecer frequentemente em contextos como os modelos Hugging Face ou LLaMA. Então, o que significa?

Para simplificar, quando treinamos um modelo de linguagem grande, o modelo aprende padrões e comportamentos. Ele usa algo conhecido como **weights** (pesos) para armazenar essa informação. Os pesos são essencialmente números. Quando dizemos que um modelo tem 8 mil milhões de parâmetros, significa que tem 8 mil milhões de pesos.

Normalmente, um modelo usa **FP32** (Floating Point 32), o que significa que tem 32 bits de precisão. Isto permite que o número do peso seja muito grande. A quantização, em termos simples, é o processo de pegar num número grande (como 3.14159...) e reduzi-lo a um número muito menor. Embora isto possa resultar na perda de alguns bits de informação, a diferença é geralmente insignificante.

## Compensações de Desempenho

Ao comparar um modelo quantizado de 4 bits com um modelo com pesos completos, pode notar-se uma ligeira queda no desempenho. No entanto, a redução significativa nos números significa que os modelos quantizados podem funcionar muito mais rapidamente.

Vamos comparar o desempenho de um modelo quantizado com uma versão não quantizada. Aqui, carreguei dois modelos: um com quantização de 4 bits e outro com quantização de 8 bits. Vamos ver como se desempenham quando solicitados a contar uma história sobre o tempo a mover-se para trás.

Como podem ver, o modelo de 8 bits produz uma resposta ligeiramente mais longa. Embora não possa comparar o desempenho geral sem ler ambas as histórias em detalhe, os pontos de partida parecem bastante semelhantes. Quer seja escrita criativa ou outras tarefas, o desempenho é quase idêntico.

## Escolher a Quantização Certa

No final do dia, a escolha da quantização depende das suas preferências e dos recursos do sistema. Se tiver um computador ou GPU mais pequenos, pode preferir um modelo quantizado de 4 bits. Se tiver a capacidade de hospedar modelos maiores, pode optar por quantização de 8 bits ou até 16 bits.

As principais compensações são:
- **Tempo de Inferência**: Menor com quantização de 4 bits.
- **Precisão**: Maior com maior precisão de ponto flutuante.

É tudo por este vídeo! Se gostou, deixe um like. Se é novo no canal, considere subscrever. Se quiser que eu aborde outros tópicos em vídeos futuros, deixe um comentário abaixo, e terei todo o prazer em abordá-los. Obrigado por assistir, e até ao próximo. Adeus!

---

# Automatizar Recrutamento com Open Web UI

Olá a todos, sou o Amish do DigitalBrainbase.com. No vídeo de hoje, vou mostrar-vos um projeto emocionante no qual tenho estado a trabalhar como recrutador. Encontrar o candidato certo para o trabalho certo pode ser um desafio, então pensei, porque não usar o Open Web UI para ajudar nisto?

## Como Funciona

Aqui está uma demonstração rápida: vou dizer que quero contratar alguém com experiência em SQL. O sistema irá pesquisar na minha base de dados de currículos e recomendar dois candidatos: Brad Olivier e Mike Tyson. Posso ver os seus perfis, incluindo a sua experiência com SQL.

Este sistema usa uma técnica chamada **RAG** (Retrieval Augmented Generation). Ele pesquisa os blocos de texto mais relevantes e devolve os perfis de currículos dos candidatos com a experiência necessária.

## Personalizar a Pesquisa

E se eu quiser procurar candidatos com experiência em marketing digital? O sistema identifica Jane Doe como a única candidata com 30 anos de experiência em marketing digital. Posso rever o seu perfil para confirmar a sua expertise.

## Configurar o Sistema

Antes de mergulhar na configuração, se alguma vez se sentir perdido, recomendo ver dois vídeos:
1. [Como Conversar com os Seus Documentos Usando Open Web UI](#)
2. [Como Criar Modelos de IA Personalizados com Open Web UI](#)

Vou partilhar os links para estes vídeos na descrição.

### Criar uma Base de Conhecimento

Primeiro, criei uma base de conhecimento de currículos. No painel de administração, em **Workspace**, posso ver a base de conhecimento **Candidate Resume Pool**. Ela contém currículos de candidatos como Lisa Jackson, Brad Olivier e Joe Ivan. Estes currículos estão em formato `.txt`, mas também poderiam ser documentos Word ou PDFs.

Para criar a sua própria base de conhecimento:
1. Clique no ícone **+**.
2. Dê-lhe um nome (por exemplo, Resume Pool).
3. Defina a visibilidade (privada ou pública dentro da sua conta de administrador).

### Construir o Modelo

Em seguida, criei um modelo. Na página **Models**:
1. Clique no ícone **+**.
2. Dê-lhe um nome (por exemplo, Recruiter Bot).
3. Selecione um modelo base (usei LLaMA 3.2 para evitar custos de API).
4. Adicione uma descrição (por exemplo, Resume Review Bot).
5. Defina a visibilidade como privada.
6. Selecione a base de conhecimento (Candidate Resume Pool).
7. Guarde e crie.

### Prompt do Sistema

Para dar uma ideia do prompt do sistema que usei, vamos rever o Recruiter Bot que criei.

---

É tudo por este vídeo! Se achou útil, deixe um like e subscreva o canal. Diga-me nos comentários se gostaria que eu abordasse mais tópicos como este. Obrigado por assistir, e até ao próximo. Adeus!

# Configurar um Recrutador Pessoal com IA

Aqui, vou descer até ao prompt do sistema e colar o prompt na descrição. Basicamente, disse que és um recrutador pessoal com IA, cujo objetivo é avaliar e combinar as qualificações dos candidatos. Depois de fazer isso, estava praticamente pronto. Tudo o que precisei de fazer foi voltar ao chat com o meu bot e fornecer currículos.

Se começasse a ver comportamentos como alucinações ou informações inventadas, iria para os parâmetros avançados e ajustaria a temperatura. Atualmente, o valor predefinido é 0.8. Se o modelo começasse a inventar informações, simplesmente reduziria este parâmetro para algo como 0.4 ou 0.3. A temperatura controla a quantidade de criatividade que o modelo tem para trabalhar. Às vezes, não queres que o modelo seja muito criativo, mas que forneça respostas diretas.

Esta foi a configuração básica do meu experimento. Este é apenas um exemplo de como podemos usar bases de conhecimento com modelos personalizados. Existem muitos outros casos de uso possíveis. Se tiveres algum caso específico que queiras discutir, sente-te à vontade para deixar um comentário na secção abaixo.

Isto é tudo por este vídeo. Obrigado por assistires. Se és novo no canal, por favor, dá um like ao vídeo e, se ainda não te inscreveste, inscreve-te. Vejo-vos no próximo vídeo. Obrigado a todos e até mais!

---

# Novidades no Open WebUI 0.4.2

Olá a todos, aqui é Amish da Digital Brainbase. Este é um vídeo muito emocionante, pois vamos analisar o mais recente lançamento do Open WebUI, versão 0.4.2. Como é que eu sabia que esta nova versão foi lançada? Bem, eu sigo as atualizações e sempre que há uma nova versão, recebo uma notificação por e-mail. Se quiseres saber como configurar isto, vou partilhar um link na descrição que te guiará pelo processo.

Além disso, não precisei de atualizar o contentor manualmente, pois configurei o Watchtower. Ele verificou se havia uma atualização para o Open WebUI e, como havia, simplesmente atualizou automaticamente. Vou partilhar um vídeo sobre isto na descrição para que possas ver como atualizar automaticamente todos os teus contentores Docker.

Dito isto, vamos dar uma olhada ao mais recente lançamento do Open WebUI. Parece que nesta atualização há três versões: 0.4.2, 0.4.1 e 0.4.0. Para mim, parece que a 0.4.0 foi a principal atualização, com algumas correções nas versões subsequentes. Vamos começar por analisar a 0.4.0.

## Novidades na Versão 0.4.0

### Grupos de Utilizadores

Agora podes criar e gerir grupos de utilizadores, tornando a organização dos utilizadores mais simples. Vamos ver como isto funciona na plataforma Open WebUI. Indo para o painel de administração, agora temos a opção "Grupos". Podes organizar os teus utilizadores em grupos e atribuir permissões. Por exemplo, posso criar um grupo chamado "Marketing", adicionar uma descrição e incluir todos os utilizadores relevantes, controlando facilmente as permissões.

### Autenticação LDAP

Foi introduzida a autenticação LDAP. Confesso que não sei exatamente o que isto significa, mas parece que há uma maneira de configurar palavras-passe e certificados para melhorar a segurança. Se alguém souber como isto funciona, por favor, deixa um comentário.

### Conexões Compatíveis com OpenAI

Foi adicionado um prefixo de ID para evitar conflitos de IDs de modelos em configurações personalizadas. Isto pode ser configurado nas definições de conexões, onde podes adicionar uma nova conexão com uma URL base.

### Suporte a Chave de API AMA

Há mais segurança para conexões AMA, com a possibilidade de ativar ou desativar facilmente conexões individuais da OpenAI e AMA. Isto é útil para evitar que a interface fique congestionada com muitos modelos.

### Redesenho do Espaço de Trabalho de Modelos

O espaço de trabalho de modelos foi redesenhado para melhorar a usabilidade na gestão de modelos entre utilizadores e grupos. Agora, em vez de uma visão compacta, temos ícones maiores, o que facilita a navegação.

### Redesenho do Espaço de Trabalho de Prompts

O espaço de trabalho de prompts também foi redesenhado, com uma nova interface para organizar e gerir prompts de forma mais conveniente. Agora, podes alterar o acesso de um prompt para público ou privado.

### Funções Organizadas por Tipo

As funções agora são automaticamente categorizadas por tipo, como ações, filtros e pipelines. Isto facilita a identificação e o uso das funções.

### Espaço de Trabalho Colaborativo

Há um suporte aprimorado para múltiplos utilizadores contribuírem para modelos, bases de conhecimento, prompts ou ferramentas. Isto permite que equipas trabalhem juntas para melhorar modelos existentes.

### Ferramentas Selecionadas Automaticamente no Editor de Modelos

Agora, as ferramentas habilitadas no editor de modelos são automaticamente selecionadas, o que simplifica o processo de adição de ferramentas.

### Indicador de Pesquisa na Web e Ferramentas

Há uma indicação clara quando a pesquisa na web ou ferramentas estão a ser usadas, o que melhora a transparência e a usabilidade.

---

Isto é tudo por hoje. Se gostaste do vídeo, não te esqueças de dar um like e subscrever o canal. Vejo-vos no próximo vídeo. Obrigado e até mais!

---

**Vídeo 33:** [https://www.youtube.com/watch?v=qESVuLFHYqI](https://www.youtube.com/watch?v=qESVuLFHYqI) (Idioma: en)

# Explorar Novas Funcionalidades e Atualizações

Vamos explorar algumas funcionalidades e atualizações interessantes que foram implementadas recentemente. Estas ferramentas foram concebidas para reduzir a confusão e melhorar a funcionalidade, por isso vamos analisá-las em detalhe.

## Funcionalidade de Pesquisa na Web

Primeiro, vamos ver a funcionalidade de pesquisa na web. Para isso, vou navegar até às definições de administrador e garantir que a pesquisa na web está ativada. Parece que está, mas vou precisar de alterar isto depois do vídeo.

Quando entro na pesquisa na web e escrevo algo como "oh nice", a funcionalidade aparece. Atualmente diz "pesquisar na web", indicando que está ativa. Se a desligar, a opção desaparece. Esta é uma nova adição — um interruptor para autenticação de chave API para reforçar a segurança. Basicamente, é uma atualização de segurança.

## Melhoria na Precisão do RAG

A seguir, há uma melhoria na precisão do RAG (Retrieval-Augmented Generation). Isto é conseguido através de um pré-processamento inteligente do histórico de conversas para determinar as melhores consultas antes da recuperação. Esta funcionalidade parece não estar relacionada com a base de conhecimento, mas vou precisar de investigar mais, mergulhando no código.

## Opção de Texto Grande como Ficheiro

Outra funcionalidade útil é a opção de converter texto grande colado num upload de ficheiro. Isto mantém a interface de chat mais limpa, o que é particularmente útil ao carregar imagens grandes ou ficheiros de texto que podem desorganizar a janela de chat.

## Alternar Citações para Modelos

A capacidade de desativar citações foi introduzida nos editores de modelos. Por exemplo, nos modelos do Recruiter Bot, posso escolher ocultar as citações do modelo. Esta flexibilidade é ótima porque às vezes precisamos de citações e outras vezes não, dependendo do caso de uso.

## Pesquisa nas Definições do Utilizador

Há também uma nova funcionalidade para pesquisar rapidamente campos de definições. No entanto, não tenho a certeza absoluta sobre a sua eficiência. Atualmente, para aceder às definições, ainda preciso de navegar por várias camadas, o que poderia ser mais simplificado.

## Suporte Experimental de Speech T5 para Texto-para-Voz

Foi adicionado suporte local para Speech T5 para melhorar as capacidades de texto-para-voz. Para explorar isto, vou às definições de áudio. A nova adição inclui Transformers e Whisper. Para mais detalhes sobre o Speech T5, há um link fornecido, e também pode ver os embeddings de falantes CMU Arctic disponíveis, oferecendo opções como masculino dos EUA, feminino dos EUA e masculino indiano.

## Reinicialização Unificada de Modelos

Foi introduzida uma opção de um clique para reiniciar e remover todos os modelos das definições de administrador. Esta é uma funcionalidade útil para limpar rapidamente os modelos, embora eu não quisesse usá-la indiscriminadamente.

## Assistente de Configuração Inicial

O processo de configuração agora informa explicitamente os utilizadores de que estão a criar uma conta de administrador durante o primeiro passo. Isto é uma melhoria em relação à versão anterior, que apresentava a página de login imediatamente.

## Refinamentos de Design

Foram feitos refinamentos gerais de design em toda a plataforma, proporcionando uma experiência de utilizador mais coesa e polida. Estas atualizações melhoram a usabilidade e o apelo estético da plataforma.

## Sistema de Feedback

Foi introduzido um novo sistema de feedback, permitindo que os utilizadores classifiquem as respostas numa escala de 1 a 10. Esta funcionalidade provavelmente visa melhorar a qualidade das respostas através de aprendizagem por reforço.

## Descrições de Ferramentas ao Passar o Rato

Agora pode aceder facilmente às descrições das ferramentas ao passar o rato sobre a entrada da mensagem. Isto é particularmente útil quando tem várias ferramentas ativadas, pois fornece informações rápidas sobre a funcionalidade de cada ferramenta.

## Visibilidade de Ficheiros de Conhecimento

Outra atualização envolve a visibilidade dos ficheiros de conhecimento. Esta alteração garante que os utilizadores possam aceder e gerir facilmente os seus ficheiros de conhecimento dentro da plataforma.

## Conclusão

Estas atualizações representam melhorias significativas na funcionalidade, segurança e experiência do utilizador. Desde a melhoria da precisão do RAG até às novas capacidades de texto-para-voz, estas funcionalidades foram concebidas para tornar a plataforma mais eficiente e amigável. Vou rever algumas destas funcionalidades em vídeos futuros para fornecer insights e tutoriais mais detalhados.

Para mais informações, consulte o vídeo ligado na descrição, onde aprofundo estas atualizações e demonstro as suas funcionalidades.

# Vídeo 34: Adicionar a API da Claude ao Open Web UI

Olá a todos, aqui é o Amish da Digital Brain Base. No vídeo de hoje, vou mostrar como adicionar a API da Claude ao Open Web UI. Existem algumas razões pelas quais queremos fazer isto:

1. **Centralização**: Temos todos os nossos prompts, funções e pipelines no Open Web UI, o que facilita bastante as coisas.
2. **Procura e Limitações**: A Claude tem tido muita procura recentemente, especialmente de manhã, e continuo a enfrentar problemas de limitação de taxa. Ao usar a API, esses problemas desaparecem.

Podemos simplesmente chamar a API da Claude no Open Web UI e usá-la como faríamos normalmente. Vou mostrar como isto funciona.

## Configurar a API da Claude no Open Web UI

1. **Selecionar o Modelo**: No menu suspenso, verá os três modelos da Claude: Opus, Haiku (o mais pequeno) e Sonet (o mais recente). Ao selecionar um deles e fazer uma pergunta, receberá uma resposta diretamente do modelo da Claude.

2. **Configurar a Função**: Para configurar isto, usei uma função disponível no Open Web UI. Basta pesquisar por "Anthropic" na página de funções e selecionar a opção correspondente. Depois, importe-a para o Open Web UI.

3. **Editar a Função**: Editei a função para incluir apenas os modelos mais recentes (Opus, Haiku e Sonet), excluindo as versões mais antigas. Depois de guardar a função, precisará de adicionar a chave da API.

4. **Obter a Chave da API**: Para obter a chave da API, crie uma conta na Claude e vá para as definições da conta. No console da API, pode gerar uma chave. **Nota**: É necessário ativar a faturação e adicionar um método de pagamento (como um cartão de crédito) para obter a chave.

5. **Adicionar a Chave no Open Web UI**: Copie a chave da API e cole-a no Open Web UI, na secção de funções, sob o painel de administração. Depois disto, verá os três modelos da Claude disponíveis.

## Conclusão

Espero que este vídeo tenha sido útil. Se gostou, deixe um like e subscreva o canal. Se tiver sugestões para futuros vídeos, deixe um comentário abaixo ou crie um post na Digital Brain Base. Obrigado por assistir e até à próxima!

---

# Vídeo 35: Aceder a Modelos Personalizados via API no Open Web UI

Olá a todos, aqui é o Amish da Digital Brain Base. Hoje, vamos explorar algo muito interessante que pode fazer com o Open Web UI: aceder a modelos personalizados usando uma API.

## Exemplo Prático: Chatbot Personalizado

Aqui, tenho vários modelos personalizados criados com base em modelos existentes. Por exemplo, o "Good Prompt Chatbot" é baseado no modelo local mais recente (53.5) e funciona como um chatbot para a Tesla. Só responde a perguntas sobre o carro e não fornece informações sobre descontos ou promoções.

Para criar uma interface simples, usei o Streamlit e a chave da API do Open Web UI. O código completo estará na descrição do vídeo.

### Testar o Chatbot

- **Pergunta sobre Descontos**: Se perguntar "Tem descontos ou promoções?", deve responder "Não".
- **Pergunta sobre Histórias**: Se pedir "Conte-me uma história em 100 palavras ou menos", não deve contar uma história, pois só deve falar sobre o carro.

Agora, se trocar para o "Bad Prompt Chatbot", que não tem prompts detalhados, deve responder de forma mais genérica. Por exemplo, se pedir uma história, deve contar uma.

## Como Configurar o Acesso via API

1. **Obter a Chave da API**: No Open Web UI, vá para Definições > Conta > Chaves da API e crie uma nova chave. Copie essa chave.

2. **Usar o Comando `curl`**: No terminal, use o comando `curl` para aceder aos modelos disponíveis. O código completo estará na descrição do vídeo.

3. **Resultado**: O comando retornará os IDs de todos os modelos disponíveis no Open Web UI, como Opus, Haiku, Sonet, e outros.

4. **Aceder a um Modelo Específico**: Para aceder a um modelo específico, crie um pedido POST com a chave da API e o ID do modelo desejado.

## Conclusão

Esta é uma maneira poderosa de permitir que outras pessoas em todo o mundo acedam aos modelos que criou e prototipou no Open Web UI. Se gostou deste vídeo, deixe um like e subscreva o canal. Para sugestões de vídeos futuros, deixe um comentário abaixo ou crie um post na Digital Brain Base. Obrigado por assistir e até à próxima!

---

**Links dos Vídeos:**
- [Vídeo 34](https://www.youtube.com/watch?v=1jahR-BA6Ts)
- [Vídeo 35](https://www.youtube.com/watch?v=0pyHYhzqdRQ)

# Local Host 3000 API Chat and Completions

Agora, vamos fornecer a nossa chave de API. Tudo o que precisa fazer é substituir esta chave pela que obteve nas suas configurações. Aqui, irá especificar o modelo com base no que estiver disponível. Se não tiver o modelo Llama 3.2, por exemplo, pode substituí-lo pelo que tiver. O restante pode permanecer igual.

Basicamente, ao fornecer estas informações, o retorno deve ser uma saída que obteria desse modelo. O que fiz foi criar uma interface Streamlit usando apenas este código. Podemos copiar este código e ir para o Open Web UI. Aqui, vamos criar um novo chat. Em vez de usar o ChatGPT, vamos continuar com ele.

Vou pedir ajuda para criar uma aplicação Streamlit UI do zero. O código foi gerado, e a única coisa que precisamos fazer é fornecer a chave de API. Foi exatamente o que fiz aqui, exceto que, ao fornecer o cURL, também incluí a chave de API, e ele escreveu o código inteiro para mim. Este é o código gerado.

Obviamente, se eu rolar um pouco mais para cima, ele vai mostrar a minha chave de API, o que não quero que aconteça. Para executar este código, basta digitar `streamlit run` seguido do nome do ficheiro, que neste caso é `app.py`. Depois de executar, posso aceder a `localhost:8501`, onde o modelo está hospedado.

Posso levar isto um passo adiante e criar um endpoint onde o modelo estará acessível para qualquer pessoa em qualquer parte do mundo. Para isso, vou primeiro ir para o Ngrok e registar-me. Depois de criar uma conta, ele pedirá um nome de conta. Vou seguir as instruções de instalação e descarregar para Windows 64-bit.

Após o download, extraio a pasta e executo o Ngrok. Ele pede para adicionar um token, então copio e colo aqui. Agora, para implementar a aplicação, copio o código fornecido e abro a janela novamente. Observe que ele está a correr na porta 8080, mas o Streamlit está na 8501. Então, se eu fizer isto, ele vai criar um redirecionamento.

Agora, qualquer pessoa pode aceder ao chatbot de qualquer parte do mundo. Posso até aceder ao chatbot pelo meu telemóvel. Esta é uma maneira de fornecer acesso a outras pessoas para os seus próprios modelos personalizados criados no Open Web UI. Elas não precisam de se registar, descarregar o Open Web UI, ou qualquer coisa do género. É uma forma de permitir que outras pessoas acedam aos seus modelos personalizados.

E isso é tudo para este vídeo. A ideia era mostrar como podemos usar as APIs do Open Web UI para criar as nossas próprias aplicações, permitindo que outras pessoas acedam aos nossos modelos. Se gostou, deixe um like. Se é novo no canal, subscreva-se. Se tiver ideias para vídeos futuros ou sugestões, deixe um comentário. Vou publicar o código para todas estas coisas na descrição, então dê uma olhada se quiser ver como configurar tudo isto. Obrigado por assistir, e vemo-nos no próximo vídeo. Tchau!

---

# Vídeo 36: Entendendo Open Web UI

Olá pessoal, Dave aqui novamente com o Digital Brain Base. Hoje, tenho o que espero ser um tratamento especial. Uma das perguntas mais comuns que recebemos ao falar sobre Open Web UI é como as ferramentas, funções, pipelines, etc., funcionam e quais são as diferenças entre elas. Então, pedi a um dos nossos desenvolvedores, Beck, para preparar uma apresentação sobre isto.

Não vou aborrecer-vos a ler o que está nos slides, mas vou rapidamente passar por eles. Vou ligar o deck de slides na descrição do vídeo e também incluirei a gravação completa da chamada onde Beck me guiou pela apresentação, para quem quiser um mergulho profundo nisto.

Como podem ver, ele fala sobre ferramentas, funções, a função de filtro, a função de ação, pipes e manifolds, e dá uma grelha para decidir qual parte do software usar para qual propósito. Tudo isto está neste deck de slides, que vou ligar na descrição.

Agora, vamos para a gravação da chamada.

Primeiro, o Open Web UI tem ferramentas, funções, pipelines e funções, que também são divididas em vários tipos. Eles têm filtros, ações e apenas pipes. Pipelines também são divididas em vários tipos: pipelines de filtro, pipelines de pipe e pipelines de manifold. Como podem ver, há muitos tipos e funcionalidades diferentes para estender a capacidade do Open Web UI.

Antes dos pipelines, eles tinham apenas ferramentas e funções. As ferramentas são simples de entender: está a estender o LLM (Large Language Model), não o Open Web UI ou qualquer outra coisa. Está a dar mais ações ao LLM, como navegar na web, chamar fornecedores de terceiros, ou buscar eventos do seu calendário. A ideia básica é que está a estender o LLM, não o Open Web UI.

O segundo tipo são as funções. Aqui, está a estender o Open Web UI em si, não os AIs ou outros fornecedores. Está a estender a funcionalidade do Open Web UI. As funções têm quatro tipos diferentes: funções de filtro, funções de ação, pipe e manifold. Estes dois últimos eram usados antes da introdução dos pipelines, mas ainda são possíveis de fazer na interface do Open Web.

A função de filtro é fácil de entender: pode manipular as suas mensagens antes que elas cheguem ao LLM e também quando o LLM gera uma saída, antes que seja apresentada ao utilizador. Pode fazer manipulações adicionais. Os casos de uso incluem controlo de taxa de limite, como permitir que certos utilizadores publiquem apenas cinco mensagens por dia para qualquer fornecedor de LLM. Outro caso de uso é a filtragem de tradução, remoção de linguagem inadequada e adição de etapas para verificação de factos, por exemplo, para verificar se a saída é válida, verdadeira ou falsa.

A função de ação é outra coisa. Uma pergunta sobre a função de filtro: se eu quisesse remover qualquer informação pessoalmente identificável de uma mensagem que está a ser enviada para um sistema corporativo, eu poderia colocar um filtro para fazer isso? Sim, pode remover ou mascarar informações como nomes, detalhes de passaporte, cartões, datas, números de telefone, ou qualquer informação pessoal.

# Compreender Funções no Open WebUI

## Funções de Ação: Expandir a Interface de Utilizador

O segundo tipo de função é a **Ação**. As ações permitem expandir a interface de utilizador ao adicionar ícones personalizados abaixo de cada mensagem no Open WebUI. Estes ícones incluem opções como **Editar**, **Copiar**, **Gosto/Não Gosto**, e **Regenerar**. Pode expandir esta funcionalidade ao adicionar as suas próprias ações personalizadas.

### Caso de Utilização para Ações

As ações são particularmente úteis se realizar tarefas específicas com frequência. Por exemplo, imagine que cria uma ferramenta para obter eventos do seu Google Calendar. Em vez de escrever ou ditar o comando manualmente todos os dias, pode encapsular esta funcionalidade num botão de ação. Desta forma, em vez de escrever "Por favor, obtenha os meus eventos do meu calendário", pode simplesmente clicar no botão para iniciar o processo.

**Benefício Principal**: Se realizar certas ações com frequência, convertê-las em ações torna-as facilmente acessíveis e poupa tempo.

### Âmbito das Ações

Uma pergunta comum é se as ações personalizadas aparecerão em todas as conversas em todos os modelos. A resposta é sim—as ações aparecerão abaixo de cada mensagem, tornando-as universalmente acessíveis no ambiente Open WebUI.

---

## Pipes e Manifolds: Personalizar Modelos

A seguir, temos **Pipes** e **Manifolds**. Estas são ferramentas dentro do ambiente Open WebUI que permitem criar modelos ou módulos personalizados.

### O que são Pipes?

Um **Pipe** é um único módulo ou modelo que pode criar. Por exemplo, pode construir um LLM (Large Language Model) especializado para tarefas específicas, como um assistente pessoal, assistente de saúde ou redator de conteúdo. Pode criar estes módulos utilizando a interface Open WebUI ou escrevendo código personalizado.

**Exemplo**: Se criar um modelo personalizado para análise de WordPress e Web Engine, este terá um prompt de sistema personalizado e uma base de conhecimento. Este modelo é projetado especificamente para essas tarefas.

### Limitações dos Pipes

Embora os Pipes sejam poderosos, estão limitados às bibliotecas e pacotes que o Open WebUI suporta. Se a sua lógica depender de uma biblioteca Python que o Open WebUI não utiliza, não poderá implementá-la dentro da interface.

---

## Manifolds: Múltiplos Pipes num Único Ficheiro

Um **Manifold** permite criar múltiplos Pipes num único ficheiro. Isto é útil quando tem vários modelos que partilham alguma lógica, mas têm diferentes prompts de sistema ou funcionalidades.

**Exemplo**: Se integrar múltiplos fornecedores de LLM (como Anthropic ou outros), pode criar um Manifold que inclua todos estes modelos num único ficheiro. Isto é semelhante a como adicionar modelos Claw ao Open WebUI resulta na disponibilidade de vários modelos.

---

## Interface Open WebUI vs. Codificação Personalizada

A interface Open WebUI é como um **construtor de websites WYSIWYG** (por exemplo, Wix ou Weebly) para criar Pipes. Fornece uma forma amigável de criar modelos personalizados sem codificação. No entanto, se precisar de funcionalidades mais avançadas, terá de recorrer à codificação personalizada.

### Quando Utilizar Pipes e Manifolds

- **Utilize Pipes** quando quiser criar um único modelo personalizado com funcionalidade específica.
- **Utilize Manifolds** quando precisar de criar múltiplos modelos que partilham alguma lógica ou fazem parte da mesma API.

---

## Resumo

- **Ações**: Expandem a interface de utilizador com botões personalizados para tarefas frequentes.
- **Pipes**: Criam modelos únicos e especializados para tarefas específicas.
- **Manifolds**: Combinam múltiplos Pipes num único ficheiro para lógica partilhada ou integrações.

Ao aproveitar estas ferramentas, pode construir fluxos de trabalho altamente personalizados e eficientes dentro do Open WebUI. Quer seja um programador ou não, estas funcionalidades oferecem flexibilidade e poder para adaptar a plataforma às suas necessidades.

# Compreender Manifolds e Pipes em Programação

## O que é um Manifold?

Um manifold é essencialmente uma coleção de pipes. Enquanto um pipe é uma entidade única, um manifold agrupa múltiplos pipes. Este conceito torna-se particularmente útil ao lidar com sistemas complexos que requerem múltiplas funcionalidades.

## Exemplo Prático: Integração com LinkedIn

Vamos considerar um exemplo prático para compreender melhor. Suponha que está a construir um sistema relacionado com o LinkedIn com várias funcionalidades:

1. **LinkedIn Poster**: Uma funcionalidade para publicar conteúdo da sua conta.
2. **LinkedIn Analyzer**: Uma funcionalidade para obter e analisar publicações do seu perfil do LinkedIn.
3. **LinkedIn Friend Request Handler**: Uma funcionalidade para gerir pedidos de amizade e respostas.

Inicialmente, todas estas funcionalidades partilham a mesma lógica, como a integração com a API do LinkedIn e a gestão da autenticação. Em vez de duplicar esta lógica em vários módulos, pode encapsulá-la num manifold. Desta forma, inicia a ligação à API do LinkedIn uma vez, e todas as funcionalidades podem usar esta ligação.

## Simplificar o Conceito

Para tornar isto mais claro, vamos decompor ainda mais. Ao integrar com uma API de terceiros como a OpenAI ou o LinkedIn, precisa de autenticar os seus pedidos usando uma chave de API. Cada utilizador tem uma chave de API única, e até dentro da mesma conta, pode gerar várias chaves para diferentes projetos.

Por exemplo, se está a construir um sistema que interage com a API do LinkedIn, precisa de autenticar os seus pedidos. Isto envolve iniciar uma ligação entre o seu sistema (seja uma classe, pipe ou manifold) e a API do LinkedIn para garantir que os seus pedidos são aceites.

Ao usar um manifold, pode centralizar esta lógica de autenticação. Em vez de escrever o mesmo código em vários locais, cria uma função dentro do manifold que trata da ligação. Isto torna o seu código mais limpo e fácil de gerir.

## Porquê Usar um Manifold?

Usar um manifold simplifica a sua programação ao permitir que interaja com um ficheiro para realizar múltiplas tarefas. Em vez de escrever código repetitivo para cada pipe, pode gerir tudo através do manifold. Isto não só poupa tempo como também reduz o potencial de erros.

## Flexibilidade e Desenvolvimento Inicial

É importante notar que as fronteiras entre pipes, funções, ações e manifolds não são estritamente definidas. Muitas funcionalidades disponíveis em manifolds também podem ser implementadas em pipes, embora com mais esforço. Esta flexibilidade faz parte da fase inicial de desenvolvimento do software, onde o objetivo é fornecer múltiplas opções e ver como os utilizadores as utilizam.

## Executar no Ambiente Open WebUI

Todas estas funções, pipes, manifolds e filtros são executados dentro do ambiente Open WebUI. No entanto, com a introdução de pipelines, estas funcionalidades tornaram-se mais avançadas. Os pipelines são executados num contentor separado, o que significa que precisa de implementar outro contentor Docker para os integrar.

Esta separação permite que descarregue tarefas computacionais pesadas para uma instância diferente. Por exemplo, se estiver a executar um modelo de linguagem grande ou a realizar lógica complexa, pode criar um pipeline para lidar com este processamento. Isto não só melhora o desempenho como também permite aceder ao pipeline através de outro software, desde que siga o protocolo da API.

## Expandir para Além do Open WebUI

Uma das principais vantagens de usar pipelines é que o liberta das restrições do ambiente Open WebUI. Enquanto o Open WebUI usa pacotes Python específicos como o LangChain, os pipelines permitem que use uma gama mais ampla de bibliotecas e frameworks. Esta flexibilidade permite implementar funcionalidades que podem não ser suportadas dentro do ambiente Open WebUI.

## Exemplo: Pipeline Chat with YouTube

Vamos ver um exemplo prático de um pipeline. Num projeto recente, construímos um pipeline "Chat with YouTube". Aqui está um excerto do código:

```python
import ...
from typing import ...
from langchain.chains import ...
from langchain.agents import ...
from langchain.prompts import ...
from langchain.tools import ...
from youtube_search import YouTubeSearch
```

Neste exemplo, importamos várias bibliotecas e ferramentas necessárias para construir o pipeline. Ao usar um pipeline, podemos aproveitar funcionalidades que podem não estar disponíveis dentro do ambiente Open WebUI, como a biblioteca YouTube Search.

## Conclusão

Manifolds e pipelines oferecem formas poderosas de gerir e estender a funcionalidade dos seus sistemas. Ao centralizar a lógica e descarregar tarefas pesadas, pode criar aplicações mais eficientes e flexíveis. À medida que o software continua a evoluir, estes conceitos provavelmente tornar-se-ão mais definidos, fornecendo capacidades ainda maiores para os desenvolvedores.

# Implementação da Funcionalidade de Pesquisa do YouTube

Vou implementar esta funcionalidade de pesquisa do YouTube do zero. Porque é que faria isso quando já existe um pacote disponível mantido por muitos contribuidores? Podemos simplesmente importá-lo e poupar tempo de desenvolvimento. É isso que estou a fazer aqui. Este pacote de pesquisa do YouTube não está disponível na interface do Open WebUI porque o Open WebUI não utiliza este pacote. Para mim, não seria possível construir isto no Open WebUI, razão pela qual os pipelines são úteis.

Os pipelines abrem um mundo mais vasto de possibilidades com a comunidade de desenvolvedores e open-source no Open WebUI. É benéfico para o Open WebUI porque, caso contrário, haveria inúmeros pedidos para adicionar vários pacotes Python às suas dependências. Isto seria impraticável, uma vez que cada desenvolvedor utiliza muitos pacotes diferentes. Os pipelines são uma excelente solução para isto.

## Segundo Caso de Utilização: Processamento Computacional Intenso

Este caso de utilização não é muito intensivo em termos computacionais, mas considere um cenário em que tem uma base de dados com mais de mil linhas de dados. Pode ser necessário executar uma consulta diária que percorra linha por linha, realize alguma pesquisa e atualize a base de dados. Este fluxo de trabalho personalizado pode ser muito pesado em termos computacionais porque está a ler milhares de linhas e a realizar ações adicionais, como chamar APIs de terceiros ou fazer pesquisas na web. Escrever dados de volta para a base de dados consumirá muitos recursos.

Se executar isto diariamente ou várias vezes ao dia, a sua instância do Open WebUI utilizará recursos significativos. Se vários utilizadores estiverem a utilizar a mesma instância do Open WebUI simultaneamente, isso pode abrandar o sistema para todos. Para mitigar isto, pode descarregar o fluxo de trabalho computacional para um pipeline. Os pipelines são executados nas suas próprias instâncias, não na mesma que o Open WebUI, que pode ser alojada noutro local com recursos diferentes.

## Tabela de Decisão para Pipelines

Aqui está uma tabela de decisão para o ajudar a decidir quando utilizar pipelines:

- **Requisito**: Estender a sua UI
- **Solução**: Utilize ações, novos fornecedores ou APIs/funções externas

Esta abordagem é altamente eficaz e versátil.

---

# Vídeo 37: Acesso e Segurança do Open WebUI

Olá pessoal, Dave aqui novamente com o DigitalBrainbase.com. No vídeo de hoje, vou discutir as diferentes opções para aceder e proteger o meu Open WebUI. Vamos começar com a opção mais segura — operar completamente offline — e passar para o extremo oposto, que envolve conectar o Open WebUI à internet utilizando modelos de IA de terceiros via APIs e aceder a partir de qualquer dispositivo com uma ligação à internet.

## Opção 1: Fort Knox (Completamente Offline)

A primeira opção é operar o Open WebUI completamente offline no meu computador. A vantagem é que, desde que ninguém tenha acesso a este computador, é 100% privado e seguro. Ainda posso utilizar modelos de IA descarregados localmente neste computador. Por exemplo, posso perguntar: "Qual é a capital da Carolina do Norte?" e obter uma resposta porque estou a utilizar um modelo de IA descarregado localmente.

Isto é ideal para cenários em que a privacidade e a segurança são primordiais, como o carregamento de informações de clientes ou pacientes. Posso executar modelos de IA localmente nestes dados enquanto garanto privacidade total. No entanto, há desvantagens:

1. **Tamanho Limitado do Modelo**: A maioria dos computadores de consumo só consegue executar modelos de IA menores, resultando em desempenho mais lento e respostas de qualidade inferior em comparação com os modelos state-of-the-art disponíveis online.
2. **Limitação de Dados**: Só posso analisar dados armazenados neste computador. Se quiser resumir um podcast ou vídeo do YouTube, tenho de transferir os dados de outro computador.
3. **Limitação de Acesso**: Só posso utilizar o Open WebUI quando estiver fisicamente sentado neste computador.

## Opção 2: Ligado à Internet (Modelos de IA Locais)

A segunda opção é conectar o Open WebUI à internet, mas apenas utilizando modelos de IA locais. A vantagem é que nenhum dado é enviado para modelos de IA de terceiros, mantendo tudo seguro. No entanto, agora posso utilizar recursos da internet. Por exemplo, posso resumir um guia de introdução do Open WebUI ao obter a informação a partir de um link.

Além disso, posso aceder ao Open WebUI a partir de qualquer dispositivo ligado à mesma rede local (LAN), desde que tenha o nome de utilizador e a palavra-passe. Por exemplo, posso aceder a partir do meu telemóvel ao introduzir o endereço IP seguido de `:3000`.

As desvantagens desta opção são:

1. **Modelos de IA Limitados**: Ainda estou restrito a modelos de IA mais lentos e menores que são executados localmente.
2. **Riscos de Segurança**: Tenho de garantir a segurança da rede para evitar acesso não autorizado ao Open WebUI. Ligar o computador à internet também introduz potenciais riscos de segurança.

## Opção 3: Ligado à Internet (Modelos de IA de Terceiros)

A terceira opção é utilizar o Open WebUI enquanto ligado à internet e aproveitar ligações API a modelos de IA de terceiros. A vantagem é o acesso a modelos de IA state-of-the-art. Por exemplo, posso utilizar o modelo da OpenAI (o mesmo utilizado no ChatGPT) para perguntar: "Ensina-me a negociar opções," e obter respostas rápidas e de alta qualidade.

Esta opção oferece o melhor desempenho e capacidades, mas requer uma consideração cuidadosa das práticas de segurança para proteger os dados.

---

**Link do Vídeo**: [https://www.youtube.com/watch?v=W9czUS3trMU](https://www.youtube.com/watch?v=W9czUS3trMU) (Idioma: Inglês)

# Comparando Modelos Locais e de Terceiros no Open Web UI

O Open Web UI oferece uma grande vantagem: pode utilizar os modelos de IA mais poderosos disponíveis, considerados *state-of-the-art*. No entanto, há uma desvantagem importante. Ao usar esses modelos, está a enviar informações através de APIs para o fornecedor do modelo de IA de terceiros. Isto significa que precisa confiar que eles não farão nada indesejado com os seus dados, já que essas informações saem do seu computador e são enviadas para o fornecedor do modelo. O modelo processa o pedido (inferência) e envia a resposta de volta para o Open Web UI.

## Flexibilidade entre Modelos Locais e de Terceiros

Uma das funcionalidades mais interessantes do Open Web UI é a possibilidade de escolher entre modelos de terceiros e modelos locais, dependendo da sensibilidade dos dados. Quando não me importo que os dados sejam enviados para um fornecedor externo, posso usar os modelos *state-of-the-art*. Por outro lado, quando a privacidade dos dados é crucial, posso optar por um modelo local.

Por exemplo, posso alternar para o **Llama 3.2**, um modelo que roda localmente no meu computador. Se eu pedir para ele explicar "opções de *trading*" ou carregar informações de clientes, tenho a certeza de que os dados não sairão do meu computador. A inferência é feita exclusivamente no modelo de IA armazenado localmente, sem enviar nada através de APIs.

## Aceder ao Open Web UI a partir de Qualquer Dispositivo

A quarta e última opção é aceder ao computador que está a rodar o Open Web UI a partir de qualquer dispositivo ligado à internet. Para isso, podemos usar ferramentas como **Enro** ou **Cloudflare Tunnel**, que criam uma ligação segura. A vantagem aqui é que pode usar o Open Web UI com modelos locais ou modelos ligados por API, diretamente do seu computador, e aceder-lhe de qualquer parte do mundo, desde que o computador esteja ligado.

Se quiser saber como configurar isto, deixe um comentário na secção abaixo. Se gostou do vídeo e achou útil, não se esqueça de dar *like* e subscrever o canal. Até à próxima!