Обмеженням не було «змусити модель написати цитату»
Одна підказка може створити речення. Він не може визначити, чи готова системна модель, підтримувати чутливість інтерфейсу, відрізнити згенерований рядок від історичної цитати, запобігти потраплянню майже дубліката в бібліотеку або залишити продукт корисним, якщо висновок не вдається. Ці навколишні рішення є особливістю.
RiseHush не має механізму висновків. На підтримуваних пристроях Apple Intelligence програма надсилає обмежене підказку системній мовній моделі Apple на пристрої та зберігає прийнятий результат у локальній системі SwiftData. Розвідувальна сторінка продуктупояснює, що бачить людина; ця стаття документує шлях впровадження та його межі. Власний API доступності Apple залишається авторитетом для визначення того, чи можна запускати модель зараз.
«Відтворюваний» тут означає, що інший інженер може повторити матрицю готовності, фікстури відхилення, шляхи тайм-ауту та перевірки стійкості. Це не означає, що недетермінована модель мови повертатиме ту саму прозу біт за біт. Ця сторінка повідомляє про перевірену вихідну архітектуру, а не про нові показники якості фізичних пристроїв; результат тестування не виводиться з тестового сценарію.
- Висновок:системна мовна модель Apple на пристрої.
- Вихідний контракт:Керований тип Swift, потім детермінована перевірка.
- Зберігання:Локальні рядки SwiftData позначено як створені.
- Шлях мережі:Немає сервера генерації RiseHush або сторонньої моделі.
Від підказки до бібліотеки: виробничий шлях
Це архітектура вбудованого генератора котирувань RiseHush, перевірена в поточному джерелі програми. Він документує ворота, шляхи збоїв і перевіряє, які розробник може відтворити; це не зразковий еталон чи твердження, що кожна чернетка хороша.
Замовлення навмисне. Дешеві, зрозумілі перевірки виконуються перед додатковими висновками; запис не відбувається, доки кожен необхідний шлюз не прийме кандидата. Потокова відповідь – це тимчасовий текст інтерфейсу, а не збережена цитата.
Доведіть готовність
Служба перевіряє доступність моделі системи та запитану мову перед тим, як створити сеанс. Відповідність пристрою, стан Apple Intelligence, готовність модельного ресурсу та підтримка мови є окремими результатами.
Обмежте протяг
Тип @Generable Swift запитує одне вихідне речення, як правило, 10–16 слів і ніколи не більше 18, без атрибуції, уцінки, хештегів, емодзі чи лапок.
Потік від головного актора
Свіжий сеанс LanguageModelSession попередньо розігрівається для запиту. Частково структуровані миттєві знімки можуть оновлювати інтерфейс, тоді як цикл базових моделей залишається поза головним актором.
Відкидайте очевидні невдачі
Перед будь-яким судженням на основі моделі детермінований шлюз перевіряє обмеження речень і слів, мовну згоду, заборонені фрагменти, розділові знаки, що переносять, і шаблони багатомовних кліше.
Тест на новизну та якість
Коли доступні вбудовування порівняння, ті, хто вижив, стикаються з семантичною перевіркою майже дублікатів, потім окремим керованим суддею та оцінкою відмінності. Потокова чернетка, яка не досягає необхідного порогу, відкидається, а не зберігається мовчки.
Наполягайте на тому, хто вижив
Метадані обчислюються поза головним актором. Вставка SwiftData повертається до головного актора, позначає рядок як створений, а не загальнодоступний, і відкочує тимчасові вставки, якщо збереження не вдається.
Повторне використання локального стану
Програма та системні поверхні використовують збережену цитату. Віджети читають збережені дані; вони не активують мовну модель у часовій шкалі розширення.
Керований вихід звужує форму; код все ще володіє політикою
Чернетка є типом Swift з позначкою@Generable. Його посібник вимагає одне оригінальне речення, зазвичай 10–16 слів із жорстким максимумом підказки 18, і забороняє посилання на авторство, лапки, хештеги, емодзі, уцінку та розриви рядків. Варіанти виробництва використовують температуру 0,7 і стелю з 40 токенів: достатньо місця для структурованої обгортки та короткого речення, без запрошення виводу довжиною абзацу.
Це не робить перевірку необов’язковою. Apple описує керовану генерацію як спосіб створення структурованих даних Swift, а не як гарантію того, що вміст відповідає кожному правилу продукту. Тому RiseHush розглядає введене значення моделі як ненадійну чернетку. Наведений нижче скорочений ескіз зберігає робочий порядок і порогові значення, опускаючи підказки та постійні деталі для конкретної програми.
@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.
Чому другого проходу все одно було недостатньо
Перший рівень відхилення є детермінованим: порожній вихід, заборонений залишок підказки, перенесення цитат, обмеження слів і речень, мовні розбіжності та багатомовні кліше. Локальний фільтр смаку Core ML може додати вивчений сигнал для англійської, німецької, іспанської, французької, італійської та португальської мов; його навмисно пропускають, а не неправильно застосовують за межами цих відкаліброваних локалей.
Далі, коли доступні вбудовування порівняння, шлюз семантичної новизни порівнює кандидата з обмеженим локальним каталогом і відхиляє майже дублікати з порогом косинусної подібності 0,90. Якщо каталог порожній або вбудовування не може бути створено, цей шар проходить, а не стверджує, що новизна була доведена. Потім нова сесія Foundation Models оцінює загальну якість, оригінальність і тепло. Це суддя – це окрема сесія, яка використовує ту саму модель системи, а не незалежна модель і не перевірка людьми. Якщо він недоступний, відмовляється або не може створити структурований вихід, детермінована оцінка забезпечує обмежений резервний варіант.
Нарешті, оцінка відмінності винагороджує конкретні образи, дії, емоційну специфіку та свободу дій, водночас покараючи формули та останні негативні прив’язки. Наразі для схвалення потрібна оцінка судді принаймні 6 і відмінність принаймні 5. Це порогові значення продукту, а не доказ глобальної оригінальності чи безпеки.
| Занепокоєння | Реалізація | Чому він існує |
|---|---|---|
| Доступність | Перевірте стан моделі та підтримку локалі перед кожним шляхом генерації; записати, чому не вдалося виконати готовність. | «Підтримує Apple Intelligence» не означає, що модель уже готова або підтримує активну мову відвідувача. |
| Структура | Використовуйте @Generable і @Guide для чернетки фігури замість аналізу вигаданої відповіді JSON. | Тип Swift є контрактом виведення, тоді як детермінований код все ще володіє правилами продукту. |
| Паралелізм | Тримайте потокову передачу моделі та роботу з метаданими подалі від головного актора; перехрестити назад лише для збереження локальної моделі. | Черг базових моделей може тривати секунди, тоді як об’єкти моделі SwiftData залишаються прив’язаними до актора. |
| якість | Детерміновані правила шару, семантична новизна, окремий суддя та пороги відмінності. | Керована генерація звужує форму; це не гарантує правдивості, оригінальності, тону або якості продукту. |
| Затримка | Попередній нагрів лише на передніх поверхнях із можливістю генерації та застосування обмежених бюджетів: 45 секунд в інтерфейсі, 20 для Siri, 120 для фонового пулу. | Запит користувача не повинен вічно чекати на активи, обмеження швидкості або повільний поворот моделі. |
| Наполегливість | Зберігайте прийняті рядки як локальні згенеровані записи, а не як загальнодоступні авторські цитати; відкат після невдалого збереження. | Створений текст потребує тривалого походження та ніколи не повинен успадковувати атрибуцію реальної особи. |
Тримайте модель від головного актора
Загальнодоступна служба повертає об’єкти моделі SwiftData, тому її точки входу залишаються прив’язаними до головного актора. Дорого циклу відповіді Foundation Models немає. Кожен запит володіє свіжимLanguageModelSession; потокове передавання та обчислення метаданих відходять від головного актора з невеликими явними стрибками для зв’язаних із актором сигналів підказок і постійності.
Потокове передавання дає часткові структуровані знімки для інтерфейсу, а потім передає остаточний текст через ті ж смужки воріт, новизни, оцінки та відмінності, що й шлях пулу. Завершений потік перетинає акторів за постійним ідентифікатором, а не переміщує модель SwiftData, яка не надсилається. Абонент визначає цей ідентифікатор на власному акторі.
Вставляється лише прийнятий текст. Запис створено як RiseHush, позначено якsource = .generatedіisPublicDomain = false, позначено його локаль і збагачено локально обчисленими метаданими. Якщо збереження не вдається, тимчасові вставки видаляються до повернення помилки.
Заземліть консьєржа за допомогою трьох інструментів лише для читання
Запитайте. RiseHush не має права вигадувати стан бібліотеки людини. API виклику інструментів Apple дозволяє запиту сеансу звузити функції додатка та включити їх повернуті дані. Додаток пропонує три обмежені інструменти лише для читання; жоден не досягає сервера RiseHush.
Аргументи інструмента та розміри вихідних даних обмежені. Пошук за збереженою пропозицією повертає щонайбільше вісім результатів, пошук у каталозі – щонайбільше п’ять, а загальний результат інструменту обмежено. Інструмент збережених цитат може повертати останні відповідні елементи, але він не приймає календарний діапазон, тому продукт не повинен обіцяти, що модель може відповісти «що я зберіг минулого тижня?»
Пошук цін за каталогом
Пошук у зведеному каталозі пропозицій за настроєм, категорією чи темою. Він не вимагає від моделі винайти джерело.
Збережений пошук цитат
Шукає власні збережені та улюблені цитати людини в локальному сховищі.
Статус серії
Читає місцеву смугу натхнення, щоб Ask RiseHush міг відповісти на обмежене особисте запитання.
Поведінка при відмові є частиною архітектури
Доступність не є логічним значенням. На сумісному пристрої все ще може бути вимкнено Apple Intelligence, підготовка активів моделі або мова, яку модель системи не підтримує. Генерація середовища виконання також може відмовитися, натрапити на огорожу, вийти за межі контексту, бути придушеною, зіткнутися з одночасним запитом, помилкою структурованого аналізу або тайм-аутом.
RiseHush відображає ці випадки на кінцеву поведінку продукту. Генерація на передньому плані має 45-секундний бюджет, Siri – 20 секунд, а фонова генерація пулу – 120 секунд. Кураторська бібліотека залишається чесним запасним варіантом; програма ніколи не зберігає прозу-заповнювач, ніби модель успішна.
| Сигнал | Поведінка |
|---|---|
| Пристрій не відповідає вимогам або Apple Intelligence вимкнено | Генерація недоступна. Існуюча підібрана бібліотека залишається придатною для використання, не вдаючи, що відбулася відповідь моделі. |
| Ресурси моделі не готові | Запит повідомляє про стан неготовності. Після того, як активи моделі Apple присутні, сам висновок не потребує сервера RiseHush. |
| Запитана мова не підтримується | Шлях із можливістю перекладу може повністю шлюзувати чернетку англійською мовою та перекладати її локально, якщо платформа перекладу Apple підтримує цю пару; інакше програма зберігає підібраний запасний варіант. Перекладений текст перевіряється на наявність непорожнього результату, але не повторює повний стек воріт цільової мови, новизни та оцінок. |
| Огородження, відмова, обмеження швидкості, аналіз, контекст, паралелізм або помилка тайм-ауту | Шлях потокового передавання не обертається через необмежену вбудовану повторну спробу. Він не повертає жодного згенерованого кандидата та дозволяє продукту повертатися назад. |
| Чернетка не відповідає порогу якості | Шлях кінцевого пулу може спробувати інший проект; пряму трансляцію переривається, а не анімує другу відповідь. Відхилений текст не зберігається. |
| Помилка збереження SwiftData | Служба видаляє тимчасові вставки та виявляє збій постійності замість того, щоб залишати напівзбережену цитату. |
Протокол відтворюваності без вигаданих результатів
Наведений нижче протокол відокремлює перевірку джерела від перевірки живого пристрою. Записуйте апаратне забезпечення, збірку ОС, локаль, стан Apple Intelligence, готовність моделі, фіксацію підказок, час, що минув, розгалуження терміналу, причину відхилення та результат збереження для кожного запуску. Інструменти Apple Foundation Models можуть показувати поведінку підказок, інструментів, маркерів і затримки під час реального сеансу.
Машинозчитувана версія доступна як протокол оцінкиFoundation Models (JSON). Він містить матрицю та контракт поля, а не сфабриковані вимірювання. Коли поточний запуск фізичного пристрою схвалено, додайте його анонімні рядки та опублікуйте сукупні значення прийняття, часу очікування та затримки з точним пристроєм і ОС.
- Використовуйте сумісне обладнання з підтримуваною ОС. Тест Apple Intelligence увімкнено та готово, вимкнено та продовжує завантажуватися.
- Повторіть для підтримуваної та непідтримуваної мови; переконайтеся, що програма відрізняє підтримку моделі від загальної придатності пристрою.
- Коли активи моделі будуть готові, повторіть у режимі польоту та підтвердьте, що кінцева точка генерації RiseHush не потрібна.
- Спостерігайте за частиною тексту під час взаємодії з інтерфейсом; переконайтеся, що прокручування та елементи керування залишаються чуйними під час повороту моделі.
- Пристосування каналів, які є порожніми, складаються з кількох речень, надто довгі, взяті в лапки, неправильною мовою, шаблонні або майже повторювані; жоден не повинен стати збереженими згенерованими рядками.
- Тригер відмови судді та обмежений тайм-аут; переконайтеся, що жодна відхилена чернетка не зберігається, а підібраний досвід залишається доступним.
- Викликати помилку локального збереження в тестовому сховищі; підтвердити, що вставлені моделі відкочуються.
- Потренуйте Siri з її коротшим бюджетом часу та переконайтеся, що віджети зчитують лише збережені дані, а не починають генерацію в розширенні.
Чого ця архітектура не доводить
Якісний конвеєр може зробити збій видимим і зменшити погану стійкість. Він не може перетворити маленьку мовну модель пристрою на історичне джерело, довести, що речення ніколи ніде не було написано, або гарантувати смак. Тому створені рядки ніколи не приписуються історичним авторам і ніколи не потрапляють у публічний каталог.
Переклад заслуговує окремого попередження. Для локалі, яка не підтримується безпосередньо Foundation Models, необов’язковий шлях повністю шлюзує чернетку англійською мовою, а потім використовує структуру перекладу Apple на пристрої, де ця пара доступна. Перекладений результат перевіряється на непорожню відповідь і зберігається з новими метаданими, але наразі він не повторює повну послідовність воріт цільової мови, новизну та оцінку після перекладу. Цей шлях є резервним варіантом, а не доказом рівної якості прямого генерування.
Оновлення моделі та ОС можуть змінювати доступність, затримку, поведінку відмови та розподіл вихідних даних. Apple рекомендує переглядати підказки та оцінку в міру зміни базових моделей. Таким чином, тестову матрицю RiseHush слід повторно запускати після оновлень суттєвої платформи, а не розглядати цю сторінку як постійний тестовий доказ.
- Модель системи не використовується як джерело фактів історичних цитат або авторства.
- Структурований вихід і другий прохід моделі зменшують кількість відмов; вони не доводять, що рядок є глибоким, оригінальним у глобальному сенсі чи придатним для всіх.
- Рівень семантичної новизни проходить, коли його обмежений каталог порожній або вбудовування порівняння недоступні; він зменшує відомі майже дублікати, але не засвідчує глобальну оригінальність.
- Генерація в автономному режимі залежить від сумісного апаратного забезпечення, увімкненого Apple Intelligence, поведінки підтримуваної мови та ресурсів моделі, які вже готові.
- Додатковий навчений смаковий фільтр Core ML відкалібрований для англійської, німецької, іспанської, французької, італійської та португальської мов; інші локалі все ще отримують детерміновані та модельні рівні, які їх підтримують.
- Резервний варіант із локальним перекладом не еквівалентний безпосередньому створенню цільової мови: поточний результат перекладу не повторює кожен рівень якості після перекладу.
- Оновлення ОС і моделі можуть змінити затримку та розподіл вихідних даних, тому матрицю пристрою потрібно повторно запустити після зміни істотної платформи.
- Ця сторінка описує поточну архітектуру, а не обіцяє, що на кожній поверхні платформи працюють базові моделі. Віджети навмисно споживають постійні результати.
Чи надсилає RiseHush підказки для генерації цін на власний сервер?
Ні. На підтримуваних пристроях, де доступна модель системи, чернетка цінової пропозиції та пропуски якості виконуються за допомогою фреймворків Apple на пристрої. RiseHush не має кінцевої точки висновку для цього шляху.
Чи гарантує @Generable хорошу чи оригінальну пропозицію?
Ні. Це обмежує форму структурованого виведення. RiseHush досі застосовує детерміноване форматування та мовні правила, семантичне виявлення майже дублікатів, коли доступні вбудовування порівняння, окрему сесію суддівства, оцінку відмінності та поведінку кінцевого відхилення.
Чи може інший розробник відтворити точне згенероване речення?
Не надійно. Вихід мовної моделі є недетермінованим і може змінюватися з оновленнями моделі чи ОС. Відтворюваною одиницею є протокол готовності, фікстури, воріт, тайм-ауту та стійкості, а не ідентична проза.
Чи кожна підтримувана мова отримує однаковий шлях якості?
Ні. Безпосередньо підтримувані локалі отримують загальний шлях генерації, тоді як отриманий фільтр Core ML відкалібрований для шести мов. Необов’язковий локально перекладений запасний варіант починається з закритого чернетки англійською мовою, але не повторює кожен рівень якості цільової мови після перекладу.
- 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
