Begrænsningen var ikke "få en model til at skrive et citat"
En enkelt prompt kan producere en sætning. Den kan ikke fastslå, om systemmodellen er klar, holde en grænseflade responsiv, skelne en genereret linje fra et historisk citat, forhindre et næsten duplikat i at komme ind i et bibliotek eller lade produktet være nyttigt, når inferens mislykkes. De omkringliggende beslutninger er kendetegnet.
RiseHush har ingen inferens-backend. På understøttede Apple Intelligence-enheder sender appen en afgrænset prompt til Apples systemsprogmodel på enheden og gemmer et accepteret resultat i lokale SwiftData. Den produktorienterede efterretningsside forklarer, hvad en person ser; denne artikel dokumenterer implementeringsstien og dens begrænsninger. Apples egen tilgængeligheds-API forbliver autoriteten for, om modellen kan køre nu.
"Reproducerbar" betyder her, at en anden ingeniør kan gentage parathedsmatrixen, afvisningsarmaturer, timeoutstier og vedholdenhedstjek. Det betyder ikke, at en ikke-deterministisk sprogmodel vil returnere den samme prosa lidt for lidt. Denne side rapporterer inspiceret kildearkitektur, ikke friske fysiske enhedskvalitetsmålinger; intet benchmark-resultat udledes af et testscript.
- Inferens: Apples systemsprogmodel, på enheden.
- Outputkontrakt: En guidet Swift-type, derefter deterministisk validering.
- -lager: Lokale SwiftData-rækker markeret som genereret.
- Netværkssti: Ingen RiseHush-generationsserver eller tredjepartsmodel.
Fra prompt til bibliotek: produktionsstien
Dette er arkitekturen bag RiseHushs tilbudsgenerator på enheden som inspiceret i den aktuelle appkilde. Det dokumenterer porte, fejlstier og kontroller, som en udvikler kan gengive; det er ikke et modelbenchmark eller en påstand om, at hvert udkast er godt.
Bestillingen er bevidst. Billige, forklarlige kontroller kører før flere slutninger; ingen skrivning sker, før hver påkrævet gate har accepteret kandidaten. Et streamet svar er foreløbig grænsefladetekst, ikke et gemt citat.
Bevis beredskab
Tjenesten tjekker systemmodellens tilgængelighed og den anmodede lokalitet, før den opretter en session. Enhedens berettigelse, Apple Intelligence-tilstand, parathed til modelaktiver og sprogsupport er separate resultater.
Begræns udkastet
En @Generable Swift-type beder om én original sætning, normalt 10-16 ord og aldrig mere end 18, uden tilskrivning, markdown, hashtags, emoji eller ombryde anførselstegn.
Stream af hovedskuespilleren
En frisk LanguageModelSession er forvarmet til anmodningen. Delvis strukturerede snapshots kan opdatere grænsefladen, mens Foundation Models-løkken forbliver væk fra hovedaktøren.
Afvis åbenlyse fejl
Før enhver modelbaseret bedømmelse kontrollerer en deterministisk port sætnings- og ordgrænser, sprogaftale, forbudte fragmenter, indpakning af tegnsætning og flersprogede klichémønstre.
Test nyhed og kvalitet
Når sammenligningsindlejringer er tilgængelige, står overlevende over for en semantisk næsten duplikatkontrol, derefter en separat guidet dommer og særpræg score. Et streamet kladde, der overskrider en påkrævet tærskel, kasseres i stedet for at fortsætte.
Fortsæt den overlevende
Metadata beregnes væk fra hovedaktøren. SwiftData-indsættelse vender tilbage til hovedaktøren, mærker linjen som genereret og ikke offentligt domæne, og ruller forbigående indsættelser tilbage, hvis lagring mislykkes.
Genbrug lokal stat
Appen og systemets overflader bruger det gemte tilbud. Widgets læser vedvarende data; de vækker ikke sprogmodellen inde i en forlængelsestidslinje.
Guidet output indsnævrer formen; kodeks ejer stadig politik
Udkastet er en Swift-type mærket@Generable. Dens guide beder om én original sætning, normalt 10-16 ord med en hård prompt på maksimalt 18, og forbyder tilskrivning, indpakning af anførselstegn, hashtags, emoji, markdown og linjeskift. Produktionsmulighederne bruger temperatur 0,7 og et 40-tokens loft: nok plads til den strukturerede indpakning og korte sætninger, uden at indbyde til afsnitslængde output.
Dette gør ikke validering valgfri. Apple beskriver guidet generering som en måde at producere strukturerede Swift-data på, ikke en garanti for, at indholdet overholder alle produktregler. RiseHush behandler derfor modellens indtastede værdi som en upålidelig udkast. Den forkortede skitse nedenfor bevarer produktionsrækkefølgen og tærsklerne, mens app-specifikke prompt- og persistensdetaljer udelades.
@Generable
private struct GeneratedQuoteDraft {
@Guide(description: "One original sentence; 10–16 words; no attribution")
var text: String
}
guard availability(locale: locale) == .available else {
throw GenerationError.unavailable
}
let stream = session.streamResponse(
to: prompt,
generating: GeneratedQuoteDraft.self,
options: generationOptions
)
for try await snapshot in stream {
yield(snapshot.content.text) // interface update
}
guard deterministicGate.passes(text, locale: locale),
await noveltyGate.isNearDuplicate(text) == false,
await judge.score(text).overall >= 6,
distinctiveness.score(text).overall >= 5
else {
throw GenerationError.noCandidate
}
return try persistAsGeneratedQuote(text)This is explanatory code, not a drop-in package. It intentionally omits app-private prompt construction, error mapping, and SwiftData model definitions.
Hvorfor et andet gennemløb stadig ikke var nok
Det første afvisningslag er deterministisk: tomt output, forbudte promptrester, indpakning af citater, ord- og sætningsgrænser, sproglig uenighed og flersprogede klichéarmaturer. Et lokalt Core ML smagsfilter kan tilføje et indlært signal til engelsk, tysk, spansk, fransk, italiensk og portugisisk; det er bevidst sprunget over i stedet for forkert anvendt uden for disse kalibrerede lokaliteter.
Dernæst, når sammenligningsindlejringer er tilgængelige, sammenligner en semantisk nyhedsindgang kandidaten med et afgrænset lokalt katalog og afviser næsten dubletter ved en cosinus-lighedstærskel på 0,90. Hvis kataloget er tomt, eller en indlejring ikke kan produceres, passerer det lag igennem i stedet for at hævde, at nyheden er bevist. En frisk Foundation Models-session scorer derefter samlet kvalitet, originalitet og varme. Den dommer er en separat session, der bruger den samme systemmodel - ikke en uafhængig model og ikke en menneskelig gennemgang. Hvis det er utilgængeligt, nægter eller ikke kan producere struktureret output, giver en deterministisk score et begrænset tilbagefald.
Endelig belønner en karakteristisk score konkrete billeder, handling, følelsesmæssig specificitet og handlekraft, mens formler og nyere negative ankre straffes. Accept kræver i øjeblikket en dommerscore på mindst 6 og særpræg på mindst 5. Disse er produkttærskler, ikke bevis for global originalitet eller sikkerhed.
| Bekymring | Implementering | Hvorfor det eksisterer |
|---|---|---|
| Tilgængelighed | Tjek modeltilstand og lokalitetsunderstøttelse før hver generationssti; registrere, hvorfor beredskabet mislykkedes. | "Apple Intelligence capable" betyder ikke, at modellen er klar nu eller understøtter den besøgendes aktive sprog. |
| Struktur | Brug @Generable og @Guide til kladdeformen i stedet for at parse et opfundet JSON-svar. | Swift-typen er outputkontrakten, mens deterministisk kode stadig ejer produktreglerne. |
| Samtidighed | Hold modelstreaming og metadataarbejde væk fra hovedaktøren; kryds kun tilbage for lokal model vedholdenhed. | Turneringen af Foundation Models kan tage sekunder, mens SwiftData-modelobjekter forbliver aktør-bundne. |
| Kvalitet | Lagdeterministiske regler, semantisk nyhed, en separat dommer og særpræg tærskler. | Guidet generation indsnævrer formen; det garanterer ikke sandhed, originalitet, tone eller produktkvalitet. |
| Latency | Forvarm kun på generationskompatible forgrundsoverflader og anvend endelige budgetter: 45 sekunder i grænsefladen, 20 for Siri, 120 for en baggrundspool. | En brugervendt anmodning må ikke vente for evigt på aktiver, satsgrænser eller en langsom modelvending. |
| Udholdenhed | Gem accepterede linjer som lokalt genererede poster, aldrig som public domæne forfattercitater; rulle tilbage efter en mislykket redning. | Genereret skrift har brug for holdbart herkomst og må aldrig arve en rigtig persons attribution. |
Hold modellen væk fra hovedaktøren
Den offentlige service returnerer SwiftData-modelobjekter, så dens indgangspunkter forbliver hovedaktør-bundne. Det gør den dyre Foundation Models responsloop ikke. Hver anmodning ejer en ny LanguageModelSession; streaming og metadataberegning løber væk fra hovedaktøren med små eksplicitte hop for aktørbundne promptsignaler og vedholdenhed.
Streaming giver delvise strukturerede snapshots til grænsefladen, og sender derefter den endelige tekst gennem den samme gate, nyheds-, dommer- og særpræg som poolstien. En afsluttet stream krydser aktører ved hjælp af vedvarende identifikator i stedet for at flytte en SwiftData-model, der ikke kan sendes. Den, der ringer op, løser denne identifikator på sin egen aktør.
Kun accepteret tekst indsættes. Posten er forfattet som RiseHush, mærket source = .generated og isPublicDomain = falsk, tagget med dens lokalitet og beriget med lokalt beregnede metadata. Hvis lagringen mislykkes, slettes de forbigående indstik, før fejlen vender tilbage.
Forbind conciergen med tre skrivebeskyttede værktøjer
Spørg RiseHush må ikke opfinde en persons bibliotekstilstand. Apples værktøjskaldende API lader en session anmode om at indsnævre appfunktioner og inkorporere deres returnerede data. Appen afslører tre afgrænsede, skrivebeskyttede værktøjer; ingen når en RiseHush-server.
Værktøjsargumenter og outputstørrelser er begrænsede. Opslag i gemt tilbud returnerer højst otte resultater, katalogsøgning højst fem, og det samlede værktøjsoutput er begrænset. Værktøjet gemte tilbud kan returnere nylige matchende varer, men det accepterer ikke et kalenderområde - så produktet skal ikke love, at modellen kan svare "hvad sparede jeg i sidste uge?"
Katalog citatsøgning
Søger i det medfølgende tilbudskatalog efter humør, kategori eller tema. Det beder ikke modellen om at opfinde en kilde.
Gemt tilbudsopslag
Slår personens egne gemte og foretrukne citater op i lokal lagring.
Streak status
Læser den lokale inspirationsrække, så Spørg RiseHush kan svare på et afgrænset personligt spørgsmål.
Fejladfærd er en del af arkitekturen
Tilgængelighed er ikke en boolesk. En kompatibel enhed kan stadig have Apple Intelligence deaktiveret, modelaktiver forberedes eller et sprog, som systemmodellen ikke understøtter. Runtime-generering kan også afvise, ramme et autoværn, overskride kontekst, blive droslet, støde på en samtidig anmodning, mislykkes i struktureret parsing eller timeout.
RiseHush kortlægger disse tilfælde til begrænset produktadfærd. Forgrundsgenerering har et budget på 45 sekunder, Siri 20 sekunder og baggrundspoolgenerering 120 sekunder. Det kuraterede bibliotek forbliver det ærlige tilbagefald; appen gemmer aldrig pladsholderprosa, som om en model lykkedes.
| Signal | Opførsel |
|---|---|
| Enheden er ikke kvalificeret eller Apple Intelligence deaktiveret | Generation er ikke tilgængelig. Det eksisterende kurerede bibliotek forbliver brugbart uden at foregive, at der opstod et modelsvar. |
| Modelaktiver er ikke klar | Anmodningen rapporterer en ikke-klar tilstand. Når først Apples modelaktiver er til stede, kræver inferens i sig selv ikke en RiseHush-server. |
| Den anmodede lokalitet understøttes ikke | En oversættelsesegnet sti kan fuldt ud lukke et engelsk udkast og oversætte det lokalt, hvor Apples oversættelsesramme understøtter parret; ellers beholder appen den kurerede reserve. Den oversatte tekst kontrolleres for et ikke-tomt resultat, men gentager ikke hele målsprogets gate, nyhed og dommerstack. |
| Autoværn, afvisning, hastighedsgrænse, parsing, kontekst, samtidighed eller timeoutfejl | Streamingstien spinder ikke gennem et ubegrænset inline-forsøg igen. Det returnerer ingen genereret kandidat og lader produktet falde tilbage rent. |
| Udkast overser en kvalitetsgrænse | Den endelige poolsti kan prøve et andet udkast; livestreamen afbrydes i stedet for at animere et andet svar. Afvist tekst gemmes ikke. |
| SwiftData-lagring mislykkes | Tjenesten fjerner sine forbigående indsatser og viser en vedvarende fejl i stedet for at efterlade et halvt gemt tilbud. |
En reproducerbarhedsprotokol uden opfundne resultater
Protokollen nedenfor adskiller kildeinspektion fra live-enhedsbevis. Registrer hardware, OS-bygning, lokalitet, Apple Intelligence-tilstand, modelberedskab, prompt-opstilling, forløbet tid, terminalgren, årsag til afvisning og persistensresultat for hver kørsel. Apples Foundation Models Instruments kan afsløre prompt-, værktøjs-, token- og latensadfærd under en rigtig session.
En maskinlæsbar version er tilgængelig som Foundation Models evaluation protocol (JSON). Den indeholder matrix og feltkontrakt, ikke fabrikerede mål. Når en aktuel fysisk enhedskørsel er godkendt, skal du tilføje dens anonymiserede rækker og offentliggøre samlede accept-, timeout- og latensværdier med den nøjagtige enhed og OS.
- Brug kompatibel hardware med et understøttet operativsystem. Test Apple Intelligence aktiveret og klar, deaktiveret og downloader stadig.
- Gentag med en understøttet lokalitet og en ikke-understøttet lokalitet; kontrollere, at appen adskiller modelsupport fra generel enhedsberettigelse.
- Når modelaktiver er klar, skal du gentage i flytilstand og bekræfte, at der ikke kræves noget RiseHush-genereringsslutpunkt.
- Observer delvis tekst, mens du interagerer med grænsefladen; Bekræft, at rulning og kontroller forbliver lydhøre under modeldrejningen.
- Feed-armaturer, der er tomme, flere sætninger, for lange, pakket ind i anførselstegn, på det forkerte sprog, klichéfyldte eller næsten dubletter; ingen bør blive gemte genererede rækker.
- Udløs dommerafvisning og en begrænset timeout; bekræfte, at der ikke er nogen afvist udkast, og at den kurerede oplevelse forbliver tilgængelig.
- Tving en lokal lagringsfejl i en testbutik; bekræft, at indsatte modeller er rullet tilbage.
- Træn Siri med dets kortere tidsbudget og bekræft, at widgets kun læser vedvarende data i stedet for at starte generering i udvidelsen.
Hvad denne arkitektur ikke beviser
En kvalitetspipeline kan synliggøre fejl og reducere dårlig persistens. Det kan ikke gøre en lille on-device sprogmodel til en historisk kilde, bevise, at en sætning aldrig er blevet skrevet nogen steder, eller garantere smag. Genererede linjer tilskrives derfor aldrig historiske forfattere og kommer aldrig ind i det offentlige domænekatalog.
Oversættelse fortjener en separat advarsel. For en lokalitet, der ikke understøttes direkte af Foundation Models, lukker den valgfri sti fuldt ud et engelsk udkast og bruger derefter Apples oversættelsesramme på enheden, hvor parret er tilgængeligt. Det oversatte resultat kontrolleres for et ikke-tomt svar og fortsætter med nye metadata, men det gentager i øjeblikket ikke den fulde målsproggate, nyhed og bedømmelsessekvens efter oversættelse. Den vej er et tilbagefald, ikke et bevis på lige så høj direkte generationskvalitet.
Model- og OS-opdateringer kan ændre tilgængelighed, latens, afvisningsadfærd og outputdistribution. Apple anbefaler, at du genbesøger prompter og evaluering, når Foundation Models ændrer sig. RiseHushs testmatrix skal derfor køres igen efter materialeplatformopdateringer i stedet for at behandle denne side som permanent benchmark-bevis.
- Systemmodellen bruges ikke som kilde til historiske citatfakta eller forfattertilskrivning.
- Struktureret output og en anden modelpas reducerer fejltilstande; de beviser ikke, at en linje er dyb, original i global forstand eller egnet til alle.
- Det semantiske nyhedslag passerer igennem, når dets afgrænsede katalog er tomt, eller sammenligningsindlejringer ikke er tilgængelige; det reducerer kendte næsten-duplikater, men bekræfter ikke global originalitet.
- Offlinegenerering afhænger af kompatibel hardware, aktiveret Apple Intelligence, understøttet sprogadfærd og modelaktiver, der allerede er klar.
- Det valgfri indlærte Core ML smagsfilter er kalibreret til engelsk, tysk, spansk, fransk, italiensk og portugisisk; andre lokaliteter modtager stadig de deterministiske og modelbaserede lag, der understøtter dem.
- Et lokalt oversat fallback svarer ikke til direkte målsprogsgenerering: det aktuelle oversatte resultat gentager ikke hvert kvalitetslag efter oversættelse.
- OS og modelopdateringer kan ændre latens og outputdistribution, så enhedsmatrixen skal køres igen efter materialeplatformsændringer.
- Denne side beskriver den nuværende arkitektur, ikke et løfte om, at hver platforms overflade kører Foundation Models. Widgets bruger bevidst vedvarende resultater.
Sender RiseHush prompter om tilbudsgenerering til sin egen server?
Nej. På understøttede enheder, hvor systemmodellen er tilgængelig, kører tilbudsudkastet og kvalitetsoverførslerne med Apples on-device frameworks. RiseHush har ikke noget slutpunkt for denne sti.
Garanterer @Generable et godt eller originalt tilbud?
Nej. Det begrænser formen af struktureret output. RiseHush anvender stadig deterministisk formatering og sprogregler, semantisk næsten duplikat-detektion, når sammenligningsindlejringer er tilgængelige, en separat bedømmelsessession, karakteristika og endelig afvisningsadfærd.
Kan en anden udvikler gengive den nøjagtige genererede sætning?
Ikke pålideligt. Sprogmodeloutput er ikke-deterministisk og kan ændres med model- eller OS-opdateringer. Den reproducerbare enhed er paratheds-, armaturets-, gate-, timeout- og persistensprotokollen – ikke identisk prosa.
Modtager alle understøttede sprog den samme kvalitetssti?
Nej. Direkte understøttede lokaliteter modtager den fælles generationssti, mens det indlærte Core ML-filter er kalibreret til seks sprog. Et valgfrit lokalt oversat fallback starter fra et lukket engelsk udkast, men gentager ikke hvert målsprogkvalitetslag efter oversættelse.
- Apple Developer Documentation — Foundation Models framework overview: direct access to Apple’s on-device language model
- Apple Developer Documentation — SystemLanguageModel availability and unavailable reasons
- Apple Developer Documentation — supporting languages and locales with Foundation Models
- Apple Developer Documentation — generating Swift data structures with guided generation
- Apple Developer Documentation — LanguageModelSession, responses, and streaming
- Apple Developer Documentation — expanding generation with tool calling
- Apple Developer Documentation — improving the safety of generative model output
- Apple Developer Documentation — analyzing Foundation Models runtime performance
- Apple Developer Documentation — Foundation Models framework updates
- Apple Developer Documentation — SwiftData
- Apple Developer Documentation — Translation framework
