Begrensningen var ikke "få en modell til å skrive et sitat"
En enkelt melding kan produsere en setning. Den kan ikke fastslå om systemmodellen er klar, holde et grensesnitt responsivt, skille en generert linje fra et historisk sitat, forhindre at et nesten duplikat kommer inn i et bibliotek, eller la produktet være nyttig når slutningen mislykkes. De omkringliggende beslutningene er funksjonen.
RiseHush har ingen inferens-backend. På støttede Apple Intelligence-enheter sender appen en avgrenset forespørsel til Apples systemspråkmodell på enheten og lagrer et akseptert resultat i lokale SwiftData. Den produktvendte etterretningssiden forklarer hva en person ser; denne artikkelen dokumenterer implementeringsveien og dens begrensninger. Apples egen tilgjengelighets-API forblir autoriteten for om modellen kan kjøres nå.
"Reproduserbar" betyr her at en annen ingeniør kan gjenta beredskapsmatrisen, avvisningsarmaturer, timeout-baner og utholdenhetssjekker. Det betyr ikke at en ikke-deterministisk språkmodell vil returnere den samme prosaen litt for litt. Denne siden rapporterer inspisert kildearkitektur, ikke ferske kvalitetsmålinger for fysiske enheter; ingen referanseresultater utledes fra et testskript.
- Inferens:Apples systemspråkmodell, på enheten.
- Utgangskontrakt:En guidet Swift-type, deretter deterministisk validering.
- -lagring:lokale SwiftData-rader merket som generert.
- Nettverksbane:Ingen RiseHush-generasjonsserver eller tredjepartsmodell.
Fra forespørsel til bibliotek: produksjonsbanen
Dette er arkitekturen bak RiseHushs tilbudsgenerator på enheten som inspisert i gjeldende appkilde. Den dokumenterer portene, feilbanene og sjekker en utvikler kan reprodusere; det er ikke en modellbenchmark eller en påstand om at hvert utkast er bra.
Bestillingen er bevisst. Billige, forklarbare sjekker kjøres før flere slutninger; ingen skriving skjer før hver påkrevd gate har akseptert kandidaten. Et strømmet svar er foreløpig grensesnitttekst, ikke et lagret sitat.
Bevis beredskap
Tjenesten sjekker systemmodellens tilgjengelighet og den forespurte lokaliteten før den oppretter en økt. Enhetskvalifisering, Apple Intelligence-status, beredskap for modellressurser og språkstøtte er separate utfall.
Begrens utkastet
En @Generable Swift-type ber om én original setning, vanligvis 10–16 ord og aldri mer enn 18, uten attribusjon, markdown, hashtags, emoji eller omsluttende anførselstegn.
Stream av hovedaktøren
En ny LanguageModelSession er forvarmet for forespørselen. Delvis strukturerte øyeblikksbilder kan oppdatere grensesnittet mens Foundation Models-løkken forblir utenfor hovedaktøren.
Avvis åpenbare feil
Før enhver modellbasert vurdering sjekker en deterministisk port setnings- og ordgrenser, språkavtale, forbudte fragmenter, innpakning av tegnsetting og flerspråklige klisjémønstre.
Test nyhet og kvalitet
Når sammenligningsinnbygging er tilgjengelig, står overlevende overfor en semantisk nesten duplikatsjekk, deretter en separat guidet dommer og særpreg. Et strømmet utkast som overskrider en påkrevd terskel, forkastes i stedet for å vedvares stille.
Vedvarer den overlevende
Metadata beregnes vekk fra hovedaktøren. SwiftData-innsetting går tilbake til hovedaktøren, merker linjen som generert og ikke offentlig domene, og ruller tilbake forbigående innlegg hvis lagring mislykkes.
Gjenbruk lokal stat
App- og systemoverflatene bruker det lagrede tilbudet. Widgets leser vedvarende data; de vekker ikke språkmodellen inne i en utvidelsestidslinje.
Veiledet utgang smalner formen; koden eier fortsatt policyen
Utkastet er en Swift-type merket@Generable. Guiden ber om én original setning, normalt 10–16 ord med en hard melding på maksimalt 18, og forbyr attribusjon, innpakning av anførselstegn, hashtags, emoji, markdown og linjeskift. Produksjonsalternativene bruker temperatur 0,7 og et tak på 40 symboler: nok plass til strukturert omslag og kort setning, uten å invitere avsnittslengde.
Dette gjør ikke validering valgfri. Apple beskriver guidet generering som en måte å produsere strukturerte Swift-data på, ikke en garanti for at innholdet oppfyller alle produktregler. RiseHush behandler derfor modellens typeverdi som et utkast som ikke er klarert. Den forkortede skissen nedenfor bevarer produksjonsrekkefølgen og tersklene samtidig som den utelater appspesifikke spørsmål og utholdenhetsdetaljer.
@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 en andre pasning fortsatt ikke var nok
Det første avvisningslaget er deterministisk: tom utgang, forbudte promptrester, innpakning av sitater, ord- og setningsgrenser, språkuenighet og flerspråklige klisjéarmaturer. Et lokalt Core ML smaksfilter kan legge til et lært signal for engelsk, tysk, spansk, fransk, italiensk og portugisisk; det er bevisst hoppet over i stedet for feil brukt utenfor de kalibrerte lokalitetene.
Deretter, når sammenligningsinnbygginger er tilgjengelige, sammenligner en semantisk nyhetsport kandidaten med en avgrenset lokal katalog og avviser nesten duplikater ved en cosinuslikhetsterskel på 0,90. Hvis katalogen er tom eller en innbygging ikke kan produseres, går det laget gjennom i stedet for å hevde at nyheten ble bevist. En ny Foundation Models-økt gir deretter generell kvalitet, originalitet og varme. Den dommeren er en separat sesjon som bruker samme systemmodell – ikke en uavhengig modell og ikke en menneskelig vurdering. Hvis den er utilgjengelig, nekter eller ikke kan produsere strukturert utgang, gir en deterministisk poengsum en begrenset fallback.
Til slutt belønner en karakteristisk poengsum konkrete bilder, handling, emosjonell spesifisitet og handlefrihet, mens den straffer formler og nylige negative ankere. Aksept krever for øyeblikket en dommerscore på minst 6 og særpreg på minst 5. Dette er produktterskler, ikke bevis på global originalitet eller sikkerhet.
| Bekymring | Implementering | Hvorfor det eksisterer |
|---|---|---|
| Tilgjengelighet | Sjekk modellstatus og lokalitetsstøtte før hver generasjonsbane; registrere hvorfor beredskapen mislyktes. | "Apple Intelligence-kompatible" betyr ikke at modellen er klar nå eller støtter besøkendes aktive språk. |
| Struktur | Bruk @Generable og @Guide for utkastformen i stedet for å analysere et oppfunnet JSON-svar. | Swift-typen er produksjonskontrakten, mens deterministisk kode fortsatt eier produktregler. |
| Samtidighet | Hold modellstrømming og metadataarbeid unna hovedaktøren; kryss tilbake kun for lokal modell utholdenhet. | Turneringen av Foundation Models kan ta sekunder, mens SwiftData-modellobjekter forblir aktørbundne. |
| Kvalitet | Lagdeterministiske regler, semantisk nyhet, en egen dommer og egenarteterskler. | Guidet generasjon begrenser formen; det garanterer ikke sannhet, originalitet, tone eller produktkvalitet. |
| Latens | Forvarm kun på generasjonskompatible forgrunnsoverflater og bruk endelige budsjetter: 45 sekunder i grensesnittet, 20 for Siri, 120 for et bakgrunnsbasseng. | En brukervendt forespørsel må ikke vente evig på eiendeler, satsgrenser eller en langsom modellvending. |
| Utholdenhet | Lagre aksepterte linjer som lokalt genererte poster, aldri som forfattersitater i det offentlige domene; rulle tilbake etter en mislykket lagring. | Generert skrift trenger varig opprinnelse og må aldri arve en ekte persons attribusjon. |
Hold modellen vendt bort fra hovedaktøren
Den offentlige tjenesten returnerer SwiftData-modellobjekter, så inngangspunktene forblir hovedaktør-bundne. Den dyre Foundation Models responsløkke gjør det ikke. Hver forespørsel eier en nyLanguageModelSession; strømming og metadataberegning løper bort fra hovedaktøren, med små eksplisitte hopp for aktørbundne promptsignaler og utholdenhet.
Streaming gir delvis strukturerte øyeblikksbilder for grensesnittet, og sender deretter den endelige teksten gjennom samme gate, nyhet, dommer og særpreg som bassengbanen. En fullført strøm krysser aktører med vedvarende identifikator i stedet for å flytte en SwiftData-modell som ikke kan sendes. Den som ringer løser denne identifikatoren på sin egen aktør.
Kun akseptert tekst settes inn. Posten er skrevet som RiseHush, merketsource = .generatedogisPublicDomain = false, merket med lokaliteten og beriket med lokalt beregnede metadata. Hvis lagring mislykkes, slettes de forbigående innleggene før feilen kommer tilbake.
Jord portvakten med tre skrivebeskyttede verktøy
Ask RiseHush har ikke lov til å finne opp en persons bibliotektilstand. Apples verktøyanrops-API lar en økt be om å begrense appfunksjoner og inkludere returnerte data. Appen viser tre avgrensede, skrivebeskyttede verktøy; ingen når en RiseHush-server.
Verktøyargumenter og utdatastørrelser er begrenset. Oppslag i lagrede tilbud gir maksimalt åtte resultater, katalogsøk på maksimalt fem, og total verktøyutgang er begrenset. Verktøyet for lagrede tilbud kan returnere nylige samsvarende varer, men det godtar ikke et kalenderområde – så produktet skal ikke love at modellen kan svare "hva lagret jeg forrige uke?"
Katalogsitatsøk
Søker i den medfølgende sitatkatalogen etter humør, kategori eller tema. Den ber ikke modellen om å finne opp en kilde.
Lagret tilbudsoppslag
Slår opp personens egne lagrede og favorittsitater i lokal lagring.
Strekstatus
Leser den lokale inspirasjonsrekken slik at Ask RiseHush kan svare på et avgrenset personlig spørsmål.
Feiladferd er en del av arkitekturen
Tilgjengelighet er ikke en boolsk. En kompatibel enhet kan fortsatt ha Apple Intelligence deaktivert, modellelementer som forberedes eller et språk systemmodellen ikke støtter. Kjøretidsgenerering kan også nekte, treffe et autovern, overskride kontekst, bli strupet, møte en samtidig forespørsel, mislykkes i strukturert parsing eller timeout.
RiseHush kartlegger disse tilfellene til begrenset produktadferd. Forgrunnsgenerering har et budsjett på 45 sekunder, Siri 20 sekunder og bakgrunnsbassenggenerering 120 sekunder. Det kuraterte biblioteket forblir det ærlige tilbakeslaget; appen lagrer aldri plassholderprosa som om en modell lyktes.
| Signal | Atferd |
|---|---|
| Enheten er ikke kvalifisert eller Apple Intelligence deaktivert | Generasjon er utilgjengelig. Det eksisterende kuraterte biblioteket forblir brukbart uten å late som om en modellrespons skjedde. |
| Modellelementer er ikke klare | Forespørselen rapporterer en ikke-klar tilstand. Når Apples modelleiendeler er til stede, krever ikke slutningen i seg selv en RiseHush-server. |
| Forespurt lokalitet støttes ikke | En oversettelsesdyktig bane kan fullstendig lukke et engelsk utkast og oversette det lokalt der Apples oversettelsesrammeverk støtter paret; ellers beholder appen den kurerte reserven. Den oversatte teksten sjekkes for et ikke-tomt resultat, men gjentar ikke hele målspråkporten, nyheten og dommerstabelen. |
| Rekkverk, avslag, hastighetsgrense, parsing, kontekst, samtidighet eller tidsavbrudd | Strømmebanen snurrer ikke gjennom et ubegrenset inline-forsøk. Den returnerer ingen generert kandidat og lar produktet falle tilbake rent. |
| Utkast overser en kvalitetsgrense | Den endelige bassengbanen kan prøve et annet utkast; direktesendingen avbryter i stedet for å animere et nytt svar. Avvist tekst lagres ikke. |
| SwiftData-lagring mislykkes | Tjenesten fjerner sine forbigående innlegg og viser en vedvarende feil i stedet for å legge igjen et halvt lagret tilbud. |
En reproduserbarhetsprotokoll, uten oppfunne resultater
Protokollen nedenfor skiller kildeinspeksjon fra levende enhetsbevis. Registrer maskinvare, OS-oppbygging, lokalitet, Apple Intelligence-tilstand, modellberedskap, prompt-oppsett, medgått tid, terminalgren, årsak til avvisning og utholdenhetsresultat for hver kjøring. Apples Foundation Models Instruments kan avsløre prompt-, verktøy-, token- og latensatferd under en ekte økt.
En maskinlesbar versjon er tilgjengelig somFoundation Models evaluation protocol (JSON). Den inneholder matrisen og feltkontrakten, ikke fabrikkerte mål. Når en gjeldende fysisk enhetskjøring er godkjent, legger du til dens anonymiserte rader og publiserer samlede verdier for aksept, tidsavbrudd og ventetid med den nøyaktige enheten og operativsystemet.
- Bruk kompatibel maskinvare med et støttet operativsystem. Test Apple Intelligence aktivert og klar, deaktivert og laster fortsatt ned.
- Gjenta med en støttet lokalitet og en ikke-støttet lokalitet; bekreft at appen skiller modellstøtte fra generell enhetskvalifisering.
- Etter at modellelementene er klare, gjenta i flymodus og bekrefte at ingen RiseHush-generasjonsendepunkt er nødvendig.
- Observer delvis tekst mens du samhandler med grensesnittet; bekreft at rulling og kontroll forblir responsive under modellsvingen.
- Feed-armaturer som er tomme, med flere setninger, for lange, pakket inn i anførselstegn, på feil språk, klisjéaktige eller nesten duplikater; ingen skal bli lagrede genererte rader.
- Utløse dommeravvisning og en begrenset timeout; bekrefte at ingen avvist utkast vedvarer og at den kurerte opplevelsen forblir tilgjengelig.
- Tvinge en lokal lagringsfeil i en testbutikk; bekreft at innsatte modeller er rullet tilbake.
- Tren Siri med dets kortere tidsbudsjett og kontroller at widgeter bare leser vedvarende data i stedet for å starte generering i utvidelsen.
Hva denne arkitekturen ikke beviser
En kvalitetsrørledning kan synliggjøre feil og redusere dårlig utholdenhet. Den kan ikke gjøre en liten språkmodell på enheten til en historisk kilde, bevise at en setning aldri har blitt skrevet noe sted, eller garantere smak. Genererte linjer tilskrives derfor aldri historiske forfattere og kommer aldri inn i den offentlige domenekatalogen.
Oversettelse fortjener en egen advarsel. For en lokalitet som ikke støttes direkte av Foundation Models, gir den valgfrie banen fullstendig et engelsk utkast og bruker deretter Apples oversettelsesrammeverk på enheten der paret er tilgjengelig. Det oversatte resultatet blir sjekket for et ikke-tomt svar og vedvarer med nye metadata, men det gjentar for øyeblikket ikke hele målspråkporten, nyheten og bedømmelsessekvensen etter oversettelsen. Den veien er et fallback, ikke bevis på lik direktegenerasjonskvalitet.
Modell- og OS-oppdateringer kan endre tilgjengelighet, ventetid, avslagsatferd og utdatadistribusjon. Apple anbefaler å gå tilbake til forespørsler og evaluering når grunnmodellene endres. RiseHushs testmatrise må derfor kjøres på nytt etter materialplattformoppdateringer i stedet for å behandle denne siden som permanent benchmark-bevis.
- Systemmodellen brukes ikke som kilde til historiske sitatfakta eller forfatterattribusjon.
- Strukturert utgang og en andre modellpassering reduserer feilmoduser; de beviser ikke at en linje er dyp, original i global forstand eller passer for alle.
- Det semantiske nyhetslaget går gjennom når den avgrensede katalogen er tom eller sammenligningsinnbygginger ikke er tilgjengelige; den reduserer kjente nesten duplikater, men bekrefter ikke global originalitet.
- Frakoblet generering avhenger av kompatibel maskinvare, aktivert Apple Intelligence, støttet språkadferd og modellressurser som allerede er klare.
- Det valgfrie innlærte Core ML-smaksfilteret er kalibrert for engelsk, tysk, spansk, fransk, italiensk og portugisisk; andre lokaliteter mottar fortsatt de deterministiske og modellbaserte lagene som støtter dem.
- Et lokalt oversatt fallback tilsvarer ikke direkte målspråkgenerering: det nåværende oversatte resultatet gjentar ikke hvert kvalitetslag etter oversettelse.
- OS- og modelloppdateringer kan endre ventetid og utgangsdistribusjon, så enhetsmatrisen må kjøres på nytt etter endringer i materialplattformen.
- Denne siden beskriver den nåværende arkitekturen, ikke et løfte om at hver plattformflate kjører Foundation Models. Widgeter bruker med vilje vedvarende resultater.
Sender RiseHush anbudsgenerering til sin egen server?
Nei. På støttede enheter der systemmodellen er tilgjengelig, kjøres tilbudsutkastet og kvalitetskortet med Apples rammeverk på enheten. RiseHush har ikke noe sluttpunkt for denne banen.
Garanterer @Generable et godt eller originalt sitat?
Nei. Det begrenser formen til strukturert utgang. RiseHush bruker fortsatt deterministisk formatering og språkregler, semantisk nesten duplikatdeteksjon når sammenligningsinnbygginger er tilgjengelige, en separat dommerøkt, karakteristisk poengsum og endelig avvisningsatferd.
Kan en annen utvikler gjengi den eksakte genererte setningen?
Ikke pålitelig. Språkmodellutdata er ikke-deterministisk og kan endres med modell- eller OS-oppdateringer. Den reproduserbare enheten er beredskaps-, fikstur-, gate-, timeout- og utholdenhetsprotokollen – ikke identisk prosa.
Får alle støttede språk den samme kvalitetsbanen?
Nei. Direkte støttede lokaliteter mottar den vanlige generasjonsbanen, mens det innlærte Core ML-filteret er kalibrert for seks språk. En valgfri lokalt oversatt reserve starter fra et lukket engelsk utkast, men gjentar ikke hvert målspråkkvalitetslag etter oversettelsen.
- 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
