Todos los paquetes de código abierto
IASwift

SwiftIntelligence

Búsqueda, respuestas y enmascaramiento de datos personales en el dispositivo para el texto de tu app, construido sobre los frameworks de Apple.

8EstrellasÚltima versión: v2.0.0Actualizado: 15 de octubre de 2026
Plataformas:iOS 18macOS 15

Licencia: MIT

Un paquete Swift que hace que el texto de una app de iOS o macOS se pueda buscar y responder en el propio dispositivo. Los documentos entran en un actor KnowledgeBase que los fragmenta, opcionalmente los enmascara, los convierte en embeddings y los indexa; las búsquedas combinan los rankings de BM25 y de vectores con reciprocal rank fusion; en iOS 26 y macOS 26, el modelo en el dispositivo de Apple responde a partir de los mejores fragmentos con citas. Construido sobre NaturalLanguage, Accelerate y Foundation Models, sin dependencias.

Características

  • Búsqueda híbrida: cada fragmento se indexa por sus palabras (BM25) y como vector, y los dos rankings se combinan con reciprocal rank fusion
  • Respuestas con fuentes: answer(_:) pide al modelo en el dispositivo de Apple que responda solo a partir de los mejores fragmentos y los cite; groundedPrompt(for:) construye el mismo prompt para cualquier otro modelo
  • Enmascaramiento reversible de ocho tipos de datos personales; los números de tarjeta e IBAN deben superar sus dígitos de control, y la coincidencia se ejecuta sobre una copia normalizada ('folded') del texto
  • Tres embedders (hashing, Apple sentence, Apple contextual) o el tuyo propio a través del protocolo TextEmbedder
  • Guardar y restaurar: un archivo con los fragmentos enmascarados y sus vectores, verificado contra el embedder y la versión de formato al cargarlo
  • Análisis de texto: idioma, sentimiento, nombres, palabras clave y frases con TextAnalyzer

Inicio rápido

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 …

Instalación

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

Capturas de pantalla

Pantalla de búsqueda de KnowledgeDemo en un simulador de iPhone, modo claro
Pantalla de búsqueda de KnowledgeDemo en un simulador de iPhone, modo oscuro
Pantalla de preguntas de KnowledgeDemo con una respuesta del modelo en el dispositivo, modo claro
Pantalla de preguntas de KnowledgeDemo con una respuesta del modelo en el dispositivo, modo oscuro
Pantalla de enmascaramiento de KnowledgeDemo en un simulador de iPhone, modo claro
Pantalla de enmascaramiento de KnowledgeDemo en un simulador de iPhone, modo oscuro

Cronología

  1. Repositorio abierto como un framework amplio de IA/ML; se etiquetaron v1.0.0 y v1.1.0

  2. Trabajo de documentación, README y CI; se etiquetaron de v1.2.0 a v1.2.2

  3. Limpieza: se eliminaron los scripts de release y los módulos sin usar

  4. Reconstruido como 2.0.0: un único library target sin dependencias; no se conservó ninguna API de la serie 1.x

Enlaces

Artículo relacionado

Leer el artículo