Begränsningen var inte "få en modell att skriva ett citat"
En enda prompt kan producera en mening. Den kan inte fastställa om systemmodellen är klar, hålla ett gränssnitt responsivt, skilja en genererad rad från ett historiskt citat, förhindra en nästan dubblett från att komma in i ett bibliotek eller lämna produkten användbar när slutledning misslyckas. De omgivande besluten är funktionen.
RiseHush har ingen slutledningsbackend. På Apple Intelligence-enheter som stöds skickar appen en avgränsad prompt till Apples systemspråkmodell på enheten och lagrar ett accepterat resultat i lokal SwiftData. Denproduktorienterade intelligenssidan förklarar vad en person ser; den här artikeln dokumenterar implementeringsvägen och dess begränsningar. Apples egen tillgänglighets-API förblir auktoriteten för om modellen kan köras nu.
"Reproducerbar" betyder här att en annan ingenjör kan upprepa beredskapsmatrisen, avvisningsfixturer, timeout-vägar och uthållighetskontroller. Det betyder inte att en icke-deterministisk språkmodell kommer att returnera samma prosa bit för bit. Den här sidan rapporterar inspekterad källarkitektur, inte färska mätvärden för fysisk enhetskvalitet; inget benchmarkresultat härleds från ett testskript.
- Inferens:Apples systemspråksmodell, på enheten.
- Utdatakontrakt:En guidad Swift-typ, sedan deterministisk validering.
- -lagring:Lokala SwiftData-rader markerade som genererade.
- Nätverkssökväg:Ingen RiseHush-genereringsserver eller tredjepartsmodell.
Från uppmaning till bibliotek: produktionsvägen
Detta är arkitekturen bakom RiseHushs offertgenerator på enheten som inspekteras i den aktuella appkällan. Den dokumenterar grindar, felvägar och kontroller som en utvecklare kan reproducera; det är inte ett riktmärke eller ett påstående om att varje utkast är bra.
Beställningen är avsiktlig. Billiga, förklarliga kontroller körs innan fler slutsatser; ingen skrivning sker förrän varje nödvändig gate har accepterat kandidaten. Ett streamat svar är provisorisk gränssnittstext, inte ett sparat citat.
Bevisa beredskap
Tjänsten kontrollerar systemmodellens tillgänglighet och den begärda lokalen innan den skapar en session. Enhetens behörighet, Apple Intelligence-status, modelltillgångsberedskap och språksupport är separata resultat.
Begränsa utkastet
En @Generable Swift-typ ber om en originalmening, normalt 10–16 ord och aldrig mer än 18, utan tillskrivning, markdown, hashtags, emoji eller omslutande citattecken.
Streama av huvudskådespelaren
En ny LanguageModelSession är förvärmd för begäran. Delvis strukturerade ögonblicksbilder kan uppdatera gränssnittet medan Foundation Models-loopen förblir borta från huvudaktören.
Avvisa uppenbara misslyckanden
Innan modellbaserad bedömning kontrollerar en deterministisk grind menings- och ordgränser, språköverenskommelser, förbjudna fragment, omslutande skiljetecken och flerspråkiga klichémönster.
Testa nyhet och kvalitet
När jämförelseinbäddningar är tillgängliga möter överlevande en semantisk nästan dubblettkontroll, sedan en separat guidad domare och särskiljningsförmåga. Ett streamat utkast som missar ett obligatoriskt tröskelvärde kasseras snarare än kvarstår i tysthet.
Framhärda den överlevande
Metadata beräknas bort från huvudaktören. SwiftData-infogning återgår till huvudaktören, märker linjen som genererad och inte allmän egendom, och återställer tillfälliga inlägg om sparandet misslyckas.
Återanvänd lokal stat
Appen och systemytorna förbrukar den lagrade offerten. Widgetar läser kvarstående data; de väcker inte språkmodellen i en förlängningstidslinje.
Guidad utgång smalnar av formen; kod äger fortfarande policy
Utkastet är av Swift-typ märkt@Generable. Dess guide ber om en originalmening, normalt 10–16 ord med en hård prompt på maximalt 18, och förbjuder tillskrivning, omslagning av citattecken, hashtags, emoji, markdown och radbrytningar. Produktionsalternativen använder temperatur 0,7 och ett tak på 40 token: tillräckligt med utrymme för det strukturerade omslaget och den korta meningen, utan att bjuda in styckelängdsutdata.
Detta gör inte validering valfri. Apple beskriver guidad generering som ett sätt att producera strukturerad Swift-data, inte en garanti för att innehållet uppfyller varje produktregel. RiseHush behandlar därför modellens typvärde som ett opålitligt utkast. Den förkortade skissen nedan bevarar produktionsordningen och tröskelvärdena samtidigt som appspecifik prompt och persistensdetaljer utelämnas.
@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.
Varför ett andra pass ändå inte räckte
Det första avslagslagret är deterministiskt: tom utdata, förbjudna promptrester, radbrytande citat, ord- och meningsbegränsningar, språkoenighet och flerspråkiga klichéarrangemang. Ett lokalt Core ML-smakfilter kan lägga till en inlärd signal för engelska, tyska, spanska, franska, italienska och portugisiska; det är avsiktligt överhoppat snarare än felanvänt utanför dessa kalibrerade lokaler.
Därefter, när jämförelseinbäddningar är tillgängliga, jämför en semantisk nyhetsport kandidaten med en avgränsad lokal katalog och avvisar nästan dubbletter vid en cosinuslikhetströskel på 0,90. Om katalogen är tom eller en inbäddning inte kan produceras, passerar det lagret istället för att hävda att nyheten har bevisats. En ny Foundation Models-session ger sedan poäng övergripande kvalitet, originalitet och värme. Den domaren är en separat session som använder samma systemmodell – inte en oberoende modell och inte en mänsklig granskning. Om den är otillgänglig, vägrar eller inte kan producera strukturerad utdata, ger en deterministisk poäng en begränsad reserv.
Slutligen belönar en särskiljningsgrad konkreta bilder, handling, känslomässig specificitet och handlingskraft samtidigt som formler och nya negativa ankare straffas. Acceptans kräver för närvarande ett domarpoäng på minst 6 och särskiljningsförmåga på minst 5. Dessa är produkttrösklar, inte bevis på global originalitet eller säkerhet.
| Oro | Genomförande | Varför det finns |
|---|---|---|
| Tillgänglighet | Kontrollera modellstatus och lokalstöd före varje generationsväg; registrera varför beredskapen misslyckades. | "Apple Intelligence kapabel" betyder inte att modellen är klar nu eller stöder besökarens aktiva språk. |
| Struktur | Använd @Generable och @Guide för utkastformen istället för att analysera ett påhittat JSON-svar. | Swift-typen är utgångskontraktet, medan deterministisk kod fortfarande äger produktregler. |
| Samtidighet | Håll modellströmning och metadataarbete borta från huvudaktören; kryssa tillbaka endast för lokal modellbeständighet. | Grundmodellens tur kan ta sekunder, medan SwiftData-modellobjekt förblir aktörsbundna. |
| Kvalitet | Lagerdeterministiska regler, semantisk nyhet, en separat domare och särskiljande trösklar. | Guidad generation smalnar av formen; det garanterar inte sanning, originalitet, ton eller produktkvalitet. |
| Latens | Förvärm endast på generationskompatibla förgrundsytor och tillämpa ändliga budgetar: 45 sekunder i gränssnittet, 20 för Siri, 120 för en bakgrundspool. | En användarinriktad begäran får inte vänta för evigt på tillgångar, räntegränser eller en långsam modellvändning. |
| Uthållighet | Lagra accepterade rader som lokalt genererade poster, aldrig som public domain författare citat; rulla tillbaka efter en misslyckad räddning. | Genererat skrivande behöver varaktigt ursprung och får aldrig ärva en verklig persons attribution. |
Håll modellen vänd bort från huvudaktören
Public service returnerar SwiftData-modellobjekt, så dess ingångspunkter förblir huvudaktörsbundna. Den dyra svarsslingan för Foundation Models gör det inte. Varje begäran äger en nyLanguageModelSession; streaming och beräkning av metadata springer bort från huvudaktören, med små explicita hopp för aktörsbundna snabbsignaler och uthållighet.
Streaming ger partiella strukturerade ögonblicksbilder för gränssnittet, och skickar sedan den slutliga texten genom samma gate, nyhet, domare och särskiljningsförmåga som poolbanan. En avslutad ström korsar aktörer med beständig identifierare snarare än att flytta en SwiftData-modell som inte kan skickas. Den som ringer löser identifieraren på sin egen aktör.
Endast accepterad text infogas. Posten är författad som RiseHush, märktsource = .generatedochisPublicDomain = false, taggad med dess språkkod och berikad med lokalt beräknad metadata. Om sparandet misslyckas raderas de transienta inläggen innan felet återkommer.
Jorda conciergen med tre skrivskyddade verktyg
Ask RiseHush får inte uppfinna en persons bibliotekstillstånd. Apples verktygsanropande API låter en session begära smala appfunktioner och införliva deras returnerade data. Appen exponerar tre avgränsade, skrivskyddade verktyg; ingen når en RiseHush-server.
Verktygsargument och utdatastorlekar är begränsade. Uppslag om sparade offerter ger högst åtta resultat, katalogsökning högst fem, och det totala verktygsutdata är begränsat. Verktyget för sparade offerter kan returnera senaste matchande objekt, men det accepterar inte ett kalenderintervall – så produkten ska inte lova att modellen kan svara "vad sparade jag förra veckan?"
Sök efter katalogcitat
Söker i den medföljande offertkatalogen efter humör, kategori eller tema. Den ber inte modellen att uppfinna en källa.
Sparad offertsökning
Söker upp personens egna sparade och favoritcitat i lokal lagring.
Streak status
Läser den lokala inspirationsstricken så Ask RiseHush kan svara på en avgränsad personlig fråga.
Ett misslyckande är en del av arkitekturen
Tillgänglighet är inte en boolesk. En kompatibel enhet kan fortfarande ha Apple Intelligence inaktiverad, modelltillgångar förbereds eller ett språk som systemmodellen inte stöder. Körtidsgenerering kan också vägra, träffa ett skyddsräcke, överskrida sammanhanget, strypas, stöta på en samtidig begäran, misslyckas med strukturerad analys eller timeout.
RiseHush kartlägger dessa fall till ändligt produktbeteende. Förgrundsgenerering har en 45-sekunders budget, Siri 20 sekunder och bakgrundspoolgenerering 120 sekunder. Det kurerade biblioteket förblir den ärliga fallbacken; appen lagrar aldrig platshållarprosa som om en modell lyckades.
| Signal | Beteende |
|---|---|
| Enheten är inte kvalificerad eller Apple Intelligence inaktiverad | Generation är inte tillgänglig. Det befintliga kurerade biblioteket förblir användbart utan att låtsas att ett modellsvar inträffade. |
| Modelltillgångar är inte klara | Begäran rapporterar ett tillstånd som inte är klart. När Apples modelltillgångar väl är närvarande, kräver slutledning i sig inte en RiseHush-server. |
| Det begärda språket stöds inte | En översättningskompatibel sökväg kan fullständigt gate ett engelskt utkast och översätta det lokalt där Apples översättningsramverk stöder paret; annars behåller appen den kurerade reserv. Den översatta texten kontrolleras för ett icke-tomt resultat men upprepar inte hela målspråksgrinden, nyheten och domarstacken. |
| Skyddsräcke, vägran, hastighetsgräns, analys, kontext, samtidighet eller timeoutfel | Strömningsbanan snurrar inte genom ett obegränsat inline-försök. Den returnerar ingen genererad kandidat och låter produkten falla tillbaka rent. |
| Utkast missar en kvalitetströskel | Den ändliga poolbanan kan prova ett annat utkast; livestreamen avbryts snarare än att animera ett andra svar. Avvisad text sparas inte. |
| Spara SwiftData misslyckas | Tjänsten tar bort sina tillfälliga insatser och upptäcker ett beständighetsfel istället för att lämna en halvsparad offert. |
Ett reproducerbarhetsprotokoll, utan påhittade resultat
Protokollet nedan skiljer källinspektion från live-enhetsbevis. Spela in hårdvara, OS-byggd, språkversion, Apple Intelligence-tillstånd, modellberedskap, promptfixtur, förfluten tid, terminalgren, orsak till avvisning och uthållighetsresultat för varje körning. Apples Foundation Models Instruments kan avslöja prompt-, verktygs-, token- och latensbeteende under en riktig session.
En maskinläsbar version finns tillgänglig somFoundation Models evaluation protocol (JSON). Den innehåller matrisen och fältkontraktet, inte tillverkade mått. När en aktuell körning av fysisk enhet är godkänd lägger du till dess anonymiserade rader och publicerar sammanlagda acceptans-, timeout- och latensvärden med den exakta enheten och operativsystemet.
- Använd kompatibel hårdvara med ett operativsystem som stöds. Testa Apple Intelligence aktiverad och redo, inaktiverad och fortfarande laddas ner.
- Upprepa med ett språk som stöds och ett språk som inte stöds; verifiera att appen skiljer modellstöd från allmän enhetsbehörighet.
- När modelltillgångarna är klara, upprepa i flygplansläge och bekräfta att ingen RiseHush-genereringsslutpunkt krävs.
- Observera en del av texten medan du interagerar med gränssnittet; bekräfta att rullning och kontroller förblir responsiva under modellsvängen.
- Flödesfixturer som är tomma, flera meningar, för långa, inslagna i citattecken, på fel språk, klichéformiga eller nästan dubbletter; ingen ska bli sparade genererade rader.
- Utlösa domaravslag och en begränsad timeout; bekräfta att inget avvisat utkast kvarstår och att den kurerade upplevelsen förblir tillgänglig.
- Framtvinga ett lokalt lagringsfel i en testbutik; bekräfta att insatta modeller rullas tillbaka.
- Träna Siri med sin kortare tidsbudget och verifiera att widgets bara läser kvarstående data istället för att börja generera i tillägget.
Vad denna arkitektur inte bevisar
En kvalitetspipeline kan göra fel synliga och minska dålig persistens. Det kan inte förvandla en liten språkmodell på enheten till en historisk källa, bevisa att en mening aldrig har skrivits någonstans, eller garantera smak. Genererade rader tillskrivs därför aldrig historiska författare och kommer aldrig in i den offentliga katalogen.
Översättning förtjänar en separat varning. För en plats som inte stöds direkt av Foundation Models, öppnar den valfria sökvägen ett engelskt utkast helt och använder sedan Apples översättningsramverk på enheten där paret är tillgängligt. Det översatta resultatet kontrolleras för ett icke-tomt svar och kvarstår med ny metadata, men det upprepar för närvarande inte hela målspråksgrinden, nyheten och bedömningssekvensen efter översättning. Den vägen är en reserv, inte ett bevis på samma direktgenererande kvalitet.
Modell- och OS-uppdateringar kan ändra tillgänglighet, latens, vägransbeteende och utdatadistribution. Apple rekommenderar att du tittar på uppmaningar och utvärderingar när grundmodellerna ändras. RiseHushs testmatris måste därför köras om efter materialplattformsuppdateringar snarare än att behandla denna sida som permanent benchmarkbevis.
- Systemmodellen används inte som en källa till historiska citatfakta eller tillskrivning av författare.
- Strukturerad utgång och ett andra modellpass minskar fellägen; de bevisar inte att en linje är djupgående, originell i global mening eller lämplig för alla.
- Det semantiska nyhetslagret passerar igenom när dess avgränsade katalog är tom eller jämförelseinbäddningar inte är tillgängliga; det minskar kända nästan dubbletter men intygar inte global originalitet.
- Offlinegenerering beror på att kompatibel hårdvara, aktiverad Apple Intelligence, språkbeteende som stöds och modelltillgångar redan är klara.
- Det valfria inlärda Core ML-smakfiltret är kalibrerat för engelska, tyska, spanska, franska, italienska och portugisiska; andra lokaler får fortfarande de deterministiska och modellbaserade lagren som stöder dem.
- En lokalt översatt reserv är inte likvärdig med direkt målspråksgenerering: det aktuella översatta resultatet upprepar inte varje kvalitetslager efter översättning.
- OS- och modelluppdateringar kan ändra latens och utdatadistribution, så enhetsmatrisen måste köras om efter materialplattformsändringar.
- Den här sidan beskriver den nuvarande arkitekturen, inte ett löfte om att varje plattformsyta kör Foundation Models. Widgetar konsumerar avsiktligt kvarstående resultat.
Skickar RiseHush uppmaningar om offertgenerering till sin egen server?
Nej. På enheter som stöds där systemmodellen är tillgänglig körs offertutkastet och kvalitetspass med Apples ramverk på enheten. RiseHush har ingen slutpunkt för den här vägen.
Garanterar @Generable ett bra eller originellt citat?
Nej. Det begränsar formen på strukturerad produktion. RiseHush tillämpar fortfarande deterministisk formatering och språkregler, semantisk nästan dubblettdetektering när jämförelseinbäddningar är tillgängliga, en separat bedömningssession, särskiljande poängsättning och ändligt avvisande beteende.
Kan en annan utvecklare återskapa den exakta genererade meningen?
Inte tillförlitligt. Språkmodellens utdata är icke-deterministisk och kan ändras med modell- eller OS-uppdateringar. Den reproducerbara enheten är beredskaps-, fixtur-, gate-, timeout- och persistensprotokollet – inte identisk prosa.
Får alla språk som stöds samma kvalitetsväg?
Nej. Lokaler som stöds direkt får den gemensamma genereringsvägen, medan det inlärda Core ML-filtret är kalibrerat för sex språk. En valfri lokalt översatt reserv startar från ett gated engelskt utkast men upprepar inte varje målspråkskvalitetslager efter översättning.
- 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
