Kavramlar

Nasıl çalışır

Üç katman, bir cümleyi render edilen UI'a ve yürütülen aksiyonlara dönüştürür.

Her tur üç katmandan geçer:

Tek bir turun anatomisi: Bir POST bir olay akışı açar, akış sunucunun cihaza ihtiyaç duymasıyla sona erer ve cihaz başka bir POST ile yanıt verir.Cihazda“Siparişim nerede?”POST /v1/chatSunucularımızdaMaskele, getir, yönlendirKullanıcıların yazdığı e-posta adresleri ve telefon numaralarıyer tutuculara dönüşürBasit bir tur için Haiku, zor bir tur için SonnetturBloklar, akışla iletilirblock.start · delta · readyturn.end awaiting_tool_resultstext/event-streamYerel bileşenlerweb view değil, uygulamanız çizerTur bir şey talep ettiyseKullanıcı onaylaryazma veya yıkıcı bir aksiyon içinaksiyon; read bunu atlarİşleyiciniz çalışıruygulamanızda, kullanıcınız olarak veyabir yönetim paneli aksiyonu için sunucumuzSonraki turtool_resultsAynı sohbet, aynı id ve kullanım satırı bir kez yazıldı.Aynı turn_id değerini taşıyan bir yeniden deneme, ikinci bir tur sayılmaz.
Bir tur; bir POST, bir akış ve bir satır kullanımdır. Sunucunun cihazdan bir şeye ihtiyaç duyduğu her an akış sonlanır; cihaz bir sonrakini açarak yanıt verir. Beklemede hiçbir şey açık tutulmaz.
  1. Yanıt yüzeyi. Markalı başlatıcı ve Rendel'in ekranı. Soru ekranın üzerine yazılır, bir mesaj olarak tutulmaz. Durum hapı bu turun ne yaptığını belirtirken yanıt blok blok, kendine ait bir sayfa olarak gelir. Bir ürün veya liste kartına dokunulduğunda sayfanın üzerinde bir detay sayfası olarak açılır; geri ve ileri tuşları bu oturumun açtığı sayfalar arasında geçiş yapar.
  2. Generative UI motoru. Model, tipleri tanımlı bir bileşen kataloğundan bir yanıt oluşturur. Sunucu, cihaza henüz ulaşmadan önce her bloğu katalog şemasına göre doğrular; SDK hiçbir zaman ham model çıktısını render etmez.
  3. aksiyon motoru. Kodda kaydettiğiniz aksiyonlar, kullanıcının kendi oturumuyla uygulamanızın içinde çalışır. Yönetim panelinde işaretlediğiniz uç noktaları sunucumuz çağırır ve bunlar yalnızca oturum açmış kullanıcı olarak bir şeyleri değiştirir. Rendel her iki durumda da öneride bulunur, bir yazma işlemi kullanıcının dokunmasını bekler ve bunu kodunuz veya API'niz yapar.

İstek yaşam döngüsü

question, form, selection or action results   (one POST /v1/chat)
  -> gate        key, allowed domain, rate limits, quota
  -> redact      emails and phones to placeholders; card and ID numbers dropped
  -> classify    fast or frontier model; which component families this turn needs
  -> ground      knowledge (when needed) + app state + open forms + the card a detail was opened from
  -> generate    render_ui (the page's blocks + those families) + your actions
  -> validate    per block: schema, tap kinds the build declared, routes,
                 values from action results, console switches (uploads, contact channels),
                 one rating per conversation; a failure is sent as its fallback_text
  -> render      a page, block by block, native on the device
  -> act         reads run at once; writes wait for a confirmation card;
                 results come back on the next POST

Rendel cihazdan bir şeye (bir aksiyon sonucu, bir onay) ihtiyaç duyduğunda akış kapanır. SDK bir devam isteğiyle yanıt verir. Mobil ağlar bağlantıyı koparır; bu tasarım bunu ölümcül olmak yerine sıradan hale getirir.

Rendel'in yapamadıkları

  • Kodda kaydettiğiniz veya yönetim panelinde etkinleştirdiğiniz bir aksiyon dışındaki hiçbir şeyi çağıramaz ya da registerRoute ile kaydetmediğiniz bir ekranı açamaz.
  • Kullanıcı bir onay kartına dokunmadan bir yazma işlemini veya yıkıcı bir aksiyonu yürütemez.
  • Kullanıcıların mesajlarında yazdığı ham e-postaları veya telefon numaralarını göremez: bunlar model çağrısından önce tip tanımlı yer tutuculara dönüşür ve gerçek değerler asla bir bağlantıya değil, yalnızca sohbetin sahibi olan cihaza geri döner. Kart numaraları doğrudan silinir ve asla geri gelmez. Bkz. redaksiyon.
  • Şema doğrulamasından geçemeyen UI'ı render edemez: geçersiz bloklar düz metin alternatifine indirgenir.
  • Kullanıcının karşısına; aksiyonlarınızdan biri bunu döndürmedikçe (veya bir telefon numarası için, yönetim panelinde ayarlanmış bir iletişim kanalı olmadıkça) bir telefon numarası, adres, harita iğnesi, geçiş kodu, takvim zamanı veya fromActions rota parametresi çıkaramaz.