Tous les paquets open source
IASwift

SwiftIntelligence

Recherche, réponses et masquage sur l'appareil pour le texte de votre app, construits sur les frameworks d'Apple.

8ÉtoilesDernière version: v2.0.0Mis à jour: 15 octobre 2026
Plateformes:iOS 18macOS 15

Licence: MIT

Un package Swift qui rend le texte d'une app iOS ou macOS consultable et interrogeable sur l'appareil. Les documents entrent dans un acteur KnowledgeBase qui les découpe, les masque éventuellement, les transforme en embeddings et les indexe ; les recherches combinent les classements BM25 et vectoriel par fusion de rang réciproque ; sur iOS 26 et macOS 26, le modèle sur l'appareil d'Apple répond à partir des meilleurs passages avec des citations. Construit sur NaturalLanguage, Accelerate et Foundation Models, sans dépendance.

Fonctionnalités

  • Recherche hybride : chaque passage est indexé par ses mots (BM25) et comme vecteur, et les deux classements sont fusionnés par fusion de rang réciproque
  • Réponses avec sources : answer(_:) demande au modèle sur l'appareil d'Apple de répondre uniquement à partir des meilleurs passages et de les citer ; groundedPrompt(for:) construit le même prompt pour tout autre modèle
  • Masquage réversible de huit types de données personnelles ; les numéros de carte et les IBAN doivent passer leur chiffre de contrôle, et la correspondance s'exécute sur une copie repliée du texte
  • Trois embedders (hashing, Apple sentence, Apple contextual) ou le vôtre via le protocole TextEmbedder
  • Sauvegarde et restauration : un seul fichier avec les passages masqués et leurs vecteurs, vérifié face à l'embedder et à la version de format au chargement
  • Analyse de texte : langue, sentiment, noms, mots-clés et phrases avec TextAnalyzer

Démarrage rapide

swift
1let knowledge = KnowledgeBase()
2try await knowledge.add("You can return any item within 30 days of delivery for a full refund.", id: "returns")
3try await knowledge.add("Orders ship within two business days; delivery takes three to five days.", id: "shipping")
4try await knowledge.add("Every laptop comes with a two-year warranty against defects.", id: "warranty")
5 
6let results = try await knowledge.search("How do I return an item for a refund?")
7print(results.first?.documentID ?? "nothing found") // returns
8print(results.first?.text ?? "") // You can return any item within 30 days …

Installation

Swift Package Manager

swift
1dependencies: [
2 .package(url: "https://github.com/muhittincamdali/SwiftIntelligence.git", from: "2.0.0")
3],
4targets: [
5 .target(name: "YourApp", dependencies: [
6 .product(name: "SwiftIntelligence", package: "SwiftIntelligence")
7 ])
8]

Xcode

text
1https://github.com/muhittincamdali/SwiftIntelligence.git

Captures d'écran

Écran de recherche KnowledgeDemo sur un simulateur iPhone, mode clair
Écran de recherche KnowledgeDemo sur un simulateur iPhone, mode sombre
Écran de question KnowledgeDemo avec une réponse du modèle sur l'appareil, mode clair
Écran de question KnowledgeDemo avec une réponse du modèle sur l'appareil, mode sombre
Écran de masquage KnowledgeDemo sur un simulateur iPhone, mode clair
Écran de masquage KnowledgeDemo sur un simulateur iPhone, mode sombre

Chronologie

  1. Dépôt ouvert comme un large framework d'IA/ML ; v1.0.0 et v1.1.0 étiquetées

  2. Travail de documentation, README et CI ; v1.2.0 à v1.2.2 étiquetées

  3. Nettoyage : scripts de release et modules inutilisés supprimés

  4. Reconstruit en 2.0.0 : un seul target de bibliothèque sans dépendance ; aucune API 1.x conservée

Liens

Article associé

Lire l'article