AISwift
SwiftIntelligence
Apple のフレームワーク上に構築された、アプリのテキストに対するデバイス上の検索、回答、マスキング。
8スター数最新リリース: v2.0.0更新日: 2026年10月15日
対応プラットフォーム:iOS 18macOS 15
ライセンス: MIT
iOS や macOS アプリ内のテキストを、デバイス上で検索・質問可能にする Swift パッケージです。ドキュメントは、それらをチャンク化し、必要に応じてマスキングし、embedding に変換してインデックス化する KnowledgeBase actor に投入されます。検索は BM25 とベクトルによるランキングを reciprocal rank fusion で組み合わせます。iOS 26 と macOS 26 では、Apple のデバイス上モデルが最も適切な passage から出典を示しつつ回答します。NaturalLanguage、Accelerate、Foundation Models の上に構築されており、依存関係はありません。
機能
- ハイブリッド検索: すべての passage は単語(BM25)とベクトルの両方でインデックス化され、2つのランキングが reciprocal rank fusion で統合されます
- 出典付きの回答: answer(_:) は Apple のデバイス上モデルに、最も適切な passage のみから回答し出典を示すよう求めます。groundedPrompt(for:) は他の任意のモデル向けに同じプロンプトを構築します
- 8種類の個人情報に対する可逆的なマスキング。カード番号と IBAN はチェックディジットを通過する必要があり、マッチングはテキストの折り畳んだコピー上で行われます
- 3種類の embedder(hashing、Apple sentence、Apple contextual)、または TextEmbedder プロトコル経由で自前のものを使用できます
- 保存と復元: マスキング済みの passage とそのベクトルを1つのファイルにまとめ、読み込み時に embedder とフォーマットのバージョンを検証します
- テキスト分析: TextAnalyzer による言語、感情、人名、キーワード、文の抽出
クイックスタート
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") // returns8print(results.first?.text ?? "") // You can return any item within 30 days …インストール
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スクリーンショット






タイムライン
幅広い AI/ML フレームワークとしてリポジトリが公開され、v1.0.0 と v1.1.0 がタグ付けされました
ドキュメント、README、CI の整備。v1.2.0 から v1.2.2 をタグ付け
整理: リリース用スクリプトと使われていないモジュールを削除
2.0.0 として作り直し: 依存関係のない単一の library ターゲットに。1.x の API は維持されませんでした