Pour les développeurs et les curieux du côté technique. Tout fonctionne sur un Mac Mini. Rien ne quitte votre réseau.
Ostler utilise trois bases de données spécialisées, chacune optimisée pour un type de requête différent :
| Base de données | Technologie | Objectif |
|---|---|---|
| Base de données vectorielle | Qdrant | Semantic search. “Find people similar to this description.” Stores your embeddings (nomic-embed-text), scaling to hundreds of thousands of vectors. |
| Graphe de connaissances | Oxigraph | Structured relationships. SPARQL queries over your knowledge-graph triples. “Who knows whom? What happened when?” |
| Cache + bus de messages | Valkey | Recherches rapides, routage de messages en temps réel entre services, état de session. (Fork de Redis 7.2 par la Linux Foundation.) |
Toutes trois fonctionnent en tant que services launchd. Sur un Mac Mini M4, les bases de données utilisent moins de 2 Go de RAM, laissant le reste pour Ollama et les modèles d'IA (qui nécessitent 6–12 Go selon la taille du modèle).
Toute l'inférence d'IA s'exécute localement via Ollama. Aucun appel d'API cloud. Aucune facturation à l'usage. Aucune exfiltration de données.
| Modèle | Usage | Performance |
|---|---|---|
| Qwen 3.5 9B | Assistant IA, traitement des conversations, extraction de faits | ~30 tok/s sur M4 |
| nomic-embed-text | Embeddings vectoriels pour la recherche sémantique | ~200 embeddings/s |
Le système est adaptatif au matériel. Les profils de réglages configurent la sélection des modèles et les tailles de lots en fonction du matériel disponible. Un Mac Mini M1 exécute des modèles plus petits ; un Mac Studio M2 Ultra en exécute de plus grands.
Dès l'installation, Ostler lit les données directement depuis les applications intégrées de votre Mac’s. Aucun export nécessaire. Aucune attente.
| Source | Ce que nous lisons | Autorisation |
|---|---|---|
| Safari | Historique de navigation, signets, liste de lecture | Full Disk Access |
| iMessage | Conversations, participants, horodatages | Full Disk Access |
| Apple Notes | Titres de notes, contenu textuel, dossiers | Full Disk Access |
| Calendar | Événements, participants, lieux | Full Disk Access |
| Photos | Étiquettes de visages, positions GPS, dates (pas le contenu des images) | Full Disk Access |
| Reminders | Tâches, dates d'échéance, listes | Full Disk Access |
| Apple Mail | Objets, expéditeurs, dates (pas le corps de l'e-mail) | Full Disk Access |
Toutes les bases de données sont ouvertes en lecture seule pour éviter toute corruption. Chaque extracteur gère les différences de schéma entre les versions de macOS (Ventura, Sonoma, Sequoia). Full Disk Access est facultatif – vous pouvez l'ignorer et utiliser quand même les imports RGPD.
Pour des données historiques plus approfondies, 20 parseurs lisent les exports de données RGPD :
| Plateforme | Données importées | Format |
|---|---|---|
| Relations, carrière, recommandations, messages (métadonnées) | CSV | |
| Amis, événements, journal | JSON | |
| Abonnés, abonnements, amis proches | JSON | |
| Recoupements téléphoniques | JSON | |
| Twitter / X | Contacts synchronisés (recoupement téléphonique) | JS |
| Google Calendar | Événements, participants, lieux | ICS |
| iCloud | Contacts (via CardDAV) | vCard |
| Extraction de signatures, analyse d'en-têtes | MBOX | |
| Navigateur | URL d'historique, titres de pages | Safari / Chrome |
La même personne apparaît différemment selon les plateformes. “John Smith” sur LinkedIn, “johnnyboy” sur Instagram, “+44 7XXX XXXXXX” sur WhatsApp. Le résolveur d'identité les rapproche en utilisant :
Le résolveur dispose de 38 tests automatisés couvrant les stratégies de correspondance exacte, approximative, par téléphone, par e-mail et par sous-ensemble de noms.
Lorsqu'une conversation est enregistrée (via l'application Ostler RemoteCapture sur votre Mac ou par import manuel), elle traverse un pipeline en plusieurs étapes :
Chaque étape est idempotente (réexécutable sans doublons), comporte un backoff exponentiel en cas d'échec et enregistre la version du prompt qui l'a générée.
Couche de capture macOS databases (instant) · GDPR imports · macOS app · iOS app · Browser extension Couche de traitement Conversation pipeline · Identity resolver · Fact extraction · Relationship signals Couche d'intelligence Ollama (Qwen 3.5 9B) · nomic-embed-text · SPARQL queries · Vector search Couche de stockage Qdrant (vectors) · Oxigraph (RDF graph) · Valkey (cache + bus) · SQLite (coaching) Couche d'interface Assistant (iMessage · Email) · Personal Wiki · iOS app
Dépendances totales : Python 3.11+, Ollama. Aucun compte cloud requis. Aucune clé d'API. Aucun abonnement.
Local · Vérifiable · À vous