Home / Aplicativo móvel / Usando modelos do Apple Foundation para resumir texto

Usando modelos do Apple Foundation para resumir texto

Usando modelos do Apple Foundation para resumir texto

Os Apple Foundation Models fornecem um modelo de linguagem grande (LLM) que a Apple otimizou para execução local em dispositivos de usuário final, como laptops, desktops ou dispositivos móveis. Os LLMs tradicionais operam em data centers equipados com GPUs de alta potência, que exigem memória e potência substanciais. Trazer essa funcionalidade para um dispositivo do usuário final requer mudanças significativas no modelo. No caso da Apple, as duas mudanças mais importantes para produzir Modelos Fundamentais são a redução do número de parâmetros e a quantização dos valores do modelo.

Estes modelos reduzidos ainda contêm todos os riscos inerentes aos LLMs, tais como alucinações, enquanto estas mudanças para caber num dispositivo do utilizador final tornam algumas utilizações impossíveis ou menos eficazes. Você ainda pode considerá-lo valioso para algumas tarefas, como resumir texto, compreender texto, modificar texto e tarefas simples de geração, como escrita e geração de dados. Neste tutorial, você modificará um aplicativo para usar Apple Foundation Models para resumir texto.

Requisitos do modelo Apple Foundation

Para usar o modelo de linguagem no dispositivo, o usuário precisa ter hardware que suporte Inteligência da Apple. O usuário também deve ativar o Apple Intelligence em seu dispositivo, e o dispositivo deve estar executando a versão 26 ou posterior do sistema operacional. Ao desenvolver, seu computador deve executar o macOS 26.0 ou posterior, ou você deve executar seus aplicativos em um dispositivo que ofereça suporte nativo ao Apple Intelligence e execute iOS 26 ou iPadOS 26 ou posterior. Mesmo que o Simulador esteja executando uma versão apropriada do sistema operacional, ele só funcionará se o macOS subjacente suportar Apple Foundation Models.

Ao acompanhar este tutorial, observe também que as máquinas virtuais macOS 26 geralmente não oferecem suporte aos modelos Apple Foundation. Você precisará de um Mac físico com macOS 26 ou posterior ou de um dispositivo com suporte para Apple Foundation Models para executar o aplicativo.

Verificando a disponibilidade do modelo

Baixe os materiais deste tutorial e abra o projeto inicial. Você verá um projeto que implementa uma extensão de compartilhamento que atualmente ecoa qualquer texto enviado para a extensão em uma nova janela. Este aplicativo possui dois esquemas: Resumo Localque contém o aplicativo, e ResumirExtensãoque inclui a extensão de compartilhamento. Selecione o ResumirExtensão esquema. Crie e execute o aplicativo. Você será solicitado a selecionar um aplicativo para executar com a extensão. Escolha o aplicativo Safari no Simulador, pois ele fornece uma maneira fácil de enviar dados para a extensão para teste.

Abra qualquer página da web que contenha um longo campo de texto. Toque e segure algum texto e selecione o texto.

Selecionando Texto e Compartilhamento.

Agora mantenha pressionado o texto selecionado e selecione Compartilhar. Se você não vê um Compartilhar opção no menu, clique na divisa direita. Escolha o Resumo Local opção com o logotipo Kodeco. Isso carregará um Resumo do texto janela de sobreposição que mostrará o texto selecionado.

O texto selecionado ecoou na página.

Você pode tocar no Copiar Resumo botão para copiar o texto para a área de transferência e deslize para baixo na janela para voltar ao aplicativo original. Neste tutorial, você atualizará este aplicativo para usar Apple Foundation Models para exibir um resumo do texto selecionado.

Antes de usar o Apple Foundation Models, você deve garantir que o dispositivo do usuário seja compatível e que o usuário o tenha ativado. Para fazer isso, crie uma nova visualização SwiftUI chamada ModelCheckView.swift sob o ResumirExtensão pasta. Para fazer isso, vá para Arquivo ▸ Arquivo do modelo… e selecione Visualização SwiftUI. Dê a visão ModelCheckView.swift nome e certifique-se de que ResumirExtensão alvo é o único selecionado.

Agora abra o ModelCheckView.swift arquivo. Adicione a importação necessária para usar os modelos básicos na parte superior:


import FoundationModels

Em seguida, adicione as seguintes propriedades ao topo da estrutura:


let sharedText: String
let onDone: () -> Void
let model = SystemLanguageModel.default

Você usará o sharedText propriedade para passar o texto a ser resumido na visualização que exibe o resumo. Você pode passar um método para onDone que será chamado quando o usuário fechar a visualização resumida. Você coloca uma instância de SystemLanguageModel.default em model. Esta propriedade fornece acesso aos modelos básicos em seu aplicativo. Além disso, exclua o #Preview macro e seu fechamento.

Agora substitua a visualização por:


// 1
switch model.availability {
// 2
case .available:
  SummaryView(sharedText: sharedText, onDone: onDone)
// 3
case .unavailable(.deviceNotEligible):
  Text("Apple Intelligence is not available on this device.")
case .unavailable(.appleIntelligenceNotEnabled):
  Text("Apple Intelligence is available, but not enabled on this device.")
case .unavailable(.modelNotReady):
  Text("The model isn't ready. Try again later.")
// 4
case .unavailable:
  Text("An unknown error prevents Apple Intelligence from working.")
}

Este código trata as condições de erro atuais e fornece um padrão para quaisquer estados de erro futuros, exibindo o texto relacionado para cada um.

1. O model.availability propriedade contém um enum com o status de disponibilidade do modelo padrão. Você usa um switch instrução para exibir informações diferentes para cada status.
2. Para o caso em que os Modelos Fundamentais estão disponíveis e funcionando, você exibirá os modelos existentes SummaryViewpassando no sharedText e onDone propriedades passadas para esta visualização.
3. Você exibe uma mensagem de texto para cada um dos erros atuais para ajudar o usuário a identificar o que precisa ser feito para permitir que o aplicativo funcione. Observe que se você conseguir modelNotReady no Simulador, geralmente é porque o dispositivo que executa o Simulador não suporta Modelos Fundamentais. Esta mensagem também aparece em muitos casos se você tentar executar o aplicativo em um Simulador em execução em uma máquina virtual em um dispositivo que não oferece suporte a Modelos Fundamentais.
4. Este caso trata de quaisquer erros não tratados especificamente anteriormente. Isso preparará o aplicativo para o futuro para exibir uma mensagem de erro ao usuário, mesmo que não possa fornecer detalhes.

Agora você precisa atualizar a extensão para exibir esta visualização em vez da atual SummaryView visualizar. Abrir ShareViewController.swiftque é um wrapper que conecta a extensão UIKit tradicional ao SwiftUI. Encontre o showSwiftUIView(with:) método. Altere a primeira linha para:


let wvc = UIHostingController(
  rootView: ModelCheckView(
    sharedText: text,
    onDone: closeExtension
  )
)

Isso chamará seu novo intermediário ModelCheckView em vez do SummaryView diretamente. Execute o aplicativo, selecione algum texto e compartilhe-o com o ResumirExtensão. Você deverá ver a mesma coisa de antes se o seu dispositivo ou simulador suportar modelos básicos. Caso contrário, você verá o erro apropriado.

Visualização do modelo não pronto

Para teste, você também pode testar diferentes opções de disponibilidade para modelos básicos no XCode. Selecione um Esquema (ou LocalSummarizer ou ResumirExtensão), clique na seta suspensa e selecione Editar esquema….

Editar opções do menu do esquema

Sob Correrselecione o Opções guia. Você verá um menu suspenso com várias opções para Disponibilidade de modelos de fundação simulados. Esta opção tem como padrão Desligadoque permite que o status real do dispositivo seja transmitido ao aplicativo. Você pode mudar para outro status disponível e o aplicativo refletirá essa mudança. Se você selecionar Inteligência Apple não habilitadao aplicativo exibirá essa mensagem.

Esquema definido como 'Apple Intelligence não ativado

Não se esqueça de definir isso de volta para Desligado antes de continuar a evitar frustrações.

A seguir, você configurará o próprio aplicativo para fornecer uma visualização de status semelhante. Abrir ContentView.swift sob o Resumo Local alvo. Você usará uma versão mais simples da última visualização. Adicione a seguinte importação ao topo:


import FoundationModels

Isso permite fazer referência a Modelos Fundamentais na visualização. Agora mude o corpo para:


switch SystemLanguageModel.default.availability {
case .available:
  Text("This device support Apple Foundation Models.")
case .unavailable(.deviceNotEligible):
  Text("Apple Intelligence is not available on this device.")
case .unavailable(.appleIntelligenceNotEnabled):
  Text("Apple Intelligence is available, but not enabled on this device.")
case .unavailable(.modelNotReady):
  Text("The model isn't ready. Try again later.")
case .unavailable:
  Text("An unknown error prevents Apple Intelligence from working.")
}

Como antes, isso exibe uma descrição de todos os erros junto com uma mensagem quando os Modelos Fundamentais estão disponíveis.

Agora que você garantiu que os Modelos Básicos estão disponíveis no dispositivo do usuário, você os usará para resumir o texto na próxima seção.

Deixe um Comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *