-
Codificação guiada: integre a IA no dispositivo ao seu app usando o framework Foundation Models
Desenvolva recursos de IA generativa para seus apps em SwiftUI usando o framework Foundation Models. Comece aplicando os conceitos básicos do framework para criar um recurso incrível. Acompanhe exemplos passo a passo de como complementar os modelos com ferramentas criadas por você, transmitir os resultados e fazer outras otimizações para obter um ótimo desempenho.
Capítulos
- 0:00 - Introdução
- 2:30 - Engenharia de prompt
- 11:19 - Chamada de ferramentas
- 20:32 - Streaming da saída
- 24:32 - Análise de desempenho
Recursos
- Generating content and performing tasks with Foundation Models
- Adding intelligent app features with generative models
- Human Interface Guidelines: Generative AI
Vídeos relacionados
WWDC25
-
Buscar neste vídeo...
-
-
- 0:00 - Introdução
Saiba como usar o framework FoundationModels da Apple para criar um app que utiliza a inteligência no dispositivo para planejar viagens. O framework ajuda você a criar recursos poderosos, privados e eficientes no macOS, iPadOS, iOS e visionOS. O app gera itinerários para pontos de referência selecionados, escolhendo pontos de interesse de forma autônoma usando chamadas de ferramentas. O processo envolve engenharia de prompt, utilizando playground do Xcode, saída em streaming e análise de desempenho do app para otimização.
- 2:30 - Engenharia de prompt
O recurso Playground atualizado do Xcode simplifica o processo de iteração de código para desenvolvedores do Swift. Ele fornece feedback ao vivo, semelhante às pré-visualizações do SwiftUI, para você escrever e testar o código em tempo real. Usando o framework FoundationModels, você pode interagir com um modelo por meio de prompts. O Playground executa o código automaticamente à medida que os prompts são digitados, permitindo feedback rápido na saída. Para aprimorar a estrutura de saída, o recurso de geração guiada permite anotar estruturas de dados como Generable, fazendo com que o modelo crie e preencha automaticamente essas estruturas. Refine ainda mais a saída do modelo usando a macro Guide, que fornece restrições e descrições para propriedades. Isso permite ter mais controle sobre os dados gerados, garantindo o atendimento de requisitos específicos. O framework também oferece um protocolo de ferramentas flexível que permite ao modelo incluir informações externas nas respostas. Ao usar esses recursos, você pode criar um app que gera itinerários estruturados com base nas entradas e preferências do usuário. A interface do app é atualizada à medida que o itinerário é gerado, proporcionando uma experiência perfeita.
- 11:19 - Chamada de ferramentas
O exemplo cria um app de planejamento especializado que utiliza um modelo de base no dispositivo para aprimorar sua funcionalidade. Para isso, o exemplo define ferramentas personalizadas que estão se adaptam a um protocolo específico. Essas ferramentas têm nomes, descrições e funções de chamada exclusivos. Uma ferramenta busca pontos de interesse do MapKit com base em um ponto de referência selecionado pela pessoa. A ferramenta pode receber informações e gerar diferentes categorias de pontos de interesse, como restaurantes, museus ou marinas, usando o conhecimento de mundo do modelo para determinar as categorias mais promissoras para um marco específico. Você implementa o método de chamada para essa ferramenta, que interage com MapKit, usando uma consulta de linguagem natural gerada pelo modelo e pela categoria selecionada. Em seguida, a ferramenta filtra e retorna os pontos de interesse relevantes dentro de um intervalo especificado. Para integrar a ferramenta ao app de planejamento, crie uma instância da ferramenta com o ponto de referência selecionado pelo usuário e insira-o no inicializador da sessão do modelo. Depois, o modelo decide de forma autônoma quando invocar a ferramenta e com que frequência. O exemplo também demonstra como lidar com cenários em que o modelo base no dispositivo não está disponível, como quando o dispositivo não está qualificado para a Apple Intelligence, o usuário não ativou ou o modelo não está pronto. O exemplo implementa atualizações de interface e mensagens de erro para orientar o usuário nesses casos. Os exemplos também exploram a possibilidade de transmitir o itinerário à medida que o modelo o produz, permitindo que a pessoa comece a ler recomendações imediatamente, em vez de esperar que todo o itinerário seja gerado.
- 20:32 - Streaming da saída
O código usa uma estrutura de dados PartiallyGenerated, uma versão opcional da estrutura Generable, para processar um itinerário atualizado incrementalmente. Com a chegada de novos dados, a interface é atualizada a cada versão parcial, mostrando as propriedades disponíveis primeiro (por exemplo, título, depois descrição e, em seguida, planos do dia). O forEach da interface do Swift exibe os planos diários parcialmente gerados. Animações e transições de conteúdo são adicionadas para atualizações fluidas. É possível otimizar o desempenho usando o instrumento do Foundation Models para reduzir o atraso inicial.
- 24:32 - Análise de desempenho
Para melhorar a eficiência do app, o exemplo conduz uma análise de desempenho em um iPhone físico usando o app Instruments em um Mac. O instrumento do Foundation Models é adicionado, e o tempo necessário para carregar modelos e gerar um itinerário é analisado. As duas otimizações principais são: Preaquecimento da sessão. Carregar o modelo de linguagem no dispositivo antes que o usuário faça uma solicitação, como quando ele toca em um ponto de referência, reduzindo a latência inicial. Definir IncludeSchemaInPrompt como "false": Essa otimização evita a inserção de esquemas de geração em prompts, diminuindo a contagem de token e a latência, especialmente para solicitações subsequentes ou quando as instruções incluem exemplos completos do esquema. Após implementar essas otimizações, o app de exemplo mostra uma redução substancial na contagem de tokens de entrada e no tempo total de resposta, melhorando significativamente sua eficiência.