macOS · SwiftUI

SuggstApplication macOS

Suggst combine le contexte de référence, celui de l’échange et la parole transcrite pour préparer une réponse après une action explicite.

Vue d’ensemble

La réunion continue, avec le bon contexte à portée de main.

Le problèmeUne question en réunion peut demander de croiser des informations de référence avec les éléments propres à l’échange, tout en suivant la conversation.

La solutionSuggst associe deux contextes enregistrés à une capture audio autorisée. Sur déclenchement manuel, il transcrit, extrait la demande et prépare une réponse contextualisée.

Workflow utilisateur

Deux contextes complémentaires

Renseigner un contexte de référence réutilisable et les informations propres à l’échange. Le contexte durable et celui de la discussion sont enregistrés séparément.

1 / 4: Préparer les contextes. Étape précédente / Étape suivante

Architecture technique

Une chaîne pilotée par SwiftUI traite l’audio en local, extrait la demande, puis appelle OpenAI avec le contexte sélectionné.

Application macOS

SwiftUI

Interface et action explicite de l’utilisateur
Démarre et clôture

Capture audio

AVFoundation, ScreenCaptureKit

Microphone, audio système et extraits identifiés
Transmet un extrait

Traitement local

Swift, WhisperKit

Transcription finale et extraction de la demande
Demande contextualisée

Génération

OpenAI Responses API

Réponse fondée sur la demande et les contextes
  • Application macOS: SwiftUI. Interface et action explicite de l’utilisateur Démarre et clôture.
  • Capture audio: AVFoundation, ScreenCaptureKit. Microphone, audio système et extraits identifiés Transmet un extrait.
  • Traitement local: Swift, WhisperKit. Transcription finale et extraction de la demande Demande contextualisée.
  • Génération: OpenAI Responses API. Réponse fondée sur la demande et les contextes

Défis techniques

01

Préserver l’identité de chaque question

Contrainte

Les traitements asynchrones peuvent aboutir dans le désordre ou livrer un événement en double.

La solution

Identifiants par question, résultats scellés et ingestion idempotente avec rejet des événements incohérents.

02

Composer avec les sources audio macOS

Contrainte

Le microphone et l’audio système dépendent de fournisseurs et d’autorisations distincts.

La solution

Deux fournisseurs natifs coordonnés, avec un état explicite quand la capture système est indisponible.

03

Maîtriser les données de contexte

Contrainte

Les contextes et contenus d’échanges peuvent comporter des informations sensibles.

La solution

Stockage local des documents, secret API dans le Trousseau et envoi ciblé des éléments utiles à OpenAI.

04

Limiter la latence en conversation

Contrainte

La réponse doit arriver assez vite pour rester utile dans l’échange, malgré le cumul des traitements audio, de transcription et de génération.

La solution

Transcription locale, génération en streaming avec aperçu progressif et télémétrie par étape pour identifier les temps d’attente.

Stack technique principale

SwiftXcodeOpenAI APIJSONBashSwiftUIWhisperKitScreenCaptureKit

Résultats et enseignements

Application native intégrée

Écrans de contextes, écoute, préparation et restitution réunis dans une interface SwiftUI.

Chaîne de réponse contextualisée

Capture, transcription WhisperKit, extraction locale et génération OpenAI reliées au déclenchement manuel.

Outils de diagnostic et de validation

Cockpit de développement, traces structurées, corpus de tests et scripts de build intégrés au dépôt.