Vorbereitung für die Spiegelung nach git.mana.how/offen (Prüfliste QUELLOEFFNUNG.md §5): Sweep sauber, keine Privat-Marker, Apache-2.0 mit NOTICE seit Welle 1, Schriften mit OFL-Texten. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
76 lines
2.4 KiB
Markdown
76 lines
2.4 KiB
Markdown
# mana-swift-llm
|
|
|
|
Swift-Package mit lokalen LLM-Backends für alle nativen
|
|
[mana](https://mana-ev.ch) iOS-/macOS-Apps.
|
|
|
|
Zwei Library-Products:
|
|
|
|
- **`ManaLLM`** — Backend-Abstraktion + High-Level-Facade.
|
|
Backends: Apple Foundation Models, Gemma 4 E2B/E4B (via MLX-Swift),
|
|
NoOp-Fallback. Router wählt nach Capability automatisch.
|
|
|
|
- **`ManaLLMShared`** — App-Group-Container-Helper für
|
|
gemeinsamen HuggingFace-Cache. Apps mit dem `group.ev.mana.models`-
|
|
Entitlement teilen heruntergeladene Modelle — **eine** App lädt,
|
|
alle anderen lesen.
|
|
|
|
## Schnell-Start
|
|
|
|
```swift
|
|
import ManaLLM
|
|
|
|
@main
|
|
struct MeineApp: App {
|
|
init() {
|
|
// HF_HUB_CACHE auf den shared Container setzen.
|
|
ManaLLM.configure()
|
|
}
|
|
|
|
var body: some Scene {
|
|
// ...
|
|
}
|
|
}
|
|
|
|
// Irgendwo später:
|
|
let summary = await ManaLLM.summarize(longText)
|
|
let story = await ManaLLM.generate(
|
|
prompt: "Schreib eine kurze Reise-Story über Konstanz.",
|
|
level: .creative
|
|
)
|
|
let tags = await ManaLLM.classify(text, into: ["#sport", "#kultur"])
|
|
```
|
|
|
|
## Plattform-Doku
|
|
|
|
- [`../mana/docs/MANA_LLM.md`](https://git.mana.how/mana/mana/src/branch/main/docs/MANA_LLM.md) — Architektur + Use-Case-Map
|
|
- [`../mana/docs/MANA_SWIFT.md`](https://git.mana.how/mana/mana/src/branch/main/docs/MANA_SWIFT.md) — Native-Plattform-SOT
|
|
- [`CLAUDE.md`](CLAUDE.md) — Repo-lokale Konventionen
|
|
|
|
## Bauen
|
|
|
|
Swift Package. Die Abhängigkeiten auf andere mana-Bibliotheken sind
|
|
Pfad-Abhängigkeiten — alle nebeneinander in denselben Ordner klonen:
|
|
|
|
```bash
|
|
for r in mana-swift-core mana-swift-llm mana-swift-event-sync mana-swift-ui; do
|
|
git clone https://git.mana.how/offen/$r.git
|
|
done
|
|
swift build # im jeweiligen Ordner
|
|
```
|
|
|
|
## Für Mitlesende
|
|
|
|
Dieses Repo gehört zum Ökosystem von [mana](https://mana.how) und liegt
|
|
offen, damit andere es lesen, einordnen und als Grundlage nutzen können —
|
|
das spart Arbeit, egal ob ein Mensch oder ein Modell davorsitzt.
|
|
|
|
**Was du erwarten darfst:** den Code so, wie er tatsächlich in Gebrauch ist,
|
|
unter Apache-2.0 (siehe `LICENSE` und `NOTICE`). Keine Attrappe, kein
|
|
zurechtgeschnittener Auszug — samt seiner Geschichte.
|
|
|
|
**Was du nicht erwarten darfst:** Support, Antwortzeiten, Zusagen zur
|
|
Abwärtskompatibilität oder die Übernahme von Änderungswünschen. Dieses Repo
|
|
folgt dem, was die eigenen Anwendungen brauchen. Fehlermeldungen sind
|
|
willkommen, eine Antwort ist nicht zugesagt.
|
|
|
|
**Fork ist ausdrücklich erlaubt** und oft der schnellere Weg als zu warten.
|