You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 68 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152
  1. <!doctype html>
  2. <html lang="en" class="no-js">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <link rel="prev" href="../Executors/">
  7. <link rel="next" href="../UnderstandLLamaContext/">
  8. <link rel="icon" href="../../assets/images/favicon.png">
  9. <meta name="generator" content="mkdocs-1.4.3, mkdocs-material-9.1.20">
  10. <title>Use ChatSession - LLamaSharp Documentation</title>
  11. <link rel="stylesheet" href="../../assets/stylesheets/main.eebd395e.min.css">
  12. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  13. <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
  14. <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
  15. <script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
  16. </head>
  17. <body dir="ltr">
  18. <script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
  19. <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
  20. <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
  21. <label class="md-overlay" for="__drawer"></label>
  22. <div data-md-component="skip">
  23. <a href="#llamasharp-chat-session" class="md-skip">
  24. Skip to content
  25. </a>
  26. </div>
  27. <div data-md-component="announce">
  28. </div>
  29. <div data-md-color-scheme="default" data-md-component="outdated" hidden>
  30. </div>
  31. <header class="md-header md-header--shadow" data-md-component="header">
  32. <nav class="md-header__inner md-grid" aria-label="Header">
  33. <a href="../.." title="LLamaSharp Documentation" class="md-header__button md-logo" aria-label="LLamaSharp Documentation" data-md-component="logo">
  34. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
  35. </a>
  36. <label class="md-header__button md-icon" for="__drawer">
  37. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
  38. </label>
  39. <div class="md-header__title" data-md-component="header-title">
  40. <div class="md-header__ellipsis">
  41. <div class="md-header__topic">
  42. <span class="md-ellipsis">
  43. LLamaSharp Documentation
  44. </span>
  45. </div>
  46. <div class="md-header__topic" data-md-component="header-topic">
  47. <span class="md-ellipsis">
  48. Use ChatSession
  49. </span>
  50. </div>
  51. </div>
  52. </div>
  53. <label class="md-header__button md-icon" for="__search">
  54. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
  55. </label>
  56. <div class="md-search" data-md-component="search" role="dialog">
  57. <label class="md-search__overlay" for="__search"></label>
  58. <div class="md-search__inner" role="search">
  59. <form class="md-search__form" name="search">
  60. <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
  61. <label class="md-search__icon md-icon" for="__search">
  62. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
  63. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
  64. </label>
  65. <nav class="md-search__options" aria-label="Search">
  66. <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
  67. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
  68. </button>
  69. </nav>
  70. </form>
  71. <div class="md-search__output">
  72. <div class="md-search__scrollwrap" data-md-scrollfix>
  73. <div class="md-search-result" data-md-component="search-result">
  74. <div class="md-search-result__meta">
  75. Initializing search
  76. </div>
  77. <ol class="md-search-result__list" role="presentation"></ol>
  78. </div>
  79. </div>
  80. </div>
  81. </div>
  82. </div>
  83. </nav>
  84. </header>
  85. <div class="md-container" data-md-component="container">
  86. <main class="md-main" data-md-component="main">
  87. <div class="md-main__inner md-grid">
  88. <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
  89. <div class="md-sidebar__scrollwrap">
  90. <div class="md-sidebar__inner">
  91. <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  92. <label class="md-nav__title" for="__drawer">
  93. <a href="../.." title="LLamaSharp Documentation" class="md-nav__button md-logo" aria-label="LLamaSharp Documentation" data-md-component="logo">
  94. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
  95. </a>
  96. LLamaSharp Documentation
  97. </label>
  98. <ul class="md-nav__list" data-md-scrollfix>
  99. <li class="md-nav__item">
  100. <a href="../.." class="md-nav__link">
  101. Overview
  102. </a>
  103. </li>
  104. <li class="md-nav__item">
  105. <a href="../../QuickStart/" class="md-nav__link">
  106. Quick Start
  107. </a>
  108. </li>
  109. <li class="md-nav__item">
  110. <a href="../../Architecture/" class="md-nav__link">
  111. Architecture
  112. </a>
  113. </li>
  114. <li class="md-nav__item">
  115. <a href="../../FAQ/" class="md-nav__link">
  116. FAQ
  117. </a>
  118. </li>
  119. <li class="md-nav__item">
  120. <a href="../../ContributingGuide/" class="md-nav__link">
  121. Contributing Guide
  122. </a>
  123. </li>
  124. <li class="md-nav__item md-nav__item--active md-nav__item--nested">
  125. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked>
  126. <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
  127. Tutorials
  128. <span class="md-nav__icon md-icon"></span>
  129. </label>
  130. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
  131. <label class="md-nav__title" for="__nav_6">
  132. <span class="md-nav__icon md-icon"></span>
  133. Tutorials
  134. </label>
  135. <ul class="md-nav__list" data-md-scrollfix>
  136. <li class="md-nav__item">
  137. <a href="../NativeLibraryConfig/" class="md-nav__link">
  138. Customize the native library loading
  139. </a>
  140. </li>
  141. <li class="md-nav__item">
  142. <a href="../Executors/" class="md-nav__link">
  143. Use executors
  144. </a>
  145. </li>
  146. <li class="md-nav__item md-nav__item--active">
  147. <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
  148. <label class="md-nav__link md-nav__link--active" for="__toc">
  149. Use ChatSession
  150. <span class="md-nav__icon md-icon"></span>
  151. </label>
  152. <a href="./" class="md-nav__link md-nav__link--active">
  153. Use ChatSession
  154. </a>
  155. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  156. <label class="md-nav__title" for="__toc">
  157. <span class="md-nav__icon md-icon"></span>
  158. Table of contents
  159. </label>
  160. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  161. <li class="md-nav__item">
  162. <a href="#basic-usages-of-chatsession" class="md-nav__link">
  163. Basic usages of ChatSession
  164. </a>
  165. <nav class="md-nav" aria-label="Basic usages of ChatSession">
  166. <ul class="md-nav__list">
  167. <li class="md-nav__item">
  168. <a href="#initialize-a-session" class="md-nav__link">
  169. Initialize a session
  170. </a>
  171. </li>
  172. <li class="md-nav__item">
  173. <a href="#chat-with-the-bot" class="md-nav__link">
  174. Chat with the bot
  175. </a>
  176. </li>
  177. <li class="md-nav__item">
  178. <a href="#get-the-history" class="md-nav__link">
  179. Get the history
  180. </a>
  181. </li>
  182. </ul>
  183. </nav>
  184. </li>
  185. <li class="md-nav__item">
  186. <a href="#saveload-chat-session" class="md-nav__link">
  187. Save/Load Chat Session
  188. </a>
  189. <nav class="md-nav" aria-label="Save/Load Chat Session">
  190. <ul class="md-nav__list">
  191. <li class="md-nav__item">
  192. <a href="#output-transform" class="md-nav__link">
  193. Output transform
  194. </a>
  195. </li>
  196. <li class="md-nav__item">
  197. <a href="#history-transform" class="md-nav__link">
  198. History transform
  199. </a>
  200. </li>
  201. </ul>
  202. </nav>
  203. </li>
  204. </ul>
  205. </nav>
  206. </li>
  207. <li class="md-nav__item">
  208. <a href="../UnderstandLLamaContext/" class="md-nav__link">
  209. Understand LLamaContext
  210. </a>
  211. </li>
  212. <li class="md-nav__item">
  213. <a href="../GetEmbeddings/" class="md-nav__link">
  214. Get embeddings
  215. </a>
  216. </li>
  217. <li class="md-nav__item">
  218. <a href="../Quantization/" class="md-nav__link">
  219. Quantize the model
  220. </a>
  221. </li>
  222. </ul>
  223. </nav>
  224. </li>
  225. <li class="md-nav__item md-nav__item--nested">
  226. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
  227. <label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
  228. Integrations
  229. <span class="md-nav__icon md-icon"></span>
  230. </label>
  231. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
  232. <label class="md-nav__title" for="__nav_7">
  233. <span class="md-nav__icon md-icon"></span>
  234. Integrations
  235. </label>
  236. <ul class="md-nav__list" data-md-scrollfix>
  237. <li class="md-nav__item">
  238. <a href="../../Integrations/semantic-kernel/" class="md-nav__link">
  239. semantic-kernel integration
  240. </a>
  241. </li>
  242. <li class="md-nav__item">
  243. <a href="../../Integrations/kernel-memory/" class="md-nav__link">
  244. kernel-memory integration
  245. </a>
  246. </li>
  247. <li class="md-nav__item">
  248. <a href="../../Integrations/BotSharp.md" class="md-nav__link">
  249. BotSharp integration
  250. </a>
  251. </li>
  252. <li class="md-nav__item">
  253. <a href="../../Integrations/Langchain.md" class="md-nav__link">
  254. Langchain integration
  255. </a>
  256. </li>
  257. </ul>
  258. </nav>
  259. </li>
  260. <li class="md-nav__item md-nav__item--nested">
  261. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
  262. <label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
  263. Examples
  264. <span class="md-nav__icon md-icon"></span>
  265. </label>
  266. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
  267. <label class="md-nav__title" for="__nav_8">
  268. <span class="md-nav__icon md-icon"></span>
  269. Examples
  270. </label>
  271. <ul class="md-nav__list" data-md-scrollfix>
  272. <li class="md-nav__item">
  273. <a href="../../Examples/BatchedExecutorFork/" class="md-nav__link">
  274. Bacthed executor - multi-output to one input
  275. </a>
  276. </li>
  277. <li class="md-nav__item">
  278. <a href="../../Examples/BatchedExecutorGuidance/" class="md-nav__link">
  279. Batched executor - basic guidance
  280. </a>
  281. </li>
  282. <li class="md-nav__item">
  283. <a href="../../Examples/BatchedExecutorRewind/" class="md-nav__link">
  284. Batched executor - rewinding to an earlier state
  285. </a>
  286. </li>
  287. <li class="md-nav__item">
  288. <a href="../../Examples/ChatChineseGB2312/" class="md-nav__link">
  289. Chinese LLM - with GB2312 encoding
  290. </a>
  291. </li>
  292. <li class="md-nav__item">
  293. <a href="../../Examples/ChatSessionStripRoleName/" class="md-nav__link">
  294. ChatSession - stripping role names
  295. </a>
  296. </li>
  297. <li class="md-nav__item">
  298. <a href="../../Examples/ChatSessionWithHistory/" class="md-nav__link">
  299. ChatSession - with history
  300. </a>
  301. </li>
  302. <li class="md-nav__item">
  303. <a href="../../Examples/ChatSessionWithRestart/" class="md-nav__link">
  304. ChatSession - restarting
  305. </a>
  306. </li>
  307. <li class="md-nav__item">
  308. <a href="../../Examples/ChatSessionWithRoleName/" class="md-nav__link">
  309. ChatSession - Basic
  310. </a>
  311. </li>
  312. <li class="md-nav__item">
  313. <a href="../../Examples/CodingAssistant/" class="md-nav__link">
  314. Coding assistant
  315. </a>
  316. </li>
  317. <li class="md-nav__item">
  318. <a href="../../Examples/GetEmbeddings/" class="md-nav__link">
  319. Get embeddings
  320. </a>
  321. </li>
  322. <li class="md-nav__item">
  323. <a href="../../Examples/GrammarJsonResponse/" class="md-nav__link">
  324. Grammar - json response
  325. </a>
  326. </li>
  327. <li class="md-nav__item">
  328. <a href="../../Examples/InstructModeExecute/" class="md-nav__link">
  329. Instruct executor - basic
  330. </a>
  331. </li>
  332. <li class="md-nav__item">
  333. <a href="../../Examples/InteractiveModeExecute/" class="md-nav__link">
  334. Interactive executor - basic
  335. </a>
  336. </li>
  337. <li class="md-nav__item">
  338. <a href="../../Examples/KernelMemory/" class="md-nav__link">
  339. Kernel memory integration - basic
  340. </a>
  341. </li>
  342. <li class="md-nav__item">
  343. <a href="../../Examples/KernelMemorySaveAndLoad/" class="md-nav__link">
  344. Kernel-memory - save & load
  345. </a>
  346. </li>
  347. <li class="md-nav__item">
  348. <a href="../../Examples/LLavaInteractiveModeExecute/" class="md-nav__link">
  349. LLaVA - basic
  350. </a>
  351. </li>
  352. <li class="md-nav__item">
  353. <a href="../../Examples/LoadAndSaveSession/" class="md-nav__link">
  354. ChatSession - load & save
  355. </a>
  356. </li>
  357. <li class="md-nav__item">
  358. <a href="../../Examples/LoadAndSaveState/" class="md-nav__link">
  359. Executor - save/load state
  360. </a>
  361. </li>
  362. <li class="md-nav__item">
  363. <a href="../../Examples/QuantizeModel/" class="md-nav__link">
  364. Quantization
  365. </a>
  366. </li>
  367. <li class="md-nav__item">
  368. <a href="../../Examples/SemanticKernelChat/" class="md-nav__link">
  369. Semantic-kernel - chat
  370. </a>
  371. </li>
  372. <li class="md-nav__item">
  373. <a href="../../Examples/SemanticKernelMemory/" class="md-nav__link">
  374. Semantic-kernel - with kernel-memory
  375. </a>
  376. </li>
  377. <li class="md-nav__item">
  378. <a href="../../Examples/SemanticKernelPrompt/" class="md-nav__link">
  379. Semantic-kernel - basic
  380. </a>
  381. </li>
  382. <li class="md-nav__item">
  383. <a href="../../Examples/StatelessModeExecute/" class="md-nav__link">
  384. Stateless executor
  385. </a>
  386. </li>
  387. <li class="md-nav__item">
  388. <a href="../../Examples/TalkToYourself/" class="md-nav__link">
  389. Talk to yourself
  390. </a>
  391. </li>
  392. </ul>
  393. </nav>
  394. </li>
  395. <li class="md-nav__item md-nav__item--nested">
  396. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
  397. <label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="0">
  398. API Reference
  399. <span class="md-nav__icon md-icon"></span>
  400. </label>
  401. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
  402. <label class="md-nav__title" for="__nav_9">
  403. <span class="md-nav__icon md-icon"></span>
  404. API Reference
  405. </label>
  406. <ul class="md-nav__list" data-md-scrollfix>
  407. <li class="md-nav__item">
  408. <a href="../../xmldocs/" class="md-nav__link">
  409. index
  410. </a>
  411. </li>
  412. <li class="md-nav__item">
  413. <a href="../../xmldocs/llama.abstractions.adaptercollection/" class="md-nav__link">
  414. llama.abstractions.adaptercollection
  415. </a>
  416. </li>
  417. <li class="md-nav__item">
  418. <a href="../../xmldocs/llama.abstractions.icontextparams/" class="md-nav__link">
  419. llama.abstractions.icontextparams
  420. </a>
  421. </li>
  422. <li class="md-nav__item">
  423. <a href="../../xmldocs/llama.abstractions.ihistorytransform/" class="md-nav__link">
  424. llama.abstractions.ihistorytransform
  425. </a>
  426. </li>
  427. <li class="md-nav__item">
  428. <a href="../../xmldocs/llama.abstractions.iinferenceparams/" class="md-nav__link">
  429. llama.abstractions.iinferenceparams
  430. </a>
  431. </li>
  432. <li class="md-nav__item">
  433. <a href="../../xmldocs/llama.abstractions.illamaexecutor/" class="md-nav__link">
  434. llama.abstractions.illamaexecutor
  435. </a>
  436. </li>
  437. <li class="md-nav__item">
  438. <a href="../../xmldocs/llama.abstractions.illamaparams/" class="md-nav__link">
  439. llama.abstractions.illamaparams
  440. </a>
  441. </li>
  442. <li class="md-nav__item">
  443. <a href="../../xmldocs/llama.abstractions.imodelparams/" class="md-nav__link">
  444. llama.abstractions.imodelparams
  445. </a>
  446. </li>
  447. <li class="md-nav__item">
  448. <a href="../../xmldocs/llama.abstractions.itextstreamtransform/" class="md-nav__link">
  449. llama.abstractions.itextstreamtransform
  450. </a>
  451. </li>
  452. <li class="md-nav__item">
  453. <a href="../../xmldocs/llama.abstractions.itexttransform/" class="md-nav__link">
  454. llama.abstractions.itexttransform
  455. </a>
  456. </li>
  457. <li class="md-nav__item">
  458. <a href="../../xmldocs/llama.abstractions.loraadapter/" class="md-nav__link">
  459. llama.abstractions.loraadapter
  460. </a>
  461. </li>
  462. <li class="md-nav__item">
  463. <a href="../../xmldocs/llama.abstractions.metadataoverride/" class="md-nav__link">
  464. llama.abstractions.metadataoverride
  465. </a>
  466. </li>
  467. <li class="md-nav__item">
  468. <a href="../../xmldocs/llama.abstractions.metadataoverrideconverter/" class="md-nav__link">
  469. llama.abstractions.metadataoverrideconverter
  470. </a>
  471. </li>
  472. <li class="md-nav__item">
  473. <a href="../../xmldocs/llama.abstractions.tensorsplitscollection/" class="md-nav__link">
  474. llama.abstractions.tensorsplitscollection
  475. </a>
  476. </li>
  477. <li class="md-nav__item">
  478. <a href="../../xmldocs/llama.abstractions.tensorsplitscollectionconverter/" class="md-nav__link">
  479. llama.abstractions.tensorsplitscollectionconverter
  480. </a>
  481. </li>
  482. <li class="md-nav__item">
  483. <a href="../../xmldocs/llama.antipromptprocessor/" class="md-nav__link">
  484. llama.antipromptprocessor
  485. </a>
  486. </li>
  487. <li class="md-nav__item">
  488. <a href="../../xmldocs/llama.batched.alreadypromptedconversationexception/" class="md-nav__link">
  489. llama.batched.alreadypromptedconversationexception
  490. </a>
  491. </li>
  492. <li class="md-nav__item">
  493. <a href="../../xmldocs/llama.batched.batchedexecutor/" class="md-nav__link">
  494. llama.batched.batchedexecutor
  495. </a>
  496. </li>
  497. <li class="md-nav__item">
  498. <a href="../../xmldocs/llama.batched.cannotforkwhilerequiresinferenceexception/" class="md-nav__link">
  499. llama.batched.cannotforkwhilerequiresinferenceexception
  500. </a>
  501. </li>
  502. <li class="md-nav__item">
  503. <a href="../../xmldocs/llama.batched.cannotmodifywhilerequiresinferenceexception/" class="md-nav__link">
  504. llama.batched.cannotmodifywhilerequiresinferenceexception
  505. </a>
  506. </li>
  507. <li class="md-nav__item">
  508. <a href="../../xmldocs/llama.batched.cannotsamplerequiresinferenceexception/" class="md-nav__link">
  509. llama.batched.cannotsamplerequiresinferenceexception
  510. </a>
  511. </li>
  512. <li class="md-nav__item">
  513. <a href="../../xmldocs/llama.batched.cannotsamplerequirespromptexception/" class="md-nav__link">
  514. llama.batched.cannotsamplerequirespromptexception
  515. </a>
  516. </li>
  517. <li class="md-nav__item">
  518. <a href="../../xmldocs/llama.batched.conversation/" class="md-nav__link">
  519. llama.batched.conversation
  520. </a>
  521. </li>
  522. <li class="md-nav__item">
  523. <a href="../../xmldocs/llama.batched.conversationextensions/" class="md-nav__link">
  524. llama.batched.conversationextensions
  525. </a>
  526. </li>
  527. <li class="md-nav__item">
  528. <a href="../../xmldocs/llama.batched.experimentalbatchedexecutorexception/" class="md-nav__link">
  529. llama.batched.experimentalbatchedexecutorexception
  530. </a>
  531. </li>
  532. <li class="md-nav__item">
  533. <a href="../../xmldocs/llama.chatsession-1/" class="md-nav__link">
  534. llama.chatsession-1
  535. </a>
  536. </li>
  537. <li class="md-nav__item">
  538. <a href="../../xmldocs/llama.chatsession/" class="md-nav__link">
  539. llama.chatsession
  540. </a>
  541. </li>
  542. <li class="md-nav__item">
  543. <a href="../../xmldocs/llama.common.authorrole/" class="md-nav__link">
  544. llama.common.authorrole
  545. </a>
  546. </li>
  547. <li class="md-nav__item">
  548. <a href="../../xmldocs/llama.common.chathistory/" class="md-nav__link">
  549. llama.common.chathistory
  550. </a>
  551. </li>
  552. <li class="md-nav__item">
  553. <a href="../../xmldocs/llama.common.fixedsizequeue-1/" class="md-nav__link">
  554. llama.common.fixedsizequeue-1
  555. </a>
  556. </li>
  557. <li class="md-nav__item">
  558. <a href="../../xmldocs/llama.common.inferenceparams/" class="md-nav__link">
  559. llama.common.inferenceparams
  560. </a>
  561. </li>
  562. <li class="md-nav__item">
  563. <a href="../../xmldocs/llama.common.mirostattype/" class="md-nav__link">
  564. llama.common.mirostattype
  565. </a>
  566. </li>
  567. <li class="md-nav__item">
  568. <a href="../../xmldocs/llama.common.modelparams/" class="md-nav__link">
  569. llama.common.modelparams
  570. </a>
  571. </li>
  572. <li class="md-nav__item">
  573. <a href="../../xmldocs/llama.exceptions.grammarexpectedname/" class="md-nav__link">
  574. llama.exceptions.grammarexpectedname
  575. </a>
  576. </li>
  577. <li class="md-nav__item">
  578. <a href="../../xmldocs/llama.exceptions.grammarexpectednext/" class="md-nav__link">
  579. llama.exceptions.grammarexpectednext
  580. </a>
  581. </li>
  582. <li class="md-nav__item">
  583. <a href="../../xmldocs/llama.exceptions.grammarexpectedprevious/" class="md-nav__link">
  584. llama.exceptions.grammarexpectedprevious
  585. </a>
  586. </li>
  587. <li class="md-nav__item">
  588. <a href="../../xmldocs/llama.exceptions.grammarformatexception/" class="md-nav__link">
  589. llama.exceptions.grammarformatexception
  590. </a>
  591. </li>
  592. <li class="md-nav__item">
  593. <a href="../../xmldocs/llama.exceptions.grammarunexpectedcharaltelement/" class="md-nav__link">
  594. llama.exceptions.grammarunexpectedcharaltelement
  595. </a>
  596. </li>
  597. <li class="md-nav__item">
  598. <a href="../../xmldocs/llama.exceptions.grammarunexpectedcharrngelement/" class="md-nav__link">
  599. llama.exceptions.grammarunexpectedcharrngelement
  600. </a>
  601. </li>
  602. <li class="md-nav__item">
  603. <a href="../../xmldocs/llama.exceptions.grammarunexpectedendelement/" class="md-nav__link">
  604. llama.exceptions.grammarunexpectedendelement
  605. </a>
  606. </li>
  607. <li class="md-nav__item">
  608. <a href="../../xmldocs/llama.exceptions.grammarunexpectedendofinput/" class="md-nav__link">
  609. llama.exceptions.grammarunexpectedendofinput
  610. </a>
  611. </li>
  612. <li class="md-nav__item">
  613. <a href="../../xmldocs/llama.exceptions.grammarunexpectedhexcharscount/" class="md-nav__link">
  614. llama.exceptions.grammarunexpectedhexcharscount
  615. </a>
  616. </li>
  617. <li class="md-nav__item">
  618. <a href="../../xmldocs/llama.exceptions.grammarunknownescapecharacter/" class="md-nav__link">
  619. llama.exceptions.grammarunknownescapecharacter
  620. </a>
  621. </li>
  622. <li class="md-nav__item">
  623. <a href="../../xmldocs/llama.exceptions.llamadecodeerror/" class="md-nav__link">
  624. llama.exceptions.llamadecodeerror
  625. </a>
  626. </li>
  627. <li class="md-nav__item">
  628. <a href="../../xmldocs/llama.exceptions.loadweightsfailedexception/" class="md-nav__link">
  629. llama.exceptions.loadweightsfailedexception
  630. </a>
  631. </li>
  632. <li class="md-nav__item">
  633. <a href="../../xmldocs/llama.exceptions.runtimeerror/" class="md-nav__link">
  634. llama.exceptions.runtimeerror
  635. </a>
  636. </li>
  637. <li class="md-nav__item">
  638. <a href="../../xmldocs/llama.extensions.icontextparamsextensions/" class="md-nav__link">
  639. llama.extensions.icontextparamsextensions
  640. </a>
  641. </li>
  642. <li class="md-nav__item">
  643. <a href="../../xmldocs/llama.extensions.imodelparamsextensions/" class="md-nav__link">
  644. llama.extensions.imodelparamsextensions
  645. </a>
  646. </li>
  647. <li class="md-nav__item">
  648. <a href="../../xmldocs/llama.grammars.grammar/" class="md-nav__link">
  649. llama.grammars.grammar
  650. </a>
  651. </li>
  652. <li class="md-nav__item">
  653. <a href="../../xmldocs/llama.grammars.grammarrule/" class="md-nav__link">
  654. llama.grammars.grammarrule
  655. </a>
  656. </li>
  657. <li class="md-nav__item">
  658. <a href="../../xmldocs/llama.ichatmodel/" class="md-nav__link">
  659. llama.ichatmodel
  660. </a>
  661. </li>
  662. <li class="md-nav__item">
  663. <a href="../../xmldocs/llama.llamacache/" class="md-nav__link">
  664. llama.llamacache
  665. </a>
  666. </li>
  667. <li class="md-nav__item">
  668. <a href="../../xmldocs/llama.llamaembedder/" class="md-nav__link">
  669. llama.llamaembedder
  670. </a>
  671. </li>
  672. <li class="md-nav__item">
  673. <a href="../../xmldocs/llama.llamamodel/" class="md-nav__link">
  674. llama.llamamodel
  675. </a>
  676. </li>
  677. <li class="md-nav__item">
  678. <a href="../../xmldocs/llama.llamamodelv1/" class="md-nav__link">
  679. llama.llamamodelv1
  680. </a>
  681. </li>
  682. <li class="md-nav__item">
  683. <a href="../../xmldocs/llama.llamaparams/" class="md-nav__link">
  684. llama.llamaparams
  685. </a>
  686. </li>
  687. <li class="md-nav__item">
  688. <a href="../../xmldocs/llama.llamaquantizer/" class="md-nav__link">
  689. llama.llamaquantizer
  690. </a>
  691. </li>
  692. <li class="md-nav__item">
  693. <a href="../../xmldocs/llama.llamastate/" class="md-nav__link">
  694. llama.llamastate
  695. </a>
  696. </li>
  697. <li class="md-nav__item">
  698. <a href="../../xmldocs/llama.llamatransforms/" class="md-nav__link">
  699. llama.llamatransforms
  700. </a>
  701. </li>
  702. <li class="md-nav__item">
  703. <a href="../../xmldocs/llama.llavaweights/" class="md-nav__link">
  704. llama.llavaweights
  705. </a>
  706. </li>
  707. <li class="md-nav__item">
  708. <a href="../../xmldocs/llama.native.decoderesult/" class="md-nav__link">
  709. llama.native.decoderesult
  710. </a>
  711. </li>
  712. <li class="md-nav__item">
  713. <a href="../../xmldocs/llama.native.ggmltype/" class="md-nav__link">
  714. llama.native.ggmltype
  715. </a>
  716. </li>
  717. <li class="md-nav__item">
  718. <a href="../../xmldocs/llama.native.gpusplitmode/" class="md-nav__link">
  719. llama.native.gpusplitmode
  720. </a>
  721. </li>
  722. <li class="md-nav__item">
  723. <a href="../../xmldocs/llama.native.llamabatch/" class="md-nav__link">
  724. llama.native.llamabatch
  725. </a>
  726. </li>
  727. <li class="md-nav__item">
  728. <a href="../../xmldocs/llama.native.llamabeamsstate/" class="md-nav__link">
  729. llama.native.llamabeamsstate
  730. </a>
  731. </li>
  732. <li class="md-nav__item">
  733. <a href="../../xmldocs/llama.native.llamabeamview/" class="md-nav__link">
  734. llama.native.llamabeamview
  735. </a>
  736. </li>
  737. <li class="md-nav__item">
  738. <a href="../../xmldocs/llama.native.llamachatmessage/" class="md-nav__link">
  739. llama.native.llamachatmessage
  740. </a>
  741. </li>
  742. <li class="md-nav__item">
  743. <a href="../../xmldocs/llama.native.llamacontextparams/" class="md-nav__link">
  744. llama.native.llamacontextparams
  745. </a>
  746. </li>
  747. <li class="md-nav__item">
  748. <a href="../../xmldocs/llama.native.llamaftype/" class="md-nav__link">
  749. llama.native.llamaftype
  750. </a>
  751. </li>
  752. <li class="md-nav__item">
  753. <a href="../../xmldocs/llama.native.llamagrammarelement/" class="md-nav__link">
  754. llama.native.llamagrammarelement
  755. </a>
  756. </li>
  757. <li class="md-nav__item">
  758. <a href="../../xmldocs/llama.native.llamagrammarelementtype/" class="md-nav__link">
  759. llama.native.llamagrammarelementtype
  760. </a>
  761. </li>
  762. <li class="md-nav__item">
  763. <a href="../../xmldocs/llama.native.llamakvcacheview/" class="md-nav__link">
  764. llama.native.llamakvcacheview
  765. </a>
  766. </li>
  767. <li class="md-nav__item">
  768. <a href="../../xmldocs/llama.native.llamakvcacheviewcell/" class="md-nav__link">
  769. llama.native.llamakvcacheviewcell
  770. </a>
  771. </li>
  772. <li class="md-nav__item">
  773. <a href="../../xmldocs/llama.native.llamakvcacheviewsafehandle/" class="md-nav__link">
  774. llama.native.llamakvcacheviewsafehandle
  775. </a>
  776. </li>
  777. <li class="md-nav__item">
  778. <a href="../../xmldocs/llama.native.llamaloglevel/" class="md-nav__link">
  779. llama.native.llamaloglevel
  780. </a>
  781. </li>
  782. <li class="md-nav__item">
  783. <a href="../../xmldocs/llama.native.llamamodelkvoverridetype/" class="md-nav__link">
  784. llama.native.llamamodelkvoverridetype
  785. </a>
  786. </li>
  787. <li class="md-nav__item">
  788. <a href="../../xmldocs/llama.native.llamamodelmetadataoverride/" class="md-nav__link">
  789. llama.native.llamamodelmetadataoverride
  790. </a>
  791. </li>
  792. <li class="md-nav__item">
  793. <a href="../../xmldocs/llama.native.llamamodelparams/" class="md-nav__link">
  794. llama.native.llamamodelparams
  795. </a>
  796. </li>
  797. <li class="md-nav__item">
  798. <a href="../../xmldocs/llama.native.llamamodelquantizeparams/" class="md-nav__link">
  799. llama.native.llamamodelquantizeparams
  800. </a>
  801. </li>
  802. <li class="md-nav__item">
  803. <a href="../../xmldocs/llama.native.llamanativebatch/" class="md-nav__link">
  804. llama.native.llamanativebatch
  805. </a>
  806. </li>
  807. <li class="md-nav__item">
  808. <a href="../../xmldocs/llama.native.llamapoolingtype/" class="md-nav__link">
  809. llama.native.llamapoolingtype
  810. </a>
  811. </li>
  812. <li class="md-nav__item">
  813. <a href="../../xmldocs/llama.native.llamapos/" class="md-nav__link">
  814. llama.native.llamapos
  815. </a>
  816. </li>
  817. <li class="md-nav__item">
  818. <a href="../../xmldocs/llama.native.llamaropetype/" class="md-nav__link">
  819. llama.native.llamaropetype
  820. </a>
  821. </li>
  822. <li class="md-nav__item">
  823. <a href="../../xmldocs/llama.native.llamaseqid/" class="md-nav__link">
  824. llama.native.llamaseqid
  825. </a>
  826. </li>
  827. <li class="md-nav__item">
  828. <a href="../../xmldocs/llama.native.llamatoken/" class="md-nav__link">
  829. llama.native.llamatoken
  830. </a>
  831. </li>
  832. <li class="md-nav__item">
  833. <a href="../../xmldocs/llama.native.llamatokendata/" class="md-nav__link">
  834. llama.native.llamatokendata
  835. </a>
  836. </li>
  837. <li class="md-nav__item">
  838. <a href="../../xmldocs/llama.native.llamatokendataarray/" class="md-nav__link">
  839. llama.native.llamatokendataarray
  840. </a>
  841. </li>
  842. <li class="md-nav__item">
  843. <a href="../../xmldocs/llama.native.llamatokendataarraynative/" class="md-nav__link">
  844. llama.native.llamatokendataarraynative
  845. </a>
  846. </li>
  847. <li class="md-nav__item">
  848. <a href="../../xmldocs/llama.native.llamatokentype/" class="md-nav__link">
  849. llama.native.llamatokentype
  850. </a>
  851. </li>
  852. <li class="md-nav__item">
  853. <a href="../../xmldocs/llama.native.llamavocabtype/" class="md-nav__link">
  854. llama.native.llamavocabtype
  855. </a>
  856. </li>
  857. <li class="md-nav__item">
  858. <a href="../../xmldocs/llama.native.llavaimageembed/" class="md-nav__link">
  859. llama.native.llavaimageembed
  860. </a>
  861. </li>
  862. <li class="md-nav__item">
  863. <a href="../../xmldocs/llama.native.nativeapi/" class="md-nav__link">
  864. llama.native.nativeapi
  865. </a>
  866. </li>
  867. <li class="md-nav__item">
  868. <a href="../../xmldocs/llama.native.nativelibraryconfig/" class="md-nav__link">
  869. llama.native.nativelibraryconfig
  870. </a>
  871. </li>
  872. <li class="md-nav__item">
  873. <a href="../../xmldocs/llama.native.ropescalingtype/" class="md-nav__link">
  874. llama.native.ropescalingtype
  875. </a>
  876. </li>
  877. <li class="md-nav__item">
  878. <a href="../../xmldocs/llama.native.safellamacontexthandle/" class="md-nav__link">
  879. llama.native.safellamacontexthandle
  880. </a>
  881. </li>
  882. <li class="md-nav__item">
  883. <a href="../../xmldocs/llama.native.safellamagrammarhandle/" class="md-nav__link">
  884. llama.native.safellamagrammarhandle
  885. </a>
  886. </li>
  887. <li class="md-nav__item">
  888. <a href="../../xmldocs/llama.native.safellamahandlebase/" class="md-nav__link">
  889. llama.native.safellamahandlebase
  890. </a>
  891. </li>
  892. <li class="md-nav__item">
  893. <a href="../../xmldocs/llama.native.safellamamodelhandle/" class="md-nav__link">
  894. llama.native.safellamamodelhandle
  895. </a>
  896. </li>
  897. <li class="md-nav__item">
  898. <a href="../../xmldocs/llama.native.safellavaimageembedhandle/" class="md-nav__link">
  899. llama.native.safellavaimageembedhandle
  900. </a>
  901. </li>
  902. <li class="md-nav__item">
  903. <a href="../../xmldocs/llama.native.safellavamodelhandle/" class="md-nav__link">
  904. llama.native.safellavamodelhandle
  905. </a>
  906. </li>
  907. <li class="md-nav__item">
  908. <a href="../../xmldocs/llama.quantizer/" class="md-nav__link">
  909. llama.quantizer
  910. </a>
  911. </li>
  912. <li class="md-nav__item">
  913. <a href="../../xmldocs/llama.sampling.basesamplingpipeline/" class="md-nav__link">
  914. llama.sampling.basesamplingpipeline
  915. </a>
  916. </li>
  917. <li class="md-nav__item">
  918. <a href="../../xmldocs/llama.sampling.defaultsamplingpipeline/" class="md-nav__link">
  919. llama.sampling.defaultsamplingpipeline
  920. </a>
  921. </li>
  922. <li class="md-nav__item">
  923. <a href="../../xmldocs/llama.sampling.greedysamplingpipeline/" class="md-nav__link">
  924. llama.sampling.greedysamplingpipeline
  925. </a>
  926. </li>
  927. <li class="md-nav__item">
  928. <a href="../../xmldocs/llama.sampling.isamplingpipeline/" class="md-nav__link">
  929. llama.sampling.isamplingpipeline
  930. </a>
  931. </li>
  932. <li class="md-nav__item">
  933. <a href="../../xmldocs/llama.sampling.isamplingpipelineextensions/" class="md-nav__link">
  934. llama.sampling.isamplingpipelineextensions
  935. </a>
  936. </li>
  937. <li class="md-nav__item">
  938. <a href="../../xmldocs/llama.sampling.mirostate2samplingpipeline/" class="md-nav__link">
  939. llama.sampling.mirostate2samplingpipeline
  940. </a>
  941. </li>
  942. <li class="md-nav__item">
  943. <a href="../../xmldocs/llama.sampling.mirostatesamplingpipeline/" class="md-nav__link">
  944. llama.sampling.mirostatesamplingpipeline
  945. </a>
  946. </li>
  947. <li class="md-nav__item">
  948. <a href="../../xmldocs/llama.sessionstate/" class="md-nav__link">
  949. llama.sessionstate
  950. </a>
  951. </li>
  952. <li class="md-nav__item">
  953. <a href="../../xmldocs/llama.streamingtokendecoder/" class="md-nav__link">
  954. llama.streamingtokendecoder
  955. </a>
  956. </li>
  957. <li class="md-nav__item">
  958. <a href="../../xmldocs/llama.types.chatcompletion/" class="md-nav__link">
  959. llama.types.chatcompletion
  960. </a>
  961. </li>
  962. <li class="md-nav__item">
  963. <a href="../../xmldocs/llama.types.chatcompletionchoice/" class="md-nav__link">
  964. llama.types.chatcompletionchoice
  965. </a>
  966. </li>
  967. <li class="md-nav__item">
  968. <a href="../../xmldocs/llama.types.chatcompletionchunk/" class="md-nav__link">
  969. llama.types.chatcompletionchunk
  970. </a>
  971. </li>
  972. <li class="md-nav__item">
  973. <a href="../../xmldocs/llama.types.chatcompletionchunkchoice/" class="md-nav__link">
  974. llama.types.chatcompletionchunkchoice
  975. </a>
  976. </li>
  977. <li class="md-nav__item">
  978. <a href="../../xmldocs/llama.types.chatcompletionchunkdelta/" class="md-nav__link">
  979. llama.types.chatcompletionchunkdelta
  980. </a>
  981. </li>
  982. <li class="md-nav__item">
  983. <a href="../../xmldocs/llama.types.chatcompletionmessage/" class="md-nav__link">
  984. llama.types.chatcompletionmessage
  985. </a>
  986. </li>
  987. <li class="md-nav__item">
  988. <a href="../../xmldocs/llama.types.chatmessagerecord/" class="md-nav__link">
  989. llama.types.chatmessagerecord
  990. </a>
  991. </li>
  992. <li class="md-nav__item">
  993. <a href="../../xmldocs/llama.types.chatrole/" class="md-nav__link">
  994. llama.types.chatrole
  995. </a>
  996. </li>
  997. <li class="md-nav__item">
  998. <a href="../../xmldocs/llama.types.completion/" class="md-nav__link">
  999. llama.types.completion
  1000. </a>
  1001. </li>
  1002. <li class="md-nav__item">
  1003. <a href="../../xmldocs/llama.types.completionchoice/" class="md-nav__link">
  1004. llama.types.completionchoice
  1005. </a>
  1006. </li>
  1007. <li class="md-nav__item">
  1008. <a href="../../xmldocs/llama.types.completionchunk/" class="md-nav__link">
  1009. llama.types.completionchunk
  1010. </a>
  1011. </li>
  1012. <li class="md-nav__item">
  1013. <a href="../../xmldocs/llama.types.completionlogprobs/" class="md-nav__link">
  1014. llama.types.completionlogprobs
  1015. </a>
  1016. </li>
  1017. <li class="md-nav__item">
  1018. <a href="../../xmldocs/llama.types.completionusage/" class="md-nav__link">
  1019. llama.types.completionusage
  1020. </a>
  1021. </li>
  1022. <li class="md-nav__item">
  1023. <a href="../../xmldocs/llama.types.embedding/" class="md-nav__link">
  1024. llama.types.embedding
  1025. </a>
  1026. </li>
  1027. <li class="md-nav__item">
  1028. <a href="../../xmldocs/llama.types.embeddingdata/" class="md-nav__link">
  1029. llama.types.embeddingdata
  1030. </a>
  1031. </li>
  1032. <li class="md-nav__item">
  1033. <a href="../../xmldocs/llama.types.embeddingusage/" class="md-nav__link">
  1034. llama.types.embeddingusage
  1035. </a>
  1036. </li>
  1037. <li class="md-nav__item">
  1038. <a href="../../xmldocs/logger/" class="md-nav__link">
  1039. logger
  1040. </a>
  1041. </li>
  1042. </ul>
  1043. </nav>
  1044. </li>
  1045. </ul>
  1046. </nav>
  1047. </div>
  1048. </div>
  1049. </div>
  1050. <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
  1051. <div class="md-sidebar__scrollwrap">
  1052. <div class="md-sidebar__inner">
  1053. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  1054. <label class="md-nav__title" for="__toc">
  1055. <span class="md-nav__icon md-icon"></span>
  1056. Table of contents
  1057. </label>
  1058. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  1059. <li class="md-nav__item">
  1060. <a href="#basic-usages-of-chatsession" class="md-nav__link">
  1061. Basic usages of ChatSession
  1062. </a>
  1063. <nav class="md-nav" aria-label="Basic usages of ChatSession">
  1064. <ul class="md-nav__list">
  1065. <li class="md-nav__item">
  1066. <a href="#initialize-a-session" class="md-nav__link">
  1067. Initialize a session
  1068. </a>
  1069. </li>
  1070. <li class="md-nav__item">
  1071. <a href="#chat-with-the-bot" class="md-nav__link">
  1072. Chat with the bot
  1073. </a>
  1074. </li>
  1075. <li class="md-nav__item">
  1076. <a href="#get-the-history" class="md-nav__link">
  1077. Get the history
  1078. </a>
  1079. </li>
  1080. </ul>
  1081. </nav>
  1082. </li>
  1083. <li class="md-nav__item">
  1084. <a href="#saveload-chat-session" class="md-nav__link">
  1085. Save/Load Chat Session
  1086. </a>
  1087. <nav class="md-nav" aria-label="Save/Load Chat Session">
  1088. <ul class="md-nav__list">
  1089. <li class="md-nav__item">
  1090. <a href="#output-transform" class="md-nav__link">
  1091. Output transform
  1092. </a>
  1093. </li>
  1094. <li class="md-nav__item">
  1095. <a href="#history-transform" class="md-nav__link">
  1096. History transform
  1097. </a>
  1098. </li>
  1099. </ul>
  1100. </nav>
  1101. </li>
  1102. </ul>
  1103. </nav>
  1104. </div>
  1105. </div>
  1106. </div>
  1107. <div class="md-content" data-md-component="content">
  1108. <article class="md-content__inner md-typeset">
  1109. <h1 id="llamasharp-chat-session">LLamaSharp chat session</h1>
  1110. <h2 id="basic-usages-of-chatsession">Basic usages of ChatSession</h2>
  1111. <p><code>ChatSession</code> is a higher-level abstraction than the executors. In the context of a chat application like ChatGPT, a "chat session" refers to an interactive conversation or exchange of messages between the user and the chatbot. It represents a continuous flow of communication where the user enters input or asks questions, and the chatbot responds accordingly. A chat session typically starts when the user initiates a conversation with the chatbot and continues until the interaction comes to a natural end or is explicitly terminated by either the user or the system. During a chat session, the chatbot maintains the context of the conversation, remembers previous messages, and generates appropriate responses based on the user's inputs and the ongoing dialogue.</p>
  1112. <h3 id="initialize-a-session">Initialize a session</h3>
  1113. <p>Currently, the only parameter that is accepted is an <code>ILLamaExecutor</code>, because this is the only parameter that we're sure to exist in all the future versions. Since it's the high-level abstraction, we're conservative to the API designs. In the future, there may be more kinds of constructors added.</p>
  1114. <pre><code class="language-cs">InteractiveExecutor ex = new(new LLamaModel(new ModelParams(modelPath)));
  1115. ChatSession session = new ChatSession(ex);
  1116. </code></pre>
  1117. <h3 id="chat-with-the-bot">Chat with the bot</h3>
  1118. <p>There'll be two kinds of input accepted by the <code>Chat</code> API, which are <code>ChatHistory</code> and <code>String</code>. The API with string is quite similar to that of the executors. Meanwhile, the API with <code>ChatHistory</code> is aimed to provide more flexible usages. For example, you have had a chat with the bot in session A before you open the session B. Now session B has no memory for what you said before. Therefore, you can feed the history of A to B.</p>
  1119. <pre><code class="language-cs">string prompt = &quot;What is C#?&quot;;
  1120. await foreach (var text in session.ChatAsync(prompt, new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List&lt;string&gt; { &quot;User:&quot; } })) // the inference params should be changed depending on your statement
  1121. {
  1122. Console.Write(text);
  1123. }
  1124. </code></pre>
  1125. <h3 id="get-the-history">Get the history</h3>
  1126. <p>Currently <code>History</code> is a property of <code>ChatSession</code>.</p>
  1127. <pre><code class="language-cs">foreach(var rec in session.History.Messages)
  1128. {
  1129. Console.WriteLine($&quot;{rec.AuthorRole}: {rec.Content}&quot;);
  1130. }
  1131. </code></pre>
  1132. <h2 id="saveload-chat-session">Save/Load Chat Session</h2>
  1133. <p>Generally, the chat session could be switched, which requires the ability of loading and saving session.</p>
  1134. <p>The API is also quite simple, the files will be saved into a directory you specified. If the path does not exist, a new directory will be created.</p>
  1135. <pre><code class="language-cs">string savePath = &quot;&lt;save dir&gt;&quot;;
  1136. session.SaveSession(savePath);
  1137. session.LoadSession(savePath, loadTransforms:true);
  1138. session.LoadSession(savePath, loadTransforms:false);
  1139. </code></pre>
  1140. <p>You could also keep the state in memory and load them with the following APIs.</p>
  1141. <pre><code class="language-cs">var sessionState = session.GetSessionState();
  1142. session.LoadSession(sessionState, loadTransforms:true);
  1143. session.LoadSession(sessionState, loadTransforms:false);
  1144. ## Transforms in Chat Session
  1145. There's three important elements in `ChatSession`, which are input, output and history. Besides, there're some conversions between them. Since the process of them under different conditions varies, LLamaSharp hands over this part of the power to the users.
  1146. Currently, there're three kinds of process that could be customized, as introduced below.
  1147. ### Input transform
  1148. In general, the input of the chat API is a text (without stream), therefore `ChatSession` processes it in a pipeline. If you want to use your customized transform, you need to define a transform that implements `ITextTransform` and add it to the pipeline of `ChatSession`.
  1149. ```cs
  1150. public interface ITextTransform
  1151. {
  1152. string Transform(string text);
  1153. }
  1154. </code></pre>
  1155. <pre><code class="language-cs">public class MyInputTransform1 : ITextTransform
  1156. {
  1157. public string Transform(string text)
  1158. {
  1159. return $&quot;Question: {text}\n&quot;;
  1160. }
  1161. }
  1162. public class MyInputTransform2 : ITextTransform
  1163. {
  1164. public string Transform(string text)
  1165. {
  1166. return text + &quot;Answer: &quot;;
  1167. }
  1168. }
  1169. session.AddInputTransform(new MyInputTransform1()).AddInputTransform(new MyInputTransform2());
  1170. </code></pre>
  1171. <h3 id="output-transform">Output transform</h3>
  1172. <p>Different from the input, the output of chat API is a text stream. Therefore you need to process it word by word, instead of getting the full text at once.</p>
  1173. <p>The interface of it has an <code>IEnumerable&lt;string&gt;</code> as input, which is actually a yield sequence.</p>
  1174. <pre><code class="language-cs">public interface ITextStreamTransform
  1175. {
  1176. IEnumerable&lt;string&gt; Transform(IEnumerable&lt;string&gt; tokens);
  1177. IAsyncEnumerable&lt;string&gt; TransformAsync(IAsyncEnumerable&lt;string&gt; tokens);
  1178. }
  1179. </code></pre>
  1180. <p>When implementing it, you could throw a not-implemented exception in one of them if you only need to use the chat API in synchronously or asynchronously.</p>
  1181. <p>Different from the input transform pipeline, the output transform only supports one transform.</p>
  1182. <pre><code class="language-cs">session.WithOutputTransform(new MyOutputTransform());
  1183. </code></pre>
  1184. <p>Here's an example of how to implement the interface. In this example, the transform detects whether there's some keywords in the response and removes them.</p>
  1185. <pre><code class="language-cs">/// &lt;summary&gt;
  1186. /// A text output transform that removes the keywords from the response.
  1187. /// &lt;/summary&gt;
  1188. public class KeywordTextOutputStreamTransform : ITextStreamTransform
  1189. {
  1190. HashSet&lt;string&gt; _keywords;
  1191. int _maxKeywordLength;
  1192. bool _removeAllMatchedTokens;
  1193. /// &lt;summary&gt;
  1194. ///
  1195. /// &lt;/summary&gt;
  1196. /// &lt;param name=&quot;keywords&quot;&gt;Keywords that you want to remove from the response.&lt;/param&gt;
  1197. /// &lt;param name=&quot;redundancyLength&quot;&gt;The extra length when searching for the keyword. For example, if your only keyword is &quot;highlight&quot;,
  1198. /// maybe the token you get is &quot;\r\nhighligt&quot;. In this condition, if redundancyLength=0, the token cannot be successfully matched because the length of &quot;\r\nhighligt&quot; (10)
  1199. /// has already exceeded the maximum length of the keywords (8). On the contrary, setting redundancyLengyh &gt;= 2 leads to successful match.
  1200. /// The larger the redundancyLength is, the lower the processing speed. But as an experience, it won't introduce too much performance impact when redundancyLength &lt;= 5 &lt;/param&gt;
  1201. /// &lt;param name=&quot;removeAllMatchedTokens&quot;&gt;If set to true, when getting a matched keyword, all the related tokens will be removed. Otherwise only the part of keyword will be removed.&lt;/param&gt;
  1202. public KeywordTextOutputStreamTransform(IEnumerable&lt;string&gt; keywords, int redundancyLength = 3, bool removeAllMatchedTokens = false)
  1203. {
  1204. _keywords = new(keywords);
  1205. _maxKeywordLength = keywords.Select(x =&gt; x.Length).Max() + redundancyLength;
  1206. _removeAllMatchedTokens = removeAllMatchedTokens;
  1207. }
  1208. /// &lt;inheritdoc /&gt;
  1209. public IEnumerable&lt;string&gt; Transform(IEnumerable&lt;string&gt; tokens)
  1210. {
  1211. var window = new Queue&lt;string&gt;();
  1212. foreach (var s in tokens)
  1213. {
  1214. window.Enqueue(s);
  1215. var current = string.Join(&quot;&quot;, window);
  1216. if (_keywords.Any(x =&gt; current.Contains(x)))
  1217. {
  1218. var matchedKeyword = _keywords.First(x =&gt; current.Contains(x));
  1219. int total = window.Count;
  1220. for (int i = 0; i &lt; total; i++)
  1221. {
  1222. window.Dequeue();
  1223. }
  1224. if (!_removeAllMatchedTokens)
  1225. {
  1226. yield return current.Replace(matchedKeyword, &quot;&quot;);
  1227. }
  1228. }
  1229. if (current.Length &gt;= _maxKeywordLength)
  1230. {
  1231. if (_keywords.Any(x =&gt; current.Contains(x)))
  1232. {
  1233. var matchedKeyword = _keywords.First(x =&gt; current.Contains(x));
  1234. int total = window.Count;
  1235. for (int i = 0; i &lt; total; i++)
  1236. {
  1237. window.Dequeue();
  1238. }
  1239. if (!_removeAllMatchedTokens)
  1240. {
  1241. yield return current.Replace(matchedKeyword, &quot;&quot;);
  1242. }
  1243. }
  1244. else
  1245. {
  1246. int total = window.Count;
  1247. for (int i = 0; i &lt; total; i++)
  1248. {
  1249. yield return window.Dequeue();
  1250. }
  1251. }
  1252. }
  1253. }
  1254. int totalCount = window.Count;
  1255. for (int i = 0; i &lt; totalCount; i++)
  1256. {
  1257. yield return window.Dequeue();
  1258. }
  1259. }
  1260. /// &lt;inheritdoc /&gt;
  1261. public async IAsyncEnumerable&lt;string&gt; TransformAsync(IAsyncEnumerable&lt;string&gt; tokens)
  1262. {
  1263. throw new NotImplementedException(); // This is implemented in `LLamaTransforms` but we ignore it here.
  1264. }
  1265. }
  1266. </code></pre>
  1267. <h3 id="history-transform">History transform</h3>
  1268. <p>The chat history could be converted to or from a text, which is exactly what the interface of it.</p>
  1269. <pre><code class="language-cs">public interface IHistoryTransform
  1270. {
  1271. string HistoryToText(ChatHistory history);
  1272. ChatHistory TextToHistory(AuthorRole role, string text);
  1273. }
  1274. </code></pre>
  1275. <p>Similar to the output transform, the history transform is added in the following way:</p>
  1276. <pre><code class="language-cs">session.WithHistoryTransform(new MyHistoryTransform());
  1277. </code></pre>
  1278. <p>The implementation is quite flexible, depending on what you want the history message to be like. Here's an example, which is the default history transform in LLamaSharp.</p>
  1279. <pre><code class="language-cs">/// &lt;summary&gt;
  1280. /// The default history transform.
  1281. /// Uses plain text with the following format:
  1282. /// [Author]: [Message]
  1283. /// &lt;/summary&gt;
  1284. public class DefaultHistoryTransform : IHistoryTransform
  1285. {
  1286. private readonly string defaultUserName = &quot;User&quot;;
  1287. private readonly string defaultAssistantName = &quot;Assistant&quot;;
  1288. private readonly string defaultSystemName = &quot;System&quot;;
  1289. private readonly string defaultUnknownName = &quot;??&quot;;
  1290. string _userName;
  1291. string _assistantName;
  1292. string _systemName;
  1293. string _unknownName;
  1294. bool _isInstructMode;
  1295. public DefaultHistoryTransform(string? userName = null, string? assistantName = null,
  1296. string? systemName = null, string? unknownName = null, bool isInstructMode = false)
  1297. {
  1298. _userName = userName ?? defaultUserName;
  1299. _assistantName = assistantName ?? defaultAssistantName;
  1300. _systemName = systemName ?? defaultSystemName;
  1301. _unknownName = unknownName ?? defaultUnknownName;
  1302. _isInstructMode = isInstructMode;
  1303. }
  1304. public virtual string HistoryToText(ChatHistory history)
  1305. {
  1306. StringBuilder sb = new();
  1307. foreach (var message in history.Messages)
  1308. {
  1309. if (message.AuthorRole == AuthorRole.User)
  1310. {
  1311. sb.AppendLine($&quot;{_userName}: {message.Content}&quot;);
  1312. }
  1313. else if (message.AuthorRole == AuthorRole.System)
  1314. {
  1315. sb.AppendLine($&quot;{_systemName}: {message.Content}&quot;);
  1316. }
  1317. else if (message.AuthorRole == AuthorRole.Unknown)
  1318. {
  1319. sb.AppendLine($&quot;{_unknownName}: {message.Content}&quot;);
  1320. }
  1321. else if (message.AuthorRole == AuthorRole.Assistant)
  1322. {
  1323. sb.AppendLine($&quot;{_assistantName}: {message.Content}&quot;);
  1324. }
  1325. }
  1326. return sb.ToString();
  1327. }
  1328. public virtual ChatHistory TextToHistory(AuthorRole role, string text)
  1329. {
  1330. ChatHistory history = new ChatHistory();
  1331. history.AddMessage(role, TrimNamesFromText(text, role));
  1332. return history;
  1333. }
  1334. public virtual string TrimNamesFromText(string text, AuthorRole role)
  1335. {
  1336. if (role == AuthorRole.User &amp;&amp; text.StartsWith($&quot;{_userName}:&quot;))
  1337. {
  1338. text = text.Substring($&quot;{_userName}:&quot;.Length).TrimStart();
  1339. }
  1340. else if (role == AuthorRole.Assistant &amp;&amp; text.EndsWith($&quot;{_assistantName}:&quot;))
  1341. {
  1342. text = text.Substring(0, text.Length - $&quot;{_assistantName}:&quot;.Length).TrimEnd();
  1343. }
  1344. if (_isInstructMode &amp;&amp; role == AuthorRole.Assistant &amp;&amp; text.EndsWith(&quot;\n&gt; &quot;))
  1345. {
  1346. text = text.Substring(0, text.Length - &quot;\n&gt; &quot;.Length).TrimEnd();
  1347. }
  1348. return text;
  1349. }
  1350. }
  1351. </code></pre>
  1352. </article>
  1353. </div>
  1354. </div>
  1355. </main>
  1356. <footer class="md-footer">
  1357. <div class="md-footer-meta md-typeset">
  1358. <div class="md-footer-meta__inner md-grid">
  1359. <div class="md-copyright">
  1360. Made with
  1361. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  1362. Material for MkDocs
  1363. </a>
  1364. </div>
  1365. </div>
  1366. </div>
  1367. </footer>
  1368. </div>
  1369. <div class="md-dialog" data-md-component="dialog">
  1370. <div class="md-dialog__inner md-typeset"></div>
  1371. </div>
  1372. <script id="__config" type="application/json">{"base": "../..", "features": [], "search": "../../assets/javascripts/workers/search.74e28a9f.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
  1373. <script src="../../assets/javascripts/bundle.220ee61c.min.js"></script>
  1374. </body>
  1375. </html>

C#/.NET上易用的LLM高性能推理框架,支持LLaMA和LLaVA系列模型。

Contributors (1)