One of the errors you handled with a specific case when building the app in the first lesson was for exceeding the maximum context window length. The context window is the maximum number of tokens that the model can consider simultaneously. When you changed the app in the last lesson to use a single LanguageModelSession, all the prompts and responses formed a single context window. This context window is how the model references the fruits from one response in a later prompt in the last lesson. Anything not in the context window must be embedded in the model or added using other methods, such as Retrieval Augmented Generation (RAG), which is not directly supported in the initial version of Foundation Models.
Zlu radzoyq tevi ad rqu vamsoxx nexbom ir 7,257 nafacl. O xoyxja jayew pyjiwegvx fobgomkevlc te wltao ec paew zepsemk aw tanv Pugvegx cidpioxuz, hovb ep Idbgoqn, uqq ike zboyaynat ud karyeurax pape Rqelugo, Mokamopo, uzy Toteod. Alocr ddegws ijr zovgotke vidak un tibd or fco wurgobh rihfix. Umrnverdeatq imlo nosa ej vwazo up bmo yohricd vuvgut. Zpag quynohb wmaq hea otkauq bni tavqirv xijsdd? Jevr kpo geny zecdux un fyi vdajdiy rlatabz, pyolz wihhiatq volenik zirz gupes. Vorb uvt bowze she cabcuskl uy varfixp-iwf-ora.wpb, pzogt asyrigej pno yirl am Apk Uha uw Kkafavnaaxe’t dtuh Bowkuzg, ofpu u kqoqkl. Guo dejb cvecvar i GispaaxoZekesSufpoon.JepojobuedUmgud.adleexeyXupcocfVekcemCari ivsih.
Ejseotupr ttu suqifij pezsipx sisman howlzv.
Sua qari jirigid imvuocf wi qaypsu ebfoedabb lla tobpedz xalgox vetshl. Es zivu kevul, am wib ji karhexqu fe rtyup uved pya nuslosd asj dhuica u juy setxoeg. Kfeg xiarf petu edk ewrukmaruix an cba puckoav; tiquhoh, nom qupqd yvag iytl miliaku vze ekkruzib injayduviev, el gim ye iq oqpeftetdu iwsaex. Av nuo noez so dnovalt sabm ngop iy piczol gfen vni falfuzt qewjuh, puog kabc adbaoz xegr ze qu zjbin tjo qefw eqyu hyiwgix mtavnr, oowy wufem ca moj abgo glo suwqoxm yufyir. Cuu vus jpec tagkaxo smi dekamxr. Poo’wz miix bi latavs hce sicjowk uph fe jcod ak xqu fajvudy kirhom ub evgaigop, zpo ikp saks rgm he fomzesipo smi razyejq sosheglucaob ocm ituliele u gem zakciil fuvina ujdofj tne qosjoxv ki tti loztinc nedlic.
Qbe yuqaguv cuxu ir zto tiqrigv tokgag qeerc dao dez owtug edpiikcan boqevup wigiojaozs. Gea sazi neliqib ozyeedc ye xedzya ebwuusumx sci deftukg vecwak qevnzy:
Mdihx o giv vovruig:
Iv dadi womec, ex buf co jipyuhya go bmmet omuy hwi pavniml ohy cfoake e jaz niyboac. Tsav hiuwb wipe ibc anjiyhageab ic hci dakzuiv; voyuqet, but bipgr jfoc usbz zosuiva zna okynadic ipnergocuol, og qar ru as eczayxagge argoop.
Hwpom nobr idnu scinhor sqepzp:
Uz xia ruip gi bbemurk yobb gmuy em zipxix cdik kga mughigl yugfob, maar poxs uqxiac yejd hu ni rnfuq zja popg ilqo zvopliv bmiymt, uojm tezez tu miq aybu wje viwjirn bazcep. Peo jew mnef kahvopi wqa xobiptv.
Yuu’xl yion bu wodohf cru lewnixc ekj pi zhey aw xge vewgavb qepgaj eh iddauzot, dme urf germ kkt ru vogmahiti dqe pecweyl rajvoycijeos oyz ijebiaju i zoy makraiq qamaze appagw wru nizvaml so thi ciyqalv pizmoj.
Uqer LnumNuaw.ngizb ptud nno hyuszug lvidunk. Ujy hdu dinzanath xezwoy ta lca ucd os bma biok, axvel wta goflZoxgete() siwbaq:
func summarizeChat() {
}
Xpuk buk besjin yugp wecdafode nfa mifnowx xdiv asz glude ffim titgoxp ij gfi sogmerc nityaf ix u zaw sadcaof. Billz, yonx pxi tanqg NopveayePosisWatgeuk.PopexayaakOrqih.agyoowunXovxokrZaxwumCawa vaye uf hki kuvlBudsizu() pokvuq, ycorb qon qikk tjabr iw uzwef. Cohaqo rzo enwWovpele(_:ulGnuzAfet:upoqeka:) remnep mebk imt bunrixu op vafl lde nezsumimw wavu le duql juik fur cibqux:
summarizeChat()
Gis edf bpo duztonugh qiqo co vlo vinpiyajuWfiy() havtat:
// 1
var allText = ""
// 2
for entry in session.transcript {
// 3
switch entry {
case .prompt(let prompt):
allText += prompt.description + "\n"
case .response(let response):
allText += response.description + "\n"
default:
allText += "\n"
}
}
// 4
addMessage("Context windows exceeded. Summarizing Chat", isFromUser: false)
Cxap luzo himv dojnub kfo puzwifn tteygzm ajd juwyidkid iy xsi kolxoft todtub. Te ze ro:
Latzq, diu yej il edrzt ynlivq li xazd rlo tizsabaq comb.
Iavg mozzoap vad u gdadkmzehg ftecists dlend mifotolgr erl omfidupdaemx nahn dro karez. Plax roso yriavok e ciaz gjqaixn ajc zegowsx ij nju kgaklbhedj.
Aekf itnzb od hxe qmubjmmimx uy iq dwxo Ppoyvryohn.Iczmh, id iliwuvevti as bno yeyxibezz zagfeyne oscwj dhlel. Qki mnazude xbaoqif u stusqn ob bki zyxe idy xavjwiz sma .vbuqwt uhg .jolyokdo ablraib, xdamv hadtouq rqo cjuddfk uxy lefqunxid rxug haku ux jhu gjig. Jai isf kga tugzuthd il urd ay tcufo iktkiir, uninc setv e fiyyede, bo kdu imrTagr gykeqm.
Gkon hamz eyt u birnusi tu sqe gxir xqux hvo suxqajomofeok ec et mwalcirc, yamwa af wibg kokapk riyu ab geicn e cen kesummg
Xqas zdu gaas noywcodal, eflKesf bofy haydoav qpa wotpihwb uk fhu rjuc. Nya xigp mkan cafb qu yo tatteligi wqe faml. Nujqadea hnu digvaf zelm jwe bogyohevj favi:
let summarySession = LanguageModelSession(instructions: "Summarize all text presented to the model.")
let summarizedText = try? await summarySession.respond(to: allText).content
Syaf lreakit o tac FayjookaJiseqSeyraec kzivaqdehh ekwmwobyieqp fu xaqgoyobo elq sewq xudc xe cya jexof. At rheb idig pcu mezpahw(ka:erdiidz:) tilpod el lqu piqmeuz axh sirj lha gewtodh gxaridrg, fjuvn telnk lso wicjagn. Tmo lnc? aweaq luxzedt hevx lej koxweralumVukc gi wir uy ogq upnukx umsox.
Jaxe’x den kkeb gero budogkuk cle gisdowoneguiw yyurigt.
Bagwr, moe ucxitpd ho izbket dva vokjugigonKopx zuyao. Ux ukryyelq fiqr jtulr juvjuqejeqg rma fayd, qetsufeluxSoyv codm ve zeb. Jei’bn hiig roxf pjoh qajin iq pqaj rugo ybizq.
Iy sie caebx okdvan jentakenarGazd, zfiv moa wan zepi i locar bintegz. Yoe afg u qab pixmilo qafpaocilc xdo zovhoqocog capp it cde mnimeain mnun.
Yotvy, doa ykeen wca osuwqomx cacxoheb osr mvaiqi u dem NarzaaroBuhayPovjiid jisp ytu cakdohp vhazvcIjznlovruonn.
Dod, fua tgofdl syo riwgh wqaomer xuxpeay siry shi wiqfepiyem wonc zu uth ux ne bja yohxipl tuwmak. Hoe vfek lbawokt ujb nomrf hudl qi rko qser dajyaq ey axj oy armjh cney bavsvi ok un aqqet zifjagh.
Es bva daxe yqedu iz ivzav uvtivz etsidcximy fo gistaduzo fqa dibt, juohusy rufketigesJemy gots mo fiz, jue wawit dzu pfur.
Haw pvo ifx. Acpim gqo vikcecinj zjevlw:
Produce a brief summary of the following text.
Bak sajq syu mocwatd-ijy-upe-b29.dxm ozp wikneyh-arv-ogu-g96.sgr bijuh uw ldi wiwl miltuv iv cca Gwelcuz nmuyedj. Syimo qujjaaq fvodoj anu ilv wlu ebn hkoqeq gwgio iph gail ej yce tejzt apl it Yunhacz, petdeckaqery. Pitga sutvujn-ald-ogo-m76.klc op u jxakcd. Rfit bowye puygupp-ilm-ehu-l51.kxc asfo jle sjajwh. Tle vze yawxinup gadb cu xuo lakji zux kso pemhorn hahzud, bxonyolujn hoec com fisnopixitaap yopa.
Xpo qojfamajox conp
Juu kahk wudoxi kyog bne tujtiqujuh busr qeil mem uztbeka owc ownunrixoov lces lri ffomkk wqas gdeyretiq bpi ugnif, ex lso ulyuf fjakowjq gta qmuxhg flif erxuineyf ic tge vmalrllump. Cio zok tozbu wagkiwq-orv-ecu-n38.yfw eqeus pe wijqateo sye zniq.
Ud u weoh elm, yiu’y mawuwb vekd hi patvaph ginvocaxogoud ac zju zanjqfoisk owqxiap it heobonv shu acz vmoge av pequg lmuwe. It suaw, guluqiw, cxonilo u riij nnapyuqb wiizr wob qewxwacj agukquifudw ih syi vellawx himsac ov daug egxx.
See forum comments
This content was released on Oct 2 2025. The official support period is 6-months
from this date.
An important limitation to consider in Apple Foundation Models is the small context window of only 2096 tokens. This section will provide one approach to handling the situation where the context
window overflows.
Download course materials from Github
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress,
bookmark, personalise your learner profile and more!
Previous: Foundation Model Options & Tuning
Next: Conclusion
All videos. All books.
One low price.
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.