From 1d1d4a41f8f646996bec49a793429a0850c46366 Mon Sep 17 00:00:00 2001 From: Yaohui Liu Date: Sat, 2 Sep 2023 12:46:43 +0800 Subject: [PATCH] Deployed ca6624e to 0.5 with MkDocs 1.4.3 and mike 1.1.2 --- 0.5/404.html | 2009 +++++ 0.5/Architecture/index.html | 2112 ++++++ 0.5/ChatSession/basic-usages/index.html | 2136 ++++++ 0.5/ChatSession/save-load-session/index.html | 2048 +++++ 0.5/ChatSession/transforms/index.html | 2328 ++++++ 0.5/ContributingGuide/index.html | 2194 ++++++ .../ChatSessionStripRoleName/index.html | 2075 +++++ .../ChatSessionWithRoleName/index.html | 2077 +++++ 0.5/Examples/GetEmbeddings/index.html | 2068 +++++ 0.5/Examples/InstructModeExecute/index.html | 2077 +++++ .../InteractiveModeExecute/index.html | 2078 +++++ 0.5/Examples/LoadAndSaveSession/index.html | 2103 ++++++ 0.5/Examples/LoadAndSaveState/index.html | 2104 ++++++ 0.5/Examples/QuantizeModel/index.html | 2068 +++++ 0.5/Examples/StatelessModeExecute/index.html | 2081 +++++ 0.5/GetStarted/index.html | 2239 ++++++ 0.5/HighLevelApps/bot-sharp/index.html | 2041 +++++ 0.5/HighLevelApps/semantic-kernel/index.html | 2041 +++++ 0.5/LLamaExecutors/differences/index.html | 2150 ++++++ 0.5/LLamaExecutors/parameters/index.html | 2172 ++++++ 0.5/LLamaExecutors/save-load-state/index.html | 2059 +++++ .../text-to-text-apis/index.html | 2052 +++++ 0.5/LLamaModel/embeddings/index.html | 2031 +++++ 0.5/LLamaModel/parameters/index.html | 2135 ++++++ 0.5/LLamaModel/quantization/index.html | 2041 +++++ 0.5/LLamaModel/save-load-state/index.html | 2039 +++++ 0.5/LLamaModel/tokenization/index.html | 2060 +++++ 0.5/More/log/index.html | 2237 ++++++ 0.5/NonEnglishUsage/Chinese/index.html | 2041 +++++ 0.5/Tricks/index.html | 2164 ++++++ 0.5/assets/images/favicon.png | Bin 0 -> 1870 bytes 0.5/assets/javascripts/bundle.a51614de.min.js | 29 + .../javascripts/bundle.a51614de.min.js.map | 8 + .../javascripts/lunr/min/lunr.ar.min.js | 1 + .../javascripts/lunr/min/lunr.da.min.js | 18 + .../javascripts/lunr/min/lunr.de.min.js | 18 + .../javascripts/lunr/min/lunr.du.min.js | 18 + .../javascripts/lunr/min/lunr.es.min.js | 18 + .../javascripts/lunr/min/lunr.fi.min.js | 18 + .../javascripts/lunr/min/lunr.fr.min.js | 18 + .../javascripts/lunr/min/lunr.hi.min.js | 1 + .../javascripts/lunr/min/lunr.hu.min.js | 18 + .../javascripts/lunr/min/lunr.hy.min.js | 1 + .../javascripts/lunr/min/lunr.it.min.js | 18 + .../javascripts/lunr/min/lunr.ja.min.js | 1 + .../javascripts/lunr/min/lunr.jp.min.js | 1 + .../javascripts/lunr/min/lunr.kn.min.js | 1 + .../javascripts/lunr/min/lunr.ko.min.js | 1 + .../javascripts/lunr/min/lunr.multi.min.js | 1 + .../javascripts/lunr/min/lunr.nl.min.js | 18 + .../javascripts/lunr/min/lunr.no.min.js | 18 + .../javascripts/lunr/min/lunr.pt.min.js | 18 + .../javascripts/lunr/min/lunr.ro.min.js | 18 + .../javascripts/lunr/min/lunr.ru.min.js | 18 + .../javascripts/lunr/min/lunr.sa.min.js | 1 + .../lunr/min/lunr.stemmer.support.min.js | 1 + .../javascripts/lunr/min/lunr.sv.min.js | 18 + .../javascripts/lunr/min/lunr.ta.min.js | 1 + .../javascripts/lunr/min/lunr.te.min.js | 1 + .../javascripts/lunr/min/lunr.th.min.js | 1 + .../javascripts/lunr/min/lunr.tr.min.js | 18 + .../javascripts/lunr/min/lunr.vi.min.js | 1 + .../javascripts/lunr/min/lunr.zh.min.js | 1 + 0.5/assets/javascripts/lunr/tinyseg.js | 206 + 0.5/assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++ .../workers/search.208ed371.min.js | 42 + .../workers/search.208ed371.min.js.map | 8 + 0.5/assets/stylesheets/main.26e3688c.min.css | 1 + .../stylesheets/main.26e3688c.min.css.map | 1 + .../stylesheets/palette.ecc896b0.min.css | 1 + .../stylesheets/palette.ecc896b0.min.css.map | 1 + 0.5/index.html | 2141 ++++++ 0.5/media/LLamaSharpLogo.png | Bin 0 -> 41408 bytes 0.5/media/structure.jpg | Bin 0 -> 161377 bytes 0.5/media/structure.vsdx | Bin 0 -> 33223 bytes 0.5/sciprts/map_xml_files_to_yml.py | 16 + 0.5/search/search_index.json | 1 + 0.5/sitemap.xml | 3 + 0.5/sitemap.xml.gz | Bin 0 -> 127 bytes 0.5/xmldocs/index.html | 2267 ++++++ .../index.html | 2232 ++++++ .../index.html | 3074 ++++++++ .../index.html | 2310 ++++++ .../index.html | 3116 ++++++++ .../index.html | 2227 ++++++ .../index.html | 2171 ++++++ 0.5/xmldocs/llama.chatsession/index.html | 2968 ++++++++ .../llama.common.authorrole/index.html | 2124 ++++++ .../llama.common.chathistory/index.html | 2271 ++++++ .../llama.common.fixedsizequeue-1/index.html | 2517 +++++++ .../llama.common.illamalogger/index.html | 2154 ++++++ .../llama.common.inferenceparams/index.html | 3120 ++++++++ .../index.html | 2695 +++++++ .../llama.common.mirostattype/index.html | 2120 ++++++ .../llama.common.modelparams/index.html | 3633 +++++++++ .../index.html | 2465 ++++++ .../index.html | 2465 ++++++ .../index.html | 2465 ++++++ .../index.html | 2465 ++++++ .../index.html | 2465 ++++++ .../index.html | 2465 ++++++ .../index.html | 2465 ++++++ .../index.html | 2465 ++++++ .../index.html | 2465 ++++++ .../index.html | 2465 ++++++ .../llama.exceptions.runtimeerror/index.html | 2553 +++++++ .../index.html | 2184 ++++++ .../index.html | 2174 ++++++ 0.5/xmldocs/llama.grammars.grammar/index.html | 2490 ++++++ .../llama.grammars.grammarrule/index.html | 2571 +++++++ 0.5/xmldocs/llama.instructexecutor/index.html | 2648 +++++++ .../llama.interactiveexecutor/index.html | 2648 +++++++ 0.5/xmldocs/llama.llamacontext/index.html | 3721 +++++++++ 0.5/xmldocs/llama.llamaembedder/index.html | 2572 +++++++ 0.5/xmldocs/llama.llamaquantizer/index.html | 2280 ++++++ 0.5/xmldocs/llama.llamatransforms/index.html | 2121 ++++++ 0.5/xmldocs/llama.llamaweights/index.html | 2505 ++++++ .../index.html | 2681 +++++++ .../llama.native.llamaftype/index.html | 2194 ++++++ .../index.html | 2454 ++++++ .../index.html | 2139 ++++++ .../index.html | 2259 ++++++ .../llama.native.llamatokendata/index.html | 2231 ++++++ .../index.html | 2303 ++++++ .../index.html | 2308 ++++++ 0.5/xmldocs/llama.native.nativeapi/index.html | 5736 ++++++++++++++ .../index.html | 3388 +++++++++ .../index.html | 2431 ++++++ .../index.html | 2267 ++++++ .../index.html | 2856 +++++++ .../llama.native.samplingapi/index.html | 3001 ++++++++ .../index.html | 2863 +++++++ .../index.html | 2722 +++++++ .../index.html | 2816 +++++++ .../index.html | 2722 +++++++ .../index.html | 2675 +++++++ .../index.html | 2722 +++++++ .../index.html | 2675 +++++++ .../llama.oldversion.chatrole/index.html | 2108 ++++++ .../llama.oldversion.chatsession-1/index.html | 2457 ++++++ .../llama.oldversion.completion/index.html | 2863 +++++++ .../index.html | 2769 +++++++ .../index.html | 2816 +++++++ .../index.html | 2769 +++++++ .../index.html | 2722 +++++++ .../llama.oldversion.embedding/index.html | 2769 +++++++ .../llama.oldversion.embeddingdata/index.html | 2722 +++++++ .../index.html | 2675 +++++++ .../llama.oldversion.ichatmodel/index.html | 2346 ++++++ .../llama.oldversion.llamaembedder/index.html | 2274 ++++++ .../llama.oldversion.llamamodel/index.html | 3137 ++++++++ .../llama.oldversion.llamaparams/index.html | 2947 ++++++++ .../llama.statefulexecutorbase/index.html | 2899 +++++++ .../llama.statelessexecutor/index.html | 2442 ++++++ 0.5/xmldocs/llama.utils/index.html | 2582 +++++++ latest/404.html | 6 +- latest/Architecture/index.html | 6 +- latest/ChatSession/basic-usages/index.html | 6 +- .../ChatSession/save-load-session/index.html | 6 +- latest/ChatSession/transforms/index.html | 6 +- latest/ContributingGuide/index.html | 6 +- .../ChatSessionStripRoleName/index.html | 6 +- .../ChatSessionWithRoleName/index.html | 6 +- latest/Examples/GetEmbeddings/index.html | 6 +- .../Examples/InstructModeExecute/index.html | 6 +- .../InteractiveModeExecute/index.html | 6 +- latest/Examples/LoadAndSaveSession/index.html | 6 +- latest/Examples/LoadAndSaveState/index.html | 6 +- latest/Examples/QuantizeModel/index.html | 6 +- .../Examples/StatelessModeExecute/index.html | 6 +- latest/GetStarted/index.html | 6 +- latest/HighLevelApps/bot-sharp/index.html | 6 +- .../HighLevelApps/semantic-kernel/index.html | 16 + latest/LLamaExecutors/differences/index.html | 6 +- latest/LLamaExecutors/parameters/index.html | 6 +- .../LLamaExecutors/save-load-state/index.html | 6 +- .../text-to-text-apis/index.html | 6 +- latest/LLamaModel/embeddings/index.html | 6 +- latest/LLamaModel/parameters/index.html | 6 +- latest/LLamaModel/quantization/index.html | 6 +- latest/LLamaModel/save-load-state/index.html | 6 +- latest/LLamaModel/tokenization/index.html | 6 +- latest/More/log/index.html | 6 +- latest/NonEnglishUsage/Chinese/index.html | 6 +- latest/Tricks/index.html | 6 +- latest/index.html | 6 +- latest/xmldocs/index.html | 6 +- .../index.html | 6 +- .../index.html | 16 + .../index.html | 6 +- .../index.html | 16 + .../index.html | 6 +- .../index.html | 6 +- latest/xmldocs/llama.chatsession/index.html | 6 +- .../llama.common.authorrole/index.html | 6 +- .../llama.common.chathistory/index.html | 6 +- .../llama.common.fixedsizequeue-1/index.html | 6 +- .../llama.common.illamalogger/index.html | 6 +- .../llama.common.inferenceparams/index.html | 6 +- .../index.html | 6 +- .../llama.common.mirostatetype/index.html | 16 - .../llama.common.mirostattype/index.html | 16 + .../llama.common.modelparams/index.html | 6 +- .../index.html | 16 + .../index.html | 16 + .../index.html | 16 + .../index.html | 16 + .../index.html | 16 + .../index.html | 16 + .../index.html | 16 + .../index.html | 16 + .../index.html | 16 + .../index.html | 16 + .../llama.exceptions.runtimeerror/index.html | 6 +- .../index.html | 16 - .../index.html | 16 + .../index.html | 16 + .../xmldocs/llama.grammars.grammar/index.html | 16 + .../llama.grammars.grammarrule/index.html | 16 + .../xmldocs/llama.instructexecutor/index.html | 6 +- .../llama.interactiveexecutor/index.html | 6 +- latest/xmldocs/llama.llamacontext/index.html | 16 + latest/xmldocs/llama.llamaembedder/index.html | 6 +- latest/xmldocs/llama.llamamodel/index.html | 16 - .../xmldocs/llama.llamaquantizer/index.html | 6 +- .../xmldocs/llama.llamatransforms/index.html | 6 +- latest/xmldocs/llama.llamaweights/index.html | 16 + .../index.html | 6 +- .../llama.native.llamaftype/index.html | 6 +- .../index.html | 16 + .../index.html | 16 + .../index.html | 16 + .../llama.native.llamatokendata/index.html | 6 +- .../index.html | 6 +- .../index.html | 6 +- .../xmldocs/llama.native.nativeapi/index.html | 6 +- .../index.html | 6 +- .../index.html | 16 + .../index.html | 6 +- .../index.html | 16 + .../llama.native.samplingapi/index.html | 16 + .../index.html | 6 +- .../index.html | 6 +- .../index.html | 6 +- .../index.html | 6 +- .../index.html | 6 +- .../index.html | 6 +- .../index.html | 6 +- .../llama.oldversion.chatrole/index.html | 6 +- .../llama.oldversion.chatsession-1/index.html | 6 +- .../llama.oldversion.completion/index.html | 6 +- .../index.html | 6 +- .../index.html | 6 +- .../index.html | 6 +- .../index.html | 6 +- .../llama.oldversion.embedding/index.html | 6 +- .../llama.oldversion.embeddingdata/index.html | 6 +- .../index.html | 6 +- .../llama.oldversion.ichatmodel/index.html | 6 +- .../llama.oldversion.llamaembedder/index.html | 6 +- .../llama.oldversion.llamamodel/index.html | 6 +- .../llama.oldversion.llamaparams/index.html | 6 +- .../llama.resettablellamamodel/index.html | 16 - .../llama.statefulexecutorbase/index.html | 6 +- .../llama.statelessexecutor/index.html | 6 +- latest/xmldocs/llama.utils/index.html | 16 + versions.json | 2 +- 267 files changed, 272040 insertions(+), 305 deletions(-) create mode 100755 0.5/404.html create mode 100755 0.5/Architecture/index.html create mode 100755 0.5/ChatSession/basic-usages/index.html create mode 100755 0.5/ChatSession/save-load-session/index.html create mode 100755 0.5/ChatSession/transforms/index.html create mode 100755 0.5/ContributingGuide/index.html create mode 100755 0.5/Examples/ChatSessionStripRoleName/index.html create mode 100755 0.5/Examples/ChatSessionWithRoleName/index.html create mode 100755 0.5/Examples/GetEmbeddings/index.html create mode 100755 0.5/Examples/InstructModeExecute/index.html create mode 100755 0.5/Examples/InteractiveModeExecute/index.html create mode 100755 0.5/Examples/LoadAndSaveSession/index.html create mode 100755 0.5/Examples/LoadAndSaveState/index.html create mode 100755 0.5/Examples/QuantizeModel/index.html create mode 100755 0.5/Examples/StatelessModeExecute/index.html create mode 100755 0.5/GetStarted/index.html create mode 100755 0.5/HighLevelApps/bot-sharp/index.html create mode 100755 0.5/HighLevelApps/semantic-kernel/index.html create mode 100755 0.5/LLamaExecutors/differences/index.html create mode 100755 0.5/LLamaExecutors/parameters/index.html create mode 100755 0.5/LLamaExecutors/save-load-state/index.html create mode 100755 0.5/LLamaExecutors/text-to-text-apis/index.html create mode 100755 0.5/LLamaModel/embeddings/index.html create mode 100755 0.5/LLamaModel/parameters/index.html create mode 100755 0.5/LLamaModel/quantization/index.html create mode 100755 0.5/LLamaModel/save-load-state/index.html create mode 100755 0.5/LLamaModel/tokenization/index.html create mode 100755 0.5/More/log/index.html create mode 100755 0.5/NonEnglishUsage/Chinese/index.html create mode 100755 0.5/Tricks/index.html create mode 100755 0.5/assets/images/favicon.png create mode 100755 0.5/assets/javascripts/bundle.a51614de.min.js create mode 100755 0.5/assets/javascripts/bundle.a51614de.min.js.map create mode 100755 0.5/assets/javascripts/lunr/min/lunr.ar.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.da.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.de.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.du.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.es.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.fi.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.fr.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.hi.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.hu.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.hy.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.it.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.ja.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.jp.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.kn.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.ko.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.multi.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.nl.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.no.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.pt.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.ro.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.ru.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.sa.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.sv.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.ta.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.te.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.th.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.tr.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.vi.min.js create mode 100755 0.5/assets/javascripts/lunr/min/lunr.zh.min.js create mode 100755 0.5/assets/javascripts/lunr/tinyseg.js create mode 100755 0.5/assets/javascripts/lunr/wordcut.js create mode 100755 0.5/assets/javascripts/workers/search.208ed371.min.js create mode 100755 0.5/assets/javascripts/workers/search.208ed371.min.js.map create mode 100755 0.5/assets/stylesheets/main.26e3688c.min.css create mode 100755 0.5/assets/stylesheets/main.26e3688c.min.css.map create mode 100755 0.5/assets/stylesheets/palette.ecc896b0.min.css create mode 100755 0.5/assets/stylesheets/palette.ecc896b0.min.css.map create mode 100755 0.5/index.html create mode 100755 0.5/media/LLamaSharpLogo.png create mode 100755 0.5/media/structure.jpg create mode 100755 0.5/media/structure.vsdx create mode 100755 0.5/sciprts/map_xml_files_to_yml.py create mode 100755 0.5/search/search_index.json create mode 100755 0.5/sitemap.xml create mode 100755 0.5/sitemap.xml.gz create mode 100755 0.5/xmldocs/index.html create mode 100755 0.5/xmldocs/llama.abstractions.ihistorytransform/index.html create mode 100755 0.5/xmldocs/llama.abstractions.iinferenceparams/index.html create mode 100755 0.5/xmldocs/llama.abstractions.illamaexecutor/index.html create mode 100755 0.5/xmldocs/llama.abstractions.imodelparams/index.html create mode 100755 0.5/xmldocs/llama.abstractions.itextstreamtransform/index.html create mode 100755 0.5/xmldocs/llama.abstractions.itexttransform/index.html create mode 100755 0.5/xmldocs/llama.chatsession/index.html create mode 100755 0.5/xmldocs/llama.common.authorrole/index.html create mode 100755 0.5/xmldocs/llama.common.chathistory/index.html create mode 100755 0.5/xmldocs/llama.common.fixedsizequeue-1/index.html create mode 100755 0.5/xmldocs/llama.common.illamalogger/index.html create mode 100755 0.5/xmldocs/llama.common.inferenceparams/index.html create mode 100755 0.5/xmldocs/llama.common.llamadefaultlogger/index.html create mode 100755 0.5/xmldocs/llama.common.mirostattype/index.html create mode 100755 0.5/xmldocs/llama.common.modelparams/index.html create mode 100755 0.5/xmldocs/llama.exceptions.grammarexpectedname/index.html create mode 100755 0.5/xmldocs/llama.exceptions.grammarexpectednext/index.html create mode 100755 0.5/xmldocs/llama.exceptions.grammarexpectedprevious/index.html create mode 100755 0.5/xmldocs/llama.exceptions.grammarformatexception/index.html create mode 100755 0.5/xmldocs/llama.exceptions.grammarunexpectedcharaltelement/index.html create mode 100755 0.5/xmldocs/llama.exceptions.grammarunexpectedcharrngelement/index.html create mode 100755 0.5/xmldocs/llama.exceptions.grammarunexpectedendelement/index.html create mode 100755 0.5/xmldocs/llama.exceptions.grammarunexpectedendofinput/index.html create mode 100755 0.5/xmldocs/llama.exceptions.grammarunexpectedhexcharscount/index.html create mode 100755 0.5/xmldocs/llama.exceptions.grammarunknownescapecharacter/index.html create mode 100755 0.5/xmldocs/llama.exceptions.runtimeerror/index.html create mode 100755 0.5/xmldocs/llama.extensions.imodelparamsextensions/index.html create mode 100755 0.5/xmldocs/llama.extensions.keyvaluepairextensions/index.html create mode 100755 0.5/xmldocs/llama.grammars.grammar/index.html create mode 100755 0.5/xmldocs/llama.grammars.grammarrule/index.html create mode 100755 0.5/xmldocs/llama.instructexecutor/index.html create mode 100755 0.5/xmldocs/llama.interactiveexecutor/index.html create mode 100755 0.5/xmldocs/llama.llamacontext/index.html create mode 100755 0.5/xmldocs/llama.llamaembedder/index.html create mode 100755 0.5/xmldocs/llama.llamaquantizer/index.html create mode 100755 0.5/xmldocs/llama.llamatransforms/index.html create mode 100755 0.5/xmldocs/llama.llamaweights/index.html create mode 100755 0.5/xmldocs/llama.native.llamacontextparams/index.html create mode 100755 0.5/xmldocs/llama.native.llamaftype/index.html create mode 100755 0.5/xmldocs/llama.native.llamagrammarelement/index.html create mode 100755 0.5/xmldocs/llama.native.llamagrammarelementtype/index.html create mode 100755 0.5/xmldocs/llama.native.llamamodelquantizeparams/index.html create mode 100755 0.5/xmldocs/llama.native.llamatokendata/index.html create mode 100755 0.5/xmldocs/llama.native.llamatokendataarray/index.html create mode 100755 0.5/xmldocs/llama.native.llamatokendataarraynative/index.html create mode 100755 0.5/xmldocs/llama.native.nativeapi/index.html create mode 100755 0.5/xmldocs/llama.native.safellamacontexthandle/index.html create mode 100755 0.5/xmldocs/llama.native.safellamagrammarhandle/index.html create mode 100755 0.5/xmldocs/llama.native.safellamahandlebase/index.html create mode 100755 0.5/xmldocs/llama.native.safellamamodelhandle/index.html create mode 100755 0.5/xmldocs/llama.native.samplingapi/index.html create mode 100755 0.5/xmldocs/llama.oldversion.chatcompletion/index.html create mode 100755 0.5/xmldocs/llama.oldversion.chatcompletionchoice/index.html create mode 100755 0.5/xmldocs/llama.oldversion.chatcompletionchunk/index.html create mode 100755 0.5/xmldocs/llama.oldversion.chatcompletionchunkchoice/index.html create mode 100755 0.5/xmldocs/llama.oldversion.chatcompletionchunkdelta/index.html create mode 100755 0.5/xmldocs/llama.oldversion.chatcompletionmessage/index.html create mode 100755 0.5/xmldocs/llama.oldversion.chatmessagerecord/index.html create mode 100755 0.5/xmldocs/llama.oldversion.chatrole/index.html create mode 100755 0.5/xmldocs/llama.oldversion.chatsession-1/index.html create mode 100755 0.5/xmldocs/llama.oldversion.completion/index.html create mode 100755 0.5/xmldocs/llama.oldversion.completionchoice/index.html create mode 100755 0.5/xmldocs/llama.oldversion.completionchunk/index.html create mode 100755 0.5/xmldocs/llama.oldversion.completionlogprobs/index.html create mode 100755 0.5/xmldocs/llama.oldversion.completionusage/index.html create mode 100755 0.5/xmldocs/llama.oldversion.embedding/index.html create mode 100755 0.5/xmldocs/llama.oldversion.embeddingdata/index.html create mode 100755 0.5/xmldocs/llama.oldversion.embeddingusage/index.html create mode 100755 0.5/xmldocs/llama.oldversion.ichatmodel/index.html create mode 100755 0.5/xmldocs/llama.oldversion.llamaembedder/index.html create mode 100755 0.5/xmldocs/llama.oldversion.llamamodel/index.html create mode 100755 0.5/xmldocs/llama.oldversion.llamaparams/index.html create mode 100755 0.5/xmldocs/llama.statefulexecutorbase/index.html create mode 100755 0.5/xmldocs/llama.statelessexecutor/index.html create mode 100755 0.5/xmldocs/llama.utils/index.html create mode 100644 latest/HighLevelApps/semantic-kernel/index.html create mode 100644 latest/xmldocs/llama.abstractions.iinferenceparams/index.html create mode 100644 latest/xmldocs/llama.abstractions.imodelparams/index.html delete mode 100644 latest/xmldocs/llama.common.mirostatetype/index.html create mode 100644 latest/xmldocs/llama.common.mirostattype/index.html create mode 100644 latest/xmldocs/llama.exceptions.grammarexpectedname/index.html create mode 100644 latest/xmldocs/llama.exceptions.grammarexpectednext/index.html create mode 100644 latest/xmldocs/llama.exceptions.grammarexpectedprevious/index.html create mode 100644 latest/xmldocs/llama.exceptions.grammarformatexception/index.html create mode 100644 latest/xmldocs/llama.exceptions.grammarunexpectedcharaltelement/index.html create mode 100644 latest/xmldocs/llama.exceptions.grammarunexpectedcharrngelement/index.html create mode 100644 latest/xmldocs/llama.exceptions.grammarunexpectedendelement/index.html create mode 100644 latest/xmldocs/llama.exceptions.grammarunexpectedendofinput/index.html create mode 100644 latest/xmldocs/llama.exceptions.grammarunexpectedhexcharscount/index.html create mode 100644 latest/xmldocs/llama.exceptions.grammarunknownescapecharacter/index.html delete mode 100644 latest/xmldocs/llama.extensions.dictionaryextension/index.html create mode 100644 latest/xmldocs/llama.extensions.imodelparamsextensions/index.html create mode 100644 latest/xmldocs/llama.extensions.keyvaluepairextensions/index.html create mode 100644 latest/xmldocs/llama.grammars.grammar/index.html create mode 100644 latest/xmldocs/llama.grammars.grammarrule/index.html create mode 100644 latest/xmldocs/llama.llamacontext/index.html delete mode 100644 latest/xmldocs/llama.llamamodel/index.html create mode 100644 latest/xmldocs/llama.llamaweights/index.html create mode 100644 latest/xmldocs/llama.native.llamagrammarelement/index.html create mode 100644 latest/xmldocs/llama.native.llamagrammarelementtype/index.html create mode 100644 latest/xmldocs/llama.native.llamamodelquantizeparams/index.html create mode 100644 latest/xmldocs/llama.native.safellamagrammarhandle/index.html create mode 100644 latest/xmldocs/llama.native.safellamamodelhandle/index.html create mode 100644 latest/xmldocs/llama.native.samplingapi/index.html delete mode 100644 latest/xmldocs/llama.resettablellamamodel/index.html create mode 100644 latest/xmldocs/llama.utils/index.html diff --git a/0.5/404.html b/0.5/404.html new file mode 100755 index 00000000..8a544c66 --- /dev/null +++ b/0.5/404.html @@ -0,0 +1,2009 @@ + + + + + + + + + + + + + + + + + + LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/Architecture/index.html b/0.5/Architecture/index.html new file mode 100755 index 00000000..e0ae20ab --- /dev/null +++ b/0.5/Architecture/index.html @@ -0,0 +1,2112 @@ + + + + + + + + + + + + + + + + + + + + + + Architecture - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Architecture

+

Architecture of main functions

+

The figure below shows the core framework structure, which is separated to four levels.

+
    +
  • LLamaContext: The holder of a model which directly interact with native library and provide some basic APIs such as tokenization and embedding. Currently it includes three classes: LLamaContext, LLamaEmbedder and LLamaQuantizer.
  • +
  • LLamaExecutors: Executors which define the way to run the LLama model. It provides text-to-text APIs to make it easy to use. Currently we provide three kinds of executors: InteractiveExecutor, InstructuExecutor and StatelessExecutor.
  • +
  • ChatSession: A wrapping for InteractiveExecutor and LLamaContext, which supports interactive tasks and saving/re-loading sessions. It also provides a flexible way to customize the text process by IHistoryTransform, ITextTransform and ITextStreamTransform.
  • +
  • High-level Applications: Some applications that provides higher-level integration. For example, BotSharp provides integration for vector search, Chatbot UI and Web APIs. semantic-kernel provides various APIs for manipulations related with LLM. If you've made an integration, please tell us and add it to the doc!
  • +
+

structure_image

+ +

Since LLamaContext interact with native library, it's not recommended to use the methods of it directly unless you know what you are doing. So does the NativeApi, which is not included in the architecture figure above.

+

ChatSession is recommended to be used when you want to build an application similar to ChatGPT, or the ChatBot, because it works best with InteractiveExecutor. Though other executors are also allowed to passed as a parameter to initialize a ChatSession, it's not encouraged if you are new to LLamaSharp and LLM.

+

High-level applications, such as BotSharp, are supposed to be used when you concentrate on the part not related with LLM. For example, if you want to deploy a chat bot to help you remember your schedules, using BotSharp may be a good choice.

+

Note that the APIs of the high-level applications may not be stable now. Please take it into account when using them.

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/ChatSession/basic-usages/index.html b/0.5/ChatSession/basic-usages/index.html new file mode 100755 index 00000000..c71a889b --- /dev/null +++ b/0.5/ChatSession/basic-usages/index.html @@ -0,0 +1,2136 @@ + + + + + + + + + + + + + + + + + + + + + + Basic Usages - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Basic usages of ChatSession

+

ChatSession 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.

+

Initialize a session

+

Currently, the only parameter that is accepted is an ILLamaExecutor, 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.

+
InteractiveExecutor ex = new(new LLamaModel(new ModelParams(modelPath)));
+ChatSession session = new ChatSession(ex);
+
+

Chat with the bot

+

There'll be two kinds of input accepted by the Chat API, which are ChatHistory and String. The API with string is quite similar to that of the executors. Meanwhile, the API with ChatHistory 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.

+
string prompt = "What is C#?";
+
+foreach (var text in session.Chat(prompt, new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { "User:" } })) // the inference params should be changed depending on your statement
+{
+    Console.Write(text);
+}
+
+

Get the history

+

Currently History is a property of ChatSession.

+
foreach(var rec in session.History.Messages)
+{
+    Console.WriteLine($"{rec.AuthorRole}: {rec.Content}");
+}
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/ChatSession/save-load-session/index.html b/0.5/ChatSession/save-load-session/index.html new file mode 100755 index 00000000..fa11b905 --- /dev/null +++ b/0.5/ChatSession/save-load-session/index.html @@ -0,0 +1,2048 @@ + + + + + + + + + + + + + + + + + + + + + + Save/Load Session - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Save/Load Chat Session

+

Generally, the chat session could be switched, which requires the ability of loading and saving session.

+

When building a chat bot app, it's NOT encouraged to initialize many chat sessions and keep them in memory to wait for being switched, because the memory consumption of both CPU and GPU is expensive. It's recommended to save the current session before switching to a new session, and load the file when switching back to the session.

+

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.

+
string savePath = "<save dir>";
+session.SaveSession(savePath);
+
+session.LoadSession(savePath);
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/ChatSession/transforms/index.html b/0.5/ChatSession/transforms/index.html new file mode 100755 index 00000000..0aac75ad --- /dev/null +++ b/0.5/ChatSession/transforms/index.html @@ -0,0 +1,2328 @@ + + + + + + + + + + + + + + + + + + + + + + Transoforms - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Transforms in Chat Session

+

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.

+

Currently, there're three kinds of process that could be customized, as introduced below.

+

Input transform

+

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.

+
public interface ITextTransform
+{
+    string Transform(string text);
+}
+
+
public class MyInputTransform1 : ITextTransform
+{
+    public string Transform(string text)
+    {
+        return $"Question: {text}\n";
+    }
+}
+
+public class MyInputTransform2 : ITextTransform
+{
+    public string Transform(string text)
+    {
+        return text + "Answer: ";
+    }
+}
+
+session.AddInputTransform(new MyInputTransform1()).AddInputTransform(new MyInputTransform2());
+
+

Output transform

+

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.

+

The interface of it has an IEnumerable<string> as input, which is actually a yield sequence.

+
public interface ITextStreamTransform
+{
+    IEnumerable<string> Transform(IEnumerable<string> tokens);
+    IAsyncEnumerable<string> TransformAsync(IAsyncEnumerable<string> tokens);
+}
+
+

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.

+

Different from the input transform pipeline, the output transform only supports one transform.

+
session.WithOutputTransform(new MyOutputTransform());
+
+

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.

+
/// <summary>
+/// A text output transform that removes the keywords from the response.
+/// </summary>
+public class KeywordTextOutputStreamTransform : ITextStreamTransform
+{
+    HashSet<string> _keywords;
+    int _maxKeywordLength;
+    bool _removeAllMatchedTokens;
+
+    /// <summary>
+    /// 
+    /// </summary>
+    /// <param name="keywords">Keywords that you want to remove from the response.</param>
+    /// <param name="redundancyLength">The extra length when searching for the keyword. For example, if your only keyword is "highlight", 
+    /// maybe the token you get is "\r\nhighligt". In this condition, if redundancyLength=0, the token cannot be successfully matched because the length of "\r\nhighligt" (10)
+    /// has already exceeded the maximum length of the keywords (8). On the contrary, setting redundancyLengyh >= 2 leads to successful match.
+    /// The larger the redundancyLength is, the lower the processing speed. But as an experience, it won't introduce too much performance impact when redundancyLength <= 5 </param>
+    /// <param name="removeAllMatchedTokens">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.</param>
+    public KeywordTextOutputStreamTransform(IEnumerable<string> keywords, int redundancyLength = 3, bool removeAllMatchedTokens = false)
+    {
+        _keywords = new(keywords);
+        _maxKeywordLength = keywords.Select(x => x.Length).Max() + redundancyLength;
+        _removeAllMatchedTokens = removeAllMatchedTokens;
+    }
+    /// <inheritdoc />
+    public IEnumerable<string> Transform(IEnumerable<string> tokens)
+    {
+        var window = new Queue<string>();
+
+        foreach (var s in tokens)
+        {
+            window.Enqueue(s);
+            var current = string.Join("", window);
+            if (_keywords.Any(x => current.Contains(x)))
+            {
+                var matchedKeyword = _keywords.First(x => current.Contains(x));
+                int total = window.Count;
+                for (int i = 0; i < total; i++)
+                {
+                    window.Dequeue();
+                }
+                if (!_removeAllMatchedTokens)
+                {
+                    yield return current.Replace(matchedKeyword, "");
+                }
+            }
+            if (current.Length >= _maxKeywordLength)
+            {
+                if (_keywords.Any(x => current.Contains(x)))
+                {
+                    var matchedKeyword = _keywords.First(x => current.Contains(x));
+                    int total = window.Count;
+                    for (int i = 0; i < total; i++)
+                    {
+                        window.Dequeue();
+                    }
+                    if (!_removeAllMatchedTokens)
+                    {
+                        yield return current.Replace(matchedKeyword, "");
+                    }
+                }
+                else
+                {
+                    int total = window.Count;
+                    for (int i = 0; i < total; i++)
+                    {
+                        yield return window.Dequeue();
+                    }
+                }
+            }
+        }
+        int totalCount = window.Count;
+        for (int i = 0; i < totalCount; i++)
+        {
+            yield return window.Dequeue();
+        }
+    }
+    /// <inheritdoc />
+    public async IAsyncEnumerable<string> TransformAsync(IAsyncEnumerable<string> tokens)
+    {
+        throw new NotImplementedException(); // This is implemented in `LLamaTransforms` but we ignore it here.
+    }
+}
+
+

History transform

+

The chat history could be converted to or from a text, which is exactly what the interface of it.

+
public interface IHistoryTransform
+{
+    string HistoryToText(ChatHistory history);
+    ChatHistory TextToHistory(AuthorRole role, string text);
+}
+
+

Similar to the output transform, the history transform is added in the following way:

+
session.WithHistoryTransform(new MyHistoryTransform());
+
+

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.

+
/// <summary>
+/// The default history transform.
+/// Uses plain text with the following format:
+/// [Author]: [Message]
+/// </summary>
+public class DefaultHistoryTransform : IHistoryTransform
+{
+    private readonly string defaultUserName = "User";
+    private readonly string defaultAssistantName = "Assistant";
+    private readonly string defaultSystemName = "System";
+    private readonly string defaultUnknownName = "??";
+
+    string _userName;
+    string _assistantName;
+    string _systemName;
+    string _unknownName;
+    bool _isInstructMode;
+    public DefaultHistoryTransform(string? userName = null, string? assistantName = null, 
+        string? systemName = null, string? unknownName = null, bool isInstructMode = false)
+    {
+        _userName = userName ?? defaultUserName;
+        _assistantName = assistantName ?? defaultAssistantName;
+        _systemName = systemName ?? defaultSystemName;
+        _unknownName = unknownName ?? defaultUnknownName;
+        _isInstructMode = isInstructMode;
+    }
+
+    public virtual string HistoryToText(ChatHistory history)
+    {
+        StringBuilder sb = new();
+        foreach (var message in history.Messages)
+        {
+            if (message.AuthorRole == AuthorRole.User)
+            {
+                sb.AppendLine($"{_userName}: {message.Content}");
+            }
+            else if (message.AuthorRole == AuthorRole.System)
+            {
+                sb.AppendLine($"{_systemName}: {message.Content}");
+            }
+            else if (message.AuthorRole == AuthorRole.Unknown)
+            {
+                sb.AppendLine($"{_unknownName}: {message.Content}");
+            }
+            else if (message.AuthorRole == AuthorRole.Assistant)
+            {
+                sb.AppendLine($"{_assistantName}: {message.Content}");
+            }
+        }
+        return sb.ToString();
+    }
+
+    public virtual ChatHistory TextToHistory(AuthorRole role, string text)
+    {
+        ChatHistory history = new ChatHistory();
+        history.AddMessage(role, TrimNamesFromText(text, role));
+        return history;
+    }
+
+    public virtual string TrimNamesFromText(string text, AuthorRole role)
+    {
+        if (role == AuthorRole.User && text.StartsWith($"{_userName}:"))
+        {
+            text = text.Substring($"{_userName}:".Length).TrimStart();
+        }
+        else if (role == AuthorRole.Assistant && text.EndsWith($"{_assistantName}:"))
+        {
+            text = text.Substring(0, text.Length - $"{_assistantName}:".Length).TrimEnd();
+        }
+        if (_isInstructMode && role == AuthorRole.Assistant && text.EndsWith("\n> "))
+        {
+            text = text.Substring(0, text.Length - "\n> ".Length).TrimEnd();
+        }
+        return text;
+    }
+}
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/ContributingGuide/index.html b/0.5/ContributingGuide/index.html new file mode 100755 index 00000000..77ce1c21 --- /dev/null +++ b/0.5/ContributingGuide/index.html @@ -0,0 +1,2194 @@ + + + + + + + + + + + + + + + + + + + + + + Contributing Guide - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + +

LLamaSharp Contributing Guide

+

Hi, welcome to develop LLamaSharp with us together! We are always open for every contributor and any format of contributions! If you want to maintain this library actively together, please contact us to get the write access after some PRs. (Email: AsakusaRinne@gmail.com)

+

In this page, we'd like to introduce how to make contributions here easily. 😊

+

Compile the native library from source

+

Firstly, please clone the llama.cpp repository and following the instructions in llama.cpp readme to configure your local environment.

+

If you want to support cublas in the compilation, please make sure that you've installed the cuda.

+

When building from source, please add -DBUILD_SHARED_LIBS=ON to the cmake instruction. For example, when building with cublas but without openblas, use the following instruction:

+
cmake .. -DLLAMA_CUBLAS=ON -DBUILD_SHARED_LIBS=ON
+
+

After running cmake --build . --config Release, you could find the llama.dll, llama.so or llama.dylib in your build directory. After pasting it to LLamaSharp/LLama/runtimes and renaming it to libllama.dll, libllama.so or libllama.dylib, you can use it as the native library in LLamaSharp.

+

Add a new feature to LLamaSharp

+

After refactoring the framework in v0.4.0, LLamaSharp will try to maintain the backward compatibility. However, in the following cases a breaking change will be required:

+
    +
  1. Due to some break changes in llama.cpp, making a breaking change will help to maintain the good abstraction and friendly user APIs.
  2. +
  3. A very important feature cannot be implemented unless refactoring some parts.
  4. +
  5. After some discussions, an agreement was reached that making the break change is reasonable.
  6. +
+

If a new feature could be added without introducing any break change, please open a PR rather than open an issue first. We will never refuse the PR but help to improve it, unless it's malicious.

+

When adding the feature, please take care of the namespace and the naming convention. For example, if you are adding an integration for WPF, please put the code under namespace LLama.WPF or LLama.Integration.WPF instead of putting it under the root namespace. The naming convention of LLamaSharp follows the pascal naming convention, but in some parts that are invisible to users, you can do whatever you want.

+

Find the problem and fix the BUG

+

If the issue is related to the LLM internal behaviour, such as endless generating the response, the best way to find the problem is to do comparison test between llama.cpp and LLamaSharp.

+

You could use exactly the same prompt, the same model and the same parameters to run the inference in llama.cpp and LLamaSharp respectively to see if it's really a problem caused by the implementation in LLamaSharp.

+

If the experiment showed that it worked well in llama.cpp but didn't in LLamaSharp, a search for the problem could be started. While the reason of the problem could be various, the best way I think is to add log-print in the code of llama.cpp and use it in LLamaSharp after compilation. Thus, when running LLamaSharp, you could see what happened in the native library.

+

After finding out the reason, a painful but happy process comes. When working on the BUG fix, there's only one rule to follow, that is keeping the examples working well. If the modification fixed the BUG but impact on other functions, it would not be a good fix.

+

During the BUG fix process, please don't hesitate to discuss together when you stuck on something.

+

Add integrations

+

All kinds of integration are welcomed here! Currently the following integrations are under work or on our schedule:

+
    +
  1. BotSharp
  2. +
  3. semantic-kernel
  4. +
  5. Unity
  6. +
+

Besides, for some other integrations, like ASP.NET core, SQL, Blazor and so on, we'll appreciate it if you could help with that. If the time is limited for you, providing an example for it also means a lot!

+

Add examples

+

There're mainly two ways to add an example:

+
    +
  1. Add the example to LLama.Examples of the repository.
  2. +
  3. Put the example in another repository and add the link to the readme or docs of LLamaSharp.
  4. +
+

Add documents

+

LLamaSharp uses mkdocs to build the documentation, please follow the tutorial of mkdocs to add or modify documents in LLamaSharp.

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/Examples/ChatSessionStripRoleName/index.html b/0.5/Examples/ChatSessionStripRoleName/index.html new file mode 100755 index 00000000..f74e0de1 --- /dev/null +++ b/0.5/Examples/ChatSessionStripRoleName/index.html @@ -0,0 +1,2075 @@ + + + + + + + + + + + + + + + + + + + + + + Chat session 1 - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Use chat session and strip role names

+
using LLama.Common;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+public class ChatSessionStripRoleName
+{
+    public static void Run()
+    {
+        Console.Write("Please input your model path: ");
+        string modelPath = Console.ReadLine();
+        var prompt = File.ReadAllText("Assets/chat-with-bob.txt").Trim();
+        InteractiveExecutor ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 1024, seed: 1337, gpuLayerCount: 5)));
+        ChatSession session = new ChatSession(ex).WithOutputTransform(new LLamaTransforms.KeywordTextOutputStreamTransform(new string[] { "User:", "Bob:" }, redundancyLength: 8));
+
+        Console.ForegroundColor = ConsoleColor.Yellow;
+        Console.WriteLine("The chat session has started. The role names won't be printed.");
+        Console.ForegroundColor = ConsoleColor.White;
+
+        while (true)
+        {
+            foreach (var text in session.Chat(prompt, new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { "User:" } }))
+            {
+                Console.Write(text);
+            }
+
+            Console.ForegroundColor = ConsoleColor.Green;
+            prompt = Console.ReadLine();
+            Console.ForegroundColor = ConsoleColor.White;
+        }
+    }
+}
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/Examples/ChatSessionWithRoleName/index.html b/0.5/Examples/ChatSessionWithRoleName/index.html new file mode 100755 index 00000000..2a6d4ea2 --- /dev/null +++ b/0.5/Examples/ChatSessionWithRoleName/index.html @@ -0,0 +1,2077 @@ + + + + + + + + + + + + + + + + + + + + + + Chat session 2 - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Use chat session without removing role names

+
using LLama.Common;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+public class ChatSessionWithRoleName
+{
+    public static void Run()
+    {
+        Console.Write("Please input your model path: ");
+        string modelPath = Console.ReadLine();
+        var prompt = File.ReadAllText("Assets/chat-with-bob.txt").Trim();
+        InteractiveExecutor ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 1024, seed: 1337, gpuLayerCount: 5)));
+        ChatSession session = new ChatSession(ex); // The only change is to remove the transform for the output text stream.
+
+        Console.ForegroundColor = ConsoleColor.Yellow;
+        Console.WriteLine("The chat session has started. In this example, the prompt is printed for better visual result.");
+        Console.ForegroundColor = ConsoleColor.White;
+
+        // show the prompt
+        Console.Write(prompt);
+        while (true)
+        {
+            foreach (var text in session.Chat(prompt, new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { "User:" } }))
+            {
+                Console.Write(text);
+            }
+
+            Console.ForegroundColor = ConsoleColor.Green;
+            prompt = Console.ReadLine();
+            Console.ForegroundColor = ConsoleColor.White;
+        }
+    }
+}
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/Examples/GetEmbeddings/index.html b/0.5/Examples/GetEmbeddings/index.html new file mode 100755 index 00000000..aed9b245 --- /dev/null +++ b/0.5/Examples/GetEmbeddings/index.html @@ -0,0 +1,2068 @@ + + + + + + + + + + + + + + + + + + + + + + Get embeddings - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Get embeddings

+
using LLama.Common;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+public class GetEmbeddings
+{
+    public static void Run()
+    {
+        Console.Write("Please input your model path: ");
+        string modelPath = Console.ReadLine();
+        var embedder = new LLamaEmbedder(new ModelParams(modelPath));
+
+        while (true)
+        {
+            Console.Write("Please input your text: ");
+            Console.ForegroundColor = ConsoleColor.Green;
+            var text = Console.ReadLine();
+            Console.ForegroundColor = ConsoleColor.White;
+
+            Console.WriteLine(string.Join(", ", embedder.GetEmbeddings(text)));
+            Console.WriteLine();
+        }
+    }
+}
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/Examples/InstructModeExecute/index.html b/0.5/Examples/InstructModeExecute/index.html new file mode 100755 index 00000000..e5a2e93a --- /dev/null +++ b/0.5/Examples/InstructModeExecute/index.html @@ -0,0 +1,2077 @@ + + + + + + + + + + + + + + + + + + + + + + Instruct executor - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Use instruct executor

+
using LLama.Common;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+public class InstructModeExecute
+{
+    public static void Run()
+    {
+        Console.Write("Please input your model path: ");
+        string modelPath = Console.ReadLine();
+        var prompt = File.ReadAllText("Assets/dan.txt").Trim();
+
+        InstructExecutor ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 1024)));
+
+        Console.ForegroundColor = ConsoleColor.Yellow;
+        Console.WriteLine("The executor has been enabled. In this example, the LLM will follow your instructions. For example, you can input \"Write a story about a fox who want to " +
+            "make friend with human, no less than 200 words.\"");
+        Console.ForegroundColor = ConsoleColor.White;
+
+        var inferenceParams = new InferenceParams() { Temperature = 0.8f, MaxTokens = 300 };
+
+        while (true)
+        {
+            foreach (var text in ex.Infer(prompt, inferenceParams))
+            {
+                Console.Write(text);
+            }
+            Console.ForegroundColor = ConsoleColor.Green;
+            prompt = Console.ReadLine();
+            Console.ForegroundColor = ConsoleColor.White;
+        }
+    }
+}
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/Examples/InteractiveModeExecute/index.html b/0.5/Examples/InteractiveModeExecute/index.html new file mode 100755 index 00000000..e0e83c2e --- /dev/null +++ b/0.5/Examples/InteractiveModeExecute/index.html @@ -0,0 +1,2078 @@ + + + + + + + + + + + + + + + + + + + + + + Interactive executor - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Use interactive executor

+
using LLama.Common;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+public class InteractiveModeExecute
+{
+    public async static Task Run()
+    {
+        Console.Write("Please input your model path: ");
+        string modelPath = Console.ReadLine();
+        var prompt = File.ReadAllText("Assets/chat-with-bob.txt").Trim();
+
+        InteractiveExecutor ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 256)));
+
+        Console.ForegroundColor = ConsoleColor.Yellow;
+        Console.WriteLine("The executor has been enabled. In this example, the prompt is printed, the maximum tokens is set to 64 and the context size is 256. (an example for small scale usage)");
+        Console.ForegroundColor = ConsoleColor.White;
+
+        Console.Write(prompt);
+
+        var inferenceParams = new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { "User:" }, MaxTokens = 64 };
+
+        while (true)
+        {
+            await foreach (var text in ex.InferAsync(prompt, inferenceParams))
+            {
+                Console.Write(text);
+            }
+            Console.ForegroundColor = ConsoleColor.Green;
+            prompt = Console.ReadLine();
+            Console.ForegroundColor = ConsoleColor.White;
+        }
+    }
+}
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/Examples/LoadAndSaveSession/index.html b/0.5/Examples/LoadAndSaveSession/index.html new file mode 100755 index 00000000..993762c0 --- /dev/null +++ b/0.5/Examples/LoadAndSaveSession/index.html @@ -0,0 +1,2103 @@ + + + + + + + + + + + + + + + + + + + + + + Load/Save session - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Load and save chat session

+
using LLama.Common;
+using LLama.OldVersion;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+public class SaveAndLoadSession
+{
+    public static void Run()
+    {
+        Console.Write("Please input your model path: ");
+        string modelPath = Console.ReadLine();
+        var prompt = File.ReadAllText("Assets/chat-with-bob.txt").Trim();
+        InteractiveExecutor ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 1024, seed: 1337, gpuLayerCount: 5)));
+        ChatSession session = new ChatSession(ex); // The only change is to remove the transform for the output text stream.
+
+        Console.ForegroundColor = ConsoleColor.Yellow;
+        Console.WriteLine("The chat session has started. In this example, the prompt is printed for better visual result. Input \"save\" to save and reload the session.");
+        Console.ForegroundColor = ConsoleColor.White;
+
+        // show the prompt
+        Console.Write(prompt);
+        while (true)
+        {
+            foreach (var text in session.Chat(prompt, new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { "User:" } }))
+            {
+                Console.Write(text);
+            }
+
+            Console.ForegroundColor = ConsoleColor.Green;
+            prompt = Console.ReadLine();
+            Console.ForegroundColor = ConsoleColor.White;
+            if (prompt == "save")
+            {
+                Console.Write("Preparing to save the state, please input the path you want to save it: ");
+                Console.ForegroundColor = ConsoleColor.Green;
+                var statePath = Console.ReadLine();
+                session.SaveSession(statePath);
+                Console.ForegroundColor = ConsoleColor.White;
+                Console.ForegroundColor = ConsoleColor.Yellow;
+                Console.WriteLine("Saved session!");
+                Console.ForegroundColor = ConsoleColor.White;
+
+                ex.Model.Dispose();
+                ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 1024, seed: 1337, gpuLayerCount: 5)));
+                session = new ChatSession(ex).WithOutputTransform(new LLamaTransforms.KeywordTextOutputStreamTransform(new string[] { "User:", "Bob:" }, redundancyLength: 8));
+                session.LoadSession(statePath);
+
+                Console.ForegroundColor = ConsoleColor.Yellow;
+                Console.WriteLine("Loaded session!");
+                Console.ForegroundColor = ConsoleColor.White;
+
+                Console.Write("Now you can continue your session: ");
+                Console.ForegroundColor = ConsoleColor.Green;
+                prompt = Console.ReadLine();
+                Console.ForegroundColor = ConsoleColor.White;
+            }
+        }
+    }
+}
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/Examples/LoadAndSaveState/index.html b/0.5/Examples/LoadAndSaveState/index.html new file mode 100755 index 00000000..7cebe736 --- /dev/null +++ b/0.5/Examples/LoadAndSaveState/index.html @@ -0,0 +1,2104 @@ + + + + + + + + + + + + + + + + + + + + + + Load/Save state - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Load and save model/executor state

+
using LLama.Common;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+public class LoadAndSaveState
+{
+    public static void Run()
+    {
+        Console.Write("Please input your model path: ");
+        string modelPath = Console.ReadLine();
+        var prompt = File.ReadAllText("Assets/chat-with-bob.txt").Trim();
+
+        InteractiveExecutor ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 256)));
+
+        Console.ForegroundColor = ConsoleColor.Yellow;
+        Console.WriteLine("The executor has been enabled. In this example, the prompt is printed, the maximum tokens is set to 64 and the context size is 256. (an example for small scale usage)");
+        Console.ForegroundColor = ConsoleColor.White;
+
+        Console.Write(prompt);
+
+        var inferenceParams = new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { "User:" } };
+
+        while (true)
+        {
+            foreach (var text in ex.Infer(prompt, inferenceParams))
+            {
+                Console.Write(text);
+            }
+
+            prompt = Console.ReadLine();
+            if (prompt == "save")
+            {
+                Console.Write("Your path to save model state: ");
+                string modelStatePath = Console.ReadLine();
+                ex.Model.SaveState(modelStatePath);
+
+                Console.Write("Your path to save executor state: ");
+                string executorStatePath = Console.ReadLine();
+                ex.SaveState(executorStatePath);
+
+                Console.ForegroundColor = ConsoleColor.Yellow;
+                Console.WriteLine("All states saved!");
+                Console.ForegroundColor = ConsoleColor.White;
+
+                var model = ex.Model;
+                model.LoadState(modelStatePath);
+                ex = new InteractiveExecutor(model);
+                ex.LoadState(executorStatePath);
+                Console.ForegroundColor = ConsoleColor.Yellow;
+                Console.WriteLine("Loaded state!");
+                Console.ForegroundColor = ConsoleColor.White;
+
+                Console.Write("Now you can continue your session: ");
+                Console.ForegroundColor = ConsoleColor.Green;
+                prompt = Console.ReadLine();
+                Console.ForegroundColor = ConsoleColor.White;
+            }
+        }
+    }
+}
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/Examples/QuantizeModel/index.html b/0.5/Examples/QuantizeModel/index.html new file mode 100755 index 00000000..d17ec820 --- /dev/null +++ b/0.5/Examples/QuantizeModel/index.html @@ -0,0 +1,2068 @@ + + + + + + + + + + + + + + + + + + + + + + Quantize model - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Quantize model

+
using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+public class QuantizeModel
+{
+    public static void Run()
+    {
+        Console.Write("Please input your original model path: ");
+        var inputPath = Console.ReadLine();
+        Console.Write("Please input your output model path: ");
+        var outputPath = Console.ReadLine();
+        Console.Write("Please input the quantize type (one of q4_0, q4_1, q5_0, q5_1, q8_0): ");
+        var quantizeType = Console.ReadLine();
+        if (LLamaQuantizer.Quantize(inputPath, outputPath, quantizeType))
+        {
+            Console.WriteLine("Quantization succeed!");
+        }
+        else
+        {
+            Console.WriteLine("Quantization failed!");
+        }
+    }
+}
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/Examples/StatelessModeExecute/index.html b/0.5/Examples/StatelessModeExecute/index.html new file mode 100755 index 00000000..0b57b441 --- /dev/null +++ b/0.5/Examples/StatelessModeExecute/index.html @@ -0,0 +1,2081 @@ + + + + + + + + + + + + + + + + + + + + + + Stateless exeutor - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Use stateless executor

+
using LLama.Common;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+public class StatelessModeExecute
+{
+    public static void Run()
+    {
+        Console.Write("Please input your model path: ");
+        string modelPath = Console.ReadLine();
+
+        StatelessExecutor ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 256)));
+
+        Console.ForegroundColor = ConsoleColor.Yellow;
+        Console.WriteLine("The executor has been enabled. In this example, the inference is an one-time job. That says, the previous input and response has " +
+            "no impact on the current response. Now you can ask it questions. Note that in this example, no prompt was set for LLM and the maximum response tokens is 50. " +
+            "It may not perform well because of lack of prompt. This is also an example that could indicate the improtance of prompt in LLM. To improve it, you can add " +
+            "a prompt for it yourself!");
+        Console.ForegroundColor = ConsoleColor.White;
+
+        var inferenceParams = new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { "Question:", "#", "Question: ", ".\n" }, MaxTokens = 50 };
+
+        while (true)
+        {
+            Console.Write("\nQuestion: ");
+            Console.ForegroundColor = ConsoleColor.Green;
+            string prompt = Console.ReadLine();
+            Console.ForegroundColor = ConsoleColor.White; 
+            Console.Write("Answer: ");
+            prompt = $"Question: {prompt.Trim()} Answer: ";
+            foreach (var text in ex.Infer(prompt, inferenceParams))
+            {
+                Console.Write(text);
+            }
+        }
+    }
+}
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/GetStarted/index.html b/0.5/GetStarted/index.html new file mode 100755 index 00000000..235e1bde --- /dev/null +++ b/0.5/GetStarted/index.html @@ -0,0 +1,2239 @@ + + + + + + + + + + + + + + + + + + + + + + Get Started - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Get Started

+

Install packages

+

Firstly, search LLamaSharp in nuget package manager and install it.

+
PM> Install-Package LLamaSharp
+
+

Then, search and install one of the following backends:

+
LLamaSharp.Backend.Cpu
+LLamaSharp.Backend.Cuda11
+LLamaSharp.Backend.Cuda12
+
+

Here's the mapping of them and corresponding model samples provided by LLamaSharp. If you're not sure which model is available for a version, please try our sample model.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LLamaSharp.BackendLLamaSharpVerified Model Resourcesllama.cpp commit id
-v0.2.0This version is not recommended to use.-
-v0.2.1WizardLM, Vicuna (filenames with "old")-
v0.2.2v0.2.2, v0.2.3WizardLM, Vicuna (filenames without "old")63d2046
v0.3.0v0.3.0LLamaSharpSamples v0.3.0, WizardLM7e4ea5b
+

Download a model

+

One of the following models could be okay:

+ +

Note that because llama.cpp is under fast development now and often introduce break changes, some model weights on huggingface which works under a version may be invalid with another version. If it's your first time to configure LLamaSharp, we'd like to suggest for using verified model weights in the table above.

+

Run the program

+

Please create a console program with dotnet runtime >= netstandard 2.0 (>= net6.0 is more recommended). Then, paste the following code to program.cs;

+
using LLama.Common;
+using LLama;
+
+string modelPath = "<Your model path>" // change it to your own model path
+var prompt = "Transcript of a dialog, where the User interacts with an Assistant named Bob. Bob is helpful, kind, honest, good at writing, and never fails to answer the User's requests immediately and with precision.\r\n\r\nUser: Hello, Bob.\r\nBob: Hello. How may I help you today?\r\nUser: Please tell me the largest city in Europe.\r\nBob: Sure. The largest city in Europe is Moscow, the capital of Russia.\r\nUser:"; // use the "chat-with-bob" prompt here.
+
+// Load model
+var parameters = new ModelParams(modelPath)
+{
+    ContextSize = 1024
+};
+using var model = LLamaWeights.LoadFromFile(parameters);
+
+// Initialize a chat session
+using var context = model.CreateContext(parameters);
+var ex = new InteractiveExecutor(context);
+ChatSession session = new ChatSession(ex);
+
+// show the prompt
+Console.WriteLine();
+Console.Write(prompt);
+
+// run the inference in a loop to chat with LLM
+while (true)
+{
+    foreach (var text in session.Chat(prompt, new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { "User:" } }))
+    {
+        Console.Write(text);
+    }
+
+    Console.ForegroundColor = ConsoleColor.Green;
+    prompt = Console.ReadLine();
+    Console.ForegroundColor = ConsoleColor.White;
+}
+
+

After starting it, you'll see the following outputs.

+
Please input your model path: D:\development\llama\weights\wizard-vicuna-13B.ggmlv3.q4_1.bin
+llama.cpp: loading model from D:\development\llama\weights\wizard-vicuna-13B.ggmlv3.q4_1.bin
+llama_model_load_internal: format     = ggjt v3 (latest)
+llama_model_load_internal: n_vocab    = 32000
+llama_model_load_internal: n_ctx      = 1024
+llama_model_load_internal: n_embd     = 5120
+llama_model_load_internal: n_mult     = 256
+llama_model_load_internal: n_head     = 40
+llama_model_load_internal: n_layer    = 40
+llama_model_load_internal: n_rot      = 128
+llama_model_load_internal: ftype      = 3 (mostly Q4_1)
+llama_model_load_internal: n_ff       = 13824
+llama_model_load_internal: n_parts    = 1
+llama_model_load_internal: model size = 13B
+llama_model_load_internal: ggml ctx size = 7759.48 MB
+llama_model_load_internal: mem required  = 9807.48 MB (+ 1608.00 MB per state)
+....................................................................................................
+llama_init_from_file: kv self size  =  800.00 MB
+
+Transcript of a dialog, where the User interacts with an Assistant named Bob. Bob is helpful, kind, honest, good at writing, and never fails to answer the User's requests immediately and with precision.
+
+User: Hello, Bob.
+Bob: Hello. How may I help you today?
+User: Please tell me the largest city in Europe.
+Bob: Sure. The largest city in Europe is Moscow, the capital of Russia.
+User:
+
+

Now, enjoy chatting with LLM!

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/HighLevelApps/bot-sharp/index.html b/0.5/HighLevelApps/bot-sharp/index.html new file mode 100755 index 00000000..1e00de45 --- /dev/null +++ b/0.5/HighLevelApps/bot-sharp/index.html @@ -0,0 +1,2041 @@ + + + + + + + + + + + + + + + + + + + + + + BotSharp - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

The Usage of BotSharp Integration

+

The document is under work, please have a wait. Thank you for your support! :)

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/HighLevelApps/semantic-kernel/index.html b/0.5/HighLevelApps/semantic-kernel/index.html new file mode 100755 index 00000000..691904e6 --- /dev/null +++ b/0.5/HighLevelApps/semantic-kernel/index.html @@ -0,0 +1,2041 @@ + + + + + + + + + + + + + + + + + + + + + + semantic-kernel - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

The Usage of semantic-kernel Integration

+

Please see this doc

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/LLamaExecutors/differences/index.html b/0.5/LLamaExecutors/differences/index.html new file mode 100755 index 00000000..04088f2e --- /dev/null +++ b/0.5/LLamaExecutors/differences/index.html @@ -0,0 +1,2150 @@ + + + + + + + + + + + + + + + + + + + + + + Differences of Executors - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Differences of Executors

+ +

Differences between the executors

+

There're currently three kinds of executors provided, which are InteractiveExecutor, InstructExecutor and StatelessExecutor.

+

In a word, InteractiveExecutor is suitable for getting answer of your questions from LLM continuously. InstructExecutor let LLM execute your instructions, such as "continue writing". StatelessExecutor is best for one-time job because the previous inference has no impact on the current inference.

+

Interactive mode & Instruct mode

+

Both of them are taking "completing the prompt" as the goal to generate the response. For example, if you input Long long ago, there was a fox who wanted to make friend with humen. One day, then the LLM will continue to write the story.

+

Under interactive mode, you serve a role of user and the LLM serves the role of assistant. Then it will help you with your question or request.

+

Under instruct mode, you give LLM some instructions and it follows.

+

Though the behaviors of them sounds similar, it could introduce many differences depending on your prompt. For example, "chat-with-bob" has good performance under interactive mode and alpaca does well with instruct mode.

+
// chat-with-bob
+
+Transcript of a dialog, where the User interacts with an Assistant named Bob. Bob is helpful, kind, honest, good at writing, and never fails to answer the User's requests immediately and with precision.
+
+User: Hello, Bob.
+Bob: Hello. How may I help you today?
+User: Please tell me the largest city in Europe.
+Bob: Sure. The largest city in Europe is Moscow, the capital of Russia.
+User:
+
+
// alpaca
+
+Below is an instruction that describes a task. Write a response that appropriately completes the request.
+
+

Therefore, please modify the prompt correspondingly when switching from one mode to the other.

+

Stateful mode and Stateless mode.

+

Despite the differences between interactive mode and instruct mode, both of them are stateful mode. That is, your previous question/instruction will impact on the current response from LLM. On the contrary, the stateless executor does not have such a "memory". No matter how many times you talk to it, it will only concentrate on what you say in this time.

+

Since the stateless executor has no memory of conversations before, you need to input your question with the whole prompt into it to get the better answer.

+

For example, if you feed Q: Who is Trump? A: to the stateless executor, it may give the following answer with the antiprompt Q:.

+
Donald J. Trump, born June 14, 1946, is an American businessman, television personality, politician and the 45th President of the United States (2017-2021). # Anexo:Torneo de Hamburgo 2022 (individual masculino)
+
+## Presentación previa
+
+* Defensor del título:  Daniil Medvédev
+
+

It seems that things went well at first. However, after answering the question itself, LLM began to talk about some other things until the answer reached the token count limit. The reason of this strange behavior is the anti-prompt cannot be match. With the input, LLM cannot decide whether to append a string "A: " at the end of the response.

+

As an improvement, let's take the following text as the input:

+
Q: What is the capital of the USA? A: Washingtong. Q: What is the sum of 1 and 2? A: 3. Q: Who is Trump? A: 
+
+

Then, I got the following answer with the anti-prompt Q:.

+
45th president of the United States.
+
+

At this time, by repeating the same mode of Q: xxx? A: xxx., LLM outputs the anti-prompt we want to help to decide where to stop the generation.

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/LLamaExecutors/parameters/index.html b/0.5/LLamaExecutors/parameters/index.html new file mode 100755 index 00000000..22b7bc07 --- /dev/null +++ b/0.5/LLamaExecutors/parameters/index.html @@ -0,0 +1,2172 @@ + + + + + + + + + + + + + + + + + + + + + + Inference Parameters - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Inference Parameters

+

Different from LLamaModel, when using an executor, InferenceParams is passed to the Infer method instead of constructor. This is because executors only define the ways to run the model, therefore in each run, you can change the settings for this time inference.

+

InferenceParams

+

Namespace: LLama.Common

+
public class InferenceParams
+
+

Inheritance ObjectInferenceParams

+

Properties

+

TokensKeep

+

number of tokens to keep from initial prompt

+
public int TokensKeep { get; set; }
+
+

Property Value

+

Int32

+

MaxTokens

+

how many new tokens to predict (n_predict), set to -1 to infinitely generate response + until it complete.

+
public int MaxTokens { get; set; }
+
+

Property Value

+

Int32

+

LogitBias

+

logit bias for specific tokens

+
public Dictionary<int, float> LogitBias { get; set; }
+
+

Property Value

+

Dictionary<Int32, Single>

+

AntiPrompts

+

Sequences where the model will stop generating further tokens.

+
public IEnumerable<string> AntiPrompts { get; set; }
+
+

Property Value

+

IEnumerable<String>

+

PathSession

+

path to file for saving/loading model eval state

+
public string PathSession { get; set; }
+
+

Property Value

+

String

+

InputSuffix

+

string to suffix user inputs with

+
public string InputSuffix { get; set; }
+
+

Property Value

+

String

+

InputPrefix

+

string to prefix user inputs with

+
public string InputPrefix { get; set; }
+
+

Property Value

+

String

+

TopK

+

0 or lower to use vocab size

+
public int TopK { get; set; }
+
+

Property Value

+

Int32

+

TopP

+

1.0 = disabled

+
public float TopP { get; set; }
+
+

Property Value

+

Single

+

TfsZ

+

1.0 = disabled

+
public float TfsZ { get; set; }
+
+

Property Value

+

Single

+

TypicalP

+

1.0 = disabled

+
public float TypicalP { get; set; }
+
+

Property Value

+

Single

+

Temperature

+

1.0 = disabled

+
public float Temperature { get; set; }
+
+

Property Value

+

Single

+

RepeatPenalty

+

1.0 = disabled

+
public float RepeatPenalty { get; set; }
+
+

Property Value

+

Single

+

RepeatLastTokensCount

+

last n tokens to penalize (0 = disable penalty, -1 = context size) (repeat_last_n)

+
public int RepeatLastTokensCount { get; set; }
+
+

Property Value

+

Int32

+

FrequencyPenalty

+

frequency penalty coefficient + 0.0 = disabled

+
public float FrequencyPenalty { get; set; }
+
+

Property Value

+

Single

+

PresencePenalty

+

presence penalty coefficient + 0.0 = disabled

+
public float PresencePenalty { get; set; }
+
+

Property Value

+

Single

+

Mirostat

+

Mirostat uses tokens instead of words. + algorithm described in the paper https://arxiv.org/abs/2007.14966. + 0 = disabled, 1 = mirostat, 2 = mirostat 2.0

+
public MiroStateType Mirostat { get; set; }
+
+

Property Value

+

MiroStateType

+

MirostatTau

+

target entropy

+
public float MirostatTau { get; set; }
+
+

Property Value

+

Single

+

MirostatEta

+

learning rate

+
public float MirostatEta { get; set; }
+
+

Property Value

+

Single

+

PenalizeNL

+

consider newlines as a repeatable token (penalize_nl)

+
public bool PenalizeNL { get; set; }
+
+

Property Value

+

Boolean

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/LLamaExecutors/save-load-state/index.html b/0.5/LLamaExecutors/save-load-state/index.html new file mode 100755 index 00000000..05d97b96 --- /dev/null +++ b/0.5/LLamaExecutors/save-load-state/index.html @@ -0,0 +1,2059 @@ + + + + + + + + + + + + + + + + + + + + + + Save/Load State - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Save/Load State of Executor

+

Similar to LLamaModel, an executor also has its state, which can be saved and loaded. Note that in most of cases, the state of executor and the state of the model should be loaded and saved at the same time.

+

To decouple the model and executor, we provide APIs to save/load state for model and executor respectively. However, during the inference, the processed information will leave footprint in LLamaModel's native context. Therefore, if you just load a state from another executor but keep the model unmodified, some strange things may happen. So will loading model state only.

+

Is there a condition that requires to load one of them only? The answer is YES. For example, after resetting the model state, if you don't want the inference starting from the new position, leaving the executor unmodified is okay. But, anyway, this flexible usage may cause some unexpected behaviors, therefore please ensure you know what you're doing before using it in this way.

+

In the future version, we'll open the access for some variables inside the executor to support more flexible usages.

+

The APIs to load/save state of the executors is similar to that of LLamaModel. However, note that StatelessExecutor doesn't have such APIs because it's stateless itself. Besides, the output of GetStateData is an object of type ExecutorBaseState.

+
LLamaModel model = new LLamaModel(new ModelParams("<modelPath>"));
+InteractiveExecutor executor = new InteractiveExecutor(model);
+// do some things...
+executor.SaveState("executor.st");
+var stateData = model.GetStateData();
+
+InteractiveExecutor executor2 = new InteractiveExecutor(model);
+executor2.LoadState(stateData);
+// do some things...
+
+InteractiveExecutor executor3 = new InteractiveExecutor(model);
+executor3.LoadState("executor.st");
+// do some things...
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/LLamaExecutors/text-to-text-apis/index.html b/0.5/LLamaExecutors/text-to-text-apis/index.html new file mode 100755 index 00000000..b74ffeb8 --- /dev/null +++ b/0.5/LLamaExecutors/text-to-text-apis/index.html @@ -0,0 +1,2052 @@ + + + + + + + + + + + + + + + + + + + + + + Text-to-Text APIs - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Text-to-Text APIs of the executors

+

All the executors implements the interface ILLamaExecutor, which provides two APIs to execute text-to-text tasks.

+
public interface ILLamaExecutor
+{
+    public LLamaModel Model { get; }
+
+    IEnumerable<string> Infer(string text, InferenceParams? inferenceParams = null, CancellationToken token = default);
+
+    IAsyncEnumerable<string> InferAsync(string text, InferenceParams? inferenceParams = null, CancellationToken token = default);
+}
+
+

Just pass the text to the executor with the inference parameters. For the inference parameters, please refer to executor inference parameters doc.

+

The output of both two APIs are yield enumerable. Therefore, when receiving the output, you can directly use foreach to take actions on each word you get by order, instead of waiting for the whole process completed.

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/LLamaModel/embeddings/index.html b/0.5/LLamaModel/embeddings/index.html new file mode 100755 index 00000000..3531380a --- /dev/null +++ b/0.5/LLamaModel/embeddings/index.html @@ -0,0 +1,2031 @@ + + + + + + + + + + + + + + + + + + Get Embeddings - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Get Embeddings

+

Getting the embeddings of a text in LLM is sometimes useful, for example, to train other MLP models.

+

To get the embeddings, please initialize a LLamaEmbedder and then call GetEmbeddings.

+
var embedder = new LLamaEmbedder(new ModelParams("<modelPath>"));
+string text = "hello, LLM.";
+float[] embeddings = embedder.GetEmbeddings(text);
+
+

The output is a float array. Note that the length of the array is related with the model you load. If you just want to get a smaller size embedding, please consider changing a model.

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/LLamaModel/parameters/index.html b/0.5/LLamaModel/parameters/index.html new file mode 100755 index 00000000..d678f418 --- /dev/null +++ b/0.5/LLamaModel/parameters/index.html @@ -0,0 +1,2135 @@ + + + + + + + + + + + + + + + + + + LLamaModel Parameters - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

LLamaModel Parameters

+

When initializing a LLamaModel object, there're three parameters, ModelParams Params, string encoding = "UTF-8", ILLamaLogger? logger = null.

+

The usage of logger will be further introduced in logger doc. The encoding is the encoding you want to use when dealing with text via this model.

+

The most important of all, is the ModelParams, which is defined as below. We'll explain the parameters step by step in this document.

+
public class ModelParams
+{
+    public int ContextSize { get; set; } = 512;
+    public int GpuLayerCount { get; set; } = 20;
+    public int Seed { get; set; } = 1686349486;
+    public bool UseFp16Memory { get; set; } = true;
+    public bool UseMemorymap { get; set; } = true;
+    public bool UseMemoryLock { get; set; } = false;
+    public bool Perplexity { get; set; } = false;
+    public string ModelPath { get; set; }
+    public string LoraAdapter { get; set; } = string.Empty;
+    public string LoraBase { get; set; } = string.Empty;
+    public int Threads { get; set; } = Math.Max(Environment.ProcessorCount / 2, 1);
+    public int BatchSize { get; set; } = 512;
+    public bool ConvertEosToNewLine { get; set; } = false;
+}
+
+

ModelParams

+

Namespace: LLama.Common

+
public class ModelParams
+
+

Inheritance ObjectModelParams

+

Properties

+

ContextSize

+

Model context size (n_ctx)

+
public int ContextSize { get; set; }
+
+

Property Value

+

Int32

+

GpuLayerCount

+

Number of layers to run in VRAM / GPU memory (n_gpu_layers)

+
public int GpuLayerCount { get; set; }
+
+

Property Value

+

Int32

+

Seed

+

Seed for the random number generator (seed)

+
public int Seed { get; set; }
+
+

Property Value

+

Int32

+

UseFp16Memory

+

Use f16 instead of f32 for memory kv (memory_f16)

+
public bool UseFp16Memory { get; set; }
+
+

Property Value

+

Boolean

+

UseMemorymap

+

Use mmap for faster loads (use_mmap)

+
public bool UseMemorymap { get; set; }
+
+

Property Value

+

Boolean

+

UseMemoryLock

+

Use mlock to keep model in memory (use_mlock)

+
public bool UseMemoryLock { get; set; }
+
+

Property Value

+

Boolean

+

Perplexity

+

Compute perplexity over the prompt (perplexity)

+
public bool Perplexity { get; set; }
+
+

Property Value

+

Boolean

+

ModelPath

+

Model path (model)

+
public string ModelPath { get; set; }
+
+

Property Value

+

String

+

LoraAdapter

+

lora adapter path (lora_adapter)

+
public string LoraAdapter { get; set; }
+
+

Property Value

+

String

+

LoraBase

+

base model path for the lora adapter (lora_base)

+
public string LoraBase { get; set; }
+
+

Property Value

+

String

+

Threads

+

Number of threads (-1 = autodetect) (n_threads)

+
public int Threads { get; set; }
+
+

Property Value

+

Int32

+

BatchSize

+

batch size for prompt processing (must be >=32 to use BLAS) (n_batch)

+
public int BatchSize { get; set; }
+
+

Property Value

+

Int32

+

ConvertEosToNewLine

+

Whether to convert eos to newline during the inference.

+
public bool ConvertEosToNewLine { get; set; }
+
+

Property Value

+

Boolean

+

EmbeddingMode

+

Whether to use embedding mode. (embedding) Note that if this is set to true, + The LLamaModel won't produce text response anymore.

+
public bool EmbeddingMode { get; set; }
+
+

Property Value

+

Boolean

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/LLamaModel/quantization/index.html b/0.5/LLamaModel/quantization/index.html new file mode 100755 index 00000000..30b8d6ef --- /dev/null +++ b/0.5/LLamaModel/quantization/index.html @@ -0,0 +1,2041 @@ + + + + + + + + + + + + + + + + + + Quantization - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Quantization

+

Quantization is significant to accelerate the model inference. Since there's little accuracy (performance) reduction when quantizing the model, get it easy to quantize it!

+

To quantize the model, please call Quantize from LLamaQuantizer, which is a static method.

+
string srcPath = "<model.bin>";
+string dstPath = "<model_q4_0.bin>";
+LLamaQuantizer.Quantize(srcPath, dstPath, "q4_0");
+// The following overload is also okay.
+// LLamaQuantizer.Quantize(srcPath, dstPath, LLamaFtype.LLAMA_FTYPE_MOSTLY_Q4_0);
+
+

After calling it, a quantized model file will be saved.

+

There're currently 5 types of quantization supported:

+
    +
  • q4_0
  • +
  • q4_1
  • +
  • q5_0
  • +
  • q5_1
  • +
  • q8_0
  • +
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/LLamaModel/save-load-state/index.html b/0.5/LLamaModel/save-load-state/index.html new file mode 100755 index 00000000..b5e93265 --- /dev/null +++ b/0.5/LLamaModel/save-load-state/index.html @@ -0,0 +1,2039 @@ + + + + + + + + + + + + + + + + + + Save/Load State - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Save/Load State

+

There're two ways to load state: loading from path and loading from bite array. Therefore, correspondingly, state data can be extracted as byte array or saved to a file.

+
LLamaModel model = new LLamaModel(new ModelParams("<modelPath>"));
+// do some things...
+model.SaveState("model.st");
+var stateData = model.GetStateData();
+model.Dispose();
+
+LLamaModel model2 = new LLamaModel(new ModelParams("<modelPath>"));
+model2.LoadState(stateData);
+// do some things...
+
+LLamaModel model3 = new LLamaModel(new ModelParams("<modelPath>"));
+model3.LoadState("model.st");
+// do some things...
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/LLamaModel/tokenization/index.html b/0.5/LLamaModel/tokenization/index.html new file mode 100755 index 00000000..de4c6dc0 --- /dev/null +++ b/0.5/LLamaModel/tokenization/index.html @@ -0,0 +1,2060 @@ + + + + + + + + + + + + + + + + + + Tokenization/Detokenization - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Tokenization/Detokenization

+

A pair of APIs to make conversion between text and tokens.

+

Tokenization

+

The basic usage is to call Tokenize after initializing the model.

+
LLamaModel model = new LLamaModel(new ModelParams("<modelPath>"));
+string text = "hello";
+int[] tokens = model.Tokenize(text).ToArray();
+
+

Depending on different model (or vocab), the output will be various.

+

Detokenization

+

Similar to tokenization, just pass an IEnumerable<int> to Detokenize method.

+
LLamaModel model = new LLamaModel(new ModelParams("<modelPath>"));
+int[] tokens = new int[] {125, 2568, 13245};
+string text = model.Detokenize(tokens);
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/More/log/index.html b/0.5/More/log/index.html new file mode 100755 index 00000000..ba58a4f6 --- /dev/null +++ b/0.5/More/log/index.html @@ -0,0 +1,2237 @@ + + + + + + + + + + + + + + + + + + + + + + Logger - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

The Logger in LLamaSharp

+

LLamaSharp supports customized logger because it could be used in many kinds of applications, like Winform/WPF, WebAPI and Blazor, so that the preference of logger varies.

+

Define customized logger

+

What you need to do is to implement the ILogger interface.

+
public interface ILLamaLogger
+{
+    public enum LogLevel
+    {
+        Info,
+        Debug,
+        Warning,
+        Error
+    }
+    void Log(string source, string message, LogLevel level);
+}
+
+

The source specifies where the log message is from, which could be a function, a class, etc..

+

The message is the log message itself.

+

The level is the level of the information in the log. As shown above, there're four levels, which are info, debug, warning and error respectively.

+

The following is a simple example of the logger implementation:

+
public sealed class LLamaDefaultLogger : ILLamaLogger
+{
+    private static readonly Lazy<LLamaDefaultLogger> _instance = new Lazy<LLamaDefaultLogger>(() => new LLamaDefaultLogger());
+
+    private bool _toConsole = true;
+    private bool _toFile = false;
+
+    private FileStream? _fileStream = null;
+    private StreamWriter _fileWriter = null;
+
+    public static LLamaDefaultLogger Default => _instance.Value;
+
+    private LLamaDefaultLogger()
+    {
+
+    }
+
+    public LLamaDefaultLogger EnableConsole()
+    {
+        _toConsole = true;
+        return this;
+    }
+
+    public LLamaDefaultLogger DisableConsole()
+    {
+        _toConsole = false;
+        return this;
+    }
+
+    public LLamaDefaultLogger EnableFile(string filename, FileMode mode = FileMode.Append)
+    {
+        _fileStream = new FileStream(filename, mode, FileAccess.Write);
+        _fileWriter = new StreamWriter(_fileStream);
+        _toFile = true;
+        return this;
+    }
+
+    public LLamaDefaultLogger DisableFile(string filename)
+    {
+        if (_fileWriter is not null)
+        {
+            _fileWriter.Close();
+            _fileWriter = null;
+        }
+        if (_fileStream is not null)
+        {
+            _fileStream.Close();
+            _fileStream = null;
+        }
+        _toFile = false;
+        return this;
+    }
+
+    public void Log(string source, string message, LogLevel level)
+    {
+        if (level == LogLevel.Info)
+        {
+            Info(message);
+        }
+        else if (level == LogLevel.Debug)
+        {
+
+        }
+        else if (level == LogLevel.Warning)
+        {
+            Warn(message);
+        }
+        else if (level == LogLevel.Error)
+        {
+            Error(message);
+        }
+    }
+
+    public void Info(string message)
+    {
+        message = MessageFormat("info", message);
+        if (_toConsole)
+        {
+            Console.ForegroundColor = ConsoleColor.White;
+            Console.WriteLine(message);
+            Console.ResetColor();
+        }
+        if (_toFile)
+        {
+            Debug.Assert(_fileStream is not null);
+            Debug.Assert(_fileWriter is not null);
+            _fileWriter.WriteLine(message);
+        }
+    }
+
+    public void Warn(string message)
+    {
+        message = MessageFormat("warn", message);
+        if (_toConsole)
+        {
+            Console.ForegroundColor = ConsoleColor.Yellow;
+            Console.WriteLine(message);
+            Console.ResetColor();
+        }
+        if (_toFile)
+        {
+            Debug.Assert(_fileStream is not null);
+            Debug.Assert(_fileWriter is not null);
+            _fileWriter.WriteLine(message);
+        }
+    }
+
+    public void Error(string message)
+    {
+        message = MessageFormat("error", message);
+        if (_toConsole)
+        {
+            Console.ForegroundColor = ConsoleColor.Red;
+            Console.WriteLine(message);
+            Console.ResetColor();
+        }
+        if (_toFile)
+        {
+            Debug.Assert(_fileStream is not null);
+            Debug.Assert(_fileWriter is not null);
+            _fileWriter.WriteLine(message);
+        }
+    }
+
+    private string MessageFormat(string level, string message)
+    {
+        DateTime now = DateTime.Now;
+        string formattedDate = now.ToString("yyyy.MM.dd HH:mm:ss");
+        return $"[{formattedDate}][{level}]: {message}";
+    }
+}
+
+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/NonEnglishUsage/Chinese/index.html b/0.5/NonEnglishUsage/Chinese/index.html new file mode 100755 index 00000000..92f2026e --- /dev/null +++ b/0.5/NonEnglishUsage/Chinese/index.html @@ -0,0 +1,2041 @@ + + + + + + + + + + + + + + + + + + + + + + Chinese - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Use LLamaSharp with Chinese

+

It's supported now but the document is under work. Please wait for some time. Thank you for your support! :)

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/Tricks/index.html b/0.5/Tricks/index.html new file mode 100755 index 00000000..4cb990c1 --- /dev/null +++ b/0.5/Tricks/index.html @@ -0,0 +1,2164 @@ + + + + + + + + + + + + + + + + + + + + + + Tricks for FAQ - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + + + + + +
+
+ + + + +

Tricks for FAQ

+

Sometimes, your application with LLM and LLamaSharp may have strange behaviours. Before opening an issue to report the BUG, the following tricks may worth a try.

+

Carefully set the anti-prompts

+

Anti-prompt can also be called as "Stop-keyword", which decides when to stop the response generation. Under interactive mode, the maximum tokens count is always not set, which makes the LLM generates responses infinitively. Therefore, setting anti-prompt correctly helps a lot to avoid the strange behaviours. For example, the prompt file chat-with-bob.txt has the following content:

+
Transcript of a dialog, where the User interacts with an Assistant named Bob. Bob is helpful, kind, honest, good at writing, and never fails to answer the User's requests immediately and with precision.
+
+User: Hello, Bob.
+Bob: Hello. How may I help you today?
+User: Please tell me the largest city in Europe.
+Bob: Sure. The largest city in Europe is Moscow, the capital of Russia.
+User:
+
+

Therefore, the anti-prompt should be set as "User:". If the last line of the prompt is removed, LLM will automatically generate a question (user) and a response (bob) for one time when running the chat session. Therefore, the antiprompt is suggested to be appended to the prompt when starting a chat session.

+

What if an extra line is appended? The string "User:" in the prompt will be followed with a char "\n". Thus when running the model, the automatic generation of a pair of question and response may appear because the anti-prompt is "User:" but the last token is "User:\n". As for whether it will appear, it's an undefined behaviour, which depends on the implementation inside the LLamaExecutor. Anyway, since it may leads to unexpected behaviors, it's recommended to trim your prompt or carefully keep consistent with your anti-prompt.

+

Pay attention to the length of prompt

+

Sometimes we want to input a long prompt to execute a task. However, the context size may limit the inference of LLama model. Please ensure the inequality below holds.

+

$$ len(prompt) + len(response) < len(context) $$

+

In this inequality, len(response) refers to the expected tokens for LLM to generate.

+

Try different executors with a prompt

+

Some prompt works well under interactive mode, such as chat-with-bob, some others may work well with instruct mode, such as alpaca. Besides, if your input is quite simple and one-time job, such as "Q: what is the satellite of the earth? A: ", stateless mode will be a good choice.

+

If your chat bot has bad performance, trying different executor will possibly make it work well.

+

Choose models weight depending on you task

+

The differences between modes may lead to much different behaviours under the same task. For example, if you're building a chat bot with non-English, a fine-tuned model specially for the language you want to use will have huge effect on the performance.

+

Set the layer count you want to offload to GPU

+

Currently, the GpuLayerCount parameter, which decides the number of layer loaded into GPU, is set to 20 by default. However, if you have some efficient GPUs, setting it as a larger number will attain faster inference.

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/assets/images/favicon.png b/0.5/assets/images/favicon.png new file mode 100755 index 0000000000000000000000000000000000000000..1cf13b9f9d978896599290a74f77d5dbe7d1655c GIT binary patch literal 1870 zcmV-U2eJ5xP)Gc)JR9QMau)O=X#!i9;T z37kk-upj^(fsR36MHs_+1RCI)NNu9}lD0S{B^g8PN?Ww(5|~L#Ng*g{WsqleV}|#l zz8@ri&cTzw_h33bHI+12+kK6WN$h#n5cD8OQt`5kw6p~9H3()bUQ8OS4Q4HTQ=1Ol z_JAocz`fLbT2^{`8n~UAo=#AUOf=SOq4pYkt;XbC&f#7lb$*7=$na!mWCQ`dBQsO0 zLFBSPj*N?#u5&pf2t4XjEGH|=pPQ8xh7tpx;US5Cx_Ju;!O`ya-yF`)b%TEt5>eP1ZX~}sjjA%FJF?h7cX8=b!DZl<6%Cv z*G0uvvU+vmnpLZ2paivG-(cd*y3$hCIcsZcYOGh{$&)A6*XX&kXZd3G8m)G$Zz-LV z^GF3VAW^Mdv!)4OM8EgqRiz~*Cji;uzl2uC9^=8I84vNp;ltJ|q-*uQwGp2ma6cY7 z;`%`!9UXO@fr&Ebapfs34OmS9^u6$)bJxrucutf>`dKPKT%%*d3XlFVKunp9 zasduxjrjs>f8V=D|J=XNZp;_Zy^WgQ$9WDjgY=z@stwiEBm9u5*|34&1Na8BMjjgf3+SHcr`5~>oz1Y?SW^=K z^bTyO6>Gar#P_W2gEMwq)ot3; zREHn~U&Dp0l6YT0&k-wLwYjb?5zGK`W6S2v+K>AM(95m2C20L|3m~rN8dprPr@t)5lsk9Hu*W z?pS990s;Ez=+Rj{x7p``4>+c0G5^pYnB1^!TL=(?HLHZ+HicG{~4F1d^5Awl_2!1jICM-!9eoLhbbT^;yHcefyTAaqRcY zmuctDopPT!%k+}x%lZRKnzykr2}}XfG_ne?nRQO~?%hkzo;@RN{P6o`&mMUWBYMTe z6i8ChtjX&gXl`nvrU>jah)2iNM%JdjqoaeaU%yVn!^70x-flljp6Q5tK}5}&X8&&G zX3fpb3E(!rH=zVI_9Gjl45w@{(ITqngWFe7@9{mX;tO25Z_8 zQHEpI+FkTU#4xu>RkN>b3Tnc3UpWzPXWm#o55GKF09j^Mh~)K7{QqbO_~(@CVq! zS<8954|P8mXN2MRs86xZ&Q4EfM@JB94b=(YGuk)s&^jiSF=t3*oNK3`rD{H`yQ?d; ztE=laAUoZx5?RC8*WKOj`%LXEkgDd>&^Q4M^z`%u0rg-It=hLCVsq!Z%^6eB-OvOT zFZ28TN&cRmgU}Elrnk43)!>Z1FCPL2K$7}gwzIc48NX}#!A1BpJP?#v5wkNprhV** z?Cpalt1oH&{r!o3eSKc&ap)iz2BTn_VV`4>9M^b3;(YY}4>#ML6{~(4mH+?%07*qo IM6N<$f(jP3KmY&$ literal 0 HcmV?d00001 diff --git a/0.5/assets/javascripts/bundle.a51614de.min.js b/0.5/assets/javascripts/bundle.a51614de.min.js new file mode 100755 index 00000000..5afb7820 --- /dev/null +++ b/0.5/assets/javascripts/bundle.a51614de.min.js @@ -0,0 +1,29 @@ +"use strict";(()=>{var Ci=Object.create;var gr=Object.defineProperty;var Ri=Object.getOwnPropertyDescriptor;var ki=Object.getOwnPropertyNames,Ht=Object.getOwnPropertySymbols,Hi=Object.getPrototypeOf,yr=Object.prototype.hasOwnProperty,nn=Object.prototype.propertyIsEnumerable;var rn=(e,t,r)=>t in e?gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))yr.call(t,r)&&rn(e,r,t[r]);if(Ht)for(var r of Ht(t))nn.call(t,r)&&rn(e,r,t[r]);return e};var on=(e,t)=>{var r={};for(var n in e)yr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Ht)for(var n of Ht(e))t.indexOf(n)<0&&nn.call(e,n)&&(r[n]=e[n]);return r};var Pt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Pi=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ki(t))!yr.call(e,o)&&o!==r&&gr(e,o,{get:()=>t[o],enumerable:!(n=Ri(t,o))||n.enumerable});return e};var yt=(e,t,r)=>(r=e!=null?Ci(Hi(e)):{},Pi(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var sn=Pt((xr,an)=>{(function(e,t){typeof xr=="object"&&typeof an!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(xr,function(){"use strict";function e(r){var n=!0,o=!1,i=null,s={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function a(O){return!!(O&&O!==document&&O.nodeName!=="HTML"&&O.nodeName!=="BODY"&&"classList"in O&&"contains"in O.classList)}function f(O){var Qe=O.type,De=O.tagName;return!!(De==="INPUT"&&s[Qe]&&!O.readOnly||De==="TEXTAREA"&&!O.readOnly||O.isContentEditable)}function c(O){O.classList.contains("focus-visible")||(O.classList.add("focus-visible"),O.setAttribute("data-focus-visible-added",""))}function u(O){O.hasAttribute("data-focus-visible-added")&&(O.classList.remove("focus-visible"),O.removeAttribute("data-focus-visible-added"))}function p(O){O.metaKey||O.altKey||O.ctrlKey||(a(r.activeElement)&&c(r.activeElement),n=!0)}function m(O){n=!1}function d(O){a(O.target)&&(n||f(O.target))&&c(O.target)}function h(O){a(O.target)&&(O.target.classList.contains("focus-visible")||O.target.hasAttribute("data-focus-visible-added"))&&(o=!0,window.clearTimeout(i),i=window.setTimeout(function(){o=!1},100),u(O.target))}function v(O){document.visibilityState==="hidden"&&(o&&(n=!0),Y())}function Y(){document.addEventListener("mousemove",N),document.addEventListener("mousedown",N),document.addEventListener("mouseup",N),document.addEventListener("pointermove",N),document.addEventListener("pointerdown",N),document.addEventListener("pointerup",N),document.addEventListener("touchmove",N),document.addEventListener("touchstart",N),document.addEventListener("touchend",N)}function B(){document.removeEventListener("mousemove",N),document.removeEventListener("mousedown",N),document.removeEventListener("mouseup",N),document.removeEventListener("pointermove",N),document.removeEventListener("pointerdown",N),document.removeEventListener("pointerup",N),document.removeEventListener("touchmove",N),document.removeEventListener("touchstart",N),document.removeEventListener("touchend",N)}function N(O){O.target.nodeName&&O.target.nodeName.toLowerCase()==="html"||(n=!1,B())}document.addEventListener("keydown",p,!0),document.addEventListener("mousedown",m,!0),document.addEventListener("pointerdown",m,!0),document.addEventListener("touchstart",m,!0),document.addEventListener("visibilitychange",v,!0),Y(),r.addEventListener("focus",d,!0),r.addEventListener("blur",h,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var cn=Pt(Er=>{(function(e){var t=function(){try{return!!Symbol.iterator}catch(c){return!1}},r=t(),n=function(c){var u={next:function(){var p=c.shift();return{done:p===void 0,value:p}}};return r&&(u[Symbol.iterator]=function(){return u}),u},o=function(c){return encodeURIComponent(c).replace(/%20/g,"+")},i=function(c){return decodeURIComponent(String(c).replace(/\+/g," "))},s=function(){var c=function(p){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var m=typeof p;if(m!=="undefined")if(m==="string")p!==""&&this._fromString(p);else if(p instanceof c){var d=this;p.forEach(function(B,N){d.append(N,B)})}else if(p!==null&&m==="object")if(Object.prototype.toString.call(p)==="[object Array]")for(var h=0;hd[0]?1:0}),c._entries&&(c._entries={});for(var p=0;p1?i(d[1]):"")}})})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Er);(function(e){var t=function(){try{var o=new e.URL("b","http://a");return o.pathname="c d",o.href==="http://a/c%20d"&&o.searchParams}catch(i){return!1}},r=function(){var o=e.URL,i=function(f,c){typeof f!="string"&&(f=String(f)),c&&typeof c!="string"&&(c=String(c));var u=document,p;if(c&&(e.location===void 0||c!==e.location.href)){c=c.toLowerCase(),u=document.implementation.createHTMLDocument(""),p=u.createElement("base"),p.href=c,u.head.appendChild(p);try{if(p.href.indexOf(c)!==0)throw new Error(p.href)}catch(O){throw new Error("URL unable to set base "+c+" due to "+O)}}var m=u.createElement("a");m.href=f,p&&(u.body.appendChild(m),m.href=m.href);var d=u.createElement("input");if(d.type="url",d.value=f,m.protocol===":"||!/:/.test(m.href)||!d.checkValidity()&&!c)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:m});var h=new e.URLSearchParams(this.search),v=!0,Y=!0,B=this;["append","delete","set"].forEach(function(O){var Qe=h[O];h[O]=function(){Qe.apply(h,arguments),v&&(Y=!1,B.search=h.toString(),Y=!0)}}),Object.defineProperty(this,"searchParams",{value:h,enumerable:!0});var N=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==N&&(N=this.search,Y&&(v=!1,this.searchParams._fromString(this.search),v=!0))}})},s=i.prototype,a=function(f){Object.defineProperty(s,f,{get:function(){return this._anchorElement[f]},set:function(c){this._anchorElement[f]=c},enumerable:!0})};["hash","host","hostname","port","protocol"].forEach(function(f){a(f)}),Object.defineProperty(s,"search",{get:function(){return this._anchorElement.search},set:function(f){this._anchorElement.search=f,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(s,{toString:{get:function(){var f=this;return function(){return f.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(f){this._anchorElement.href=f,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(f){this._anchorElement.pathname=f},enumerable:!0},origin:{get:function(){var f={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],c=this._anchorElement.port!=f&&this._anchorElement.port!=="";return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(c?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(f){},enumerable:!0},username:{get:function(){return""},set:function(f){},enumerable:!0}}),i.createObjectURL=function(f){return o.createObjectURL.apply(o,arguments)},i.revokeObjectURL=function(f){return o.revokeObjectURL.apply(o,arguments)},e.URL=i};if(t()||r(),e.location!==void 0&&!("origin"in e.location)){var n=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:n,enumerable:!0})}catch(o){setInterval(function(){e.location.origin=n()},100)}}})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Er)});var qr=Pt((Mt,Nr)=>{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof Mt=="object"&&typeof Nr=="object"?Nr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Mt=="object"?Mt.ClipboardJS=r():t.ClipboardJS=r()})(Mt,function(){return function(){var e={686:function(n,o,i){"use strict";i.d(o,{default:function(){return Ai}});var s=i(279),a=i.n(s),f=i(370),c=i.n(f),u=i(817),p=i.n(u);function m(j){try{return document.execCommand(j)}catch(T){return!1}}var d=function(T){var E=p()(T);return m("cut"),E},h=d;function v(j){var T=document.documentElement.getAttribute("dir")==="rtl",E=document.createElement("textarea");E.style.fontSize="12pt",E.style.border="0",E.style.padding="0",E.style.margin="0",E.style.position="absolute",E.style[T?"right":"left"]="-9999px";var H=window.pageYOffset||document.documentElement.scrollTop;return E.style.top="".concat(H,"px"),E.setAttribute("readonly",""),E.value=j,E}var Y=function(T,E){var H=v(T);E.container.appendChild(H);var I=p()(H);return m("copy"),H.remove(),I},B=function(T){var E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},H="";return typeof T=="string"?H=Y(T,E):T instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(T==null?void 0:T.type)?H=Y(T.value,E):(H=p()(T),m("copy")),H},N=B;function O(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?O=function(E){return typeof E}:O=function(E){return E&&typeof Symbol=="function"&&E.constructor===Symbol&&E!==Symbol.prototype?"symbol":typeof E},O(j)}var Qe=function(){var T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},E=T.action,H=E===void 0?"copy":E,I=T.container,q=T.target,Me=T.text;if(H!=="copy"&&H!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(q!==void 0)if(q&&O(q)==="object"&&q.nodeType===1){if(H==="copy"&&q.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(H==="cut"&&(q.hasAttribute("readonly")||q.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(Me)return N(Me,{container:I});if(q)return H==="cut"?h(q):N(q,{container:I})},De=Qe;function $e(j){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?$e=function(E){return typeof E}:$e=function(E){return E&&typeof Symbol=="function"&&E.constructor===Symbol&&E!==Symbol.prototype?"symbol":typeof E},$e(j)}function Ei(j,T){if(!(j instanceof T))throw new TypeError("Cannot call a class as a function")}function tn(j,T){for(var E=0;E0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof I.action=="function"?I.action:this.defaultAction,this.target=typeof I.target=="function"?I.target:this.defaultTarget,this.text=typeof I.text=="function"?I.text:this.defaultText,this.container=$e(I.container)==="object"?I.container:document.body}},{key:"listenClick",value:function(I){var q=this;this.listener=c()(I,"click",function(Me){return q.onClick(Me)})}},{key:"onClick",value:function(I){var q=I.delegateTarget||I.currentTarget,Me=this.action(q)||"copy",kt=De({action:Me,container:this.container,target:this.target(q),text:this.text(q)});this.emit(kt?"success":"error",{action:Me,text:kt,trigger:q,clearSelection:function(){q&&q.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(I){return vr("action",I)}},{key:"defaultTarget",value:function(I){var q=vr("target",I);if(q)return document.querySelector(q)}},{key:"defaultText",value:function(I){return vr("text",I)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(I){var q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return N(I,q)}},{key:"cut",value:function(I){return h(I)}},{key:"isSupported",value:function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],q=typeof I=="string"?[I]:I,Me=!!document.queryCommandSupported;return q.forEach(function(kt){Me=Me&&!!document.queryCommandSupported(kt)}),Me}}]),E}(a()),Ai=Li},828:function(n){var o=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function s(a,f){for(;a&&a.nodeType!==o;){if(typeof a.matches=="function"&&a.matches(f))return a;a=a.parentNode}}n.exports=s},438:function(n,o,i){var s=i(828);function a(u,p,m,d,h){var v=c.apply(this,arguments);return u.addEventListener(m,v,h),{destroy:function(){u.removeEventListener(m,v,h)}}}function f(u,p,m,d,h){return typeof u.addEventListener=="function"?a.apply(null,arguments):typeof m=="function"?a.bind(null,document).apply(null,arguments):(typeof u=="string"&&(u=document.querySelectorAll(u)),Array.prototype.map.call(u,function(v){return a(v,p,m,d,h)}))}function c(u,p,m,d){return function(h){h.delegateTarget=s(h.target,p),h.delegateTarget&&d.call(u,h)}}n.exports=f},879:function(n,o){o.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},o.nodeList=function(i){var s=Object.prototype.toString.call(i);return i!==void 0&&(s==="[object NodeList]"||s==="[object HTMLCollection]")&&"length"in i&&(i.length===0||o.node(i[0]))},o.string=function(i){return typeof i=="string"||i instanceof String},o.fn=function(i){var s=Object.prototype.toString.call(i);return s==="[object Function]"}},370:function(n,o,i){var s=i(879),a=i(438);function f(m,d,h){if(!m&&!d&&!h)throw new Error("Missing required arguments");if(!s.string(d))throw new TypeError("Second argument must be a String");if(!s.fn(h))throw new TypeError("Third argument must be a Function");if(s.node(m))return c(m,d,h);if(s.nodeList(m))return u(m,d,h);if(s.string(m))return p(m,d,h);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function c(m,d,h){return m.addEventListener(d,h),{destroy:function(){m.removeEventListener(d,h)}}}function u(m,d,h){return Array.prototype.forEach.call(m,function(v){v.addEventListener(d,h)}),{destroy:function(){Array.prototype.forEach.call(m,function(v){v.removeEventListener(d,h)})}}}function p(m,d,h){return a(document.body,m,d,h)}n.exports=f},817:function(n){function o(i){var s;if(i.nodeName==="SELECT")i.focus(),s=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var a=i.hasAttribute("readonly");a||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),a||i.removeAttribute("readonly"),s=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var f=window.getSelection(),c=document.createRange();c.selectNodeContents(i),f.removeAllRanges(),f.addRange(c),s=f.toString()}return s}n.exports=o},279:function(n){function o(){}o.prototype={on:function(i,s,a){var f=this.e||(this.e={});return(f[i]||(f[i]=[])).push({fn:s,ctx:a}),this},once:function(i,s,a){var f=this;function c(){f.off(i,c),s.apply(a,arguments)}return c._=s,this.on(i,c,a)},emit:function(i){var s=[].slice.call(arguments,1),a=((this.e||(this.e={}))[i]||[]).slice(),f=0,c=a.length;for(f;f{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var rs=/["'&<>]/;Yo.exports=ns;function ns(e){var t=""+e,r=rs.exec(t);if(!r)return t;var n,o="",i=0,s=0;for(i=r.index;i0&&i[i.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function W(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),o,i=[],s;try{for(;(t===void 0||t-- >0)&&!(o=n.next()).done;)i.push(o.value)}catch(a){s={error:a}}finally{try{o&&!o.done&&(r=n.return)&&r.call(n)}finally{if(s)throw s.error}}return i}function D(e,t,r){if(r||arguments.length===2)for(var n=0,o=t.length,i;n1||a(m,d)})})}function a(m,d){try{f(n[m](d))}catch(h){p(i[0][3],h)}}function f(m){m.value instanceof et?Promise.resolve(m.value.v).then(c,u):p(i[0][2],m)}function c(m){a("next",m)}function u(m){a("throw",m)}function p(m,d){m(d),i.shift(),i.length&&a(i[0][0],i[0][1])}}function pn(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof Ee=="function"?Ee(e):e[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(i){r[i]=e[i]&&function(s){return new Promise(function(a,f){s=e[i](s),o(a,f,s.done,s.value)})}}function o(i,s,a,f){Promise.resolve(f).then(function(c){i({value:c,done:a})},s)}}function C(e){return typeof e=="function"}function at(e){var t=function(n){Error.call(n),n.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var It=at(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(n,o){return o+1+") "+n.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function Ve(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Ie=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,n,o,i;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var a=Ee(s),f=a.next();!f.done;f=a.next()){var c=f.value;c.remove(this)}}catch(v){t={error:v}}finally{try{f&&!f.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}else s.remove(this);var u=this.initialTeardown;if(C(u))try{u()}catch(v){i=v instanceof It?v.errors:[v]}var p=this._finalizers;if(p){this._finalizers=null;try{for(var m=Ee(p),d=m.next();!d.done;d=m.next()){var h=d.value;try{ln(h)}catch(v){i=i!=null?i:[],v instanceof It?i=D(D([],W(i)),W(v.errors)):i.push(v)}}}catch(v){n={error:v}}finally{try{d&&!d.done&&(o=m.return)&&o.call(m)}finally{if(n)throw n.error}}}if(i)throw new It(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)ln(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&Ve(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&Ve(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Sr=Ie.EMPTY;function jt(e){return e instanceof Ie||e&&"closed"in e&&C(e.remove)&&C(e.add)&&C(e.unsubscribe)}function ln(e){C(e)?e():e.unsubscribe()}var Le={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var st={setTimeout:function(e,t){for(var r=[],n=2;n0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var n=this,o=this,i=o.hasError,s=o.isStopped,a=o.observers;return i||s?Sr:(this.currentObservers=null,a.push(r),new Ie(function(){n.currentObservers=null,Ve(a,r)}))},t.prototype._checkFinalizedStatuses=function(r){var n=this,o=n.hasError,i=n.thrownError,s=n.isStopped;o?r.error(i):s&&r.complete()},t.prototype.asObservable=function(){var r=new F;return r.source=this,r},t.create=function(r,n){return new xn(r,n)},t}(F);var xn=function(e){ie(t,e);function t(r,n){var o=e.call(this)||this;return o.destination=r,o.source=n,o}return t.prototype.next=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.next)===null||o===void 0||o.call(n,r)},t.prototype.error=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.error)===null||o===void 0||o.call(n,r)},t.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},t.prototype._subscribe=function(r){var n,o;return(o=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&o!==void 0?o:Sr},t}(x);var Et={now:function(){return(Et.delegate||Date).now()},delegate:void 0};var wt=function(e){ie(t,e);function t(r,n,o){r===void 0&&(r=1/0),n===void 0&&(n=1/0),o===void 0&&(o=Et);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=n,i._timestampProvider=o,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,n),i}return t.prototype.next=function(r){var n=this,o=n.isStopped,i=n._buffer,s=n._infiniteTimeWindow,a=n._timestampProvider,f=n._windowTime;o||(i.push(r),!s&&i.push(a.now()+f)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(r),o=this,i=o._infiniteTimeWindow,s=o._buffer,a=s.slice(),f=0;f0?e.prototype.requestAsyncId.call(this,r,n,o):(r.actions.push(this),r._scheduled||(r._scheduled=ut.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,n,o){var i;if(o===void 0&&(o=0),o!=null?o>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,o);var s=r.actions;n!=null&&((i=s[s.length-1])===null||i===void 0?void 0:i.id)!==n&&(ut.cancelAnimationFrame(n),r._scheduled=void 0)},t}(Wt);var Sn=function(e){ie(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var o=this.actions,i;r=r||o.shift();do if(i=r.execute(r.state,r.delay))break;while((r=o[0])&&r.id===n&&o.shift());if(this._active=!1,i){for(;(r=o[0])&&r.id===n&&o.shift();)r.unsubscribe();throw i}},t}(Dt);var Oe=new Sn(wn);var M=new F(function(e){return e.complete()});function Vt(e){return e&&C(e.schedule)}function Cr(e){return e[e.length-1]}function Ye(e){return C(Cr(e))?e.pop():void 0}function Te(e){return Vt(Cr(e))?e.pop():void 0}function zt(e,t){return typeof Cr(e)=="number"?e.pop():t}var pt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Nt(e){return C(e==null?void 0:e.then)}function qt(e){return C(e[ft])}function Kt(e){return Symbol.asyncIterator&&C(e==null?void 0:e[Symbol.asyncIterator])}function Qt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function zi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Yt=zi();function Gt(e){return C(e==null?void 0:e[Yt])}function Bt(e){return un(this,arguments,function(){var r,n,o,i;return $t(this,function(s){switch(s.label){case 0:r=e.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,et(r.read())];case 3:return n=s.sent(),o=n.value,i=n.done,i?[4,et(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,et(o)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function Jt(e){return C(e==null?void 0:e.getReader)}function U(e){if(e instanceof F)return e;if(e!=null){if(qt(e))return Ni(e);if(pt(e))return qi(e);if(Nt(e))return Ki(e);if(Kt(e))return On(e);if(Gt(e))return Qi(e);if(Jt(e))return Yi(e)}throw Qt(e)}function Ni(e){return new F(function(t){var r=e[ft]();if(C(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function qi(e){return new F(function(t){for(var r=0;r=2;return function(n){return n.pipe(e?A(function(o,i){return e(o,i,n)}):de,ge(1),r?He(t):Dn(function(){return new Zt}))}}function Vn(){for(var e=[],t=0;t=2,!0))}function pe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new x}:t,n=e.resetOnError,o=n===void 0?!0:n,i=e.resetOnComplete,s=i===void 0?!0:i,a=e.resetOnRefCountZero,f=a===void 0?!0:a;return function(c){var u,p,m,d=0,h=!1,v=!1,Y=function(){p==null||p.unsubscribe(),p=void 0},B=function(){Y(),u=m=void 0,h=v=!1},N=function(){var O=u;B(),O==null||O.unsubscribe()};return y(function(O,Qe){d++,!v&&!h&&Y();var De=m=m!=null?m:r();Qe.add(function(){d--,d===0&&!v&&!h&&(p=$r(N,f))}),De.subscribe(Qe),!u&&d>0&&(u=new rt({next:function($e){return De.next($e)},error:function($e){v=!0,Y(),p=$r(B,o,$e),De.error($e)},complete:function(){h=!0,Y(),p=$r(B,s),De.complete()}}),U(O).subscribe(u))})(c)}}function $r(e,t){for(var r=[],n=2;ne.next(document)),e}function K(e,t=document){return Array.from(t.querySelectorAll(e))}function z(e,t=document){let r=ce(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function ce(e,t=document){return t.querySelector(e)||void 0}function _e(){return document.activeElement instanceof HTMLElement&&document.activeElement||void 0}function tr(e){return L(b(document.body,"focusin"),b(document.body,"focusout")).pipe(ke(1),l(()=>{let t=_e();return typeof t!="undefined"?e.contains(t):!1}),V(e===_e()),J())}function Xe(e){return{x:e.offsetLeft,y:e.offsetTop}}function Kn(e){return L(b(window,"load"),b(window,"resize")).pipe(Ce(0,Oe),l(()=>Xe(e)),V(Xe(e)))}function rr(e){return{x:e.scrollLeft,y:e.scrollTop}}function dt(e){return L(b(e,"scroll"),b(window,"resize")).pipe(Ce(0,Oe),l(()=>rr(e)),V(rr(e)))}var Yn=function(){if(typeof Map!="undefined")return Map;function e(t,r){var n=-1;return t.some(function(o,i){return o[0]===r?(n=i,!0):!1}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(r){var n=e(this.__entries__,r),o=this.__entries__[n];return o&&o[1]},t.prototype.set=function(r,n){var o=e(this.__entries__,r);~o?this.__entries__[o][1]=n:this.__entries__.push([r,n])},t.prototype.delete=function(r){var n=this.__entries__,o=e(n,r);~o&&n.splice(o,1)},t.prototype.has=function(r){return!!~e(this.__entries__,r)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(r,n){n===void 0&&(n=null);for(var o=0,i=this.__entries__;o0},e.prototype.connect_=function(){!Wr||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),va?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!Wr||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var r=t.propertyName,n=r===void 0?"":r,o=ba.some(function(i){return!!~n.indexOf(i)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),Gn=function(e,t){for(var r=0,n=Object.keys(t);r0},e}(),Jn=typeof WeakMap!="undefined"?new WeakMap:new Yn,Xn=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var r=ga.getInstance(),n=new La(t,r,this);Jn.set(this,n)}return e}();["observe","unobserve","disconnect"].forEach(function(e){Xn.prototype[e]=function(){var t;return(t=Jn.get(this))[e].apply(t,arguments)}});var Aa=function(){return typeof nr.ResizeObserver!="undefined"?nr.ResizeObserver:Xn}(),Zn=Aa;var eo=new x,Ca=$(()=>k(new Zn(e=>{for(let t of e)eo.next(t)}))).pipe(g(e=>L(ze,k(e)).pipe(R(()=>e.disconnect()))),X(1));function he(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ye(e){return Ca.pipe(S(t=>t.observe(e)),g(t=>eo.pipe(A(({target:r})=>r===e),R(()=>t.unobserve(e)),l(()=>he(e)))),V(he(e)))}function bt(e){return{width:e.scrollWidth,height:e.scrollHeight}}function ar(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}var to=new x,Ra=$(()=>k(new IntersectionObserver(e=>{for(let t of e)to.next(t)},{threshold:0}))).pipe(g(e=>L(ze,k(e)).pipe(R(()=>e.disconnect()))),X(1));function sr(e){return Ra.pipe(S(t=>t.observe(e)),g(t=>to.pipe(A(({target:r})=>r===e),R(()=>t.unobserve(e)),l(({isIntersecting:r})=>r))))}function ro(e,t=16){return dt(e).pipe(l(({y:r})=>{let n=he(e),o=bt(e);return r>=o.height-n.height-t}),J())}var cr={drawer:z("[data-md-toggle=drawer]"),search:z("[data-md-toggle=search]")};function no(e){return cr[e].checked}function Ke(e,t){cr[e].checked!==t&&cr[e].click()}function Ue(e){let t=cr[e];return b(t,"change").pipe(l(()=>t.checked),V(t.checked))}function ka(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Ha(){return L(b(window,"compositionstart").pipe(l(()=>!0)),b(window,"compositionend").pipe(l(()=>!1))).pipe(V(!1))}function oo(){let e=b(window,"keydown").pipe(A(t=>!(t.metaKey||t.ctrlKey)),l(t=>({mode:no("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),A(({mode:t,type:r})=>{if(t==="global"){let n=_e();if(typeof n!="undefined")return!ka(n,r)}return!0}),pe());return Ha().pipe(g(t=>t?M:e))}function le(){return new URL(location.href)}function ot(e){location.href=e.href}function io(){return new x}function ao(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)ao(e,r)}function _(e,t,...r){let n=document.createElement(e);if(t)for(let o of Object.keys(t))typeof t[o]!="undefined"&&(typeof t[o]!="boolean"?n.setAttribute(o,t[o]):n.setAttribute(o,""));for(let o of r)ao(n,o);return n}function fr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function so(){return location.hash.substring(1)}function Dr(e){let t=_("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Pa(e){return L(b(window,"hashchange"),e).pipe(l(so),V(so()),A(t=>t.length>0),X(1))}function co(e){return Pa(e).pipe(l(t=>ce(`[id="${t}"]`)),A(t=>typeof t!="undefined"))}function Vr(e){let t=matchMedia(e);return er(r=>t.addListener(()=>r(t.matches))).pipe(V(t.matches))}function fo(){let e=matchMedia("print");return L(b(window,"beforeprint").pipe(l(()=>!0)),b(window,"afterprint").pipe(l(()=>!1))).pipe(V(e.matches))}function zr(e,t){return e.pipe(g(r=>r?t():M))}function ur(e,t={credentials:"same-origin"}){return ue(fetch(`${e}`,t)).pipe(fe(()=>M),g(r=>r.status!==200?Ot(()=>new Error(r.statusText)):k(r)))}function We(e,t){return ur(e,t).pipe(g(r=>r.json()),X(1))}function uo(e,t){let r=new DOMParser;return ur(e,t).pipe(g(n=>n.text()),l(n=>r.parseFromString(n,"text/xml")),X(1))}function pr(e){let t=_("script",{src:e});return $(()=>(document.head.appendChild(t),L(b(t,"load"),b(t,"error").pipe(g(()=>Ot(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(l(()=>{}),R(()=>document.head.removeChild(t)),ge(1))))}function po(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function lo(){return L(b(window,"scroll",{passive:!0}),b(window,"resize",{passive:!0})).pipe(l(po),V(po()))}function mo(){return{width:innerWidth,height:innerHeight}}function ho(){return b(window,"resize",{passive:!0}).pipe(l(mo),V(mo()))}function bo(){return G([lo(),ho()]).pipe(l(([e,t])=>({offset:e,size:t})),X(1))}function lr(e,{viewport$:t,header$:r}){let n=t.pipe(ee("size")),o=G([n,r]).pipe(l(()=>Xe(e)));return G([r,t,o]).pipe(l(([{height:i},{offset:s,size:a},{x:f,y:c}])=>({offset:{x:s.x-f,y:s.y-c+i},size:a})))}(()=>{function e(n,o){parent.postMessage(n,o||"*")}function t(...n){return n.reduce((o,i)=>o.then(()=>new Promise(s=>{let a=document.createElement("script");a.src=i,a.onload=s,document.body.appendChild(a)})),Promise.resolve())}var r=class extends EventTarget{constructor(n){super(),this.url=n,this.m=i=>{i.source===this.w&&(this.dispatchEvent(new MessageEvent("message",{data:i.data})),this.onmessage&&this.onmessage(i))},this.e=(i,s,a,f,c)=>{if(s===`${this.url}`){let u=new ErrorEvent("error",{message:i,filename:s,lineno:a,colno:f,error:c});this.dispatchEvent(u),this.onerror&&this.onerror(u)}};let o=document.createElement("iframe");o.hidden=!0,document.body.appendChild(this.iframe=o),this.w.document.open(),this.w.document.write(` + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + +

Overview

+

logo

+

LLamaSharp is the C#/.NET binding of llama.cpp. It provides APIs to inference the LLaMa Models and deploy it on native environment or Web. It could help C# developers to deploy the LLM (Large Language Model) locally and integrate with C# apps.

+

Main features

+
    +
  • Model inference
  • +
  • Model quantization
  • +
  • Generating embeddings
  • +
  • Grammar parse
  • +
  • Interactive/Instruct/Stateless executor mode
  • +
  • Chat session APIs
  • +
  • Save/load the state
  • +
  • Integration with other applications like BotSharp and semantic-kernel
  • +
+

Essential insights for novice learners

+

If you are new to LLM, here're some tips for you to help you to get start with LLamaSharp. If you are experienced in this field, we'd still recommend you to take a few minutes to read it because some things perform differently compared to cpp/python.

+
    +
  1. The main ability of LLamaSharp is to provide an efficient way to run inference of LLM (Large Language Model) locally (and fine-tune model in the future). The model weights, however, need to be downloaded from other resources such as huggingface.
  2. +
  3. Since LLamaSharp supports multiple platforms, The nuget package is split into LLamaSharp and LLama.Backend. After installing LLamaSharp, please install one of LLama.Backend.Cpu, LLama.Backend.Cuda11 or LLama.Backend.Cuda12. If you use the source code, dynamic libraries can be found in LLama/Runtimes. Rename the one you want to use to libllama.dll.
  4. +
  5. LLaMa originally refers to the weights released by Meta (Facebook Research). After that, many models are fine-tuned based on it, such as Vicuna, GPT4All, and Pyglion. Though all of these models are supported by LLamaSharp, some steps are necessary with different file formats. There're mainly three kinds of files, which are .pth, .bin (ggml), .bin (quantized). If you have the .bin (quantized) file, it could be used directly by LLamaSharp. If you have the .bin (ggml) file, you could use it directly but get higher inference speed after the quantization. If you have the .pth file, you need to follow the instructions in llama.cpp to convert it to .bin (ggml) file at first.
  6. +
  7. LLamaSharp supports GPU acceleration, but it requires cuda installation. Please install cuda 11 or cuda 12 on your system before using LLamaSharp to enable GPU. If you have another cuda version, you could compile llama.cpp from source to get the dll. For building from source, please refer to issue #5.
  8. +
+

Welcome to join the development!

+

Community effort is always one of the most important things in open-source projects. Any contribution in any way is welcomed here. For example, the following things mean a lot for LLamaSharp:

+
    +
  1. Open an issue when you find something wrong.
  2. +
  3. Open an PR if you've fixed something. Even if just correcting a typo, it also makes great sense.
  4. +
  5. Help to optimize the documentation.
  6. +
  7. Write an example or blog about how to integrate LLamaSharp with your APPs.
  8. +
  9. Ask for a missed feature and discuss with other developers.
  10. +
+

If you'd like to get deeply involved in development, please touch us in discord channel or send email to AsakusaRinne@gmail.com. :)

+ + + + + + +
+
+ + +
+ +
+ + + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/0.5/media/LLamaSharpLogo.png b/0.5/media/LLamaSharpLogo.png new file mode 100755 index 0000000000000000000000000000000000000000..62df789a6364461e9cbc09724e1c60caffc03759 GIT binary patch literal 41408 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 jdHK=w@w?-1Z$lc3{Ka|a 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
  • L52Od^dFbR2oW2{ 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 NPb^rtEg$kA{|gO6ZXo~w literal 0 HcmV?d00001 diff --git a/0.5/media/structure.jpg b/0.5/media/structure.jpg new file mode 100755 index 0000000000000000000000000000000000000000..74173977151298e4265a0db8bcb14c2d697079b2 GIT binary patch literal 161377 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 z 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 is the C#/.NET binding of llama.cpp. It provides APIs to inference the LLaMa Models and deploy it on native environment or Web. It could help C# developers to deploy the LLM (Large Language Model) locally and integrate with C# apps.

    "},{"location":"#main-features","title":"Main features","text":"
    • Model inference
    • Model quantization
    • Generating embeddings
    • Grammar parse
    • Interactive/Instruct/Stateless executor mode
    • Chat session APIs
    • Save/load the state
    • Integration with other applications like BotSharp and semantic-kernel
    "},{"location":"#essential-insights-for-novice-learners","title":"Essential insights for novice learners","text":"

    If you are new to LLM, here're some tips for you to help you to get start with LLamaSharp. If you are experienced in this field, we'd still recommend you to take a few minutes to read it because some things perform differently compared to cpp/python.

    1. The main ability of LLamaSharp is to provide an efficient way to run inference of LLM (Large Language Model) locally (and fine-tune model in the future). The model weights, however, need to be downloaded from other resources such as huggingface.
    2. Since LLamaSharp supports multiple platforms, The nuget package is split into LLamaSharp and LLama.Backend. After installing LLamaSharp, please install one of LLama.Backend.Cpu, LLama.Backend.Cuda11 or LLama.Backend.Cuda12. If you use the source code, dynamic libraries can be found in LLama/Runtimes. Rename the one you want to use to libllama.dll.
    3. LLaMa originally refers to the weights released by Meta (Facebook Research). After that, many models are fine-tuned based on it, such as Vicuna, GPT4All, and Pyglion. Though all of these models are supported by LLamaSharp, some steps are necessary with different file formats. There're mainly three kinds of files, which are .pth, .bin (ggml), .bin (quantized). If you have the .bin (quantized) file, it could be used directly by LLamaSharp. If you have the .bin (ggml) file, you could use it directly but get higher inference speed after the quantization. If you have the .pth file, you need to follow the instructions in llama.cpp to convert it to .bin (ggml) file at first.
    4. LLamaSharp supports GPU acceleration, but it requires cuda installation. Please install cuda 11 or cuda 12 on your system before using LLamaSharp to enable GPU. If you have another cuda version, you could compile llama.cpp from source to get the dll. For building from source, please refer to issue #5.
    "},{"location":"#welcome-to-join-the-development","title":"Welcome to join the development!","text":"

    Community effort is always one of the most important things in open-source projects. Any contribution in any way is welcomed here. For example, the following things mean a lot for LLamaSharp:

    1. Open an issue when you find something wrong.
    2. Open an PR if you've fixed something. Even if just correcting a typo, it also makes great sense.
    3. Help to optimize the documentation.
    4. Write an example or blog about how to integrate LLamaSharp with your APPs.
    5. Ask for a missed feature and discuss with other developers.

    If you'd like to get deeply involved in development, please touch us in discord channel or send email to AsakusaRinne@gmail.com. :)

    "},{"location":"Architecture/","title":"Architecture","text":""},{"location":"Architecture/#architecture-of-main-functions","title":"Architecture of main functions","text":"

    The figure below shows the core framework structure, which is separated to four levels.

    • LLamaContext: The holder of a model which directly interact with native library and provide some basic APIs such as tokenization and embedding. Currently it includes three classes: LLamaContext, LLamaEmbedder and LLamaQuantizer.
    • LLamaExecutors: Executors which define the way to run the LLama model. It provides text-to-text APIs to make it easy to use. Currently we provide three kinds of executors: InteractiveExecutor, InstructuExecutor and StatelessExecutor.
    • ChatSession: A wrapping for InteractiveExecutor and LLamaContext, which supports interactive tasks and saving/re-loading sessions. It also provides a flexible way to customize the text process by IHistoryTransform, ITextTransform and ITextStreamTransform.
    • High-level Applications: Some applications that provides higher-level integration. For example, BotSharp provides integration for vector search, Chatbot UI and Web APIs. semantic-kernel provides various APIs for manipulations related with LLM. If you've made an integration, please tell us and add it to the doc!

    "},{"location":"Architecture/#recommended-use","title":"Recommended Use","text":"

    Since LLamaContext interact with native library, it's not recommended to use the methods of it directly unless you know what you are doing. So does the NativeApi, which is not included in the architecture figure above.

    ChatSession is recommended to be used when you want to build an application similar to ChatGPT, or the ChatBot, because it works best with InteractiveExecutor. Though other executors are also allowed to passed as a parameter to initialize a ChatSession, it's not encouraged if you are new to LLamaSharp and LLM.

    High-level applications, such as BotSharp, are supposed to be used when you concentrate on the part not related with LLM. For example, if you want to deploy a chat bot to help you remember your schedules, using BotSharp may be a good choice.

    Note that the APIs of the high-level applications may not be stable now. Please take it into account when using them.

    "},{"location":"ContributingGuide/","title":"LLamaSharp Contributing Guide","text":"

    Hi, welcome to develop LLamaSharp with us together! We are always open for every contributor and any format of contributions! If you want to maintain this library actively together, please contact us to get the write access after some PRs. (Email: AsakusaRinne@gmail.com)

    In this page, we'd like to introduce how to make contributions here easily. \ud83d\ude0a

    "},{"location":"ContributingGuide/#compile-the-native-library-from-source","title":"Compile the native library from source","text":"

    Firstly, please clone the llama.cpp repository and following the instructions in llama.cpp readme to configure your local environment.

    If you want to support cublas in the compilation, please make sure that you've installed the cuda.

    When building from source, please add -DBUILD_SHARED_LIBS=ON to the cmake instruction. For example, when building with cublas but without openblas, use the following instruction:

    cmake .. -DLLAMA_CUBLAS=ON -DBUILD_SHARED_LIBS=ON\n

    After running cmake --build . --config Release, you could find the llama.dll, llama.so or llama.dylib in your build directory. After pasting it to LLamaSharp/LLama/runtimes and renaming it to libllama.dll, libllama.so or libllama.dylib, you can use it as the native library in LLamaSharp.

    "},{"location":"ContributingGuide/#add-a-new-feature-to-llamasharp","title":"Add a new feature to LLamaSharp","text":"

    After refactoring the framework in v0.4.0, LLamaSharp will try to maintain the backward compatibility. However, in the following cases a breaking change will be required:

    1. Due to some break changes in llama.cpp, making a breaking change will help to maintain the good abstraction and friendly user APIs.
    2. A very important feature cannot be implemented unless refactoring some parts.
    3. After some discussions, an agreement was reached that making the break change is reasonable.

    If a new feature could be added without introducing any break change, please open a PR rather than open an issue first. We will never refuse the PR but help to improve it, unless it's malicious.

    When adding the feature, please take care of the namespace and the naming convention. For example, if you are adding an integration for WPF, please put the code under namespace LLama.WPF or LLama.Integration.WPF instead of putting it under the root namespace. The naming convention of LLamaSharp follows the pascal naming convention, but in some parts that are invisible to users, you can do whatever you want.

    "},{"location":"ContributingGuide/#find-the-problem-and-fix-the-bug","title":"Find the problem and fix the BUG","text":"

    If the issue is related to the LLM internal behaviour, such as endless generating the response, the best way to find the problem is to do comparison test between llama.cpp and LLamaSharp.

    You could use exactly the same prompt, the same model and the same parameters to run the inference in llama.cpp and LLamaSharp respectively to see if it's really a problem caused by the implementation in LLamaSharp.

    If the experiment showed that it worked well in llama.cpp but didn't in LLamaSharp, a search for the problem could be started. While the reason of the problem could be various, the best way I think is to add log-print in the code of llama.cpp and use it in LLamaSharp after compilation. Thus, when running LLamaSharp, you could see what happened in the native library.

    After finding out the reason, a painful but happy process comes. When working on the BUG fix, there's only one rule to follow, that is keeping the examples working well. If the modification fixed the BUG but impact on other functions, it would not be a good fix.

    During the BUG fix process, please don't hesitate to discuss together when you stuck on something.

    "},{"location":"ContributingGuide/#add-integrations","title":"Add integrations","text":"

    All kinds of integration are welcomed here! Currently the following integrations are under work or on our schedule:

    1. BotSharp
    2. semantic-kernel
    3. Unity

    Besides, for some other integrations, like ASP.NET core, SQL, Blazor and so on, we'll appreciate it if you could help with that. If the time is limited for you, providing an example for it also means a lot!

    "},{"location":"ContributingGuide/#add-examples","title":"Add examples","text":"

    There're mainly two ways to add an example:

    1. Add the example to LLama.Examples of the repository.
    2. Put the example in another repository and add the link to the readme or docs of LLamaSharp.
    "},{"location":"ContributingGuide/#add-documents","title":"Add documents","text":"

    LLamaSharp uses mkdocs to build the documentation, please follow the tutorial of mkdocs to add or modify documents in LLamaSharp.

    "},{"location":"GetStarted/","title":"Get Started","text":""},{"location":"GetStarted/#install-packages","title":"Install packages","text":"

    Firstly, search LLamaSharp in nuget package manager and install it.

    PM> Install-Package LLamaSharp\n

    Then, search and install one of the following backends:

    LLamaSharp.Backend.Cpu\nLLamaSharp.Backend.Cuda11\nLLamaSharp.Backend.Cuda12\n

    Here's the mapping of them and corresponding model samples provided by LLamaSharp. If you're not sure which model is available for a version, please try our sample model.

    LLamaSharp.Backend LLamaSharp Verified Model Resources llama.cpp commit id - v0.2.0 This version is not recommended to use. - - v0.2.1 WizardLM, Vicuna (filenames with \"old\") - v0.2.2 v0.2.2, v0.2.3 WizardLM, Vicuna (filenames without \"old\") 63d2046 v0.3.0 v0.3.0 LLamaSharpSamples v0.3.0, WizardLM 7e4ea5b"},{"location":"GetStarted/#download-a-model","title":"Download a model","text":"

    One of the following models could be okay:

    • LLaMA \ud83e\udd99
    • Alpaca
    • GPT4All
    • Chinese LLaMA / Alpaca
    • Vigogne (French)
    • Vicuna
    • Koala
    • OpenBuddy \ud83d\udc36 (Multilingual)
    • Pygmalion 7B / Metharme 7B
    • WizardLM

    Note that because llama.cpp is under fast development now and often introduce break changes, some model weights on huggingface which works under a version may be invalid with another version. If it's your first time to configure LLamaSharp, we'd like to suggest for using verified model weights in the table above.

    "},{"location":"GetStarted/#run-the-program","title":"Run the program","text":"

    Please create a console program with dotnet runtime >= netstandard 2.0 (>= net6.0 is more recommended). Then, paste the following code to program.cs;

    using LLama.Common;\nusing LLama;\n\nstring modelPath = \"<Your model path>\" // change it to your own model path\nvar prompt = \"Transcript of a dialog, where the User interacts with an Assistant named Bob. Bob is helpful, kind, honest, good at writing, and never fails to answer the User's requests immediately and with precision.\\r\\n\\r\\nUser: Hello, Bob.\\r\\nBob: Hello. How may I help you today?\\r\\nUser: Please tell me the largest city in Europe.\\r\\nBob: Sure. The largest city in Europe is Moscow, the capital of Russia.\\r\\nUser:\"; // use the \"chat-with-bob\" prompt here.\n\n// Load model\nvar parameters = new ModelParams(modelPath)\n{\n    ContextSize = 1024\n};\nusing var model = LLamaWeights.LoadFromFile(parameters);\n\n// Initialize a chat session\nusing var context = model.CreateContext(parameters);\nvar ex = new InteractiveExecutor(context);\nChatSession session = new ChatSession(ex);\n\n// show the prompt\nConsole.WriteLine();\nConsole.Write(prompt);\n\n// run the inference in a loop to chat with LLM\nwhile (true)\n{\n    foreach (var text in session.Chat(prompt, new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { \"User:\" } }))\n    {\n        Console.Write(text);\n    }\n\n    Console.ForegroundColor = ConsoleColor.Green;\n    prompt = Console.ReadLine();\n    Console.ForegroundColor = ConsoleColor.White;\n}\n

    After starting it, you'll see the following outputs.

    Please input your model path: D:\\development\\llama\\weights\\wizard-vicuna-13B.ggmlv3.q4_1.bin\nllama.cpp: loading model from D:\\development\\llama\\weights\\wizard-vicuna-13B.ggmlv3.q4_1.bin\nllama_model_load_internal: format     = ggjt v3 (latest)\nllama_model_load_internal: n_vocab    = 32000\nllama_model_load_internal: n_ctx      = 1024\nllama_model_load_internal: n_embd     = 5120\nllama_model_load_internal: n_mult     = 256\nllama_model_load_internal: n_head     = 40\nllama_model_load_internal: n_layer    = 40\nllama_model_load_internal: n_rot      = 128\nllama_model_load_internal: ftype      = 3 (mostly Q4_1)\nllama_model_load_internal: n_ff       = 13824\nllama_model_load_internal: n_parts    = 1\nllama_model_load_internal: model size = 13B\nllama_model_load_internal: ggml ctx size = 7759.48 MB\nllama_model_load_internal: mem required  = 9807.48 MB (+ 1608.00 MB per state)\n....................................................................................................\nllama_init_from_file: kv self size  =  800.00 MB\n\nTranscript of a dialog, where the User interacts with an Assistant named Bob. Bob is helpful, kind, honest, good at writing, and never fails to answer the User's requests immediately and with precision.\n\nUser: Hello, Bob.\nBob: Hello. How may I help you today?\nUser: Please tell me the largest city in Europe.\nBob: Sure. The largest city in Europe is Moscow, the capital of Russia.\nUser:\n

    Now, enjoy chatting with LLM!

    "},{"location":"Tricks/","title":"Tricks for FAQ","text":"

    Sometimes, your application with LLM and LLamaSharp may have strange behaviours. Before opening an issue to report the BUG, the following tricks may worth a try.

    "},{"location":"Tricks/#carefully-set-the-anti-prompts","title":"Carefully set the anti-prompts","text":"

    Anti-prompt can also be called as \"Stop-keyword\", which decides when to stop the response generation. Under interactive mode, the maximum tokens count is always not set, which makes the LLM generates responses infinitively. Therefore, setting anti-prompt correctly helps a lot to avoid the strange behaviours. For example, the prompt file chat-with-bob.txt has the following content:

    Transcript of a dialog, where the User interacts with an Assistant named Bob. Bob is helpful, kind, honest, good at writing, and never fails to answer the User's requests immediately and with precision.\n\nUser: Hello, Bob.\nBob: Hello. How may I help you today?\nUser: Please tell me the largest city in Europe.\nBob: Sure. The largest city in Europe is Moscow, the capital of Russia.\nUser:\n

    Therefore, the anti-prompt should be set as \"User:\". If the last line of the prompt is removed, LLM will automatically generate a question (user) and a response (bob) for one time when running the chat session. Therefore, the antiprompt is suggested to be appended to the prompt when starting a chat session.

    What if an extra line is appended? The string \"User:\" in the prompt will be followed with a char \"\\n\". Thus when running the model, the automatic generation of a pair of question and response may appear because the anti-prompt is \"User:\" but the last token is \"User:\\n\". As for whether it will appear, it's an undefined behaviour, which depends on the implementation inside the LLamaExecutor. Anyway, since it may leads to unexpected behaviors, it's recommended to trim your prompt or carefully keep consistent with your anti-prompt.

    "},{"location":"Tricks/#pay-attention-to-the-length-of-prompt","title":"Pay attention to the length of prompt","text":"

    Sometimes we want to input a long prompt to execute a task. However, the context size may limit the inference of LLama model. Please ensure the inequality below holds.

    $$ len(prompt) + len(response) < len(context) $$

    In this inequality, len(response) refers to the expected tokens for LLM to generate.

    "},{"location":"Tricks/#try-different-executors-with-a-prompt","title":"Try different executors with a prompt","text":"

    Some prompt works well under interactive mode, such as chat-with-bob, some others may work well with instruct mode, such as alpaca. Besides, if your input is quite simple and one-time job, such as \"Q: what is the satellite of the earth? A: \", stateless mode will be a good choice.

    If your chat bot has bad performance, trying different executor will possibly make it work well.

    "},{"location":"Tricks/#choose-models-weight-depending-on-you-task","title":"Choose models weight depending on you task","text":"

    The differences between modes may lead to much different behaviours under the same task. For example, if you're building a chat bot with non-English, a fine-tuned model specially for the language you want to use will have huge effect on the performance.

    "},{"location":"Tricks/#set-the-layer-count-you-want-to-offload-to-gpu","title":"Set the layer count you want to offload to GPU","text":"

    Currently, the GpuLayerCount parameter, which decides the number of layer loaded into GPU, is set to 20 by default. However, if you have some efficient GPUs, setting it as a larger number will attain faster inference.

    "},{"location":"ChatSession/basic-usages/","title":"Basic usages of ChatSession","text":"

    ChatSession 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.

    "},{"location":"ChatSession/basic-usages/#initialize-a-session","title":"Initialize a session","text":"

    Currently, the only parameter that is accepted is an ILLamaExecutor, 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.

    InteractiveExecutor ex = new(new LLamaModel(new ModelParams(modelPath)));\nChatSession session = new ChatSession(ex);\n
    "},{"location":"ChatSession/basic-usages/#chat-with-the-bot","title":"Chat with the bot","text":"

    There'll be two kinds of input accepted by the Chat API, which are ChatHistory and String. The API with string is quite similar to that of the executors. Meanwhile, the API with ChatHistory 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.

    string prompt = \"What is C#?\";\n\nforeach (var text in session.Chat(prompt, new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { \"User:\" } })) // the inference params should be changed depending on your statement\n{\n    Console.Write(text);\n}\n
    "},{"location":"ChatSession/basic-usages/#get-the-history","title":"Get the history","text":"

    Currently History is a property of ChatSession.

    foreach(var rec in session.History.Messages)\n{\n    Console.WriteLine($\"{rec.AuthorRole}: {rec.Content}\");\n}\n
    "},{"location":"ChatSession/save-load-session/","title":"Save/Load Chat Session","text":"

    Generally, the chat session could be switched, which requires the ability of loading and saving session.

    When building a chat bot app, it's NOT encouraged to initialize many chat sessions and keep them in memory to wait for being switched, because the memory consumption of both CPU and GPU is expensive. It's recommended to save the current session before switching to a new session, and load the file when switching back to the session.

    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.

    string savePath = \"<save dir>\";\nsession.SaveSession(savePath);\n\nsession.LoadSession(savePath);\n
    "},{"location":"ChatSession/transforms/","title":"Transforms in Chat Session","text":"

    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.

    Currently, there're three kinds of process that could be customized, as introduced below.

    "},{"location":"ChatSession/transforms/#input-transform","title":"Input transform","text":"

    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.

    public interface ITextTransform\n{\n    string Transform(string text);\n}\n
    public class MyInputTransform1 : ITextTransform\n{\n    public string Transform(string text)\n    {\n        return $\"Question: {text}\\n\";\n    }\n}\n\npublic class MyInputTransform2 : ITextTransform\n{\n    public string Transform(string text)\n    {\n        return text + \"Answer: \";\n    }\n}\n\nsession.AddInputTransform(new MyInputTransform1()).AddInputTransform(new MyInputTransform2());\n
    "},{"location":"ChatSession/transforms/#output-transform","title":"Output transform","text":"

    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.

    The interface of it has an IEnumerable<string> as input, which is actually a yield sequence.

    public interface ITextStreamTransform\n{\n    IEnumerable<string> Transform(IEnumerable<string> tokens);\n    IAsyncEnumerable<string> TransformAsync(IAsyncEnumerable<string> tokens);\n}\n

    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.

    Different from the input transform pipeline, the output transform only supports one transform.

    session.WithOutputTransform(new MyOutputTransform());\n

    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.

    /// <summary>\n/// A text output transform that removes the keywords from the response.\n/// </summary>\npublic class KeywordTextOutputStreamTransform : ITextStreamTransform\n{\n    HashSet<string> _keywords;\n    int _maxKeywordLength;\n    bool _removeAllMatchedTokens;\n\n    /// <summary>\n    /// \n    /// </summary>\n    /// <param name=\"keywords\">Keywords that you want to remove from the response.</param>\n    /// <param name=\"redundancyLength\">The extra length when searching for the keyword. For example, if your only keyword is \"highlight\", \n    /// maybe the token you get is \"\\r\\nhighligt\". In this condition, if redundancyLength=0, the token cannot be successfully matched because the length of \"\\r\\nhighligt\" (10)\n    /// has already exceeded the maximum length of the keywords (8). On the contrary, setting redundancyLengyh >= 2 leads to successful match.\n    /// The larger the redundancyLength is, the lower the processing speed. But as an experience, it won't introduce too much performance impact when redundancyLength <= 5 </param>\n    /// <param name=\"removeAllMatchedTokens\">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.</param>\n    public KeywordTextOutputStreamTransform(IEnumerable<string> keywords, int redundancyLength = 3, bool removeAllMatchedTokens = false)\n    {\n        _keywords = new(keywords);\n        _maxKeywordLength = keywords.Select(x => x.Length).Max() + redundancyLength;\n        _removeAllMatchedTokens = removeAllMatchedTokens;\n    }\n    /// <inheritdoc />\n    public IEnumerable<string> Transform(IEnumerable<string> tokens)\n    {\n        var window = new Queue<string>();\n\n        foreach (var s in tokens)\n        {\n            window.Enqueue(s);\n            var current = string.Join(\"\", window);\n            if (_keywords.Any(x => current.Contains(x)))\n            {\n                var matchedKeyword = _keywords.First(x => current.Contains(x));\n                int total = window.Count;\n                for (int i = 0; i < total; i++)\n                {\n                    window.Dequeue();\n                }\n                if (!_removeAllMatchedTokens)\n                {\n                    yield return current.Replace(matchedKeyword, \"\");\n                }\n            }\n            if (current.Length >= _maxKeywordLength)\n            {\n                if (_keywords.Any(x => current.Contains(x)))\n                {\n                    var matchedKeyword = _keywords.First(x => current.Contains(x));\n                    int total = window.Count;\n                    for (int i = 0; i < total; i++)\n                    {\n                        window.Dequeue();\n                    }\n                    if (!_removeAllMatchedTokens)\n                    {\n                        yield return current.Replace(matchedKeyword, \"\");\n                    }\n                }\n                else\n                {\n                    int total = window.Count;\n                    for (int i = 0; i < total; i++)\n                    {\n                        yield return window.Dequeue();\n                    }\n                }\n            }\n        }\n        int totalCount = window.Count;\n        for (int i = 0; i < totalCount; i++)\n        {\n            yield return window.Dequeue();\n        }\n    }\n    /// <inheritdoc />\n    public async IAsyncEnumerable<string> TransformAsync(IAsyncEnumerable<string> tokens)\n    {\n        throw new NotImplementedException(); // This is implemented in `LLamaTransforms` but we ignore it here.\n    }\n}\n
    "},{"location":"ChatSession/transforms/#history-transform","title":"History transform","text":"

    The chat history could be converted to or from a text, which is exactly what the interface of it.

    public interface IHistoryTransform\n{\n    string HistoryToText(ChatHistory history);\n    ChatHistory TextToHistory(AuthorRole role, string text);\n}\n

    Similar to the output transform, the history transform is added in the following way:

    session.WithHistoryTransform(new MyHistoryTransform());\n

    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.

    /// <summary>\n/// The default history transform.\n/// Uses plain text with the following format:\n/// [Author]: [Message]\n/// </summary>\npublic class DefaultHistoryTransform : IHistoryTransform\n{\n    private readonly string defaultUserName = \"User\";\n    private readonly string defaultAssistantName = \"Assistant\";\n    private readonly string defaultSystemName = \"System\";\n    private readonly string defaultUnknownName = \"??\";\n\n    string _userName;\n    string _assistantName;\n    string _systemName;\n    string _unknownName;\n    bool _isInstructMode;\n    public DefaultHistoryTransform(string? userName = null, string? assistantName = null, \n        string? systemName = null, string? unknownName = null, bool isInstructMode = false)\n    {\n        _userName = userName ?? defaultUserName;\n        _assistantName = assistantName ?? defaultAssistantName;\n        _systemName = systemName ?? defaultSystemName;\n        _unknownName = unknownName ?? defaultUnknownName;\n        _isInstructMode = isInstructMode;\n    }\n\n    public virtual string HistoryToText(ChatHistory history)\n    {\n        StringBuilder sb = new();\n        foreach (var message in history.Messages)\n        {\n            if (message.AuthorRole == AuthorRole.User)\n            {\n                sb.AppendLine($\"{_userName}: {message.Content}\");\n            }\n            else if (message.AuthorRole == AuthorRole.System)\n            {\n                sb.AppendLine($\"{_systemName}: {message.Content}\");\n            }\n            else if (message.AuthorRole == AuthorRole.Unknown)\n            {\n                sb.AppendLine($\"{_unknownName}: {message.Content}\");\n            }\n            else if (message.AuthorRole == AuthorRole.Assistant)\n            {\n                sb.AppendLine($\"{_assistantName}: {message.Content}\");\n            }\n        }\n        return sb.ToString();\n    }\n\n    public virtual ChatHistory TextToHistory(AuthorRole role, string text)\n    {\n        ChatHistory history = new ChatHistory();\n        history.AddMessage(role, TrimNamesFromText(text, role));\n        return history;\n    }\n\n    public virtual string TrimNamesFromText(string text, AuthorRole role)\n    {\n        if (role == AuthorRole.User && text.StartsWith($\"{_userName}:\"))\n        {\n            text = text.Substring($\"{_userName}:\".Length).TrimStart();\n        }\n        else if (role == AuthorRole.Assistant && text.EndsWith($\"{_assistantName}:\"))\n        {\n            text = text.Substring(0, text.Length - $\"{_assistantName}:\".Length).TrimEnd();\n        }\n        if (_isInstructMode && role == AuthorRole.Assistant && text.EndsWith(\"\\n> \"))\n        {\n            text = text.Substring(0, text.Length - \"\\n> \".Length).TrimEnd();\n        }\n        return text;\n    }\n}\n
    "},{"location":"Examples/ChatSessionStripRoleName/","title":"Use chat session and strip role names","text":"
    using LLama.Common;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\npublic class ChatSessionStripRoleName\n{\n    public static void Run()\n    {\n        Console.Write(\"Please input your model path: \");\n        string modelPath = Console.ReadLine();\n        var prompt = File.ReadAllText(\"Assets/chat-with-bob.txt\").Trim();\n        InteractiveExecutor ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 1024, seed: 1337, gpuLayerCount: 5)));\n        ChatSession session = new ChatSession(ex).WithOutputTransform(new LLamaTransforms.KeywordTextOutputStreamTransform(new string[] { \"User:\", \"Bob:\" }, redundancyLength: 8));\n\n        Console.ForegroundColor = ConsoleColor.Yellow;\n        Console.WriteLine(\"The chat session has started. The role names won't be printed.\");\n        Console.ForegroundColor = ConsoleColor.White;\n\n        while (true)\n        {\n            foreach (var text in session.Chat(prompt, new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { \"User:\" } }))\n            {\n                Console.Write(text);\n            }\n\n            Console.ForegroundColor = ConsoleColor.Green;\n            prompt = Console.ReadLine();\n            Console.ForegroundColor = ConsoleColor.White;\n        }\n    }\n}\n
    "},{"location":"Examples/ChatSessionWithRoleName/","title":"Use chat session without removing role names","text":"
    using LLama.Common;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\npublic class ChatSessionWithRoleName\n{\n    public static void Run()\n    {\n        Console.Write(\"Please input your model path: \");\n        string modelPath = Console.ReadLine();\n        var prompt = File.ReadAllText(\"Assets/chat-with-bob.txt\").Trim();\n        InteractiveExecutor ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 1024, seed: 1337, gpuLayerCount: 5)));\n        ChatSession session = new ChatSession(ex); // The only change is to remove the transform for the output text stream.\n\n        Console.ForegroundColor = ConsoleColor.Yellow;\n        Console.WriteLine(\"The chat session has started. In this example, the prompt is printed for better visual result.\");\n        Console.ForegroundColor = ConsoleColor.White;\n\n        // show the prompt\n        Console.Write(prompt);\n        while (true)\n        {\n            foreach (var text in session.Chat(prompt, new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { \"User:\" } }))\n            {\n                Console.Write(text);\n            }\n\n            Console.ForegroundColor = ConsoleColor.Green;\n            prompt = Console.ReadLine();\n            Console.ForegroundColor = ConsoleColor.White;\n        }\n    }\n}\n
    "},{"location":"Examples/GetEmbeddings/","title":"Get embeddings","text":"
    using LLama.Common;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\npublic class GetEmbeddings\n{\n    public static void Run()\n    {\n        Console.Write(\"Please input your model path: \");\n        string modelPath = Console.ReadLine();\n        var embedder = new LLamaEmbedder(new ModelParams(modelPath));\n\n        while (true)\n        {\n            Console.Write(\"Please input your text: \");\n            Console.ForegroundColor = ConsoleColor.Green;\n            var text = Console.ReadLine();\n            Console.ForegroundColor = ConsoleColor.White;\n\n            Console.WriteLine(string.Join(\", \", embedder.GetEmbeddings(text)));\n            Console.WriteLine();\n        }\n    }\n}\n
    "},{"location":"Examples/InstructModeExecute/","title":"Use instruct executor","text":"
    using LLama.Common;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\npublic class InstructModeExecute\n{\n    public static void Run()\n    {\n        Console.Write(\"Please input your model path: \");\n        string modelPath = Console.ReadLine();\n        var prompt = File.ReadAllText(\"Assets/dan.txt\").Trim();\n\n        InstructExecutor ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 1024)));\n\n        Console.ForegroundColor = ConsoleColor.Yellow;\n        Console.WriteLine(\"The executor has been enabled. In this example, the LLM will follow your instructions. For example, you can input \\\"Write a story about a fox who want to \" +\n            \"make friend with human, no less than 200 words.\\\"\");\n        Console.ForegroundColor = ConsoleColor.White;\n\n        var inferenceParams = new InferenceParams() { Temperature = 0.8f, MaxTokens = 300 };\n\n        while (true)\n        {\n            foreach (var text in ex.Infer(prompt, inferenceParams))\n            {\n                Console.Write(text);\n            }\n            Console.ForegroundColor = ConsoleColor.Green;\n            prompt = Console.ReadLine();\n            Console.ForegroundColor = ConsoleColor.White;\n        }\n    }\n}\n
    "},{"location":"Examples/InteractiveModeExecute/","title":"Use interactive executor","text":"
    using LLama.Common;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\npublic class InteractiveModeExecute\n{\n    public async static Task Run()\n    {\n        Console.Write(\"Please input your model path: \");\n        string modelPath = Console.ReadLine();\n        var prompt = File.ReadAllText(\"Assets/chat-with-bob.txt\").Trim();\n\n        InteractiveExecutor ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 256)));\n\n        Console.ForegroundColor = ConsoleColor.Yellow;\n        Console.WriteLine(\"The executor has been enabled. In this example, the prompt is printed, the maximum tokens is set to 64 and the context size is 256. (an example for small scale usage)\");\n        Console.ForegroundColor = ConsoleColor.White;\n\n        Console.Write(prompt);\n\n        var inferenceParams = new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { \"User:\" }, MaxTokens = 64 };\n\n        while (true)\n        {\n            await foreach (var text in ex.InferAsync(prompt, inferenceParams))\n            {\n                Console.Write(text);\n            }\n            Console.ForegroundColor = ConsoleColor.Green;\n            prompt = Console.ReadLine();\n            Console.ForegroundColor = ConsoleColor.White;\n        }\n    }\n}\n
    "},{"location":"Examples/LoadAndSaveSession/","title":"Load and save chat session","text":"
    using LLama.Common;\nusing LLama.OldVersion;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\npublic class SaveAndLoadSession\n{\n    public static void Run()\n    {\n        Console.Write(\"Please input your model path: \");\n        string modelPath = Console.ReadLine();\n        var prompt = File.ReadAllText(\"Assets/chat-with-bob.txt\").Trim();\n        InteractiveExecutor ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 1024, seed: 1337, gpuLayerCount: 5)));\n        ChatSession session = new ChatSession(ex); // The only change is to remove the transform for the output text stream.\n\n        Console.ForegroundColor = ConsoleColor.Yellow;\n        Console.WriteLine(\"The chat session has started. In this example, the prompt is printed for better visual result. Input \\\"save\\\" to save and reload the session.\");\n        Console.ForegroundColor = ConsoleColor.White;\n\n        // show the prompt\n        Console.Write(prompt);\n        while (true)\n        {\n            foreach (var text in session.Chat(prompt, new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { \"User:\" } }))\n            {\n                Console.Write(text);\n            }\n\n            Console.ForegroundColor = ConsoleColor.Green;\n            prompt = Console.ReadLine();\n            Console.ForegroundColor = ConsoleColor.White;\n            if (prompt == \"save\")\n            {\n                Console.Write(\"Preparing to save the state, please input the path you want to save it: \");\n                Console.ForegroundColor = ConsoleColor.Green;\n                var statePath = Console.ReadLine();\n                session.SaveSession(statePath);\n                Console.ForegroundColor = ConsoleColor.White;\n                Console.ForegroundColor = ConsoleColor.Yellow;\n                Console.WriteLine(\"Saved session!\");\n                Console.ForegroundColor = ConsoleColor.White;\n\n                ex.Model.Dispose();\n                ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 1024, seed: 1337, gpuLayerCount: 5)));\n                session = new ChatSession(ex).WithOutputTransform(new LLamaTransforms.KeywordTextOutputStreamTransform(new string[] { \"User:\", \"Bob:\" }, redundancyLength: 8));\n                session.LoadSession(statePath);\n\n                Console.ForegroundColor = ConsoleColor.Yellow;\n                Console.WriteLine(\"Loaded session!\");\n                Console.ForegroundColor = ConsoleColor.White;\n\n                Console.Write(\"Now you can continue your session: \");\n                Console.ForegroundColor = ConsoleColor.Green;\n                prompt = Console.ReadLine();\n                Console.ForegroundColor = ConsoleColor.White;\n            }\n        }\n    }\n}\n
    "},{"location":"Examples/LoadAndSaveState/","title":"Load and save model/executor state","text":"
    using LLama.Common;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\npublic class LoadAndSaveState\n{\n    public static void Run()\n    {\n        Console.Write(\"Please input your model path: \");\n        string modelPath = Console.ReadLine();\n        var prompt = File.ReadAllText(\"Assets/chat-with-bob.txt\").Trim();\n\n        InteractiveExecutor ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 256)));\n\n        Console.ForegroundColor = ConsoleColor.Yellow;\n        Console.WriteLine(\"The executor has been enabled. In this example, the prompt is printed, the maximum tokens is set to 64 and the context size is 256. (an example for small scale usage)\");\n        Console.ForegroundColor = ConsoleColor.White;\n\n        Console.Write(prompt);\n\n        var inferenceParams = new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { \"User:\" } };\n\n        while (true)\n        {\n            foreach (var text in ex.Infer(prompt, inferenceParams))\n            {\n                Console.Write(text);\n            }\n\n            prompt = Console.ReadLine();\n            if (prompt == \"save\")\n            {\n                Console.Write(\"Your path to save model state: \");\n                string modelStatePath = Console.ReadLine();\n                ex.Model.SaveState(modelStatePath);\n\n                Console.Write(\"Your path to save executor state: \");\n                string executorStatePath = Console.ReadLine();\n                ex.SaveState(executorStatePath);\n\n                Console.ForegroundColor = ConsoleColor.Yellow;\n                Console.WriteLine(\"All states saved!\");\n                Console.ForegroundColor = ConsoleColor.White;\n\n                var model = ex.Model;\n                model.LoadState(modelStatePath);\n                ex = new InteractiveExecutor(model);\n                ex.LoadState(executorStatePath);\n                Console.ForegroundColor = ConsoleColor.Yellow;\n                Console.WriteLine(\"Loaded state!\");\n                Console.ForegroundColor = ConsoleColor.White;\n\n                Console.Write(\"Now you can continue your session: \");\n                Console.ForegroundColor = ConsoleColor.Green;\n                prompt = Console.ReadLine();\n                Console.ForegroundColor = ConsoleColor.White;\n            }\n        }\n    }\n}\n
    "},{"location":"Examples/QuantizeModel/","title":"Quantize model","text":"
    using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\n\npublic class QuantizeModel\n{\n    public static void Run()\n    {\n        Console.Write(\"Please input your original model path: \");\n        var inputPath = Console.ReadLine();\n        Console.Write(\"Please input your output model path: \");\n        var outputPath = Console.ReadLine();\n        Console.Write(\"Please input the quantize type (one of q4_0, q4_1, q5_0, q5_1, q8_0): \");\n        var quantizeType = Console.ReadLine();\n        if (LLamaQuantizer.Quantize(inputPath, outputPath, quantizeType))\n        {\n            Console.WriteLine(\"Quantization succeed!\");\n        }\n        else\n        {\n            Console.WriteLine(\"Quantization failed!\");\n        }\n    }\n}\n
    "},{"location":"Examples/StatelessModeExecute/","title":"Use stateless executor","text":"
    using LLama.Common;\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\npublic class StatelessModeExecute\n{\n    public static void Run()\n    {\n        Console.Write(\"Please input your model path: \");\n        string modelPath = Console.ReadLine();\n\n        StatelessExecutor ex = new(new LLamaModel(new ModelParams(modelPath, contextSize: 256)));\n\n        Console.ForegroundColor = ConsoleColor.Yellow;\n        Console.WriteLine(\"The executor has been enabled. In this example, the inference is an one-time job. That says, the previous input and response has \" +\n            \"no impact on the current response. Now you can ask it questions. Note that in this example, no prompt was set for LLM and the maximum response tokens is 50. \" +\n            \"It may not perform well because of lack of prompt. This is also an example that could indicate the improtance of prompt in LLM. To improve it, you can add \" +\n            \"a prompt for it yourself!\");\n        Console.ForegroundColor = ConsoleColor.White;\n\n        var inferenceParams = new InferenceParams() { Temperature = 0.6f, AntiPrompts = new List<string> { \"Question:\", \"#\", \"Question: \", \".\\n\" }, MaxTokens = 50 };\n\n        while (true)\n        {\n            Console.Write(\"\\nQuestion: \");\n            Console.ForegroundColor = ConsoleColor.Green;\n            string prompt = Console.ReadLine();\n            Console.ForegroundColor = ConsoleColor.White; \n            Console.Write(\"Answer: \");\n            prompt = $\"Question: {prompt.Trim()} Answer: \";\n            foreach (var text in ex.Infer(prompt, inferenceParams))\n            {\n                Console.Write(text);\n            }\n        }\n    }\n}\n
    "},{"location":"HighLevelApps/bot-sharp/","title":"The Usage of BotSharp Integration","text":"

    The document is under work, please have a wait. Thank you for your support! :)

    "},{"location":"HighLevelApps/semantic-kernel/","title":"The Usage of semantic-kernel Integration","text":"

    Please see this doc

    "},{"location":"LLamaExecutors/differences/","title":"Differences of Executors","text":""},{"location":"LLamaExecutors/differences/#differences-between-the-executors","title":"Differences between the executors","text":"

    There're currently three kinds of executors provided, which are InteractiveExecutor, InstructExecutor and StatelessExecutor.

    In a word, InteractiveExecutor is suitable for getting answer of your questions from LLM continuously. InstructExecutor let LLM execute your instructions, such as \"continue writing\". StatelessExecutor is best for one-time job because the previous inference has no impact on the current inference.

    "},{"location":"LLamaExecutors/differences/#interactive-mode-instruct-mode","title":"Interactive mode & Instruct mode","text":"

    Both of them are taking \"completing the prompt\" as the goal to generate the response. For example, if you input Long long ago, there was a fox who wanted to make friend with humen. One day, then the LLM will continue to write the story.

    Under interactive mode, you serve a role of user and the LLM serves the role of assistant. Then it will help you with your question or request.

    Under instruct mode, you give LLM some instructions and it follows.

    Though the behaviors of them sounds similar, it could introduce many differences depending on your prompt. For example, \"chat-with-bob\" has good performance under interactive mode and alpaca does well with instruct mode.

    // chat-with-bob\n\nTranscript of a dialog, where the User interacts with an Assistant named Bob. Bob is helpful, kind, honest, good at writing, and never fails to answer the User's requests immediately and with precision.\n\nUser: Hello, Bob.\nBob: Hello. How may I help you today?\nUser: Please tell me the largest city in Europe.\nBob: Sure. The largest city in Europe is Moscow, the capital of Russia.\nUser:\n
    // alpaca\n\nBelow is an instruction that describes a task. Write a response that appropriately completes the request.\n

    Therefore, please modify the prompt correspondingly when switching from one mode to the other.

    "},{"location":"LLamaExecutors/differences/#stateful-mode-and-stateless-mode","title":"Stateful mode and Stateless mode.","text":"

    Despite the differences between interactive mode and instruct mode, both of them are stateful mode. That is, your previous question/instruction will impact on the current response from LLM. On the contrary, the stateless executor does not have such a \"memory\". No matter how many times you talk to it, it will only concentrate on what you say in this time.

    Since the stateless executor has no memory of conversations before, you need to input your question with the whole prompt into it to get the better answer.

    For example, if you feed Q: Who is Trump? A: to the stateless executor, it may give the following answer with the antiprompt Q:.

    Donald J. Trump, born June 14, 1946, is an American businessman, television personality, politician and the 45th President of the United States (2017-2021). # Anexo:Torneo de Hamburgo 2022 (individual masculino)\n\n## Presentaci\u00f3n previa\n\n* Defensor del t\u00edtulo:  Daniil Medv\u00e9dev\n

    It seems that things went well at first. However, after answering the question itself, LLM began to talk about some other things until the answer reached the token count limit. The reason of this strange behavior is the anti-prompt cannot be match. With the input, LLM cannot decide whether to append a string \"A: \" at the end of the response.

    As an improvement, let's take the following text as the input:

    Q: What is the capital of the USA? A: Washingtong. Q: What is the sum of 1 and 2? A: 3. Q: Who is Trump? A: \n

    Then, I got the following answer with the anti-prompt Q:.

    45th president of the United States.\n

    At this time, by repeating the same mode of Q: xxx? A: xxx., LLM outputs the anti-prompt we want to help to decide where to stop the generation.

    "},{"location":"LLamaExecutors/parameters/","title":"Inference Parameters","text":"

    Different from LLamaModel, when using an executor, InferenceParams is passed to the Infer method instead of constructor. This is because executors only define the ways to run the model, therefore in each run, you can change the settings for this time inference.

    "},{"location":"LLamaExecutors/parameters/#inferenceparams","title":"InferenceParams","text":"

    Namespace: LLama.Common

    public class InferenceParams\n

    Inheritance Object \u2192 InferenceParams

    "},{"location":"LLamaExecutors/parameters/#properties","title":"Properties","text":""},{"location":"LLamaExecutors/parameters/#tokenskeep","title":"TokensKeep","text":"

    number of tokens to keep from initial prompt

    public int TokensKeep { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"LLamaExecutors/parameters/#maxtokens","title":"MaxTokens","text":"

    how many new tokens to predict (n_predict), set to -1 to infinitely generate response until it complete.

    public int MaxTokens { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_1","title":"Property Value","text":"

    Int32

    "},{"location":"LLamaExecutors/parameters/#logitbias","title":"LogitBias","text":"

    logit bias for specific tokens

    public Dictionary<int, float> LogitBias { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_2","title":"Property Value","text":"

    Dictionary<Int32, Single>

    "},{"location":"LLamaExecutors/parameters/#antiprompts","title":"AntiPrompts","text":"

    Sequences where the model will stop generating further tokens.

    public IEnumerable<string> AntiPrompts { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_3","title":"Property Value","text":"

    IEnumerable<String>

    "},{"location":"LLamaExecutors/parameters/#pathsession","title":"PathSession","text":"

    path to file for saving/loading model eval state

    public string PathSession { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_4","title":"Property Value","text":"

    String

    "},{"location":"LLamaExecutors/parameters/#inputsuffix","title":"InputSuffix","text":"

    string to suffix user inputs with

    public string InputSuffix { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_5","title":"Property Value","text":"

    String

    "},{"location":"LLamaExecutors/parameters/#inputprefix","title":"InputPrefix","text":"

    string to prefix user inputs with

    public string InputPrefix { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_6","title":"Property Value","text":"

    String

    "},{"location":"LLamaExecutors/parameters/#topk","title":"TopK","text":"

    0 or lower to use vocab size

    public int TopK { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_7","title":"Property Value","text":"

    Int32

    "},{"location":"LLamaExecutors/parameters/#topp","title":"TopP","text":"

    1.0 = disabled

    public float TopP { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_8","title":"Property Value","text":"

    Single

    "},{"location":"LLamaExecutors/parameters/#tfsz","title":"TfsZ","text":"

    1.0 = disabled

    public float TfsZ { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_9","title":"Property Value","text":"

    Single

    "},{"location":"LLamaExecutors/parameters/#typicalp","title":"TypicalP","text":"

    1.0 = disabled

    public float TypicalP { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_10","title":"Property Value","text":"

    Single

    "},{"location":"LLamaExecutors/parameters/#temperature","title":"Temperature","text":"

    1.0 = disabled

    public float Temperature { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_11","title":"Property Value","text":"

    Single

    "},{"location":"LLamaExecutors/parameters/#repeatpenalty","title":"RepeatPenalty","text":"

    1.0 = disabled

    public float RepeatPenalty { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_12","title":"Property Value","text":"

    Single

    "},{"location":"LLamaExecutors/parameters/#repeatlasttokenscount","title":"RepeatLastTokensCount","text":"

    last n tokens to penalize (0 = disable penalty, -1 = context size) (repeat_last_n)

    public int RepeatLastTokensCount { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_13","title":"Property Value","text":"

    Int32

    "},{"location":"LLamaExecutors/parameters/#frequencypenalty","title":"FrequencyPenalty","text":"

    frequency penalty coefficient 0.0 = disabled

    public float FrequencyPenalty { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_14","title":"Property Value","text":"

    Single

    "},{"location":"LLamaExecutors/parameters/#presencepenalty","title":"PresencePenalty","text":"

    presence penalty coefficient 0.0 = disabled

    public float PresencePenalty { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_15","title":"Property Value","text":"

    Single

    "},{"location":"LLamaExecutors/parameters/#mirostat","title":"Mirostat","text":"

    Mirostat uses tokens instead of words. algorithm described in the paper https://arxiv.org/abs/2007.14966. 0 = disabled, 1 = mirostat, 2 = mirostat 2.0

    public MiroStateType Mirostat { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_16","title":"Property Value","text":"

    MiroStateType

    "},{"location":"LLamaExecutors/parameters/#mirostattau","title":"MirostatTau","text":"

    target entropy

    public float MirostatTau { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_17","title":"Property Value","text":"

    Single

    "},{"location":"LLamaExecutors/parameters/#mirostateta","title":"MirostatEta","text":"

    learning rate

    public float MirostatEta { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_18","title":"Property Value","text":"

    Single

    "},{"location":"LLamaExecutors/parameters/#penalizenl","title":"PenalizeNL","text":"

    consider newlines as a repeatable token (penalize_nl)

    public bool PenalizeNL { get; set; }\n
    "},{"location":"LLamaExecutors/parameters/#property-value_19","title":"Property Value","text":"

    Boolean

    "},{"location":"LLamaExecutors/save-load-state/","title":"Save/Load State of Executor","text":"

    Similar to LLamaModel, an executor also has its state, which can be saved and loaded. Note that in most of cases, the state of executor and the state of the model should be loaded and saved at the same time.

    To decouple the model and executor, we provide APIs to save/load state for model and executor respectively. However, during the inference, the processed information will leave footprint in LLamaModel's native context. Therefore, if you just load a state from another executor but keep the model unmodified, some strange things may happen. So will loading model state only.

    Is there a condition that requires to load one of them only? The answer is YES. For example, after resetting the model state, if you don't want the inference starting from the new position, leaving the executor unmodified is okay. But, anyway, this flexible usage may cause some unexpected behaviors, therefore please ensure you know what you're doing before using it in this way.

    In the future version, we'll open the access for some variables inside the executor to support more flexible usages.

    The APIs to load/save state of the executors is similar to that of LLamaModel. However, note that StatelessExecutor doesn't have such APIs because it's stateless itself. Besides, the output of GetStateData is an object of type ExecutorBaseState.

    LLamaModel model = new LLamaModel(new ModelParams(\"<modelPath>\"));\nInteractiveExecutor executor = new InteractiveExecutor(model);\n// do some things...\nexecutor.SaveState(\"executor.st\");\nvar stateData = model.GetStateData();\n\nInteractiveExecutor executor2 = new InteractiveExecutor(model);\nexecutor2.LoadState(stateData);\n// do some things...\n\nInteractiveExecutor executor3 = new InteractiveExecutor(model);\nexecutor3.LoadState(\"executor.st\");\n// do some things...\n
    "},{"location":"LLamaExecutors/text-to-text-apis/","title":"Text-to-Text APIs of the executors","text":"

    All the executors implements the interface ILLamaExecutor, which provides two APIs to execute text-to-text tasks.

    public interface ILLamaExecutor\n{\n    public LLamaModel Model { get; }\n\n    IEnumerable<string> Infer(string text, InferenceParams? inferenceParams = null, CancellationToken token = default);\n\n    IAsyncEnumerable<string> InferAsync(string text, InferenceParams? inferenceParams = null, CancellationToken token = default);\n}\n

    Just pass the text to the executor with the inference parameters. For the inference parameters, please refer to executor inference parameters doc.

    The output of both two APIs are yield enumerable. Therefore, when receiving the output, you can directly use foreach to take actions on each word you get by order, instead of waiting for the whole process completed.

    "},{"location":"LLamaModel/embeddings/","title":"Get Embeddings","text":"

    Getting the embeddings of a text in LLM is sometimes useful, for example, to train other MLP models.

    To get the embeddings, please initialize a LLamaEmbedder and then call GetEmbeddings.

    var embedder = new LLamaEmbedder(new ModelParams(\"<modelPath>\"));\nstring text = \"hello, LLM.\";\nfloat[] embeddings = embedder.GetEmbeddings(text);\n

    The output is a float array. Note that the length of the array is related with the model you load. If you just want to get a smaller size embedding, please consider changing a model.

    "},{"location":"LLamaModel/parameters/","title":"LLamaModel Parameters","text":"

    When initializing a LLamaModel object, there're three parameters, ModelParams Params, string encoding = \"UTF-8\", ILLamaLogger? logger = null.

    The usage of logger will be further introduced in logger doc. The encoding is the encoding you want to use when dealing with text via this model.

    The most important of all, is the ModelParams, which is defined as below. We'll explain the parameters step by step in this document.

    public class ModelParams\n{\n    public int ContextSize { get; set; } = 512;\n    public int GpuLayerCount { get; set; } = 20;\n    public int Seed { get; set; } = 1686349486;\n    public bool UseFp16Memory { get; set; } = true;\n    public bool UseMemorymap { get; set; } = true;\n    public bool UseMemoryLock { get; set; } = false;\n    public bool Perplexity { get; set; } = false;\n    public string ModelPath { get; set; }\n    public string LoraAdapter { get; set; } = string.Empty;\n    public string LoraBase { get; set; } = string.Empty;\n    public int Threads { get; set; } = Math.Max(Environment.ProcessorCount / 2, 1);\n    public int BatchSize { get; set; } = 512;\n    public bool ConvertEosToNewLine { get; set; } = false;\n}\n
    "},{"location":"LLamaModel/parameters/#modelparams","title":"ModelParams","text":"

    Namespace: LLama.Common

    public class ModelParams\n

    Inheritance Object \u2192 ModelParams

    "},{"location":"LLamaModel/parameters/#properties","title":"Properties","text":""},{"location":"LLamaModel/parameters/#contextsize","title":"ContextSize","text":"

    Model context size (n_ctx)

    public int ContextSize { get; set; }\n
    "},{"location":"LLamaModel/parameters/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"LLamaModel/parameters/#gpulayercount","title":"GpuLayerCount","text":"

    Number of layers to run in VRAM / GPU memory (n_gpu_layers)

    public int GpuLayerCount { get; set; }\n
    "},{"location":"LLamaModel/parameters/#property-value_1","title":"Property Value","text":"

    Int32

    "},{"location":"LLamaModel/parameters/#seed","title":"Seed","text":"

    Seed for the random number generator (seed)

    public int Seed { get; set; }\n
    "},{"location":"LLamaModel/parameters/#property-value_2","title":"Property Value","text":"

    Int32

    "},{"location":"LLamaModel/parameters/#usefp16memory","title":"UseFp16Memory","text":"

    Use f16 instead of f32 for memory kv (memory_f16)

    public bool UseFp16Memory { get; set; }\n
    "},{"location":"LLamaModel/parameters/#property-value_3","title":"Property Value","text":"

    Boolean

    "},{"location":"LLamaModel/parameters/#usememorymap","title":"UseMemorymap","text":"

    Use mmap for faster loads (use_mmap)

    public bool UseMemorymap { get; set; }\n
    "},{"location":"LLamaModel/parameters/#property-value_4","title":"Property Value","text":"

    Boolean

    "},{"location":"LLamaModel/parameters/#usememorylock","title":"UseMemoryLock","text":"

    Use mlock to keep model in memory (use_mlock)

    public bool UseMemoryLock { get; set; }\n
    "},{"location":"LLamaModel/parameters/#property-value_5","title":"Property Value","text":"

    Boolean

    "},{"location":"LLamaModel/parameters/#perplexity","title":"Perplexity","text":"

    Compute perplexity over the prompt (perplexity)

    public bool Perplexity { get; set; }\n
    "},{"location":"LLamaModel/parameters/#property-value_6","title":"Property Value","text":"

    Boolean

    "},{"location":"LLamaModel/parameters/#modelpath","title":"ModelPath","text":"

    Model path (model)

    public string ModelPath { get; set; }\n
    "},{"location":"LLamaModel/parameters/#property-value_7","title":"Property Value","text":"

    String

    "},{"location":"LLamaModel/parameters/#loraadapter","title":"LoraAdapter","text":"

    lora adapter path (lora_adapter)

    public string LoraAdapter { get; set; }\n
    "},{"location":"LLamaModel/parameters/#property-value_8","title":"Property Value","text":"

    String

    "},{"location":"LLamaModel/parameters/#lorabase","title":"LoraBase","text":"

    base model path for the lora adapter (lora_base)

    public string LoraBase { get; set; }\n
    "},{"location":"LLamaModel/parameters/#property-value_9","title":"Property Value","text":"

    String

    "},{"location":"LLamaModel/parameters/#threads","title":"Threads","text":"

    Number of threads (-1 = autodetect) (n_threads)

    public int Threads { get; set; }\n
    "},{"location":"LLamaModel/parameters/#property-value_10","title":"Property Value","text":"

    Int32

    "},{"location":"LLamaModel/parameters/#batchsize","title":"BatchSize","text":"

    batch size for prompt processing (must be >=32 to use BLAS) (n_batch)

    public int BatchSize { get; set; }\n
    "},{"location":"LLamaModel/parameters/#property-value_11","title":"Property Value","text":"

    Int32

    "},{"location":"LLamaModel/parameters/#converteostonewline","title":"ConvertEosToNewLine","text":"

    Whether to convert eos to newline during the inference.

    public bool ConvertEosToNewLine { get; set; }\n
    "},{"location":"LLamaModel/parameters/#property-value_12","title":"Property Value","text":"

    Boolean

    "},{"location":"LLamaModel/parameters/#embeddingmode","title":"EmbeddingMode","text":"

    Whether to use embedding mode. (embedding) Note that if this is set to true, The LLamaModel won't produce text response anymore.

    public bool EmbeddingMode { get; set; }\n
    "},{"location":"LLamaModel/parameters/#property-value_13","title":"Property Value","text":"

    Boolean

    "},{"location":"LLamaModel/quantization/","title":"Quantization","text":"

    Quantization is significant to accelerate the model inference. Since there's little accuracy (performance) reduction when quantizing the model, get it easy to quantize it!

    To quantize the model, please call Quantize from LLamaQuantizer, which is a static method.

    string srcPath = \"<model.bin>\";\nstring dstPath = \"<model_q4_0.bin>\";\nLLamaQuantizer.Quantize(srcPath, dstPath, \"q4_0\");\n// The following overload is also okay.\n// LLamaQuantizer.Quantize(srcPath, dstPath, LLamaFtype.LLAMA_FTYPE_MOSTLY_Q4_0);\n

    After calling it, a quantized model file will be saved.

    There're currently 5 types of quantization supported:

    • q4_0
    • q4_1
    • q5_0
    • q5_1
    • q8_0
    "},{"location":"LLamaModel/save-load-state/","title":"Save/Load State","text":"

    There're two ways to load state: loading from path and loading from bite array. Therefore, correspondingly, state data can be extracted as byte array or saved to a file.

    LLamaModel model = new LLamaModel(new ModelParams(\"<modelPath>\"));\n// do some things...\nmodel.SaveState(\"model.st\");\nvar stateData = model.GetStateData();\nmodel.Dispose();\n\nLLamaModel model2 = new LLamaModel(new ModelParams(\"<modelPath>\"));\nmodel2.LoadState(stateData);\n// do some things...\n\nLLamaModel model3 = new LLamaModel(new ModelParams(\"<modelPath>\"));\nmodel3.LoadState(\"model.st\");\n// do some things...\n
    "},{"location":"LLamaModel/tokenization/","title":"Tokenization/Detokenization","text":"

    A pair of APIs to make conversion between text and tokens.

    "},{"location":"LLamaModel/tokenization/#tokenization","title":"Tokenization","text":"

    The basic usage is to call Tokenize after initializing the model.

    LLamaModel model = new LLamaModel(new ModelParams(\"<modelPath>\"));\nstring text = \"hello\";\nint[] tokens = model.Tokenize(text).ToArray();\n

    Depending on different model (or vocab), the output will be various.

    "},{"location":"LLamaModel/tokenization/#detokenization","title":"Detokenization","text":"

    Similar to tokenization, just pass an IEnumerable<int> to Detokenize method.

    LLamaModel model = new LLamaModel(new ModelParams(\"<modelPath>\"));\nint[] tokens = new int[] {125, 2568, 13245};\nstring text = model.Detokenize(tokens);\n
    "},{"location":"More/log/","title":"The Logger in LLamaSharp","text":"

    LLamaSharp supports customized logger because it could be used in many kinds of applications, like Winform/WPF, WebAPI and Blazor, so that the preference of logger varies.

    "},{"location":"More/log/#define-customized-logger","title":"Define customized logger","text":"

    What you need to do is to implement the ILogger interface.

    public interface ILLamaLogger\n{\n    public enum LogLevel\n    {\n        Info,\n        Debug,\n        Warning,\n        Error\n    }\n    void Log(string source, string message, LogLevel level);\n}\n

    The source specifies where the log message is from, which could be a function, a class, etc..

    The message is the log message itself.

    The level is the level of the information in the log. As shown above, there're four levels, which are info, debug, warning and error respectively.

    The following is a simple example of the logger implementation:

    public sealed class LLamaDefaultLogger : ILLamaLogger\n{\n    private static readonly Lazy<LLamaDefaultLogger> _instance = new Lazy<LLamaDefaultLogger>(() => new LLamaDefaultLogger());\n\n    private bool _toConsole = true;\n    private bool _toFile = false;\n\n    private FileStream? _fileStream = null;\n    private StreamWriter _fileWriter = null;\n\n    public static LLamaDefaultLogger Default => _instance.Value;\n\n    private LLamaDefaultLogger()\n    {\n\n    }\n\n    public LLamaDefaultLogger EnableConsole()\n    {\n        _toConsole = true;\n        return this;\n    }\n\n    public LLamaDefaultLogger DisableConsole()\n    {\n        _toConsole = false;\n        return this;\n    }\n\n    public LLamaDefaultLogger EnableFile(string filename, FileMode mode = FileMode.Append)\n    {\n        _fileStream = new FileStream(filename, mode, FileAccess.Write);\n        _fileWriter = new StreamWriter(_fileStream);\n        _toFile = true;\n        return this;\n    }\n\n    public LLamaDefaultLogger DisableFile(string filename)\n    {\n        if (_fileWriter is not null)\n        {\n            _fileWriter.Close();\n            _fileWriter = null;\n        }\n        if (_fileStream is not null)\n        {\n            _fileStream.Close();\n            _fileStream = null;\n        }\n        _toFile = false;\n        return this;\n    }\n\n    public void Log(string source, string message, LogLevel level)\n    {\n        if (level == LogLevel.Info)\n        {\n            Info(message);\n        }\n        else if (level == LogLevel.Debug)\n        {\n\n        }\n        else if (level == LogLevel.Warning)\n        {\n            Warn(message);\n        }\n        else if (level == LogLevel.Error)\n        {\n            Error(message);\n        }\n    }\n\n    public void Info(string message)\n    {\n        message = MessageFormat(\"info\", message);\n        if (_toConsole)\n        {\n            Console.ForegroundColor = ConsoleColor.White;\n            Console.WriteLine(message);\n            Console.ResetColor();\n        }\n        if (_toFile)\n        {\n            Debug.Assert(_fileStream is not null);\n            Debug.Assert(_fileWriter is not null);\n            _fileWriter.WriteLine(message);\n        }\n    }\n\n    public void Warn(string message)\n    {\n        message = MessageFormat(\"warn\", message);\n        if (_toConsole)\n        {\n            Console.ForegroundColor = ConsoleColor.Yellow;\n            Console.WriteLine(message);\n            Console.ResetColor();\n        }\n        if (_toFile)\n        {\n            Debug.Assert(_fileStream is not null);\n            Debug.Assert(_fileWriter is not null);\n            _fileWriter.WriteLine(message);\n        }\n    }\n\n    public void Error(string message)\n    {\n        message = MessageFormat(\"error\", message);\n        if (_toConsole)\n        {\n            Console.ForegroundColor = ConsoleColor.Red;\n            Console.WriteLine(message);\n            Console.ResetColor();\n        }\n        if (_toFile)\n        {\n            Debug.Assert(_fileStream is not null);\n            Debug.Assert(_fileWriter is not null);\n            _fileWriter.WriteLine(message);\n        }\n    }\n\n    private string MessageFormat(string level, string message)\n    {\n        DateTime now = DateTime.Now;\n        string formattedDate = now.ToString(\"yyyy.MM.dd HH:mm:ss\");\n        return $\"[{formattedDate}][{level}]: {message}\";\n    }\n}\n
    "},{"location":"NonEnglishUsage/Chinese/","title":"Use LLamaSharp with Chinese","text":"

    It's supported now but the document is under work. Please wait for some time. Thank you for your support! :)

    "},{"location":"xmldocs/","title":"LLamaSharp","text":""},{"location":"xmldocs/#llama","title":"LLama","text":"

    ChatSession

    InstructExecutor

    InteractiveExecutor

    LLamaContext

    LLamaEmbedder

    LLamaQuantizer

    LLamaTransforms

    LLamaWeights

    StatefulExecutorBase

    StatelessExecutor

    Utils

    "},{"location":"xmldocs/#llamaabstractions","title":"LLama.Abstractions","text":"

    IHistoryTransform

    IInferenceParams

    ILLamaExecutor

    IModelParams

    ITextStreamTransform

    ITextTransform

    "},{"location":"xmldocs/#llamacommon","title":"LLama.Common","text":"

    AuthorRole

    ChatHistory

    FixedSizeQueue<T>

    ILLamaLogger

    InferenceParams

    LLamaDefaultLogger

    MirostatType

    ModelParams

    "},{"location":"xmldocs/#llamaexceptions","title":"LLama.Exceptions","text":"

    GrammarExpectedName

    GrammarExpectedNext

    GrammarExpectedPrevious

    GrammarFormatException

    GrammarUnexpectedCharAltElement

    GrammarUnexpectedCharRngElement

    GrammarUnexpectedEndElement

    GrammarUnexpectedEndOfInput

    GrammarUnexpectedHexCharsCount

    GrammarUnknownEscapeCharacter

    RuntimeError

    "},{"location":"xmldocs/#llamaextensions","title":"LLama.Extensions","text":"

    IModelParamsExtensions

    KeyValuePairExtensions

    "},{"location":"xmldocs/#llamagrammars","title":"LLama.Grammars","text":"

    Grammar

    GrammarRule

    "},{"location":"xmldocs/#llamanative","title":"LLama.Native","text":"

    LLamaContextParams

    LLamaFtype

    LLamaGrammarElement

    LLamaGrammarElementType

    LLamaModelQuantizeParams

    LLamaTokenData

    LLamaTokenDataArray

    LLamaTokenDataArrayNative

    NativeApi

    SafeLLamaContextHandle

    SafeLLamaGrammarHandle

    SafeLLamaHandleBase

    SafeLlamaModelHandle

    SamplingApi

    "},{"location":"xmldocs/#llamaoldversion","title":"LLama.OldVersion","text":"

    ChatCompletion

    ChatCompletionChoice

    ChatCompletionChunk

    ChatCompletionChunkChoice

    ChatCompletionChunkDelta

    ChatCompletionMessage

    ChatMessageRecord

    ChatRole

    ChatSession<T>

    Completion

    CompletionChoice

    CompletionChunk

    CompletionLogprobs

    CompletionUsage

    Embedding

    EmbeddingData

    EmbeddingUsage

    IChatModel

    LLamaEmbedder

    LLamaModel

    LLamaParams

    "},{"location":"xmldocs/llama.abstractions.ihistorytransform/","title":"IHistoryTransform","text":"

    Namespace: LLama.Abstractions

    Transform history to plain text and vice versa.

    public interface IHistoryTransform\n
    "},{"location":"xmldocs/llama.abstractions.ihistorytransform/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.abstractions.ihistorytransform/#historytotextchathistory","title":"HistoryToText(ChatHistory)","text":"

    Convert a ChatHistory instance to plain text.

    string HistoryToText(ChatHistory history)\n
    "},{"location":"xmldocs/llama.abstractions.ihistorytransform/#parameters","title":"Parameters","text":"

    history ChatHistory The ChatHistory instance

    "},{"location":"xmldocs/llama.abstractions.ihistorytransform/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.abstractions.ihistorytransform/#texttohistoryauthorrole-string","title":"TextToHistory(AuthorRole, String)","text":"

    Converts plain text to a ChatHistory instance.

    ChatHistory TextToHistory(AuthorRole role, string text)\n
    "},{"location":"xmldocs/llama.abstractions.ihistorytransform/#parameters_1","title":"Parameters","text":"

    role AuthorRole The role for the author.

    text String The chat history as plain text.

    "},{"location":"xmldocs/llama.abstractions.ihistorytransform/#returns_1","title":"Returns","text":"

    ChatHistory The updated history.

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/","title":"IInferenceParams","text":"

    Namespace: LLama.Abstractions

    The paramters used for inference.

    public interface IInferenceParams\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.abstractions.iinferenceparams/#tokenskeep","title":"TokensKeep","text":"

    number of tokens to keep from initial prompt

    public abstract int TokensKeep { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#maxtokens","title":"MaxTokens","text":"

    how many new tokens to predict (n_predict), set to -1 to inifinitely generate response until it complete.

    public abstract int MaxTokens { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_1","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#logitbias","title":"LogitBias","text":"

    logit bias for specific tokens

    public abstract Dictionary<int, float> LogitBias { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_2","title":"Property Value","text":"

    Dictionary<Int32, Single>

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#antiprompts","title":"AntiPrompts","text":"

    Sequences where the model will stop generating further tokens.

    public abstract IEnumerable<string> AntiPrompts { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_3","title":"Property Value","text":"

    IEnumerable<String>

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#pathsession","title":"PathSession","text":"

    path to file for saving/loading model eval state

    public abstract string PathSession { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_4","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#inputsuffix","title":"InputSuffix","text":"

    string to suffix user inputs with

    public abstract string InputSuffix { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_5","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#inputprefix","title":"InputPrefix","text":"

    string to prefix user inputs with

    public abstract string InputPrefix { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_6","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#topk","title":"TopK","text":"

    0 or lower to use vocab size

    public abstract int TopK { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_7","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#topp","title":"TopP","text":"

    1.0 = disabled

    public abstract float TopP { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_8","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#tfsz","title":"TfsZ","text":"

    1.0 = disabled

    public abstract float TfsZ { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_9","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#typicalp","title":"TypicalP","text":"

    1.0 = disabled

    public abstract float TypicalP { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_10","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#temperature","title":"Temperature","text":"

    1.0 = disabled

    public abstract float Temperature { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_11","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#repeatpenalty","title":"RepeatPenalty","text":"

    1.0 = disabled

    public abstract float RepeatPenalty { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_12","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#repeatlasttokenscount","title":"RepeatLastTokensCount","text":"

    last n tokens to penalize (0 = disable penalty, -1 = context size) (repeat_last_n)

    public abstract int RepeatLastTokensCount { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_13","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#frequencypenalty","title":"FrequencyPenalty","text":"

    frequency penalty coefficient 0.0 = disabled

    public abstract float FrequencyPenalty { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_14","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#presencepenalty","title":"PresencePenalty","text":"

    presence penalty coefficient 0.0 = disabled

    public abstract float PresencePenalty { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_15","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#mirostat","title":"Mirostat","text":"

    Mirostat uses tokens instead of words. algorithm described in the paper https://arxiv.org/abs/2007.14966. 0 = disabled, 1 = mirostat, 2 = mirostat 2.0

    public abstract MirostatType Mirostat { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_16","title":"Property Value","text":"

    MirostatType

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#mirostattau","title":"MirostatTau","text":"

    target entropy

    public abstract float MirostatTau { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_17","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#mirostateta","title":"MirostatEta","text":"

    learning rate

    public abstract float MirostatEta { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_18","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#penalizenl","title":"PenalizeNL","text":"

    consider newlines as a repeatable token (penalize_nl)

    public abstract bool PenalizeNL { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_19","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#grammar","title":"Grammar","text":"

    Grammar to constrain possible tokens

    public abstract SafeLLamaGrammarHandle Grammar { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.iinferenceparams/#property-value_20","title":"Property Value","text":"

    SafeLLamaGrammarHandle

    "},{"location":"xmldocs/llama.abstractions.illamaexecutor/","title":"ILLamaExecutor","text":"

    Namespace: LLama.Abstractions

    A high level interface for LLama models.

    public interface ILLamaExecutor\n
    "},{"location":"xmldocs/llama.abstractions.illamaexecutor/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.abstractions.illamaexecutor/#context","title":"Context","text":"

    The loaded context for this executor.

    public abstract LLamaContext Context { get; }\n
    "},{"location":"xmldocs/llama.abstractions.illamaexecutor/#property-value","title":"Property Value","text":"

    LLamaContext

    "},{"location":"xmldocs/llama.abstractions.illamaexecutor/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.abstractions.illamaexecutor/#inferstring-iinferenceparams-cancellationtoken","title":"Infer(String, IInferenceParams, CancellationToken)","text":"

    Infers a response from the model.

    IEnumerable<string> Infer(string text, IInferenceParams inferenceParams, CancellationToken token)\n
    "},{"location":"xmldocs/llama.abstractions.illamaexecutor/#parameters","title":"Parameters","text":"

    text String Your prompt

    inferenceParams IInferenceParams Any additional parameters

    token CancellationToken A cancellation token.

    "},{"location":"xmldocs/llama.abstractions.illamaexecutor/#returns","title":"Returns","text":"

    IEnumerable<String>

    "},{"location":"xmldocs/llama.abstractions.illamaexecutor/#inferasyncstring-iinferenceparams-cancellationtoken","title":"InferAsync(String, IInferenceParams, CancellationToken)","text":"

    Asynchronously infers a response from the model.

    IAsyncEnumerable<string> InferAsync(string text, IInferenceParams inferenceParams, CancellationToken token)\n
    "},{"location":"xmldocs/llama.abstractions.illamaexecutor/#parameters_1","title":"Parameters","text":"

    text String Your prompt

    inferenceParams IInferenceParams Any additional parameters

    token CancellationToken A cancellation token.

    "},{"location":"xmldocs/llama.abstractions.illamaexecutor/#returns_1","title":"Returns","text":"

    IAsyncEnumerable<String>

    "},{"location":"xmldocs/llama.abstractions.imodelparams/","title":"IModelParams","text":"

    Namespace: LLama.Abstractions

    The parameters for initializing a LLama model.

    public interface IModelParams\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.abstractions.imodelparams/#contextsize","title":"ContextSize","text":"

    Model context size (n_ctx)

    public abstract int ContextSize { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#maingpu","title":"MainGpu","text":"

    the GPU that is used for scratch and small tensors

    public abstract int MainGpu { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_1","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#lowvram","title":"LowVram","text":"

    if true, reduce VRAM usage at the cost of performance

    public abstract bool LowVram { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_2","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#gpulayercount","title":"GpuLayerCount","text":"

    Number of layers to run in VRAM / GPU memory (n_gpu_layers)

    public abstract int GpuLayerCount { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_3","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#seed","title":"Seed","text":"

    Seed for the random number generator (seed)

    public abstract int Seed { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_4","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#usefp16memory","title":"UseFp16Memory","text":"

    Use f16 instead of f32 for memory kv (memory_f16)

    public abstract bool UseFp16Memory { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_5","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#usememorymap","title":"UseMemorymap","text":"

    Use mmap for faster loads (use_mmap)

    public abstract bool UseMemorymap { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_6","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#usememorylock","title":"UseMemoryLock","text":"

    Use mlock to keep model in memory (use_mlock)

    public abstract bool UseMemoryLock { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_7","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#perplexity","title":"Perplexity","text":"

    Compute perplexity over the prompt (perplexity)

    public abstract bool Perplexity { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_8","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#modelpath","title":"ModelPath","text":"

    Model path (model)

    public abstract string ModelPath { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_9","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#modelalias","title":"ModelAlias","text":"

    model alias

    public abstract string ModelAlias { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_10","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#loraadapter","title":"LoraAdapter","text":"

    lora adapter path (lora_adapter)

    public abstract string LoraAdapter { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_11","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#lorabase","title":"LoraBase","text":"

    base model path for the lora adapter (lora_base)

    public abstract string LoraBase { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_12","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#threads","title":"Threads","text":"

    Number of threads (-1 = autodetect) (n_threads)

    public abstract int Threads { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_13","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#batchsize","title":"BatchSize","text":"

    batch size for prompt processing (must be >=32 to use BLAS) (n_batch)

    public abstract int BatchSize { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_14","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#converteostonewline","title":"ConvertEosToNewLine","text":"

    Whether to convert eos to newline during the inference.

    public abstract bool ConvertEosToNewLine { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_15","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#embeddingmode","title":"EmbeddingMode","text":"

    Whether to use embedding mode. (embedding) Note that if this is set to true, The LLamaModel won't produce text response anymore.

    public abstract bool EmbeddingMode { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_16","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#tensorsplits","title":"TensorSplits","text":"

    how split tensors should be distributed across GPUs

    public abstract Single[] TensorSplits { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_17","title":"Property Value","text":"

    Single[]

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#ropefrequencybase","title":"RopeFrequencyBase","text":"

    RoPE base frequency

    public abstract float RopeFrequencyBase { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_18","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#ropefrequencyscale","title":"RopeFrequencyScale","text":"

    RoPE frequency scaling factor

    public abstract float RopeFrequencyScale { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_19","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#mulmatq","title":"MulMatQ","text":"

    Use experimental mul_mat_q kernels

    public abstract bool MulMatQ { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_20","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.abstractions.imodelparams/#encoding","title":"Encoding","text":"

    The encoding to use for models

    public abstract Encoding Encoding { get; set; }\n
    "},{"location":"xmldocs/llama.abstractions.imodelparams/#property-value_21","title":"Property Value","text":"

    Encoding

    "},{"location":"xmldocs/llama.abstractions.itextstreamtransform/","title":"ITextStreamTransform","text":"

    Namespace: LLama.Abstractions

    Takes a stream of tokens and transforms them.

    public interface ITextStreamTransform\n
    "},{"location":"xmldocs/llama.abstractions.itextstreamtransform/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.abstractions.itextstreamtransform/#transformienumerablestring","title":"Transform(IEnumerable<String>)","text":"

    Takes a stream of tokens and transforms them, returning a new stream of tokens.

    IEnumerable<string> Transform(IEnumerable<string> tokens)\n
    "},{"location":"xmldocs/llama.abstractions.itextstreamtransform/#parameters","title":"Parameters","text":"

    tokens IEnumerable<String>

    "},{"location":"xmldocs/llama.abstractions.itextstreamtransform/#returns","title":"Returns","text":"

    IEnumerable<String>

    "},{"location":"xmldocs/llama.abstractions.itextstreamtransform/#transformasynciasyncenumerablestring","title":"TransformAsync(IAsyncEnumerable<String>)","text":"

    Takes a stream of tokens and transforms them, returning a new stream of tokens asynchronously.

    IAsyncEnumerable<string> TransformAsync(IAsyncEnumerable<string> tokens)\n
    "},{"location":"xmldocs/llama.abstractions.itextstreamtransform/#parameters_1","title":"Parameters","text":"

    tokens IAsyncEnumerable<String>

    "},{"location":"xmldocs/llama.abstractions.itextstreamtransform/#returns_1","title":"Returns","text":"

    IAsyncEnumerable<String>

    "},{"location":"xmldocs/llama.abstractions.itexttransform/","title":"ITextTransform","text":"

    Namespace: LLama.Abstractions

    An interface for text transformations. These can be used to compose a pipeline of text transformations, such as: - Tokenization - Lowercasing - Punctuation removal - Trimming - etc.

    public interface ITextTransform\n
    "},{"location":"xmldocs/llama.abstractions.itexttransform/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.abstractions.itexttransform/#transformstring","title":"Transform(String)","text":"

    Takes a string and transforms it.

    string Transform(string text)\n
    "},{"location":"xmldocs/llama.abstractions.itexttransform/#parameters","title":"Parameters","text":"

    text String

    "},{"location":"xmldocs/llama.abstractions.itexttransform/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.chatsession/","title":"ChatSession","text":"

    Namespace: LLama

    The main chat session class.

    public class ChatSession\n

    Inheritance Object \u2192 ChatSession

    "},{"location":"xmldocs/llama.chatsession/#fields","title":"Fields","text":""},{"location":"xmldocs/llama.chatsession/#outputtransform","title":"OutputTransform","text":"

    The output transform used in this session.

    public ITextStreamTransform OutputTransform;\n
    "},{"location":"xmldocs/llama.chatsession/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.chatsession/#executor","title":"Executor","text":"

    The executor for this session.

    public ILLamaExecutor Executor { get; }\n
    "},{"location":"xmldocs/llama.chatsession/#property-value","title":"Property Value","text":"

    ILLamaExecutor

    "},{"location":"xmldocs/llama.chatsession/#history","title":"History","text":"

    The chat history for this session.

    public ChatHistory History { get; }\n
    "},{"location":"xmldocs/llama.chatsession/#property-value_1","title":"Property Value","text":"

    ChatHistory

    "},{"location":"xmldocs/llama.chatsession/#historytransform","title":"HistoryTransform","text":"

    The history transform used in this session.

    public IHistoryTransform HistoryTransform { get; set; }\n
    "},{"location":"xmldocs/llama.chatsession/#property-value_2","title":"Property Value","text":"

    IHistoryTransform

    "},{"location":"xmldocs/llama.chatsession/#inputtransformpipeline","title":"InputTransformPipeline","text":"

    The input transform pipeline used in this session.

    public List<ITextTransform> InputTransformPipeline { get; set; }\n
    "},{"location":"xmldocs/llama.chatsession/#property-value_3","title":"Property Value","text":"

    List<ITextTransform>

    "},{"location":"xmldocs/llama.chatsession/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.chatsession/#chatsessionillamaexecutor","title":"ChatSession(ILLamaExecutor)","text":"
    public ChatSession(ILLamaExecutor executor)\n
    "},{"location":"xmldocs/llama.chatsession/#parameters","title":"Parameters","text":"

    executor ILLamaExecutor The executor for this session

    "},{"location":"xmldocs/llama.chatsession/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.chatsession/#withhistorytransformihistorytransform","title":"WithHistoryTransform(IHistoryTransform)","text":"

    Use a custom history transform.

    public ChatSession WithHistoryTransform(IHistoryTransform transform)\n
    "},{"location":"xmldocs/llama.chatsession/#parameters_1","title":"Parameters","text":"

    transform IHistoryTransform

    "},{"location":"xmldocs/llama.chatsession/#returns","title":"Returns","text":"

    ChatSession

    "},{"location":"xmldocs/llama.chatsession/#addinputtransformitexttransform","title":"AddInputTransform(ITextTransform)","text":"

    Add a text transform to the input transform pipeline.

    public ChatSession AddInputTransform(ITextTransform transform)\n
    "},{"location":"xmldocs/llama.chatsession/#parameters_2","title":"Parameters","text":"

    transform ITextTransform

    "},{"location":"xmldocs/llama.chatsession/#returns_1","title":"Returns","text":"

    ChatSession

    "},{"location":"xmldocs/llama.chatsession/#withoutputtransformitextstreamtransform","title":"WithOutputTransform(ITextStreamTransform)","text":"

    Use a custom output transform.

    public ChatSession WithOutputTransform(ITextStreamTransform transform)\n
    "},{"location":"xmldocs/llama.chatsession/#parameters_3","title":"Parameters","text":"

    transform ITextStreamTransform

    "},{"location":"xmldocs/llama.chatsession/#returns_2","title":"Returns","text":"

    ChatSession

    "},{"location":"xmldocs/llama.chatsession/#savesessionstring","title":"SaveSession(String)","text":"
    public void SaveSession(string path)\n
    "},{"location":"xmldocs/llama.chatsession/#parameters_4","title":"Parameters","text":"

    path String The directory name to save the session. If the directory does not exist, a new directory will be created.

    "},{"location":"xmldocs/llama.chatsession/#loadsessionstring","title":"LoadSession(String)","text":"
    public void LoadSession(string path)\n
    "},{"location":"xmldocs/llama.chatsession/#parameters_5","title":"Parameters","text":"

    path String The directory name to load the session.

    "},{"location":"xmldocs/llama.chatsession/#chatchathistory-iinferenceparams-cancellationtoken","title":"Chat(ChatHistory, IInferenceParams, CancellationToken)","text":"

    Get the response from the LLama model with chat histories.

    public IEnumerable<string> Chat(ChatHistory history, IInferenceParams inferenceParams, CancellationToken cancellationToken)\n
    "},{"location":"xmldocs/llama.chatsession/#parameters_6","title":"Parameters","text":"

    history ChatHistory

    inferenceParams IInferenceParams

    cancellationToken CancellationToken

    "},{"location":"xmldocs/llama.chatsession/#returns_3","title":"Returns","text":"

    IEnumerable<String>

    "},{"location":"xmldocs/llama.chatsession/#chatstring-iinferenceparams-cancellationtoken","title":"Chat(String, IInferenceParams, CancellationToken)","text":"

    Get the response from the LLama model. Note that prompt could not only be the preset words, but also the question you want to ask.

    public IEnumerable<string> Chat(string prompt, IInferenceParams inferenceParams, CancellationToken cancellationToken)\n
    "},{"location":"xmldocs/llama.chatsession/#parameters_7","title":"Parameters","text":"

    prompt String

    inferenceParams IInferenceParams

    cancellationToken CancellationToken

    "},{"location":"xmldocs/llama.chatsession/#returns_4","title":"Returns","text":"

    IEnumerable<String>

    "},{"location":"xmldocs/llama.chatsession/#chatasyncchathistory-iinferenceparams-cancellationtoken","title":"ChatAsync(ChatHistory, IInferenceParams, CancellationToken)","text":"

    Get the response from the LLama model with chat histories.

    public IAsyncEnumerable<string> ChatAsync(ChatHistory history, IInferenceParams inferenceParams, CancellationToken cancellationToken)\n
    "},{"location":"xmldocs/llama.chatsession/#parameters_8","title":"Parameters","text":"

    history ChatHistory

    inferenceParams IInferenceParams

    cancellationToken CancellationToken

    "},{"location":"xmldocs/llama.chatsession/#returns_5","title":"Returns","text":"

    IAsyncEnumerable<String>

    "},{"location":"xmldocs/llama.chatsession/#chatasyncstring-iinferenceparams-cancellationtoken","title":"ChatAsync(String, IInferenceParams, CancellationToken)","text":"

    Get the response from the LLama model with chat histories asynchronously.

    public IAsyncEnumerable<string> ChatAsync(string prompt, IInferenceParams inferenceParams, CancellationToken cancellationToken)\n
    "},{"location":"xmldocs/llama.chatsession/#parameters_9","title":"Parameters","text":"

    prompt String

    inferenceParams IInferenceParams

    cancellationToken CancellationToken

    "},{"location":"xmldocs/llama.chatsession/#returns_6","title":"Returns","text":"

    IAsyncEnumerable<String>

    "},{"location":"xmldocs/llama.common.authorrole/","title":"AuthorRole","text":"

    Namespace: LLama.Common

    Role of the message author, e.g. user/assistant/system

    public enum AuthorRole\n

    Inheritance Object \u2192 ValueType \u2192 Enum \u2192 AuthorRole Implements IComparable, IFormattable, IConvertible

    "},{"location":"xmldocs/llama.common.authorrole/#fields","title":"Fields","text":"Name Value Description Unknown -1 Role is unknown System 0 Message comes from a \"system\" prompt, not written by a user or language model User 1 Message comes from the user Assistant 2 Messages was generated by the language model"},{"location":"xmldocs/llama.common.chathistory/","title":"ChatHistory","text":"

    Namespace: LLama.Common

    The chat history class

    public class ChatHistory\n

    Inheritance Object \u2192 ChatHistory

    "},{"location":"xmldocs/llama.common.chathistory/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.common.chathistory/#messages","title":"Messages","text":"

    List of messages in the chat

    public List<Message> Messages { get; }\n
    "},{"location":"xmldocs/llama.common.chathistory/#property-value","title":"Property Value","text":"

    List<Message>

    "},{"location":"xmldocs/llama.common.chathistory/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.common.chathistory/#chathistory_1","title":"ChatHistory()","text":"

    Create a new instance of the chat content class

    public ChatHistory()\n
    "},{"location":"xmldocs/llama.common.chathistory/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.common.chathistory/#addmessageauthorrole-string","title":"AddMessage(AuthorRole, String)","text":"

    Add a message to the chat history

    public void AddMessage(AuthorRole authorRole, string content)\n
    "},{"location":"xmldocs/llama.common.chathistory/#parameters","title":"Parameters","text":"

    authorRole AuthorRole Role of the message author

    content String Message content

    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/","title":"FixedSizeQueue<T>","text":"

    Namespace: LLama.Common

    A queue with fixed storage size. Currently it's only a naive implementation and needs to be further optimized in the future.

    public class FixedSizeQueue<T> : , System.Collections.IEnumerable\n
    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#type-parameters","title":"Type Parameters","text":"

    T

    Inheritance Object \u2192 FixedSizeQueue<T> Implements IEnumerable<T>, IEnumerable

    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.common.fixedsizequeue-1/#count","title":"Count","text":"

    Number of items in this queue

    public int Count { get; }\n
    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#capacity","title":"Capacity","text":"

    Maximum number of items allowed in this queue

    public int Capacity { get; }\n
    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#property-value_1","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.common.fixedsizequeue-1/#fixedsizequeueint32","title":"FixedSizeQueue(Int32)","text":"

    Create a new queue

    public FixedSizeQueue(int size)\n
    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#parameters","title":"Parameters","text":"

    size Int32 the maximum number of items to store in this queue

    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#fixedsizequeueint32-ienumerablet","title":"FixedSizeQueue(Int32, IEnumerable<T>)","text":"

    Fill the quene with the data. Please ensure that data.Count <= size

    public FixedSizeQueue(int size, IEnumerable<T> data)\n
    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#parameters_1","title":"Parameters","text":"

    size Int32

    data IEnumerable<T>

    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.common.fixedsizequeue-1/#fillwitht","title":"FillWith(T)","text":"

    Replace every item in the queue with the given value

    public FixedSizeQueue<T> FillWith(T value)\n
    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#parameters_2","title":"Parameters","text":"

    value T The value to replace all items with

    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#returns","title":"Returns","text":"

    FixedSizeQueue<T> returns this

    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#enqueuet","title":"Enqueue(T)","text":"

    Enquene an element.

    public void Enqueue(T item)\n
    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#parameters_3","title":"Parameters","text":"

    item T

    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#getenumerator","title":"GetEnumerator()","text":"
    public IEnumerator<T> GetEnumerator()\n
    "},{"location":"xmldocs/llama.common.fixedsizequeue-1/#returns_1","title":"Returns","text":"

    IEnumerator<T>

    "},{"location":"xmldocs/llama.common.illamalogger/","title":"ILLamaLogger","text":"

    Namespace: LLama.Common

    receives log messages from LLamaSharp

    public interface ILLamaLogger\n
    "},{"location":"xmldocs/llama.common.illamalogger/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.common.illamalogger/#logstring-string-loglevel","title":"Log(String, String, LogLevel)","text":"

    Write the log in customized way

    void Log(string source, string message, LogLevel level)\n
    "},{"location":"xmldocs/llama.common.illamalogger/#parameters","title":"Parameters","text":"

    source String The source of the log. It may be a method name or class name.

    message String The message.

    level LogLevel The log level.

    "},{"location":"xmldocs/llama.common.inferenceparams/","title":"InferenceParams","text":"

    Namespace: LLama.Common

    The paramters used for inference.

    public class InferenceParams : LLama.Abstractions.IInferenceParams\n

    Inheritance Object \u2192 InferenceParams Implements IInferenceParams

    "},{"location":"xmldocs/llama.common.inferenceparams/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.common.inferenceparams/#tokenskeep","title":"TokensKeep","text":"

    number of tokens to keep from initial prompt

    public int TokensKeep { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.common.inferenceparams/#maxtokens","title":"MaxTokens","text":"

    how many new tokens to predict (n_predict), set to -1 to inifinitely generate response until it complete.

    public int MaxTokens { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_1","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.common.inferenceparams/#logitbias","title":"LogitBias","text":"

    logit bias for specific tokens

    public Dictionary<int, float> LogitBias { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_2","title":"Property Value","text":"

    Dictionary<Int32, Single>

    "},{"location":"xmldocs/llama.common.inferenceparams/#antiprompts","title":"AntiPrompts","text":"

    Sequences where the model will stop generating further tokens.

    public IEnumerable<string> AntiPrompts { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_3","title":"Property Value","text":"

    IEnumerable<String>

    "},{"location":"xmldocs/llama.common.inferenceparams/#pathsession","title":"PathSession","text":"

    path to file for saving/loading model eval state

    public string PathSession { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_4","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.common.inferenceparams/#inputsuffix","title":"InputSuffix","text":"

    string to suffix user inputs with

    public string InputSuffix { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_5","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.common.inferenceparams/#inputprefix","title":"InputPrefix","text":"

    string to prefix user inputs with

    public string InputPrefix { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_6","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.common.inferenceparams/#topk","title":"TopK","text":"

    0 or lower to use vocab size

    public int TopK { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_7","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.common.inferenceparams/#topp","title":"TopP","text":"

    1.0 = disabled

    public float TopP { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_8","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.common.inferenceparams/#tfsz","title":"TfsZ","text":"

    1.0 = disabled

    public float TfsZ { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_9","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.common.inferenceparams/#typicalp","title":"TypicalP","text":"

    1.0 = disabled

    public float TypicalP { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_10","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.common.inferenceparams/#temperature","title":"Temperature","text":"

    1.0 = disabled

    public float Temperature { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_11","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.common.inferenceparams/#repeatpenalty","title":"RepeatPenalty","text":"

    1.0 = disabled

    public float RepeatPenalty { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_12","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.common.inferenceparams/#repeatlasttokenscount","title":"RepeatLastTokensCount","text":"

    last n tokens to penalize (0 = disable penalty, -1 = context size) (repeat_last_n)

    public int RepeatLastTokensCount { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_13","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.common.inferenceparams/#frequencypenalty","title":"FrequencyPenalty","text":"

    frequency penalty coefficient 0.0 = disabled

    public float FrequencyPenalty { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_14","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.common.inferenceparams/#presencepenalty","title":"PresencePenalty","text":"

    presence penalty coefficient 0.0 = disabled

    public float PresencePenalty { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_15","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.common.inferenceparams/#mirostat","title":"Mirostat","text":"

    Mirostat uses tokens instead of words. algorithm described in the paper https://arxiv.org/abs/2007.14966. 0 = disabled, 1 = mirostat, 2 = mirostat 2.0

    public MirostatType Mirostat { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_16","title":"Property Value","text":"

    MirostatType

    "},{"location":"xmldocs/llama.common.inferenceparams/#mirostattau","title":"MirostatTau","text":"

    target entropy

    public float MirostatTau { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_17","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.common.inferenceparams/#mirostateta","title":"MirostatEta","text":"

    learning rate

    public float MirostatEta { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_18","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.common.inferenceparams/#penalizenl","title":"PenalizeNL","text":"

    consider newlines as a repeatable token (penalize_nl)

    public bool PenalizeNL { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_19","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.common.inferenceparams/#grammar","title":"Grammar","text":"

    A grammar to constrain the possible tokens

    public SafeLLamaGrammarHandle Grammar { get; set; }\n
    "},{"location":"xmldocs/llama.common.inferenceparams/#property-value_20","title":"Property Value","text":"

    SafeLLamaGrammarHandle

    "},{"location":"xmldocs/llama.common.inferenceparams/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.common.inferenceparams/#inferenceparams_1","title":"InferenceParams()","text":"
    public InferenceParams()\n
    "},{"location":"xmldocs/llama.common.llamadefaultlogger/","title":"LLamaDefaultLogger","text":"

    Namespace: LLama.Common

    The default logger of LLamaSharp. On default it write to console. Use methods of LLamaLogger.Default to change the behavior. It's recommended to inherit ILLamaLogger to customize the behavior.

    public sealed class LLamaDefaultLogger : ILLamaLogger\n

    Inheritance Object \u2192 LLamaDefaultLogger Implements ILLamaLogger

    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.common.llamadefaultlogger/#default","title":"Default","text":"

    Get the default logger instance

    public static LLamaDefaultLogger Default { get; }\n
    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#property-value","title":"Property Value","text":"

    LLamaDefaultLogger

    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.common.llamadefaultlogger/#enablenative","title":"EnableNative()","text":"

    Enable logging output from llama.cpp

    public LLamaDefaultLogger EnableNative()\n
    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#returns","title":"Returns","text":"

    LLamaDefaultLogger

    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#enableconsole","title":"EnableConsole()","text":"

    Enable writing log messages to console

    public LLamaDefaultLogger EnableConsole()\n
    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#returns_1","title":"Returns","text":"

    LLamaDefaultLogger

    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#disableconsole","title":"DisableConsole()","text":"

    Disable writing messages to console

    public LLamaDefaultLogger DisableConsole()\n
    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#returns_2","title":"Returns","text":"

    LLamaDefaultLogger

    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#enablefilestring-filemode","title":"EnableFile(String, FileMode)","text":"

    Enable writing log messages to file

    public LLamaDefaultLogger EnableFile(string filename, FileMode mode)\n
    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#parameters","title":"Parameters","text":"

    filename String

    mode FileMode

    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#returns_3","title":"Returns","text":"

    LLamaDefaultLogger

    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#disablefilestring","title":"DisableFile(String)","text":""},{"location":"xmldocs/llama.common.llamadefaultlogger/#caution","title":"Caution","text":"

    Use DisableFile method without 'filename' parameter

    Disable writing log messages to file

    public LLamaDefaultLogger DisableFile(string filename)\n
    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#parameters_1","title":"Parameters","text":"

    filename String unused!

    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#returns_4","title":"Returns","text":"

    LLamaDefaultLogger

    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#disablefile","title":"DisableFile()","text":"

    Disable writing log messages to file

    public LLamaDefaultLogger DisableFile()\n
    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#returns_5","title":"Returns","text":"

    LLamaDefaultLogger

    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#logstring-string-loglevel","title":"Log(String, String, LogLevel)","text":"

    Log a message

    public void Log(string source, string message, LogLevel level)\n
    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#parameters_2","title":"Parameters","text":"

    source String The source of this message (e.g. class name)

    message String The message to log

    level LogLevel Severity level of this message

    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#infostring","title":"Info(String)","text":"

    Write a log message with \"Info\" severity

    public void Info(string message)\n
    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#parameters_3","title":"Parameters","text":"

    message String

    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#warnstring","title":"Warn(String)","text":"

    Write a log message with \"Warn\" severity

    public void Warn(string message)\n
    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#parameters_4","title":"Parameters","text":"

    message String

    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#errorstring","title":"Error(String)","text":"

    Write a log message with \"Error\" severity

    public void Error(string message)\n
    "},{"location":"xmldocs/llama.common.llamadefaultlogger/#parameters_5","title":"Parameters","text":"

    message String

    "},{"location":"xmldocs/llama.common.mirostattype/","title":"MirostatType","text":"

    Namespace: LLama.Common

    Type of \"mirostat\" sampling to use. https://github.com/basusourya/mirostat

    public enum MirostatType\n

    Inheritance Object \u2192 ValueType \u2192 Enum \u2192 MirostatType Implements IComparable, IFormattable, IConvertible

    "},{"location":"xmldocs/llama.common.mirostattype/#fields","title":"Fields","text":"Name Value Description Disable 0 Disable Mirostat sampling Mirostat 1 Original mirostat algorithm Mirostat2 2 Mirostat 2.0 algorithm"},{"location":"xmldocs/llama.common.modelparams/","title":"ModelParams","text":"

    Namespace: LLama.Common

    The parameters for initializing a LLama model.

    public class ModelParams : LLama.Abstractions.IModelParams, System.IEquatable`1[[LLama.Common.ModelParams, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 ModelParams Implements IModelParams, IEquatable<ModelParams>

    "},{"location":"xmldocs/llama.common.modelparams/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.common.modelparams/#contextsize","title":"ContextSize","text":"

    Model context size (n_ctx)

    public int ContextSize { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.common.modelparams/#maingpu","title":"MainGpu","text":"

    the GPU that is used for scratch and small tensors

    public int MainGpu { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_1","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.common.modelparams/#lowvram","title":"LowVram","text":"

    if true, reduce VRAM usage at the cost of performance

    public bool LowVram { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_2","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.common.modelparams/#gpulayercount","title":"GpuLayerCount","text":"

    Number of layers to run in VRAM / GPU memory (n_gpu_layers)

    public int GpuLayerCount { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_3","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.common.modelparams/#seed","title":"Seed","text":"

    Seed for the random number generator (seed)

    public int Seed { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_4","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.common.modelparams/#usefp16memory","title":"UseFp16Memory","text":"

    Use f16 instead of f32 for memory kv (memory_f16)

    public bool UseFp16Memory { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_5","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.common.modelparams/#usememorymap","title":"UseMemorymap","text":"

    Use mmap for faster loads (use_mmap)

    public bool UseMemorymap { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_6","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.common.modelparams/#usememorylock","title":"UseMemoryLock","text":"

    Use mlock to keep model in memory (use_mlock)

    public bool UseMemoryLock { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_7","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.common.modelparams/#perplexity","title":"Perplexity","text":"

    Compute perplexity over the prompt (perplexity)

    public bool Perplexity { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_8","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.common.modelparams/#modelpath","title":"ModelPath","text":"

    Model path (model)

    public string ModelPath { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_9","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.common.modelparams/#modelalias","title":"ModelAlias","text":"

    model alias

    public string ModelAlias { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_10","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.common.modelparams/#loraadapter","title":"LoraAdapter","text":"

    lora adapter path (lora_adapter)

    public string LoraAdapter { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_11","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.common.modelparams/#lorabase","title":"LoraBase","text":"

    base model path for the lora adapter (lora_base)

    public string LoraBase { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_12","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.common.modelparams/#threads","title":"Threads","text":"

    Number of threads (-1 = autodetect) (n_threads)

    public int Threads { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_13","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.common.modelparams/#batchsize","title":"BatchSize","text":"

    batch size for prompt processing (must be >=32 to use BLAS) (n_batch)

    public int BatchSize { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_14","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.common.modelparams/#converteostonewline","title":"ConvertEosToNewLine","text":"

    Whether to convert eos to newline during the inference.

    public bool ConvertEosToNewLine { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_15","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.common.modelparams/#embeddingmode","title":"EmbeddingMode","text":"

    Whether to use embedding mode. (embedding) Note that if this is set to true, The LLamaModel won't produce text response anymore.

    public bool EmbeddingMode { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_16","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.common.modelparams/#tensorsplits","title":"TensorSplits","text":"

    how split tensors should be distributed across GPUs

    public Single[] TensorSplits { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_17","title":"Property Value","text":"

    Single[]

    "},{"location":"xmldocs/llama.common.modelparams/#ropefrequencybase","title":"RopeFrequencyBase","text":"

    RoPE base frequency

    public float RopeFrequencyBase { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_18","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.common.modelparams/#ropefrequencyscale","title":"RopeFrequencyScale","text":"

    RoPE frequency scaling factor

    public float RopeFrequencyScale { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_19","title":"Property Value","text":"

    Single

    "},{"location":"xmldocs/llama.common.modelparams/#mulmatq","title":"MulMatQ","text":"

    Use experimental mul_mat_q kernels

    public bool MulMatQ { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_20","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.common.modelparams/#encoding","title":"Encoding","text":"

    The encoding to use to convert text for the model

    public Encoding Encoding { get; set; }\n
    "},{"location":"xmldocs/llama.common.modelparams/#property-value_21","title":"Property Value","text":"

    Encoding

    "},{"location":"xmldocs/llama.common.modelparams/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.common.modelparams/#modelparamsstring","title":"ModelParams(String)","text":"
    public ModelParams(string modelPath)\n
    "},{"location":"xmldocs/llama.common.modelparams/#parameters","title":"Parameters","text":"

    modelPath String The model path.

    "},{"location":"xmldocs/llama.common.modelparams/#modelparamsstring-int32-int32-int32-boolean-boolean-boolean-boolean-string-string-int32-int32-boolean-boolean-single-single-boolean-string","title":"ModelParams(String, Int32, Int32, Int32, Boolean, Boolean, Boolean, Boolean, String, String, Int32, Int32, Boolean, Boolean, Single, Single, Boolean, String)","text":""},{"location":"xmldocs/llama.common.modelparams/#caution","title":"Caution","text":"

    Use object initializer to set all optional parameters

    public ModelParams(string modelPath, int contextSize, int gpuLayerCount, int seed, bool useFp16Memory, bool useMemorymap, bool useMemoryLock, bool perplexity, string loraAdapter, string loraBase, int threads, int batchSize, bool convertEosToNewLine, bool embeddingMode, float ropeFrequencyBase, float ropeFrequencyScale, bool mulMatQ, string encoding)\n
    "},{"location":"xmldocs/llama.common.modelparams/#parameters_1","title":"Parameters","text":"

    modelPath String The model path.

    contextSize Int32 Model context size (n_ctx)

    gpuLayerCount Int32 Number of layers to run in VRAM / GPU memory (n_gpu_layers)

    seed Int32 Seed for the random number generator (seed)

    useFp16Memory Boolean Whether to use f16 instead of f32 for memory kv (memory_f16)

    useMemorymap Boolean Whether to use mmap for faster loads (use_mmap)

    useMemoryLock Boolean Whether to use mlock to keep model in memory (use_mlock)

    perplexity Boolean Thether to compute perplexity over the prompt (perplexity)

    loraAdapter String Lora adapter path (lora_adapter)

    loraBase String Base model path for the lora adapter (lora_base)

    threads Int32 Number of threads (-1 = autodetect) (n_threads)

    batchSize Int32 Batch size for prompt processing (must be >=32 to use BLAS) (n_batch)

    convertEosToNewLine Boolean Whether to convert eos to newline during the inference.

    embeddingMode Boolean Whether to use embedding mode. (embedding) Note that if this is set to true, The LLamaModel won't produce text response anymore.

    ropeFrequencyBase Single RoPE base frequency.

    ropeFrequencyScale Single RoPE frequency scaling factor

    mulMatQ Boolean Use experimental mul_mat_q kernels

    encoding String The encoding to use to convert text for the model

    "},{"location":"xmldocs/llama.common.modelparams/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.common.modelparams/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.common.modelparams/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.common.modelparams/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.common.modelparams/#parameters_2","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.common.modelparams/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.common.modelparams/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.common.modelparams/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.common.modelparams/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.common.modelparams/#parameters_3","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.common.modelparams/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.common.modelparams/#equalsmodelparams","title":"Equals(ModelParams)","text":"
    public bool Equals(ModelParams other)\n
    "},{"location":"xmldocs/llama.common.modelparams/#parameters_4","title":"Parameters","text":"

    other ModelParams

    "},{"location":"xmldocs/llama.common.modelparams/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.common.modelparams/#clone","title":"<Clone>$()","text":"
    public ModelParams <Clone>$()\n
    "},{"location":"xmldocs/llama.common.modelparams/#returns_5","title":"Returns","text":"

    ModelParams

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/","title":"GrammarExpectedName","text":"

    Namespace: LLama.Exceptions

    Failed to parse a \"name\" element when one was expected

    public class GrammarExpectedName : GrammarFormatException, System.Runtime.Serialization.ISerializable\n

    Inheritance Object \u2192 Exception \u2192 GrammarFormatException \u2192 GrammarExpectedName Implements ISerializable

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#targetsite","title":"TargetSite","text":"
    public MethodBase TargetSite { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#property-value","title":"Property Value","text":"

    MethodBase

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#message","title":"Message","text":"
    public string Message { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#data","title":"Data","text":"
    public IDictionary Data { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#property-value_2","title":"Property Value","text":"

    IDictionary

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#innerexception","title":"InnerException","text":"
    public Exception InnerException { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#property-value_3","title":"Property Value","text":"

    Exception

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#helplink","title":"HelpLink","text":"
    public string HelpLink { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#property-value_4","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#source","title":"Source","text":"
    public string Source { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#property-value_5","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#hresult","title":"HResult","text":"
    public int HResult { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#property-value_6","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#stacktrace","title":"StackTrace","text":"
    public string StackTrace { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedname/#property-value_7","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/","title":"GrammarExpectedNext","text":"

    Namespace: LLama.Exceptions

    A specified string was expected when parsing

    public class GrammarExpectedNext : GrammarFormatException, System.Runtime.Serialization.ISerializable\n

    Inheritance Object \u2192 Exception \u2192 GrammarFormatException \u2192 GrammarExpectedNext Implements ISerializable

    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#targetsite","title":"TargetSite","text":"
    public MethodBase TargetSite { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#property-value","title":"Property Value","text":"

    MethodBase

    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#message","title":"Message","text":"
    public string Message { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#data","title":"Data","text":"
    public IDictionary Data { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#property-value_2","title":"Property Value","text":"

    IDictionary

    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#innerexception","title":"InnerException","text":"
    public Exception InnerException { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#property-value_3","title":"Property Value","text":"

    Exception

    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#helplink","title":"HelpLink","text":"
    public string HelpLink { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#property-value_4","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#source","title":"Source","text":"
    public string Source { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#property-value_5","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#hresult","title":"HResult","text":"
    public int HResult { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#property-value_6","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#stacktrace","title":"StackTrace","text":"
    public string StackTrace { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectednext/#property-value_7","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/","title":"GrammarExpectedPrevious","text":"

    Namespace: LLama.Exceptions

    A specified character was expected to preceded another when parsing

    public class GrammarExpectedPrevious : GrammarFormatException, System.Runtime.Serialization.ISerializable\n

    Inheritance Object \u2192 Exception \u2192 GrammarFormatException \u2192 GrammarExpectedPrevious Implements ISerializable

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#targetsite","title":"TargetSite","text":"
    public MethodBase TargetSite { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#property-value","title":"Property Value","text":"

    MethodBase

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#message","title":"Message","text":"
    public string Message { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#data","title":"Data","text":"
    public IDictionary Data { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#property-value_2","title":"Property Value","text":"

    IDictionary

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#innerexception","title":"InnerException","text":"
    public Exception InnerException { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#property-value_3","title":"Property Value","text":"

    Exception

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#helplink","title":"HelpLink","text":"
    public string HelpLink { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#property-value_4","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#source","title":"Source","text":"
    public string Source { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#property-value_5","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#hresult","title":"HResult","text":"
    public int HResult { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#property-value_6","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#stacktrace","title":"StackTrace","text":"
    public string StackTrace { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarexpectedprevious/#property-value_7","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/","title":"GrammarFormatException","text":"

    Namespace: LLama.Exceptions

    Base class for all grammar exceptions

    public abstract class GrammarFormatException : System.Exception, System.Runtime.Serialization.ISerializable\n

    Inheritance Object \u2192 Exception \u2192 GrammarFormatException Implements ISerializable

    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.exceptions.grammarformatexception/#targetsite","title":"TargetSite","text":"
    public MethodBase TargetSite { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#property-value","title":"Property Value","text":"

    MethodBase

    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#message","title":"Message","text":"
    public string Message { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#data","title":"Data","text":"
    public IDictionary Data { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#property-value_2","title":"Property Value","text":"

    IDictionary

    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#innerexception","title":"InnerException","text":"
    public Exception InnerException { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#property-value_3","title":"Property Value","text":"

    Exception

    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#helplink","title":"HelpLink","text":"
    public string HelpLink { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#property-value_4","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#source","title":"Source","text":"
    public string Source { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#property-value_5","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#hresult","title":"HResult","text":"
    public int HResult { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#property-value_6","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#stacktrace","title":"StackTrace","text":"
    public string StackTrace { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarformatexception/#property-value_7","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/","title":"GrammarUnexpectedCharAltElement","text":"

    Namespace: LLama.Exceptions

    A CHAR_ALT was created without a preceding CHAR element

    public class GrammarUnexpectedCharAltElement : GrammarFormatException, System.Runtime.Serialization.ISerializable\n

    Inheritance Object \u2192 Exception \u2192 GrammarFormatException \u2192 GrammarUnexpectedCharAltElement Implements ISerializable

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#targetsite","title":"TargetSite","text":"
    public MethodBase TargetSite { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#property-value","title":"Property Value","text":"

    MethodBase

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#message","title":"Message","text":"
    public string Message { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#data","title":"Data","text":"
    public IDictionary Data { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#property-value_2","title":"Property Value","text":"

    IDictionary

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#innerexception","title":"InnerException","text":"
    public Exception InnerException { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#property-value_3","title":"Property Value","text":"

    Exception

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#helplink","title":"HelpLink","text":"
    public string HelpLink { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#property-value_4","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#source","title":"Source","text":"
    public string Source { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#property-value_5","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#hresult","title":"HResult","text":"
    public int HResult { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#property-value_6","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#stacktrace","title":"StackTrace","text":"
    public string StackTrace { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharaltelement/#property-value_7","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/","title":"GrammarUnexpectedCharRngElement","text":"

    Namespace: LLama.Exceptions

    A CHAR_RNG was created without a preceding CHAR element

    public class GrammarUnexpectedCharRngElement : GrammarFormatException, System.Runtime.Serialization.ISerializable\n

    Inheritance Object \u2192 Exception \u2192 GrammarFormatException \u2192 GrammarUnexpectedCharRngElement Implements ISerializable

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#targetsite","title":"TargetSite","text":"
    public MethodBase TargetSite { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#property-value","title":"Property Value","text":"

    MethodBase

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#message","title":"Message","text":"
    public string Message { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#data","title":"Data","text":"
    public IDictionary Data { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#property-value_2","title":"Property Value","text":"

    IDictionary

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#innerexception","title":"InnerException","text":"
    public Exception InnerException { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#property-value_3","title":"Property Value","text":"

    Exception

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#helplink","title":"HelpLink","text":"
    public string HelpLink { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#property-value_4","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#source","title":"Source","text":"
    public string Source { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#property-value_5","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#hresult","title":"HResult","text":"
    public int HResult { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#property-value_6","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#stacktrace","title":"StackTrace","text":"
    public string StackTrace { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedcharrngelement/#property-value_7","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/","title":"GrammarUnexpectedEndElement","text":"

    Namespace: LLama.Exceptions

    An END was encountered before the last element

    public class GrammarUnexpectedEndElement : GrammarFormatException, System.Runtime.Serialization.ISerializable\n

    Inheritance Object \u2192 Exception \u2192 GrammarFormatException \u2192 GrammarUnexpectedEndElement Implements ISerializable

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#targetsite","title":"TargetSite","text":"
    public MethodBase TargetSite { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#property-value","title":"Property Value","text":"

    MethodBase

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#message","title":"Message","text":"
    public string Message { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#data","title":"Data","text":"
    public IDictionary Data { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#property-value_2","title":"Property Value","text":"

    IDictionary

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#innerexception","title":"InnerException","text":"
    public Exception InnerException { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#property-value_3","title":"Property Value","text":"

    Exception

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#helplink","title":"HelpLink","text":"
    public string HelpLink { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#property-value_4","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#source","title":"Source","text":"
    public string Source { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#property-value_5","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#hresult","title":"HResult","text":"
    public int HResult { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#property-value_6","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#stacktrace","title":"StackTrace","text":"
    public string StackTrace { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendelement/#property-value_7","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/","title":"GrammarUnexpectedEndOfInput","text":"

    Namespace: LLama.Exceptions

    End-of-file was encountered while parsing

    public class GrammarUnexpectedEndOfInput : GrammarFormatException, System.Runtime.Serialization.ISerializable\n

    Inheritance Object \u2192 Exception \u2192 GrammarFormatException \u2192 GrammarUnexpectedEndOfInput Implements ISerializable

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#targetsite","title":"TargetSite","text":"
    public MethodBase TargetSite { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#property-value","title":"Property Value","text":"

    MethodBase

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#message","title":"Message","text":"
    public string Message { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#data","title":"Data","text":"
    public IDictionary Data { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#property-value_2","title":"Property Value","text":"

    IDictionary

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#innerexception","title":"InnerException","text":"
    public Exception InnerException { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#property-value_3","title":"Property Value","text":"

    Exception

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#helplink","title":"HelpLink","text":"
    public string HelpLink { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#property-value_4","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#source","title":"Source","text":"
    public string Source { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#property-value_5","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#hresult","title":"HResult","text":"
    public int HResult { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#property-value_6","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#stacktrace","title":"StackTrace","text":"
    public string StackTrace { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedendofinput/#property-value_7","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/","title":"GrammarUnexpectedHexCharsCount","text":"

    Namespace: LLama.Exceptions

    An incorrect number of characters were encountered while parsing a hex literal

    public class GrammarUnexpectedHexCharsCount : GrammarFormatException, System.Runtime.Serialization.ISerializable\n

    Inheritance Object \u2192 Exception \u2192 GrammarFormatException \u2192 GrammarUnexpectedHexCharsCount Implements ISerializable

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#targetsite","title":"TargetSite","text":"
    public MethodBase TargetSite { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#property-value","title":"Property Value","text":"

    MethodBase

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#message","title":"Message","text":"
    public string Message { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#data","title":"Data","text":"
    public IDictionary Data { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#property-value_2","title":"Property Value","text":"

    IDictionary

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#innerexception","title":"InnerException","text":"
    public Exception InnerException { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#property-value_3","title":"Property Value","text":"

    Exception

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#helplink","title":"HelpLink","text":"
    public string HelpLink { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#property-value_4","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#source","title":"Source","text":"
    public string Source { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#property-value_5","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#hresult","title":"HResult","text":"
    public int HResult { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#property-value_6","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#stacktrace","title":"StackTrace","text":"
    public string StackTrace { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunexpectedhexcharscount/#property-value_7","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/","title":"GrammarUnknownEscapeCharacter","text":"

    Namespace: LLama.Exceptions

    An unexpected character was encountered after an escape sequence

    public class GrammarUnknownEscapeCharacter : GrammarFormatException, System.Runtime.Serialization.ISerializable\n

    Inheritance Object \u2192 Exception \u2192 GrammarFormatException \u2192 GrammarUnknownEscapeCharacter Implements ISerializable

    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#targetsite","title":"TargetSite","text":"
    public MethodBase TargetSite { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#property-value","title":"Property Value","text":"

    MethodBase

    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#message","title":"Message","text":"
    public string Message { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#data","title":"Data","text":"
    public IDictionary Data { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#property-value_2","title":"Property Value","text":"

    IDictionary

    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#innerexception","title":"InnerException","text":"
    public Exception InnerException { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#property-value_3","title":"Property Value","text":"

    Exception

    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#helplink","title":"HelpLink","text":"
    public string HelpLink { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#property-value_4","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#source","title":"Source","text":"
    public string Source { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#property-value_5","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#hresult","title":"HResult","text":"
    public int HResult { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#property-value_6","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#stacktrace","title":"StackTrace","text":"
    public string StackTrace { get; }\n
    "},{"location":"xmldocs/llama.exceptions.grammarunknownescapecharacter/#property-value_7","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.runtimeerror/","title":"RuntimeError","text":"

    Namespace: LLama.Exceptions

    public class RuntimeError : System.Exception, System.Runtime.Serialization.ISerializable\n

    Inheritance Object \u2192 Exception \u2192 RuntimeError Implements ISerializable

    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.exceptions.runtimeerror/#targetsite","title":"TargetSite","text":"
    public MethodBase TargetSite { get; }\n
    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#property-value","title":"Property Value","text":"

    MethodBase

    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#message","title":"Message","text":"
    public string Message { get; }\n
    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#data","title":"Data","text":"
    public IDictionary Data { get; }\n
    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#property-value_2","title":"Property Value","text":"

    IDictionary

    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#innerexception","title":"InnerException","text":"
    public Exception InnerException { get; }\n
    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#property-value_3","title":"Property Value","text":"

    Exception

    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#helplink","title":"HelpLink","text":"
    public string HelpLink { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#property-value_4","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#source","title":"Source","text":"
    public string Source { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#property-value_5","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#hresult","title":"HResult","text":"
    public int HResult { get; set; }\n
    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#property-value_6","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#stacktrace","title":"StackTrace","text":"
    public string StackTrace { get; }\n
    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#property-value_7","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.exceptions.runtimeerror/#runtimeerror_1","title":"RuntimeError()","text":"
    public RuntimeError()\n
    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#runtimeerrorstring","title":"RuntimeError(String)","text":"
    public RuntimeError(string message)\n
    "},{"location":"xmldocs/llama.exceptions.runtimeerror/#parameters","title":"Parameters","text":"

    message String

    "},{"location":"xmldocs/llama.extensions.imodelparamsextensions/","title":"IModelParamsExtensions","text":"

    Namespace: LLama.Extensions

    Extention methods to the IModelParams interface

    public static class IModelParamsExtensions\n

    Inheritance Object \u2192 IModelParamsExtensions

    "},{"location":"xmldocs/llama.extensions.imodelparamsextensions/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.extensions.imodelparamsextensions/#tollamacontextparamsimodelparams-llamacontextparams","title":"ToLlamaContextParams(IModelParams, LLamaContextParams&)","text":"

    Convert the given IModelParams into a LLamaContextParams

    public static MemoryHandle ToLlamaContextParams(IModelParams params, LLamaContextParams& result)\n
    "},{"location":"xmldocs/llama.extensions.imodelparamsextensions/#parameters","title":"Parameters","text":"

    params IModelParams

    result LLamaContextParams&

    "},{"location":"xmldocs/llama.extensions.imodelparamsextensions/#returns","title":"Returns","text":"

    MemoryHandle

    "},{"location":"xmldocs/llama.extensions.imodelparamsextensions/#exceptions","title":"Exceptions","text":"

    FileNotFoundException

    ArgumentException

    "},{"location":"xmldocs/llama.extensions.keyvaluepairextensions/","title":"KeyValuePairExtensions","text":"

    Namespace: LLama.Extensions

    Extensions to the KeyValuePair struct

    public static class KeyValuePairExtensions\n

    Inheritance Object \u2192 KeyValuePairExtensions

    "},{"location":"xmldocs/llama.extensions.keyvaluepairextensions/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.extensions.keyvaluepairextensions/#deconstructtkey-tvaluekeyvaluepairtkey-tvalue-tkey-tvalue","title":"Deconstruct<TKey, TValue>(KeyValuePair<TKey, TValue>, TKey&, TValue&)","text":"

    Deconstruct a KeyValuePair into it's constituent parts.

    public static void Deconstruct<TKey, TValue>(KeyValuePair<TKey, TValue> pair, TKey& first, TValue& second)\n
    "},{"location":"xmldocs/llama.extensions.keyvaluepairextensions/#type-parameters","title":"Type Parameters","text":"

    TKey Type of the Key

    TValue Type of the Value

    "},{"location":"xmldocs/llama.extensions.keyvaluepairextensions/#parameters","title":"Parameters","text":"

    pair KeyValuePair<TKey, TValue> The KeyValuePair to deconstruct

    first TKey& First element, the Key

    second TValue& Second element, the Value

    "},{"location":"xmldocs/llama.grammars.grammar/","title":"Grammar","text":"

    Namespace: LLama.Grammars

    A grammar is a set of GrammarRules for deciding which characters are valid next. Can be used to constrain output to certain formats - e.g. force the model to output JSON

    public sealed class Grammar\n

    Inheritance Object \u2192 Grammar

    "},{"location":"xmldocs/llama.grammars.grammar/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.grammars.grammar/#startruleindex","title":"StartRuleIndex","text":"

    Index of the initial rule to start from

    public ulong StartRuleIndex { get; set; }\n
    "},{"location":"xmldocs/llama.grammars.grammar/#property-value","title":"Property Value","text":"

    UInt64

    "},{"location":"xmldocs/llama.grammars.grammar/#rules","title":"Rules","text":"

    The rules which make up this grammar

    public IReadOnlyList<GrammarRule> Rules { get; }\n
    "},{"location":"xmldocs/llama.grammars.grammar/#property-value_1","title":"Property Value","text":"

    IReadOnlyList<GrammarRule>

    "},{"location":"xmldocs/llama.grammars.grammar/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.grammars.grammar/#grammarireadonlylistgrammarrule-uint64","title":"Grammar(IReadOnlyList<GrammarRule>, UInt64)","text":"

    Create a new grammar from a set of rules

    public Grammar(IReadOnlyList<GrammarRule> rules, ulong startRuleIndex)\n
    "},{"location":"xmldocs/llama.grammars.grammar/#parameters","title":"Parameters","text":"

    rules IReadOnlyList<GrammarRule> The rules which make up this grammar

    startRuleIndex UInt64 Index of the initial rule to start from

    "},{"location":"xmldocs/llama.grammars.grammar/#exceptions","title":"Exceptions","text":"

    ArgumentOutOfRangeException

    "},{"location":"xmldocs/llama.grammars.grammar/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.grammars.grammar/#createinstance","title":"CreateInstance()","text":"

    Create a SafeLLamaGrammarHandle instance to use for parsing

    public SafeLLamaGrammarHandle CreateInstance()\n
    "},{"location":"xmldocs/llama.grammars.grammar/#returns","title":"Returns","text":"

    SafeLLamaGrammarHandle

    "},{"location":"xmldocs/llama.grammars.grammar/#parsestring-string","title":"Parse(String, String)","text":"

    Parse a string of GGML BNF into a Grammar

    public static Grammar Parse(string gbnf, string startRule)\n
    "},{"location":"xmldocs/llama.grammars.grammar/#parameters_1","title":"Parameters","text":"

    gbnf String The string to parse

    startRule String Name of the start rule of this grammar

    "},{"location":"xmldocs/llama.grammars.grammar/#returns_1","title":"Returns","text":"

    Grammar A Grammar which can be converted into a SafeLLamaGrammarHandle for sampling

    "},{"location":"xmldocs/llama.grammars.grammar/#exceptions_1","title":"Exceptions","text":"

    GrammarFormatException Thrown if input is malformed

    "},{"location":"xmldocs/llama.grammars.grammar/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.grammars.grammar/#returns_2","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.grammars.grammarrule/","title":"GrammarRule","text":"

    Namespace: LLama.Grammars

    A single rule in a Grammar

    public sealed class GrammarRule : System.IEquatable`1[[LLama.Grammars.GrammarRule, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 GrammarRule Implements IEquatable<GrammarRule>

    "},{"location":"xmldocs/llama.grammars.grammarrule/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.grammars.grammarrule/#name","title":"Name","text":"

    Name of this rule

    public string Name { get; }\n
    "},{"location":"xmldocs/llama.grammars.grammarrule/#property-value","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.grammars.grammarrule/#elements","title":"Elements","text":"

    The elements of this grammar rule

    public IReadOnlyList<LLamaGrammarElement> Elements { get; }\n
    "},{"location":"xmldocs/llama.grammars.grammarrule/#property-value_1","title":"Property Value","text":"

    IReadOnlyList<LLamaGrammarElement>

    "},{"location":"xmldocs/llama.grammars.grammarrule/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.grammars.grammarrule/#grammarrulestring-ireadonlylistllamagrammarelement","title":"GrammarRule(String, IReadOnlyList<LLamaGrammarElement>)","text":"

    Create a new GrammarRule containing the given elements

    public GrammarRule(string name, IReadOnlyList<LLamaGrammarElement> elements)\n
    "},{"location":"xmldocs/llama.grammars.grammarrule/#parameters","title":"Parameters","text":"

    name String

    elements IReadOnlyList<LLamaGrammarElement>

    "},{"location":"xmldocs/llama.grammars.grammarrule/#exceptions","title":"Exceptions","text":"

    ArgumentException

    "},{"location":"xmldocs/llama.grammars.grammarrule/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.grammars.grammarrule/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.grammars.grammarrule/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.grammars.grammarrule/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.grammars.grammarrule/#returns_1","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.grammars.grammarrule/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.grammars.grammarrule/#parameters_1","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.grammars.grammarrule/#returns_2","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.grammars.grammarrule/#equalsgrammarrule","title":"Equals(GrammarRule)","text":"
    public bool Equals(GrammarRule other)\n
    "},{"location":"xmldocs/llama.grammars.grammarrule/#parameters_2","title":"Parameters","text":"

    other GrammarRule

    "},{"location":"xmldocs/llama.grammars.grammarrule/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.grammars.grammarrule/#clone","title":"<Clone>$()","text":"
    public GrammarRule <Clone>$()\n
    "},{"location":"xmldocs/llama.grammars.grammarrule/#returns_4","title":"Returns","text":"

    GrammarRule

    "},{"location":"xmldocs/llama.instructexecutor/","title":"InstructExecutor","text":"

    Namespace: LLama

    The LLama executor for instruct mode.

    public class InstructExecutor : StatefulExecutorBase, LLama.Abstractions.ILLamaExecutor\n

    Inheritance Object \u2192 StatefulExecutorBase \u2192 InstructExecutor Implements ILLamaExecutor

    "},{"location":"xmldocs/llama.instructexecutor/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.instructexecutor/#context","title":"Context","text":"

    The context used by the executor.

    public LLamaContext Context { get; }\n
    "},{"location":"xmldocs/llama.instructexecutor/#property-value","title":"Property Value","text":"

    LLamaContext

    "},{"location":"xmldocs/llama.instructexecutor/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.instructexecutor/#instructexecutorllamacontext-string-string","title":"InstructExecutor(LLamaContext, String, String)","text":"
    public InstructExecutor(LLamaContext context, string instructionPrefix, string instructionSuffix)\n
    "},{"location":"xmldocs/llama.instructexecutor/#parameters","title":"Parameters","text":"

    context LLamaContext

    instructionPrefix String

    instructionSuffix String

    "},{"location":"xmldocs/llama.instructexecutor/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.instructexecutor/#getstatedata","title":"GetStateData()","text":"
    public ExecutorBaseState GetStateData()\n
    "},{"location":"xmldocs/llama.instructexecutor/#returns","title":"Returns","text":"

    ExecutorBaseState

    "},{"location":"xmldocs/llama.instructexecutor/#loadstateexecutorbasestate","title":"LoadState(ExecutorBaseState)","text":"
    public void LoadState(ExecutorBaseState data)\n
    "},{"location":"xmldocs/llama.instructexecutor/#parameters_1","title":"Parameters","text":"

    data ExecutorBaseState

    "},{"location":"xmldocs/llama.instructexecutor/#savestatestring","title":"SaveState(String)","text":"
    public void SaveState(string filename)\n
    "},{"location":"xmldocs/llama.instructexecutor/#parameters_2","title":"Parameters","text":"

    filename String

    "},{"location":"xmldocs/llama.instructexecutor/#loadstatestring","title":"LoadState(String)","text":"
    public void LoadState(string filename)\n
    "},{"location":"xmldocs/llama.instructexecutor/#parameters_3","title":"Parameters","text":"

    filename String

    "},{"location":"xmldocs/llama.instructexecutor/#getloopconditioninferstateargs","title":"GetLoopCondition(InferStateArgs)","text":"
    protected bool GetLoopCondition(InferStateArgs args)\n
    "},{"location":"xmldocs/llama.instructexecutor/#parameters_4","title":"Parameters","text":"

    args InferStateArgs

    "},{"location":"xmldocs/llama.instructexecutor/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.instructexecutor/#preprocessinputsstring-inferstateargs","title":"PreprocessInputs(String, InferStateArgs)","text":"
    protected void PreprocessInputs(string text, InferStateArgs args)\n
    "},{"location":"xmldocs/llama.instructexecutor/#parameters_5","title":"Parameters","text":"

    text String

    args InferStateArgs

    "},{"location":"xmldocs/llama.instructexecutor/#postprocessiinferenceparams-inferstateargs-ienumerable1","title":"PostProcess(IInferenceParams, InferStateArgs, IEnumerable`1&)","text":"
    protected bool PostProcess(IInferenceParams inferenceParams, InferStateArgs args, IEnumerable`1& extraOutputs)\n
    "},{"location":"xmldocs/llama.instructexecutor/#parameters_6","title":"Parameters","text":"

    inferenceParams IInferenceParams

    args InferStateArgs

    extraOutputs IEnumerable`1&

    "},{"location":"xmldocs/llama.instructexecutor/#returns_2","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.instructexecutor/#inferinternaliinferenceparams-inferstateargs","title":"InferInternal(IInferenceParams, InferStateArgs)","text":"
    protected void InferInternal(IInferenceParams inferenceParams, InferStateArgs args)\n
    "},{"location":"xmldocs/llama.instructexecutor/#parameters_7","title":"Parameters","text":"

    inferenceParams IInferenceParams

    args InferStateArgs

    "},{"location":"xmldocs/llama.interactiveexecutor/","title":"InteractiveExecutor","text":"

    Namespace: LLama

    The LLama executor for interactive mode.

    public class InteractiveExecutor : StatefulExecutorBase, LLama.Abstractions.ILLamaExecutor\n

    Inheritance Object \u2192 StatefulExecutorBase \u2192 InteractiveExecutor Implements ILLamaExecutor

    "},{"location":"xmldocs/llama.interactiveexecutor/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.interactiveexecutor/#context","title":"Context","text":"

    The context used by the executor.

    public LLamaContext Context { get; }\n
    "},{"location":"xmldocs/llama.interactiveexecutor/#property-value","title":"Property Value","text":"

    LLamaContext

    "},{"location":"xmldocs/llama.interactiveexecutor/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.interactiveexecutor/#interactiveexecutorllamacontext","title":"InteractiveExecutor(LLamaContext)","text":"
    public InteractiveExecutor(LLamaContext context)\n
    "},{"location":"xmldocs/llama.interactiveexecutor/#parameters","title":"Parameters","text":"

    context LLamaContext

    "},{"location":"xmldocs/llama.interactiveexecutor/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.interactiveexecutor/#getstatedata","title":"GetStateData()","text":"
    public ExecutorBaseState GetStateData()\n
    "},{"location":"xmldocs/llama.interactiveexecutor/#returns","title":"Returns","text":"

    ExecutorBaseState

    "},{"location":"xmldocs/llama.interactiveexecutor/#loadstateexecutorbasestate","title":"LoadState(ExecutorBaseState)","text":"
    public void LoadState(ExecutorBaseState data)\n
    "},{"location":"xmldocs/llama.interactiveexecutor/#parameters_1","title":"Parameters","text":"

    data ExecutorBaseState

    "},{"location":"xmldocs/llama.interactiveexecutor/#savestatestring","title":"SaveState(String)","text":"
    public void SaveState(string filename)\n
    "},{"location":"xmldocs/llama.interactiveexecutor/#parameters_2","title":"Parameters","text":"

    filename String

    "},{"location":"xmldocs/llama.interactiveexecutor/#loadstatestring","title":"LoadState(String)","text":"
    public void LoadState(string filename)\n
    "},{"location":"xmldocs/llama.interactiveexecutor/#parameters_3","title":"Parameters","text":"

    filename String

    "},{"location":"xmldocs/llama.interactiveexecutor/#getloopconditioninferstateargs","title":"GetLoopCondition(InferStateArgs)","text":"

    Define whether to continue the loop to generate responses.

    protected bool GetLoopCondition(InferStateArgs args)\n
    "},{"location":"xmldocs/llama.interactiveexecutor/#parameters_4","title":"Parameters","text":"

    args InferStateArgs

    "},{"location":"xmldocs/llama.interactiveexecutor/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.interactiveexecutor/#preprocessinputsstring-inferstateargs","title":"PreprocessInputs(String, InferStateArgs)","text":"
    protected void PreprocessInputs(string text, InferStateArgs args)\n
    "},{"location":"xmldocs/llama.interactiveexecutor/#parameters_5","title":"Parameters","text":"

    text String

    args InferStateArgs

    "},{"location":"xmldocs/llama.interactiveexecutor/#postprocessiinferenceparams-inferstateargs-ienumerable1","title":"PostProcess(IInferenceParams, InferStateArgs, IEnumerable`1&)","text":"

    Return whether to break the generation.

    protected bool PostProcess(IInferenceParams inferenceParams, InferStateArgs args, IEnumerable`1& extraOutputs)\n
    "},{"location":"xmldocs/llama.interactiveexecutor/#parameters_6","title":"Parameters","text":"

    inferenceParams IInferenceParams

    args InferStateArgs

    extraOutputs IEnumerable`1&

    "},{"location":"xmldocs/llama.interactiveexecutor/#returns_2","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.interactiveexecutor/#inferinternaliinferenceparams-inferstateargs","title":"InferInternal(IInferenceParams, InferStateArgs)","text":"
    protected void InferInternal(IInferenceParams inferenceParams, InferStateArgs args)\n
    "},{"location":"xmldocs/llama.interactiveexecutor/#parameters_7","title":"Parameters","text":"

    inferenceParams IInferenceParams

    args InferStateArgs

    "},{"location":"xmldocs/llama.llamacontext/","title":"LLamaContext","text":"

    Namespace: LLama

    A llama_context, which holds all the context required to interact with a model

    public sealed class LLamaContext : System.IDisposable\n

    Inheritance Object \u2192 LLamaContext Implements IDisposable

    "},{"location":"xmldocs/llama.llamacontext/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.llamacontext/#vocabcount","title":"VocabCount","text":"

    Total number of tokens in vocabulary of this model

    public int VocabCount { get; }\n
    "},{"location":"xmldocs/llama.llamacontext/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.llamacontext/#contextsize","title":"ContextSize","text":"

    Total number of tokens in the context

    public int ContextSize { get; }\n
    "},{"location":"xmldocs/llama.llamacontext/#property-value_1","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.llamacontext/#embeddingsize","title":"EmbeddingSize","text":"

    Dimension of embedding vectors

    public int EmbeddingSize { get; }\n
    "},{"location":"xmldocs/llama.llamacontext/#property-value_2","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.llamacontext/#params","title":"Params","text":"

    The model params set for this model.

    public IModelParams Params { get; set; }\n
    "},{"location":"xmldocs/llama.llamacontext/#property-value_3","title":"Property Value","text":"

    IModelParams

    "},{"location":"xmldocs/llama.llamacontext/#nativehandle","title":"NativeHandle","text":"

    The native handle, which is used to be passed to the native APIs

    public SafeLLamaContextHandle NativeHandle { get; }\n
    "},{"location":"xmldocs/llama.llamacontext/#property-value_4","title":"Property Value","text":"

    SafeLLamaContextHandle

    Remarks:

    Be careful how you use this!

    "},{"location":"xmldocs/llama.llamacontext/#encoding","title":"Encoding","text":"

    The encoding set for this model to deal with text input.

    public Encoding Encoding { get; }\n
    "},{"location":"xmldocs/llama.llamacontext/#property-value_5","title":"Property Value","text":"

    Encoding

    "},{"location":"xmldocs/llama.llamacontext/#embeddinglength","title":"EmbeddingLength","text":"

    The embedding length of the model, also known as n_embed

    public int EmbeddingLength { get; }\n
    "},{"location":"xmldocs/llama.llamacontext/#property-value_6","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.llamacontext/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.llamacontext/#llamacontextimodelparams-illamalogger","title":"LLamaContext(IModelParams, ILLamaLogger)","text":""},{"location":"xmldocs/llama.llamacontext/#caution","title":"Caution","text":"

    Use the LLamaWeights.CreateContext instead

    public LLamaContext(IModelParams params, ILLamaLogger logger)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters","title":"Parameters","text":"

    params IModelParams Model params.

    logger ILLamaLogger The logger.

    "},{"location":"xmldocs/llama.llamacontext/#llamacontextllamaweights-imodelparams-illamalogger","title":"LLamaContext(LLamaWeights, IModelParams, ILLamaLogger)","text":"

    Create a new LLamaContext for the given LLamaWeights

    public LLamaContext(LLamaWeights model, IModelParams params, ILLamaLogger logger)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters_1","title":"Parameters","text":"

    model LLamaWeights

    params IModelParams

    logger ILLamaLogger

    "},{"location":"xmldocs/llama.llamacontext/#exceptions","title":"Exceptions","text":"

    ObjectDisposedException

    "},{"location":"xmldocs/llama.llamacontext/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.llamacontext/#clone","title":"Clone()","text":"

    Create a copy of the current state of this context

    public LLamaContext Clone()\n
    "},{"location":"xmldocs/llama.llamacontext/#returns","title":"Returns","text":"

    LLamaContext

    "},{"location":"xmldocs/llama.llamacontext/#tokenizestring-boolean","title":"Tokenize(String, Boolean)","text":"

    Tokenize a string.

    public Int32[] Tokenize(string text, bool addBos)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters_2","title":"Parameters","text":"

    text String

    addBos Boolean Whether to add a bos to the text.

    "},{"location":"xmldocs/llama.llamacontext/#returns_1","title":"Returns","text":"

    Int32[]

    "},{"location":"xmldocs/llama.llamacontext/#detokenizeienumerableint32","title":"DeTokenize(IEnumerable<Int32>)","text":"

    Detokenize the tokens to text.

    public string DeTokenize(IEnumerable<int> tokens)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters_3","title":"Parameters","text":"

    tokens IEnumerable<Int32>

    "},{"location":"xmldocs/llama.llamacontext/#returns_2","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.llamacontext/#savestatestring","title":"SaveState(String)","text":"

    Save the state to specified path.

    public void SaveState(string filename)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters_4","title":"Parameters","text":"

    filename String

    "},{"location":"xmldocs/llama.llamacontext/#getstatedata","title":"GetStateData()","text":""},{"location":"xmldocs/llama.llamacontext/#caution_1","title":"Caution","text":"

    Use GetState instead, this supports larger states (over 2GB)

    Get the state data as a byte array.

    public Byte[] GetStateData()\n
    "},{"location":"xmldocs/llama.llamacontext/#returns_3","title":"Returns","text":"

    Byte[]

    "},{"location":"xmldocs/llama.llamacontext/#getstate","title":"GetState()","text":"

    Get the state data as an opaque handle

    public State GetState()\n
    "},{"location":"xmldocs/llama.llamacontext/#returns_4","title":"Returns","text":"

    State

    "},{"location":"xmldocs/llama.llamacontext/#loadstatestring","title":"LoadState(String)","text":"

    Load the state from specified path.

    public void LoadState(string filename)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters_5","title":"Parameters","text":"

    filename String

    "},{"location":"xmldocs/llama.llamacontext/#exceptions_1","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.llamacontext/#loadstatebyte","title":"LoadState(Byte[])","text":"

    Load the state from memory.

    public void LoadState(Byte[] stateData)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters_6","title":"Parameters","text":"

    stateData Byte[]

    "},{"location":"xmldocs/llama.llamacontext/#exceptions_2","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.llamacontext/#loadstatestate","title":"LoadState(State)","text":"

    Load the state from memory.

    public void LoadState(State state)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters_7","title":"Parameters","text":"

    state State

    "},{"location":"xmldocs/llama.llamacontext/#exceptions_3","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.llamacontext/#samplellamatokendataarray-nullable1-single-mirostattype-single-single-int32-single-single-single-safellamagrammarhandle","title":"Sample(LLamaTokenDataArray, Nullable`1&, Single, MirostatType, Single, Single, Int32, Single, Single, Single, SafeLLamaGrammarHandle)","text":"

    Perform the sampling. Please don't use it unless you fully know what it does.

    public int Sample(LLamaTokenDataArray candidates, Nullable`1& mirostat_mu, float temperature, MirostatType mirostat, float mirostatTau, float mirostatEta, int topK, float topP, float tfsZ, float typicalP, SafeLLamaGrammarHandle grammar)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters_8","title":"Parameters","text":"

    candidates LLamaTokenDataArray

    mirostat_mu Nullable`1&

    temperature Single

    mirostat MirostatType

    mirostatTau Single

    mirostatEta Single

    topK Int32

    topP Single

    tfsZ Single

    typicalP Single

    grammar SafeLLamaGrammarHandle

    "},{"location":"xmldocs/llama.llamacontext/#returns_5","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.llamacontext/#applypenaltyienumerableint32-dictionaryint32-single-int32-single-single-single-boolean","title":"ApplyPenalty(IEnumerable<Int32>, Dictionary<Int32, Single>, Int32, Single, Single, Single, Boolean)","text":"

    Apply the penalty for the tokens. Please don't use it unless you fully know what it does.

    public LLamaTokenDataArray ApplyPenalty(IEnumerable<int> lastTokens, Dictionary<int, float> logitBias, int repeatLastTokensCount, float repeatPenalty, float alphaFrequency, float alphaPresence, bool penalizeNL)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters_9","title":"Parameters","text":"

    lastTokens IEnumerable<Int32>

    logitBias Dictionary<Int32, Single>

    repeatLastTokensCount Int32

    repeatPenalty Single

    alphaFrequency Single

    alphaPresence Single

    penalizeNL Boolean

    "},{"location":"xmldocs/llama.llamacontext/#returns_6","title":"Returns","text":"

    LLamaTokenDataArray

    "},{"location":"xmldocs/llama.llamacontext/#evalint32-int32","title":"Eval(Int32[], Int32)","text":"
    public int Eval(Int32[] tokens, int pastTokensCount)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters_10","title":"Parameters","text":"

    tokens Int32[]

    pastTokensCount Int32

    "},{"location":"xmldocs/llama.llamacontext/#returns_7","title":"Returns","text":"

    Int32 The updated pastTokensCount.

    "},{"location":"xmldocs/llama.llamacontext/#exceptions_4","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.llamacontext/#evallistint32-int32","title":"Eval(List<Int32>, Int32)","text":"
    public int Eval(List<int> tokens, int pastTokensCount)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters_11","title":"Parameters","text":"

    tokens List<Int32>

    pastTokensCount Int32

    "},{"location":"xmldocs/llama.llamacontext/#returns_8","title":"Returns","text":"

    Int32 The updated pastTokensCount.

    "},{"location":"xmldocs/llama.llamacontext/#exceptions_5","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.llamacontext/#evalreadonlymemoryint32-int32","title":"Eval(ReadOnlyMemory<Int32>, Int32)","text":"
    public int Eval(ReadOnlyMemory<int> tokens, int pastTokensCount)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters_12","title":"Parameters","text":"

    tokens ReadOnlyMemory<Int32>

    pastTokensCount Int32

    "},{"location":"xmldocs/llama.llamacontext/#returns_9","title":"Returns","text":"

    Int32 The updated pastTokensCount.

    "},{"location":"xmldocs/llama.llamacontext/#exceptions_6","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.llamacontext/#evalreadonlyspanint32-int32","title":"Eval(ReadOnlySpan<Int32>, Int32)","text":"
    public int Eval(ReadOnlySpan<int> tokens, int pastTokensCount)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters_13","title":"Parameters","text":"

    tokens ReadOnlySpan<Int32>

    pastTokensCount Int32

    "},{"location":"xmldocs/llama.llamacontext/#returns_10","title":"Returns","text":"

    Int32 The updated pastTokensCount.

    "},{"location":"xmldocs/llama.llamacontext/#exceptions_7","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.llamacontext/#generateresultienumerableint32","title":"GenerateResult(IEnumerable<Int32>)","text":"
    internal IEnumerable<string> GenerateResult(IEnumerable<int> ids)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters_14","title":"Parameters","text":"

    ids IEnumerable<Int32>

    "},{"location":"xmldocs/llama.llamacontext/#returns_11","title":"Returns","text":"

    IEnumerable<String>

    "},{"location":"xmldocs/llama.llamacontext/#tokentostringint32","title":"TokenToString(Int32)","text":"

    Convert a token into a string

    public string TokenToString(int token)\n
    "},{"location":"xmldocs/llama.llamacontext/#parameters_15","title":"Parameters","text":"

    token Int32

    "},{"location":"xmldocs/llama.llamacontext/#returns_12","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.llamacontext/#dispose","title":"Dispose()","text":"
    public void Dispose()\n
    "},{"location":"xmldocs/llama.llamaembedder/","title":"LLamaEmbedder","text":"

    Namespace: LLama

    The embedder for LLama, which supports getting embeddings from text.

    public sealed class LLamaEmbedder : System.IDisposable\n

    Inheritance Object \u2192 LLamaEmbedder Implements IDisposable

    "},{"location":"xmldocs/llama.llamaembedder/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.llamaembedder/#embeddingsize","title":"EmbeddingSize","text":"

    Dimension of embedding vectors

    public int EmbeddingSize { get; }\n
    "},{"location":"xmldocs/llama.llamaembedder/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.llamaembedder/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.llamaembedder/#llamaembedderimodelparams","title":"LLamaEmbedder(IModelParams)","text":"
    public LLamaEmbedder(IModelParams params)\n
    "},{"location":"xmldocs/llama.llamaembedder/#parameters","title":"Parameters","text":"

    params IModelParams

    "},{"location":"xmldocs/llama.llamaembedder/#llamaembedderllamaweights-imodelparams","title":"LLamaEmbedder(LLamaWeights, IModelParams)","text":"
    public LLamaEmbedder(LLamaWeights weights, IModelParams params)\n
    "},{"location":"xmldocs/llama.llamaembedder/#parameters_1","title":"Parameters","text":"

    weights LLamaWeights

    params IModelParams

    "},{"location":"xmldocs/llama.llamaembedder/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.llamaembedder/#getembeddingsstring-int32-boolean-string","title":"GetEmbeddings(String, Int32, Boolean, String)","text":""},{"location":"xmldocs/llama.llamaembedder/#caution","title":"Caution","text":"

    'threads' and 'encoding' parameters are no longer used

    Get the embeddings of the text.

    public Single[] GetEmbeddings(string text, int threads, bool addBos, string encoding)\n
    "},{"location":"xmldocs/llama.llamaembedder/#parameters_2","title":"Parameters","text":"

    text String

    threads Int32 unused

    addBos Boolean Add bos to the text.

    encoding String unused

    "},{"location":"xmldocs/llama.llamaembedder/#returns","title":"Returns","text":"

    Single[]

    "},{"location":"xmldocs/llama.llamaembedder/#exceptions","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.llamaembedder/#getembeddingsstring","title":"GetEmbeddings(String)","text":"

    Get the embeddings of the text.

    public Single[] GetEmbeddings(string text)\n
    "},{"location":"xmldocs/llama.llamaembedder/#parameters_3","title":"Parameters","text":"

    text String

    "},{"location":"xmldocs/llama.llamaembedder/#returns_1","title":"Returns","text":"

    Single[]

    "},{"location":"xmldocs/llama.llamaembedder/#exceptions_1","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.llamaembedder/#getembeddingsstring-boolean","title":"GetEmbeddings(String, Boolean)","text":"

    Get the embeddings of the text.

    public Single[] GetEmbeddings(string text, bool addBos)\n
    "},{"location":"xmldocs/llama.llamaembedder/#parameters_4","title":"Parameters","text":"

    text String

    addBos Boolean Add bos to the text.

    "},{"location":"xmldocs/llama.llamaembedder/#returns_2","title":"Returns","text":"

    Single[]

    "},{"location":"xmldocs/llama.llamaembedder/#exceptions_2","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.llamaembedder/#dispose","title":"Dispose()","text":"
    public void Dispose()\n
    "},{"location":"xmldocs/llama.llamaquantizer/","title":"LLamaQuantizer","text":"

    Namespace: LLama

    The quantizer to quantize the model.

    public static class LLamaQuantizer\n

    Inheritance Object \u2192 LLamaQuantizer

    "},{"location":"xmldocs/llama.llamaquantizer/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.llamaquantizer/#quantizestring-string-llamaftype-int32-boolean-boolean","title":"Quantize(String, String, LLamaFtype, Int32, Boolean, Boolean)","text":"

    Quantize the model.

    public static bool Quantize(string srcFileName, string dstFilename, LLamaFtype ftype, int nthread, bool allowRequantize, bool quantizeOutputTensor)\n
    "},{"location":"xmldocs/llama.llamaquantizer/#parameters","title":"Parameters","text":"

    srcFileName String The model file to be quantized.

    dstFilename String The path to save the quantized model.

    ftype LLamaFtype The type of quantization.

    nthread Int32 Thread to be used during the quantization. By default it's the physical core number.

    allowRequantize Boolean

    quantizeOutputTensor Boolean

    "},{"location":"xmldocs/llama.llamaquantizer/#returns","title":"Returns","text":"

    Boolean Whether the quantization is successful.

    "},{"location":"xmldocs/llama.llamaquantizer/#exceptions","title":"Exceptions","text":"

    ArgumentException

    "},{"location":"xmldocs/llama.llamaquantizer/#quantizestring-string-string-int32-boolean-boolean","title":"Quantize(String, String, String, Int32, Boolean, Boolean)","text":"

    Quantize the model.

    public static bool Quantize(string srcFileName, string dstFilename, string ftype, int nthread, bool allowRequantize, bool quantizeOutputTensor)\n
    "},{"location":"xmldocs/llama.llamaquantizer/#parameters_1","title":"Parameters","text":"

    srcFileName String The model file to be quantized.

    dstFilename String The path to save the quantized model.

    ftype String The type of quantization.

    nthread Int32 Thread to be used during the quantization. By default it's the physical core number.

    allowRequantize Boolean

    quantizeOutputTensor Boolean

    "},{"location":"xmldocs/llama.llamaquantizer/#returns_1","title":"Returns","text":"

    Boolean Whether the quantization is successful.

    "},{"location":"xmldocs/llama.llamaquantizer/#exceptions_1","title":"Exceptions","text":"

    ArgumentException

    "},{"location":"xmldocs/llama.llamatransforms/","title":"LLamaTransforms","text":"

    Namespace: LLama

    A class that contains all the transforms provided internally by LLama.

    public class LLamaTransforms\n

    Inheritance Object \u2192 LLamaTransforms

    "},{"location":"xmldocs/llama.llamatransforms/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.llamatransforms/#llamatransforms_1","title":"LLamaTransforms()","text":"
    public LLamaTransforms()\n
    "},{"location":"xmldocs/llama.llamaweights/","title":"LLamaWeights","text":"

    Namespace: LLama

    A set of model weights, loaded into memory.

    public sealed class LLamaWeights : System.IDisposable\n

    Inheritance Object \u2192 LLamaWeights Implements IDisposable

    "},{"location":"xmldocs/llama.llamaweights/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.llamaweights/#nativehandle","title":"NativeHandle","text":"

    The native handle, which is used in the native APIs

    public SafeLlamaModelHandle NativeHandle { get; }\n
    "},{"location":"xmldocs/llama.llamaweights/#property-value","title":"Property Value","text":"

    SafeLlamaModelHandle

    Remarks:

    Be careful how you use this!

    "},{"location":"xmldocs/llama.llamaweights/#encoding","title":"Encoding","text":"

    Encoding to use to convert text into bytes for the model

    public Encoding Encoding { get; }\n
    "},{"location":"xmldocs/llama.llamaweights/#property-value_1","title":"Property Value","text":"

    Encoding

    "},{"location":"xmldocs/llama.llamaweights/#vocabcount","title":"VocabCount","text":"

    Total number of tokens in vocabulary of this model

    public int VocabCount { get; }\n
    "},{"location":"xmldocs/llama.llamaweights/#property-value_2","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.llamaweights/#contextsize","title":"ContextSize","text":"

    Total number of tokens in the context

    public int ContextSize { get; }\n
    "},{"location":"xmldocs/llama.llamaweights/#property-value_3","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.llamaweights/#embeddingsize","title":"EmbeddingSize","text":"

    Dimension of embedding vectors

    public int EmbeddingSize { get; }\n
    "},{"location":"xmldocs/llama.llamaweights/#property-value_4","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.llamaweights/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.llamaweights/#loadfromfileimodelparams","title":"LoadFromFile(IModelParams)","text":"

    Load weights into memory

    public static LLamaWeights LoadFromFile(IModelParams params)\n
    "},{"location":"xmldocs/llama.llamaweights/#parameters","title":"Parameters","text":"

    params IModelParams

    "},{"location":"xmldocs/llama.llamaweights/#returns","title":"Returns","text":"

    LLamaWeights

    "},{"location":"xmldocs/llama.llamaweights/#dispose","title":"Dispose()","text":"
    public void Dispose()\n
    "},{"location":"xmldocs/llama.llamaweights/#createcontextimodelparams","title":"CreateContext(IModelParams)","text":"

    Create a llama_context using this model

    public LLamaContext CreateContext(IModelParams params)\n
    "},{"location":"xmldocs/llama.llamaweights/#parameters_1","title":"Parameters","text":"

    params IModelParams

    "},{"location":"xmldocs/llama.llamaweights/#returns_1","title":"Returns","text":"

    LLamaContext

    "},{"location":"xmldocs/llama.native.llamacontextparams/","title":"LLamaContextParams","text":"

    Namespace: LLama.Native

    A C# representation of the llama.cpp llama_context_params struct

    public struct LLamaContextParams\n

    Inheritance Object \u2192 ValueType \u2192 LLamaContextParams

    "},{"location":"xmldocs/llama.native.llamacontextparams/#fields","title":"Fields","text":""},{"location":"xmldocs/llama.native.llamacontextparams/#seed","title":"seed","text":"

    RNG seed, -1 for random

    public int seed;\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#n_ctx","title":"n_ctx","text":"

    text context

    public int n_ctx;\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#n_batch","title":"n_batch","text":"

    prompt processing batch size

    public int n_batch;\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#n_gpu_layers","title":"n_gpu_layers","text":"

    number of layers to store in VRAM

    public int n_gpu_layers;\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#main_gpu","title":"main_gpu","text":"

    the GPU that is used for scratch and small tensors

    public int main_gpu;\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#tensor_split","title":"tensor_split","text":"

    how to split layers across multiple GPUs

    public IntPtr tensor_split;\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#rope_freq_base","title":"rope_freq_base","text":"

    ref: https://github.com/ggerganov/llama.cpp/pull/2054 RoPE base frequency

    public float rope_freq_base;\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#rope_freq_scale","title":"rope_freq_scale","text":"

    ref: https://github.com/ggerganov/llama.cpp/pull/2054 RoPE frequency scaling factor

    public float rope_freq_scale;\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#progress_callback","title":"progress_callback","text":"

    called with a progress value between 0 and 1, pass NULL to disable

    public IntPtr progress_callback;\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#progress_callback_user_data","title":"progress_callback_user_data","text":"

    context pointer passed to the progress callback

    public IntPtr progress_callback_user_data;\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.native.llamacontextparams/#low_vram","title":"low_vram","text":"

    if true, reduce VRAM usage at the cost of performance

    public bool low_vram { get; set; }\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#property-value","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.llamacontextparams/#mul_mat_q","title":"mul_mat_q","text":"

    if true, use experimental mul_mat_q kernels

    public bool mul_mat_q { get; set; }\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#property-value_1","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.llamacontextparams/#f16_kv","title":"f16_kv","text":"

    use fp16 for KV cache

    public bool f16_kv { get; set; }\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#property-value_2","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.llamacontextparams/#logits_all","title":"logits_all","text":"

    the llama_eval() call computes all logits, not just the last one

    public bool logits_all { get; set; }\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#property-value_3","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.llamacontextparams/#vocab_only","title":"vocab_only","text":"

    only load the vocabulary, no weights

    public bool vocab_only { get; set; }\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#property-value_4","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.llamacontextparams/#use_mmap","title":"use_mmap","text":"

    use mmap if possible

    public bool use_mmap { get; set; }\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#property-value_5","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.llamacontextparams/#use_mlock","title":"use_mlock","text":"

    force system to keep model in RAM

    public bool use_mlock { get; set; }\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#property-value_6","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.llamacontextparams/#embedding","title":"embedding","text":"

    embedding mode only

    public bool embedding { get; set; }\n
    "},{"location":"xmldocs/llama.native.llamacontextparams/#property-value_7","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.llamaftype/","title":"LLamaFtype","text":"

    Namespace: LLama.Native

    Supported model file types

    public enum LLamaFtype\n

    Inheritance Object \u2192 ValueType \u2192 Enum \u2192 LLamaFtype Implements IComparable, IFormattable, IConvertible

    "},{"location":"xmldocs/llama.native.llamaftype/#fields","title":"Fields","text":"Name Value Description LLAMA_FTYPE_ALL_F32 0 All f32 LLAMA_FTYPE_MOSTLY_F16 1 Mostly f16 LLAMA_FTYPE_MOSTLY_Q8_0 7 Mostly 8 bit LLAMA_FTYPE_MOSTLY_Q4_0 2 Mostly 4 bit LLAMA_FTYPE_MOSTLY_Q4_1 3 Mostly 4 bit LLAMA_FTYPE_MOSTLY_Q4_1_SOME_F16 4 Mostly 4 bit, tok_embeddings.weight and output.weight are f16 LLAMA_FTYPE_MOSTLY_Q5_0 8 Mostly 5 bit LLAMA_FTYPE_MOSTLY_Q5_1 9 Mostly 5 bit LLAMA_FTYPE_MOSTLY_Q2_K 10 K-Quant 2 bit LLAMA_FTYPE_MOSTLY_Q3_K_S 11 K-Quant 3 bit (Small) LLAMA_FTYPE_MOSTLY_Q3_K_M 12 K-Quant 3 bit (Medium) LLAMA_FTYPE_MOSTLY_Q3_K_L 13 K-Quant 3 bit (Large) LLAMA_FTYPE_MOSTLY_Q4_K_S 14 K-Quant 4 bit (Small) LLAMA_FTYPE_MOSTLY_Q4_K_M 15 K-Quant 4 bit (Medium) LLAMA_FTYPE_MOSTLY_Q5_K_S 16 K-Quant 5 bit (Small) LLAMA_FTYPE_MOSTLY_Q5_K_M 17 K-Quant 5 bit (Medium) LLAMA_FTYPE_MOSTLY_Q6_K 18 K-Quant 6 bit LLAMA_FTYPE_GUESSED 1024 File type was not specified"},{"location":"xmldocs/llama.native.llamagrammarelement/","title":"LLamaGrammarElement","text":"

    Namespace: LLama.Native

    An element of a grammar

    public struct LLamaGrammarElement\n

    Inheritance Object \u2192 ValueType \u2192 LLamaGrammarElement Implements IEquatable<LLamaGrammarElement>

    "},{"location":"xmldocs/llama.native.llamagrammarelement/#fields","title":"Fields","text":""},{"location":"xmldocs/llama.native.llamagrammarelement/#type","title":"Type","text":"

    The type of this element

    public LLamaGrammarElementType Type;\n
    "},{"location":"xmldocs/llama.native.llamagrammarelement/#value","title":"Value","text":"

    Unicode code point or rule ID

    public uint Value;\n
    "},{"location":"xmldocs/llama.native.llamagrammarelement/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.native.llamagrammarelement/#llamagrammarelementllamagrammarelementtype-uint32","title":"LLamaGrammarElement(LLamaGrammarElementType, UInt32)","text":"

    Construct a new LLamaGrammarElement

    LLamaGrammarElement(LLamaGrammarElementType type, uint value)\n
    "},{"location":"xmldocs/llama.native.llamagrammarelement/#parameters","title":"Parameters","text":"

    type LLamaGrammarElementType

    value UInt32

    "},{"location":"xmldocs/llama.native.llamagrammarelement/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.native.llamagrammarelement/#equalsllamagrammarelement","title":"Equals(LLamaGrammarElement)","text":"
    bool Equals(LLamaGrammarElement other)\n
    "},{"location":"xmldocs/llama.native.llamagrammarelement/#parameters_1","title":"Parameters","text":"

    other LLamaGrammarElement

    "},{"location":"xmldocs/llama.native.llamagrammarelement/#returns","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.llamagrammarelement/#equalsobject","title":"Equals(Object)","text":"
    bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.native.llamagrammarelement/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.native.llamagrammarelement/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.llamagrammarelement/#gethashcode","title":"GetHashCode()","text":"
    int GetHashCode()\n
    "},{"location":"xmldocs/llama.native.llamagrammarelement/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.llamagrammarelement/#ischarelement","title":"IsCharElement()","text":"
    bool IsCharElement()\n
    "},{"location":"xmldocs/llama.native.llamagrammarelement/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.llamagrammarelementtype/","title":"LLamaGrammarElementType","text":"

    Namespace: LLama.Native

    grammar element type

    public enum LLamaGrammarElementType\n

    Inheritance Object \u2192 ValueType \u2192 Enum \u2192 LLamaGrammarElementType Implements IComparable, IFormattable, IConvertible

    "},{"location":"xmldocs/llama.native.llamagrammarelementtype/#fields","title":"Fields","text":"Name Value Description END 0 end of rule definition ALT 1 start of alternate definition for rule RULE_REF 2 non-terminal element: reference to rule CHAR 3 terminal element: character (code point) CHAR_NOT 4 inverse char(s) ([^a], [^a-b] [^abc]) CHAR_RNG_UPPER 5 modifies a preceding CHAR or CHAR_ALT to be an inclusive range ([a-z]) CHAR_ALT 6 modifies a preceding CHAR or CHAR_RNG_UPPER to add an alternate char to match ([ab], [a-zA])"},{"location":"xmldocs/llama.native.llamamodelquantizeparams/","title":"LLamaModelQuantizeParams","text":"

    Namespace: LLama.Native

    Quantizer parameters used in the native API

    public struct LLamaModelQuantizeParams\n

    Inheritance Object \u2192 ValueType \u2192 LLamaModelQuantizeParams

    "},{"location":"xmldocs/llama.native.llamamodelquantizeparams/#fields","title":"Fields","text":""},{"location":"xmldocs/llama.native.llamamodelquantizeparams/#nthread","title":"nthread","text":"

    number of threads to use for quantizing, if <=0 will use std::thread::hardware_concurrency()

    public int nthread;\n
    "},{"location":"xmldocs/llama.native.llamamodelquantizeparams/#ftype","title":"ftype","text":"

    quantize to this llama_ftype

    public LLamaFtype ftype;\n
    "},{"location":"xmldocs/llama.native.llamamodelquantizeparams/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.native.llamamodelquantizeparams/#allow_requantize","title":"allow_requantize","text":"

    allow quantizing non-f32/f16 tensors

    public bool allow_requantize { get; set; }\n
    "},{"location":"xmldocs/llama.native.llamamodelquantizeparams/#property-value","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.llamamodelquantizeparams/#quantize_output_tensor","title":"quantize_output_tensor","text":"

    quantize output.weight

    public bool quantize_output_tensor { get; set; }\n
    "},{"location":"xmldocs/llama.native.llamamodelquantizeparams/#property-value_1","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.llamatokendata/","title":"LLamaTokenData","text":"

    Namespace: LLama.Native

    public struct LLamaTokenData\n

    Inheritance Object \u2192 ValueType \u2192 LLamaTokenData

    "},{"location":"xmldocs/llama.native.llamatokendata/#fields","title":"Fields","text":""},{"location":"xmldocs/llama.native.llamatokendata/#id","title":"id","text":"

    token id

    public int id;\n
    "},{"location":"xmldocs/llama.native.llamatokendata/#logit","title":"logit","text":"

    log-odds of the token

    public float logit;\n
    "},{"location":"xmldocs/llama.native.llamatokendata/#p","title":"p","text":"

    probability of the token

    public float p;\n
    "},{"location":"xmldocs/llama.native.llamatokendata/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.native.llamatokendata/#llamatokendataint32-single-single","title":"LLamaTokenData(Int32, Single, Single)","text":"
    LLamaTokenData(int id, float logit, float p)\n
    "},{"location":"xmldocs/llama.native.llamatokendata/#parameters","title":"Parameters","text":"

    id Int32

    logit Single

    p Single

    "},{"location":"xmldocs/llama.native.llamatokendataarray/","title":"LLamaTokenDataArray","text":"

    Namespace: LLama.Native

    Contains an array of LLamaTokenData, potentially sorted.

    public struct LLamaTokenDataArray\n

    Inheritance Object \u2192 ValueType \u2192 LLamaTokenDataArray

    "},{"location":"xmldocs/llama.native.llamatokendataarray/#fields","title":"Fields","text":""},{"location":"xmldocs/llama.native.llamatokendataarray/#data","title":"data","text":"

    The LLamaTokenData

    public Memory<LLamaTokenData> data;\n
    "},{"location":"xmldocs/llama.native.llamatokendataarray/#sorted","title":"sorted","text":"

    Indicates if data is sorted by logits in descending order. If this is false the token data is in no particular order.

    public bool sorted;\n
    "},{"location":"xmldocs/llama.native.llamatokendataarray/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.native.llamatokendataarray/#llamatokendataarraymemoryllamatokendata-boolean","title":"LLamaTokenDataArray(Memory<LLamaTokenData>, Boolean)","text":"

    Create a new LLamaTokenDataArray

    LLamaTokenDataArray(Memory<LLamaTokenData> tokens, bool isSorted)\n
    "},{"location":"xmldocs/llama.native.llamatokendataarray/#parameters","title":"Parameters","text":"

    tokens Memory<LLamaTokenData>

    isSorted Boolean

    "},{"location":"xmldocs/llama.native.llamatokendataarray/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.native.llamatokendataarray/#createreadonlyspansingle","title":"Create(ReadOnlySpan<Single>)","text":"

    Create a new LLamaTokenDataArray, copying the data from the given logits

    LLamaTokenDataArray Create(ReadOnlySpan<float> logits)\n
    "},{"location":"xmldocs/llama.native.llamatokendataarray/#parameters_1","title":"Parameters","text":"

    logits ReadOnlySpan<Single>

    "},{"location":"xmldocs/llama.native.llamatokendataarray/#returns","title":"Returns","text":"

    LLamaTokenDataArray

    "},{"location":"xmldocs/llama.native.llamatokendataarraynative/","title":"LLamaTokenDataArrayNative","text":"

    Namespace: LLama.Native

    Contains a pointer to an array of LLamaTokenData which is pinned in memory.

    public struct LLamaTokenDataArrayNative\n

    Inheritance Object \u2192 ValueType \u2192 LLamaTokenDataArrayNative

    "},{"location":"xmldocs/llama.native.llamatokendataarraynative/#fields","title":"Fields","text":""},{"location":"xmldocs/llama.native.llamatokendataarraynative/#data","title":"data","text":"

    A pointer to an array of LlamaTokenData

    public IntPtr data;\n

    Remarks:

    Memory must be pinned in place for all the time this LLamaTokenDataArrayNative is in use

    "},{"location":"xmldocs/llama.native.llamatokendataarraynative/#size","title":"size","text":"

    Number of LLamaTokenData in the array

    public ulong size;\n
    "},{"location":"xmldocs/llama.native.llamatokendataarraynative/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.native.llamatokendataarraynative/#sorted","title":"sorted","text":"

    Indicates if the items in the array are sorted

    public bool sorted { get; set; }\n
    "},{"location":"xmldocs/llama.native.llamatokendataarraynative/#property-value","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.llamatokendataarraynative/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.native.llamatokendataarraynative/#createllamatokendataarray-llamatokendataarraynative","title":"Create(LLamaTokenDataArray, LLamaTokenDataArrayNative&)","text":"

    Create a new LLamaTokenDataArrayNative around the data in the LLamaTokenDataArray

    MemoryHandle Create(LLamaTokenDataArray array, LLamaTokenDataArrayNative& native)\n
    "},{"location":"xmldocs/llama.native.llamatokendataarraynative/#parameters","title":"Parameters","text":"

    array LLamaTokenDataArray Data source

    native LLamaTokenDataArrayNative& Created native array

    "},{"location":"xmldocs/llama.native.llamatokendataarraynative/#returns","title":"Returns","text":"

    MemoryHandle A memory handle, pinning the data in place until disposed

    "},{"location":"xmldocs/llama.native.nativeapi/","title":"NativeApi","text":"

    Namespace: LLama.Native

    Direct translation of the llama.cpp API

    public class NativeApi\n

    Inheritance Object \u2192 NativeApi

    "},{"location":"xmldocs/llama.native.nativeapi/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.native.nativeapi/#nativeapi_1","title":"NativeApi()","text":"
    public NativeApi()\n
    "},{"location":"xmldocs/llama.native.nativeapi/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.native.nativeapi/#llama_sample_token_mirostatsafellamacontexthandle-llamatokendataarraynative-single-single-int32-single","title":"llama_sample_token_mirostat(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Single, Single, Int32, Single&)","text":"

    Mirostat 1.0 algorithm described in the paper https://arxiv.org/abs/2007.14966. Uses tokens instead of words.

    public static int llama_sample_token_mirostat(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, float tau, float eta, int m, Single& mu)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArrayNative& A vector of llama_token_data containing the candidate tokens, their probabilities (p), and log-odds (logit) for the current position in the generated text.

    tau Single The target cross-entropy (or surprise) value you want to achieve for the generated text. A higher value corresponds to more surprising or less predictable text, while a lower value corresponds to less surprising or more predictable text.

    eta Single The learning rate used to update mu based on the error between the target and observed surprisal of the sampled word. A larger learning rate will cause mu to be updated more quickly, while a smaller learning rate will result in slower updates.

    m Int32 The number of tokens considered in the estimation of s_hat. This is an arbitrary value that is used to calculate s_hat, which in turn helps to calculate the value of k. In the paper, they use m = 100, but you can experiment with different values to see how it affects the performance of the algorithm.

    mu Single& Maximum cross-entropy. This value is initialized to be twice the target cross-entropy (2 * tau) and is updated in the algorithm based on the error between the target and observed surprisal.

    "},{"location":"xmldocs/llama.native.nativeapi/#returns","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_sample_token_mirostat_v2safellamacontexthandle-llamatokendataarraynative-single-single-single","title":"llama_sample_token_mirostat_v2(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Single, Single, Single&)","text":"

    Mirostat 2.0 algorithm described in the paper https://arxiv.org/abs/2007.14966. Uses tokens instead of words.

    public static int llama_sample_token_mirostat_v2(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, float tau, float eta, Single& mu)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_1","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArrayNative& A vector of llama_token_data containing the candidate tokens, their probabilities (p), and log-odds (logit) for the current position in the generated text.

    tau Single The target cross-entropy (or surprise) value you want to achieve for the generated text. A higher value corresponds to more surprising or less predictable text, while a lower value corresponds to less surprising or more predictable text.

    eta Single The learning rate used to update mu based on the error between the target and observed surprisal of the sampled word. A larger learning rate will cause mu to be updated more quickly, while a smaller learning rate will result in slower updates.

    mu Single& Maximum cross-entropy. This value is initialized to be twice the target cross-entropy (2 * tau) and is updated in the algorithm based on the error between the target and observed surprisal.

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_1","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_sample_token_greedysafellamacontexthandle-llamatokendataarraynative","title":"llama_sample_token_greedy(SafeLLamaContextHandle, LLamaTokenDataArrayNative&)","text":"

    Selects the token with the highest probability.

    public static int llama_sample_token_greedy(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_2","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArrayNative& Pointer to LLamaTokenDataArray

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_sample_tokensafellamacontexthandle-llamatokendataarraynative","title":"llama_sample_token(SafeLLamaContextHandle, LLamaTokenDataArrayNative&)","text":"

    Randomly selects a token from the candidates based on their probabilities.

    public static int llama_sample_token(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_3","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArrayNative& Pointer to LLamaTokenDataArray

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_3","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_token_to_strsafellamacontexthandle-int32","title":"llama_token_to_str(SafeLLamaContextHandle, Int32)","text":"

    Token Id -> String. Uses the vocabulary in the provided context

    public static IntPtr llama_token_to_str(SafeLLamaContextHandle ctx, int token)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_4","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    token Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_4","title":"Returns","text":"

    IntPtr Pointer to a string.

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_token_bossafellamacontexthandle","title":"llama_token_bos(SafeLLamaContextHandle)","text":"

    Get the \"Beginning of sentence\" token

    public static int llama_token_bos(SafeLLamaContextHandle ctx)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_5","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_5","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_token_eossafellamacontexthandle","title":"llama_token_eos(SafeLLamaContextHandle)","text":"

    Get the \"End of sentence\" token

    public static int llama_token_eos(SafeLLamaContextHandle ctx)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_6","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_6","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_token_nlsafellamacontexthandle","title":"llama_token_nl(SafeLLamaContextHandle)","text":"

    Get the \"new line\" token

    public static int llama_token_nl(SafeLLamaContextHandle ctx)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_7","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_7","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_print_timingssafellamacontexthandle","title":"llama_print_timings(SafeLLamaContextHandle)","text":"

    Print out timing information for this context

    public static void llama_print_timings(SafeLLamaContextHandle ctx)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_8","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_reset_timingssafellamacontexthandle","title":"llama_reset_timings(SafeLLamaContextHandle)","text":"

    Reset all collected timing information for this context

    public static void llama_reset_timings(SafeLLamaContextHandle ctx)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_9","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_print_system_info","title":"llama_print_system_info()","text":"

    Print system information

    public static IntPtr llama_print_system_info()\n
    "},{"location":"xmldocs/llama.native.nativeapi/#returns_8","title":"Returns","text":"

    IntPtr

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_model_n_vocabsafellamamodelhandle","title":"llama_model_n_vocab(SafeLlamaModelHandle)","text":"

    Get the number of tokens in the model vocabulary

    public static int llama_model_n_vocab(SafeLlamaModelHandle model)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_10","title":"Parameters","text":"

    model SafeLlamaModelHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_9","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_model_n_ctxsafellamamodelhandle","title":"llama_model_n_ctx(SafeLlamaModelHandle)","text":"

    Get the size of the context window for the model

    public static int llama_model_n_ctx(SafeLlamaModelHandle model)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_11","title":"Parameters","text":"

    model SafeLlamaModelHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_10","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_model_n_embdsafellamamodelhandle","title":"llama_model_n_embd(SafeLlamaModelHandle)","text":"

    Get the dimension of embedding vectors from this model

    public static int llama_model_n_embd(SafeLlamaModelHandle model)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_12","title":"Parameters","text":"

    model SafeLlamaModelHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_11","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_token_to_piece_with_modelsafellamamodelhandle-int32-byte-int32","title":"llama_token_to_piece_with_model(SafeLlamaModelHandle, Int32, Byte*, Int32)","text":"

    Convert a single token into text

    public static int llama_token_to_piece_with_model(SafeLlamaModelHandle model, int llamaToken, Byte* buffer, int length)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_13","title":"Parameters","text":"

    model SafeLlamaModelHandle

    llamaToken Int32

    buffer Byte* buffer to write string into

    length Int32 size of the buffer

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_12","title":"Returns","text":"

    Int32 The length writte, or if the buffer is too small a negative that indicates the length required

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_tokenize_with_modelsafellamamodelhandle-byte-int32-int32-boolean","title":"llama_tokenize_with_model(SafeLlamaModelHandle, Byte, Int32, Int32, Boolean)","text":"

    Convert text into tokens

    public static int llama_tokenize_with_model(SafeLlamaModelHandle model, Byte* text, Int32* tokens, int n_max_tokens, bool add_bos)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_14","title":"Parameters","text":"

    model SafeLlamaModelHandle

    text Byte*

    tokens Int32*

    n_max_tokens Int32

    add_bos Boolean

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_13","title":"Returns","text":"

    Int32 Returns the number of tokens on success, no more than n_max_tokens. Returns a negative number on failure - the number of tokens that would have been returned

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_log_setllamalogcallback","title":"llama_log_set(LLamaLogCallback)","text":"

    Register a callback to receive llama log messages

    public static void llama_log_set(LLamaLogCallback logCallback)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_15","title":"Parameters","text":"

    logCallback LLamaLogCallback

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_grammar_initllamagrammarelement-uint64-uint64","title":"llama_grammar_init(LLamaGrammarElement, UInt64, UInt64)**","text":"

    Create a new grammar from the given set of grammar rules

    public static IntPtr llama_grammar_init(LLamaGrammarElement** rules, ulong n_rules, ulong start_rule_index)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_16","title":"Parameters","text":"

    rules LLamaGrammarElement**

    n_rules UInt64

    start_rule_index UInt64

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_14","title":"Returns","text":"

    IntPtr

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_grammar_freeintptr","title":"llama_grammar_free(IntPtr)","text":"

    Free all memory from the given SafeLLamaGrammarHandle

    public static void llama_grammar_free(IntPtr grammar)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_17","title":"Parameters","text":"

    grammar IntPtr

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_sample_grammarsafellamacontexthandle-llamatokendataarraynative-safellamagrammarhandle","title":"llama_sample_grammar(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, SafeLLamaGrammarHandle)","text":"

    Apply constraints from grammar

    public static void llama_sample_grammar(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, SafeLLamaGrammarHandle grammar)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_18","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArrayNative&

    grammar SafeLLamaGrammarHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_grammar_accept_tokensafellamacontexthandle-safellamagrammarhandle-int32","title":"llama_grammar_accept_token(SafeLLamaContextHandle, SafeLLamaGrammarHandle, Int32)","text":"

    Accepts the sampled token into the grammar

    public static void llama_grammar_accept_token(SafeLLamaContextHandle ctx, SafeLLamaGrammarHandle grammar, int token)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_19","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    grammar SafeLLamaGrammarHandle

    token Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_model_quantizestring-string-llamamodelquantizeparams","title":"llama_model_quantize(String, String, LLamaModelQuantizeParams*)","text":"

    Returns 0 on success

    public static int llama_model_quantize(string fname_inp, string fname_out, LLamaModelQuantizeParams* param)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_20","title":"Parameters","text":"

    fname_inp String

    fname_out String

    param LLamaModelQuantizeParams*

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_15","title":"Returns","text":"

    Int32 Returns 0 on success

    Remarks:

    not great API - very likely to change

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_sample_classifier_free_guidancesafellamacontexthandle-llamatokendataarraynative-safellamacontexthandle-single","title":"llama_sample_classifier_free_guidance(SafeLLamaContextHandle, LLamaTokenDataArrayNative, SafeLLamaContextHandle, Single)","text":"

    Apply classifier-free guidance to the logits as described in academic paper \"Stay on topic with Classifier-Free Guidance\" https://arxiv.org/abs/2306.17806

    public static void llama_sample_classifier_free_guidance(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative candidates, SafeLLamaContextHandle guidanceCtx, float scale)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_21","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArrayNative A vector of llama_token_data containing the candidate tokens, the logits must be directly extracted from the original generation context without being sorted.

    guidanceCtx SafeLLamaContextHandle A separate context from the same model. Other than a negative prompt at the beginning, it should have all generated and user input tokens copied from the main context.

    scale Single Guidance strength. 1.0f means no guidance. Higher values mean stronger guidance.

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_sample_repetition_penaltysafellamacontexthandle-llamatokendataarraynative-int32-uint64-single","title":"llama_sample_repetition_penalty(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Int32*, UInt64, Single)","text":"

    Repetition penalty described in CTRL academic paper https://arxiv.org/abs/1909.05858, with negative logit fix.

    public static void llama_sample_repetition_penalty(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, Int32* last_tokens, ulong last_tokens_size, float penalty)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_22","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArrayNative& Pointer to LLamaTokenDataArray

    last_tokens Int32*

    last_tokens_size UInt64

    penalty Single

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_sample_frequency_and_presence_penaltiessafellamacontexthandle-llamatokendataarraynative-int32-uint64-single-single","title":"llama_sample_frequency_and_presence_penalties(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Int32*, UInt64, Single, Single)","text":"

    Frequency and presence penalties described in OpenAI API https://platform.openai.com/docs/api-reference/parameter-details.

    public static void llama_sample_frequency_and_presence_penalties(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, Int32* last_tokens, ulong last_tokens_size, float alpha_frequency, float alpha_presence)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_23","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArrayNative& Pointer to LLamaTokenDataArray

    last_tokens Int32*

    last_tokens_size UInt64

    alpha_frequency Single

    alpha_presence Single

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_sample_classifier_free_guidancesafellamacontexthandle-llamatokendataarraynative-safellamacontexthandle-single_1","title":"llama_sample_classifier_free_guidance(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, SafeLLamaContextHandle, Single)","text":"

    Apply classifier-free guidance to the logits as described in academic paper \"Stay on topic with Classifier-Free Guidance\" https://arxiv.org/abs/2306.17806

    public static void llama_sample_classifier_free_guidance(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, SafeLLamaContextHandle guidance_ctx, float scale)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_24","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArrayNative& A vector of llama_token_data containing the candidate tokens, the logits must be directly extracted from the original generation context without being sorted.

    guidance_ctx SafeLLamaContextHandle A separate context from the same model. Other than a negative prompt at the beginning, it should have all generated and user input tokens copied from the main context.

    scale Single Guidance strength. 1.0f means no guidance. Higher values mean stronger guidance.

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_sample_softmaxsafellamacontexthandle-llamatokendataarraynative","title":"llama_sample_softmax(SafeLLamaContextHandle, LLamaTokenDataArrayNative&)","text":"

    Sorts candidate tokens by their logits in descending order and calculate probabilities based on logits.

    public static void llama_sample_softmax(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_25","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArrayNative& Pointer to LLamaTokenDataArray

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_sample_top_ksafellamacontexthandle-llamatokendataarraynative-int32-uint64","title":"llama_sample_top_k(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Int32, UInt64)","text":"

    Top-K sampling described in academic paper \"The Curious Case of Neural Text Degeneration\" https://arxiv.org/abs/1904.09751

    public static void llama_sample_top_k(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, int k, ulong min_keep)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_26","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArrayNative& Pointer to LLamaTokenDataArray

    k Int32

    min_keep UInt64

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_sample_top_psafellamacontexthandle-llamatokendataarraynative-single-uint64","title":"llama_sample_top_p(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Single, UInt64)","text":"

    Nucleus sampling described in academic paper \"The Curious Case of Neural Text Degeneration\" https://arxiv.org/abs/1904.09751

    public static void llama_sample_top_p(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, float p, ulong min_keep)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_27","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArrayNative& Pointer to LLamaTokenDataArray

    p Single

    min_keep UInt64

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_sample_tail_freesafellamacontexthandle-llamatokendataarraynative-single-uint64","title":"llama_sample_tail_free(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Single, UInt64)","text":"

    Tail Free Sampling described in https://www.trentonbricken.com/Tail-Free-Sampling/.

    public static void llama_sample_tail_free(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, float z, ulong min_keep)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_28","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArrayNative& Pointer to LLamaTokenDataArray

    z Single

    min_keep UInt64

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_sample_typicalsafellamacontexthandle-llamatokendataarraynative-single-uint64","title":"llama_sample_typical(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Single, UInt64)","text":"

    Locally Typical Sampling implementation described in the paper https://arxiv.org/abs/2202.00666.

    public static void llama_sample_typical(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, float p, ulong min_keep)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_29","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArrayNative& Pointer to LLamaTokenDataArray

    p Single

    min_keep UInt64

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_sample_temperaturesafellamacontexthandle-llamatokendataarraynative-single","title":"llama_sample_temperature(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Single)","text":"

    Modify logits by temperature

    public static void llama_sample_temperature(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, float temp)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_30","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArrayNative&

    temp Single

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_empty_call","title":"llama_empty_call()","text":"

    A method that does nothing. This is a native method, calling it will force the llama native dependencies to be loaded.

    public static bool llama_empty_call()\n
    "},{"location":"xmldocs/llama.native.nativeapi/#returns_16","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_context_default_params","title":"llama_context_default_params()","text":"

    Create a LLamaContextParams with default values

    public static LLamaContextParams llama_context_default_params()\n
    "},{"location":"xmldocs/llama.native.nativeapi/#returns_17","title":"Returns","text":"

    LLamaContextParams

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_model_quantize_default_params","title":"llama_model_quantize_default_params()","text":"

    Create a LLamaModelQuantizeParams with default values

    public static LLamaModelQuantizeParams llama_model_quantize_default_params()\n
    "},{"location":"xmldocs/llama.native.nativeapi/#returns_18","title":"Returns","text":"

    LLamaModelQuantizeParams

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_mmap_supported","title":"llama_mmap_supported()","text":"

    Check if memory mapping is supported

    public static bool llama_mmap_supported()\n
    "},{"location":"xmldocs/llama.native.nativeapi/#returns_19","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_mlock_supported","title":"llama_mlock_supported()","text":"

    Check if memory lockingis supported

    public static bool llama_mlock_supported()\n
    "},{"location":"xmldocs/llama.native.nativeapi/#returns_20","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_eval_exportsafellamacontexthandle-string","title":"llama_eval_export(SafeLLamaContextHandle, String)","text":"

    Export a static computation graph for context of 511 and batch size of 1 NOTE: since this functionality is mostly for debugging and demonstration purposes, we hardcode these parameters here to keep things simple IMPORTANT: do not use for anything else other than debugging and testing!

    public static int llama_eval_export(SafeLLamaContextHandle ctx, string fname)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_31","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    fname String

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_21","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_load_model_from_filestring-llamacontextparams","title":"llama_load_model_from_file(String, LLamaContextParams)","text":"

    Various functions for loading a ggml llama model. Allocate (almost) all memory needed for the model. Return NULL on failure

    public static IntPtr llama_load_model_from_file(string path_model, LLamaContextParams params)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_32","title":"Parameters","text":"

    path_model String

    params LLamaContextParams

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_22","title":"Returns","text":"

    IntPtr

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_new_context_with_modelsafellamamodelhandle-llamacontextparams","title":"llama_new_context_with_model(SafeLlamaModelHandle, LLamaContextParams)","text":"

    Create a new llama_context with the given model. Return value should always be wrapped in SafeLLamaContextHandle!

    public static IntPtr llama_new_context_with_model(SafeLlamaModelHandle model, LLamaContextParams params)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_33","title":"Parameters","text":"

    model SafeLlamaModelHandle

    params LLamaContextParams

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_23","title":"Returns","text":"

    IntPtr

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_backend_initboolean","title":"llama_backend_init(Boolean)","text":"

    not great API - very likely to change. Initialize the llama + ggml backend Call once at the start of the program

    public static void llama_backend_init(bool numa)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_34","title":"Parameters","text":"

    numa Boolean

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_freeintptr","title":"llama_free(IntPtr)","text":"

    Frees all allocated memory in the given llama_context

    public static void llama_free(IntPtr ctx)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_35","title":"Parameters","text":"

    ctx IntPtr

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_free_modelintptr","title":"llama_free_model(IntPtr)","text":"

    Frees all allocated memory associated with a model

    public static void llama_free_model(IntPtr model)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_36","title":"Parameters","text":"

    model IntPtr

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_model_apply_lora_from_filesafellamamodelhandle-string-string-int32","title":"llama_model_apply_lora_from_file(SafeLlamaModelHandle, String, String, Int32)","text":"

    Apply a LoRA adapter to a loaded model path_base_model is the path to a higher quality model to use as a base for the layers modified by the adapter. Can be NULL to use the current loaded model. The model needs to be reloaded before applying a new adapter, otherwise the adapter will be applied on top of the previous one

    public static int llama_model_apply_lora_from_file(SafeLlamaModelHandle model_ptr, string path_lora, string path_base_model, int n_threads)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_37","title":"Parameters","text":"

    model_ptr SafeLlamaModelHandle

    path_lora String

    path_base_model String

    n_threads Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_24","title":"Returns","text":"

    Int32 Returns 0 on success

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_get_kv_cache_token_countsafellamacontexthandle","title":"llama_get_kv_cache_token_count(SafeLLamaContextHandle)","text":"

    Returns the number of tokens in the KV cache

    public static int llama_get_kv_cache_token_count(SafeLLamaContextHandle ctx)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_38","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_25","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_set_rng_seedsafellamacontexthandle-int32","title":"llama_set_rng_seed(SafeLLamaContextHandle, Int32)","text":"

    Sets the current rng seed.

    public static void llama_set_rng_seed(SafeLLamaContextHandle ctx, int seed)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_39","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    seed Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_get_state_sizesafellamacontexthandle","title":"llama_get_state_size(SafeLLamaContextHandle)","text":"

    Returns the maximum size in bytes of the state (rng, logits, embedding and kv_cache) - will often be smaller after compacting tokens

    public static ulong llama_get_state_size(SafeLLamaContextHandle ctx)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_40","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_26","title":"Returns","text":"

    UInt64

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_copy_state_datasafellamacontexthandle-byte","title":"llama_copy_state_data(SafeLLamaContextHandle, Byte*)","text":"

    Copies the state to the specified destination address. Destination needs to have allocated enough memory.

    public static ulong llama_copy_state_data(SafeLLamaContextHandle ctx, Byte* dest)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_41","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    dest Byte*

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_27","title":"Returns","text":"

    UInt64 the number of bytes copied

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_copy_state_datasafellamacontexthandle-byte_1","title":"llama_copy_state_data(SafeLLamaContextHandle, Byte[])","text":"

    Copies the state to the specified destination address. Destination needs to have allocated enough memory (see llama_get_state_size)

    public static ulong llama_copy_state_data(SafeLLamaContextHandle ctx, Byte[] dest)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_42","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    dest Byte[]

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_28","title":"Returns","text":"

    UInt64 the number of bytes copied

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_set_state_datasafellamacontexthandle-byte","title":"llama_set_state_data(SafeLLamaContextHandle, Byte*)","text":"

    Set the state reading from the specified address

    public static ulong llama_set_state_data(SafeLLamaContextHandle ctx, Byte* src)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_43","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    src Byte*

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_29","title":"Returns","text":"

    UInt64 the number of bytes read

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_set_state_datasafellamacontexthandle-byte_1","title":"llama_set_state_data(SafeLLamaContextHandle, Byte[])","text":"

    Set the state reading from the specified address

    public static ulong llama_set_state_data(SafeLLamaContextHandle ctx, Byte[] src)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_44","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    src Byte[]

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_30","title":"Returns","text":"

    UInt64 the number of bytes read

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_load_session_filesafellamacontexthandle-string-int32-uint64-uint64","title":"llama_load_session_file(SafeLLamaContextHandle, String, Int32[], UInt64, UInt64*)","text":"

    Load session file

    public static bool llama_load_session_file(SafeLLamaContextHandle ctx, string path_session, Int32[] tokens_out, ulong n_token_capacity, UInt64* n_token_count_out)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_45","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    path_session String

    tokens_out Int32[]

    n_token_capacity UInt64

    n_token_count_out UInt64*

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_31","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_save_session_filesafellamacontexthandle-string-int32-uint64","title":"llama_save_session_file(SafeLLamaContextHandle, String, Int32[], UInt64)","text":"

    Save session file

    public static bool llama_save_session_file(SafeLLamaContextHandle ctx, string path_session, Int32[] tokens, ulong n_token_count)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_46","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    path_session String

    tokens Int32[]

    n_token_count UInt64

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_32","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_evalsafellamacontexthandle-int32-int32-int32-int32","title":"llama_eval(SafeLLamaContextHandle, Int32[], Int32, Int32, Int32)","text":"

    Run the llama inference to obtain the logits and probabilities for the next token. tokens + n_tokens is the provided batch of new tokens to process n_past is the number of tokens to use from previous eval calls

    public static int llama_eval(SafeLLamaContextHandle ctx, Int32[] tokens, int n_tokens, int n_past, int n_threads)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_47","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    tokens Int32[]

    n_tokens Int32

    n_past Int32

    n_threads Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_33","title":"Returns","text":"

    Int32 Returns 0 on success

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_eval_with_pointersafellamacontexthandle-int32-int32-int32-int32","title":"llama_eval_with_pointer(SafeLLamaContextHandle, Int32*, Int32, Int32, Int32)","text":"

    Run the llama inference to obtain the logits and probabilities for the next token. tokens + n_tokens is the provided batch of new tokens to process n_past is the number of tokens to use from previous eval calls

    public static int llama_eval_with_pointer(SafeLLamaContextHandle ctx, Int32* tokens, int n_tokens, int n_past, int n_threads)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_48","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    tokens Int32*

    n_tokens Int32

    n_past Int32

    n_threads Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_34","title":"Returns","text":"

    Int32 Returns 0 on success

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_tokenizesafellamacontexthandle-string-encoding-int32-int32-boolean","title":"llama_tokenize(SafeLLamaContextHandle, String, Encoding, Int32[], Int32, Boolean)","text":"

    Convert the provided text into tokens.

    public static int llama_tokenize(SafeLLamaContextHandle ctx, string text, Encoding encoding, Int32[] tokens, int n_max_tokens, bool add_bos)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_49","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    text String

    encoding Encoding

    tokens Int32[]

    n_max_tokens Int32

    add_bos Boolean

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_35","title":"Returns","text":"

    Int32 Returns the number of tokens on success, no more than n_max_tokens. Returns a negative number on failure - the number of tokens that would have been returned

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_tokenize_nativesafellamacontexthandle-byte-int32-int32-boolean","title":"llama_tokenize_native(SafeLLamaContextHandle, Byte, Int32, Int32, Boolean)","text":"

    Convert the provided text into tokens.

    public static int llama_tokenize_native(SafeLLamaContextHandle ctx, Byte* text, Int32* tokens, int n_max_tokens, bool add_bos)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_50","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    text Byte*

    tokens Int32*

    n_max_tokens Int32

    add_bos Boolean

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_36","title":"Returns","text":"

    Int32 Returns the number of tokens on success, no more than n_max_tokens. Returns a negative number on failure - the number of tokens that would have been returned

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_n_vocabsafellamacontexthandle","title":"llama_n_vocab(SafeLLamaContextHandle)","text":"

    Get the number of tokens in the model vocabulary for this context

    public static int llama_n_vocab(SafeLLamaContextHandle ctx)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_51","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_37","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_n_ctxsafellamacontexthandle","title":"llama_n_ctx(SafeLLamaContextHandle)","text":"

    Get the size of the context window for the model for this context

    public static int llama_n_ctx(SafeLLamaContextHandle ctx)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_52","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_38","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_n_embdsafellamacontexthandle","title":"llama_n_embd(SafeLLamaContextHandle)","text":"

    Get the dimension of embedding vectors from the model for this context

    public static int llama_n_embd(SafeLLamaContextHandle ctx)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_53","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_39","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_get_logitssafellamacontexthandle","title":"llama_get_logits(SafeLLamaContextHandle)","text":"

    Token logits obtained from the last call to llama_eval() The logits for the last token are stored in the last row Can be mutated in order to change the probabilities of the next token. Rows: n_tokens Cols: n_vocab

    public static Single* llama_get_logits(SafeLLamaContextHandle ctx)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_54","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_40","title":"Returns","text":"

    Single*

    "},{"location":"xmldocs/llama.native.nativeapi/#llama_get_embeddingssafellamacontexthandle","title":"llama_get_embeddings(SafeLLamaContextHandle)","text":"

    Get the embeddings for the input shape: [n_embd] (1-dimensional)

    public static Single* llama_get_embeddings(SafeLLamaContextHandle ctx)\n
    "},{"location":"xmldocs/llama.native.nativeapi/#parameters_55","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.native.nativeapi/#returns_41","title":"Returns","text":"

    Single*

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/","title":"SafeLLamaContextHandle","text":"

    Namespace: LLama.Native

    A safe wrapper around a llama_context

    public sealed class SafeLLamaContextHandle : SafeLLamaHandleBase, System.IDisposable\n

    Inheritance Object \u2192 CriticalFinalizerObject \u2192 SafeHandle \u2192 SafeLLamaHandleBase \u2192 SafeLLamaContextHandle Implements IDisposable

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.native.safellamacontexthandle/#vocabcount","title":"VocabCount","text":"

    Total number of tokens in vocabulary of this model

    public int VocabCount { get; }\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#contextsize","title":"ContextSize","text":"

    Total number of tokens in the context

    public int ContextSize { get; }\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#property-value_1","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#embeddingsize","title":"EmbeddingSize","text":"

    Dimension of embedding vectors

    public int EmbeddingSize { get; }\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#property-value_2","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#modelhandle","title":"ModelHandle","text":"

    Get the model which this context is using

    public SafeLlamaModelHandle ModelHandle { get; }\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#property-value_3","title":"Property Value","text":"

    SafeLlamaModelHandle

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#isinvalid","title":"IsInvalid","text":"
    public bool IsInvalid { get; }\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#property-value_4","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#isclosed","title":"IsClosed","text":"
    public bool IsClosed { get; }\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#property-value_5","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.native.safellamacontexthandle/#safellamacontexthandleintptr-safellamamodelhandle","title":"SafeLLamaContextHandle(IntPtr, SafeLlamaModelHandle)","text":"

    Create a new SafeLLamaContextHandle

    public SafeLLamaContextHandle(IntPtr handle, SafeLlamaModelHandle model)\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#parameters","title":"Parameters","text":"

    handle IntPtr pointer to an allocated llama_context

    model SafeLlamaModelHandle the model which this context was created from

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.native.safellamacontexthandle/#releasehandle","title":"ReleaseHandle()","text":"
    protected bool ReleaseHandle()\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#returns","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#createsafellamamodelhandle-llamacontextparams","title":"Create(SafeLlamaModelHandle, LLamaContextParams)","text":"

    Create a new llama_state for the given model

    public static SafeLLamaContextHandle Create(SafeLlamaModelHandle model, LLamaContextParams lparams)\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#parameters_1","title":"Parameters","text":"

    model SafeLlamaModelHandle

    lparams LLamaContextParams

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#returns_1","title":"Returns","text":"

    SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#exceptions","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#clonellamacontextparams","title":"Clone(LLamaContextParams)","text":"

    Create a new llama context with a clone of the current llama context state

    public SafeLLamaContextHandle Clone(LLamaContextParams lparams)\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#parameters_2","title":"Parameters","text":"

    lparams LLamaContextParams

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#returns_2","title":"Returns","text":"

    SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#tokenizestring-boolean-encoding","title":"Tokenize(String, Boolean, Encoding)","text":"

    Convert the given text into tokens

    public Int32[] Tokenize(string text, bool add_bos, Encoding encoding)\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#parameters_3","title":"Parameters","text":"

    text String The text to tokenize

    add_bos Boolean Whether the \"BOS\" token should be added

    encoding Encoding Encoding to use for the text

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#returns_3","title":"Returns","text":"

    Int32[]

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#exceptions_1","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#getlogits","title":"GetLogits()","text":"

    Token logits obtained from the last call to llama_eval() The logits for the last token are stored in the last row Can be mutated in order to change the probabilities of the next token. Rows: n_tokens Cols: n_vocab

    public Span<float> GetLogits()\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#returns_4","title":"Returns","text":"

    Span<Single>

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#tokentostringint32-encoding","title":"TokenToString(Int32, Encoding)","text":"

    Convert a token into a string

    public string TokenToString(int token, Encoding encoding)\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#parameters_4","title":"Parameters","text":"

    token Int32 Token to decode into a string

    encoding Encoding

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#returns_5","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#tokentostringint32-encoding-stringbuilder","title":"TokenToString(Int32, Encoding, StringBuilder)","text":"

    Append a single llama token to a string builder

    public void TokenToString(int token, Encoding encoding, StringBuilder dest)\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#parameters_5","title":"Parameters","text":"

    token Int32 Token to decode

    encoding Encoding

    dest StringBuilder string builder to append the result to

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#tokentospanint32-spanbyte","title":"TokenToSpan(Int32, Span<Byte>)","text":"

    Convert a single llama token into bytes

    public int TokenToSpan(int token, Span<byte> dest)\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#parameters_6","title":"Parameters","text":"

    token Int32 Token to decode

    dest Span<Byte> A span to attempt to write into. If this is too small nothing will be written

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#returns_6","title":"Returns","text":"

    Int32 The size of this token. nothing will be written if this is larger than dest

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#evalreadonlyspanint32-int32-int32","title":"Eval(ReadOnlySpan<Int32>, Int32, Int32)","text":"

    Run the llama inference to obtain the logits and probabilities for the next token.

    public bool Eval(ReadOnlySpan<int> tokens, int n_past, int n_threads)\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#parameters_7","title":"Parameters","text":"

    tokens ReadOnlySpan<Int32> The provided batch of new tokens to process

    n_past Int32 the number of tokens to use from previous eval calls

    n_threads Int32

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#returns_7","title":"Returns","text":"

    Boolean Returns true on success

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#getstatesize","title":"GetStateSize()","text":"

    Get the size of the state, when saved as bytes

    public ulong GetStateSize()\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#returns_8","title":"Returns","text":"

    UInt64

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#getstatebyte-uint64","title":"GetState(Byte*, UInt64)","text":"

    Get the raw state of this context, encoded as bytes. Data is written into the dest pointer.

    public ulong GetState(Byte* dest, ulong size)\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#parameters_8","title":"Parameters","text":"

    dest Byte* Destination to write to

    size UInt64 Number of bytes available to write to in dest (check required size with GetStateSize())

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#returns_9","title":"Returns","text":"

    UInt64 The number of bytes written to dest

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#exceptions_2","title":"Exceptions","text":"

    ArgumentOutOfRangeException Thrown if dest is too small

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#getstateintptr-uint64","title":"GetState(IntPtr, UInt64)","text":"

    Get the raw state of this context, encoded as bytes. Data is written into the dest pointer.

    public ulong GetState(IntPtr dest, ulong size)\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#parameters_9","title":"Parameters","text":"

    dest IntPtr Destination to write to

    size UInt64 Number of bytes available to write to in dest (check required size with GetStateSize())

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#returns_10","title":"Returns","text":"

    UInt64 The number of bytes written to dest

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#exceptions_3","title":"Exceptions","text":"

    ArgumentOutOfRangeException Thrown if dest is too small

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#setstatebyte","title":"SetState(Byte*)","text":"

    Set the raw state of this context

    public ulong SetState(Byte* src)\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#parameters_10","title":"Parameters","text":"

    src Byte* The pointer to read the state from

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#returns_11","title":"Returns","text":"

    UInt64 Number of bytes read from the src pointer

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#setstateintptr","title":"SetState(IntPtr)","text":"

    Set the raw state of this context

    public ulong SetState(IntPtr src)\n
    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#parameters_11","title":"Parameters","text":"

    src IntPtr The pointer to read the state from

    "},{"location":"xmldocs/llama.native.safellamacontexthandle/#returns_12","title":"Returns","text":"

    UInt64 Number of bytes read from the src pointer

    "},{"location":"xmldocs/llama.native.safellamagrammarhandle/","title":"SafeLLamaGrammarHandle","text":"

    Namespace: LLama.Native

    A safe reference to a llama_grammar

    public class SafeLLamaGrammarHandle : SafeLLamaHandleBase, System.IDisposable\n

    Inheritance Object \u2192 CriticalFinalizerObject \u2192 SafeHandle \u2192 SafeLLamaHandleBase \u2192 SafeLLamaGrammarHandle Implements IDisposable

    "},{"location":"xmldocs/llama.native.safellamagrammarhandle/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.native.safellamagrammarhandle/#isinvalid","title":"IsInvalid","text":"
    public bool IsInvalid { get; }\n
    "},{"location":"xmldocs/llama.native.safellamagrammarhandle/#property-value","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.safellamagrammarhandle/#isclosed","title":"IsClosed","text":"
    public bool IsClosed { get; }\n
    "},{"location":"xmldocs/llama.native.safellamagrammarhandle/#property-value_1","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.safellamagrammarhandle/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.native.safellamagrammarhandle/#releasehandle","title":"ReleaseHandle()","text":"
    protected bool ReleaseHandle()\n
    "},{"location":"xmldocs/llama.native.safellamagrammarhandle/#returns","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.safellamagrammarhandle/#createireadonlylistgrammarrule-uint64","title":"Create(IReadOnlyList<GrammarRule>, UInt64)","text":"

    Create a new llama_grammar

    public static SafeLLamaGrammarHandle Create(IReadOnlyList<GrammarRule> rules, ulong start_rule_index)\n
    "},{"location":"xmldocs/llama.native.safellamagrammarhandle/#parameters","title":"Parameters","text":"

    rules IReadOnlyList<GrammarRule> A list of list of elements, each inner list makes up one grammar rule

    start_rule_index UInt64 The index (in the outer list) of the start rule

    "},{"location":"xmldocs/llama.native.safellamagrammarhandle/#returns_1","title":"Returns","text":"

    SafeLLamaGrammarHandle

    "},{"location":"xmldocs/llama.native.safellamagrammarhandle/#exceptions","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.native.safellamagrammarhandle/#createllamagrammarelement-uint64-uint64","title":"Create(LLamaGrammarElement, UInt64, UInt64)**","text":"

    Create a new llama_grammar

    public static SafeLLamaGrammarHandle Create(LLamaGrammarElement** rules, ulong nrules, ulong start_rule_index)\n
    "},{"location":"xmldocs/llama.native.safellamagrammarhandle/#parameters_1","title":"Parameters","text":"

    rules LLamaGrammarElement** rules list, each rule is a list of rule elements (terminated by a LLamaGrammarElementType.END element)

    nrules UInt64 total number of rules

    start_rule_index UInt64 index of the start rule of the grammar

    "},{"location":"xmldocs/llama.native.safellamagrammarhandle/#returns_2","title":"Returns","text":"

    SafeLLamaGrammarHandle

    "},{"location":"xmldocs/llama.native.safellamagrammarhandle/#exceptions_1","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.native.safellamahandlebase/","title":"SafeLLamaHandleBase","text":"

    Namespace: LLama.Native

    Base class for all llama handles to native resources

    public abstract class SafeLLamaHandleBase : System.Runtime.InteropServices.SafeHandle, System.IDisposable\n

    Inheritance Object \u2192 CriticalFinalizerObject \u2192 SafeHandle \u2192 SafeLLamaHandleBase Implements IDisposable

    "},{"location":"xmldocs/llama.native.safellamahandlebase/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.native.safellamahandlebase/#isinvalid","title":"IsInvalid","text":"
    public bool IsInvalid { get; }\n
    "},{"location":"xmldocs/llama.native.safellamahandlebase/#property-value","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.safellamahandlebase/#isclosed","title":"IsClosed","text":"
    public bool IsClosed { get; }\n
    "},{"location":"xmldocs/llama.native.safellamahandlebase/#property-value_1","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.safellamahandlebase/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.native.safellamahandlebase/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.native.safellamahandlebase/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/","title":"SafeLlamaModelHandle","text":"

    Namespace: LLama.Native

    A reference to a set of llama model weights

    public sealed class SafeLlamaModelHandle : SafeLLamaHandleBase, System.IDisposable\n

    Inheritance Object \u2192 CriticalFinalizerObject \u2192 SafeHandle \u2192 SafeLLamaHandleBase \u2192 SafeLlamaModelHandle Implements IDisposable

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.native.safellamamodelhandle/#vocabcount","title":"VocabCount","text":"

    Total number of tokens in vocabulary of this model

    public int VocabCount { get; }\n
    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#contextsize","title":"ContextSize","text":"

    Total number of tokens in the context

    public int ContextSize { get; }\n
    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#property-value_1","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#embeddingsize","title":"EmbeddingSize","text":"

    Dimension of embedding vectors

    public int EmbeddingSize { get; }\n
    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#property-value_2","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#isinvalid","title":"IsInvalid","text":"
    public bool IsInvalid { get; }\n
    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#property-value_3","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#isclosed","title":"IsClosed","text":"
    public bool IsClosed { get; }\n
    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#property-value_4","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.native.safellamamodelhandle/#releasehandle","title":"ReleaseHandle()","text":"
    protected bool ReleaseHandle()\n
    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#returns","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#loadfromfilestring-llamacontextparams","title":"LoadFromFile(String, LLamaContextParams)","text":"

    Load a model from the given file path into memory

    public static SafeLlamaModelHandle LoadFromFile(string modelPath, LLamaContextParams lparams)\n
    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#parameters","title":"Parameters","text":"

    modelPath String

    lparams LLamaContextParams

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#returns_1","title":"Returns","text":"

    SafeLlamaModelHandle

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#exceptions","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#applylorafromfilestring-string-int32","title":"ApplyLoraFromFile(String, String, Int32)","text":"

    Apply a LoRA adapter to a loaded model

    public void ApplyLoraFromFile(string lora, string modelBase, int threads)\n
    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#parameters_1","title":"Parameters","text":"

    lora String

    modelBase String A path to a higher quality model to use as a base for the layers modified by the adapter. Can be NULL to use the current loaded model.

    threads Int32

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#exceptions_1","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#tokentospanint32-spanbyte","title":"TokenToSpan(Int32, Span<Byte>)","text":"

    Convert a single llama token into bytes

    public int TokenToSpan(int llama_token, Span<byte> dest)\n
    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#parameters_2","title":"Parameters","text":"

    llama_token Int32 Token to decode

    dest Span<Byte> A span to attempt to write into. If this is too small nothing will be written

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#returns_2","title":"Returns","text":"

    Int32 The size of this token. nothing will be written if this is larger than dest

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#tokentostringint32-encoding","title":"TokenToString(Int32, Encoding)","text":"

    Convert a single llama token into a string

    public string TokenToString(int llama_token, Encoding encoding)\n
    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#parameters_3","title":"Parameters","text":"

    llama_token Int32

    encoding Encoding Encoding to use to decode the bytes into a string

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#returns_3","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#tokentostringint32-encoding-stringbuilder","title":"TokenToString(Int32, Encoding, StringBuilder)","text":"

    Append a single llama token to a string builder

    public void TokenToString(int llama_token, Encoding encoding, StringBuilder dest)\n
    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#parameters_4","title":"Parameters","text":"

    llama_token Int32 Token to decode

    encoding Encoding

    dest StringBuilder string builder to append the result to

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#tokenizestring-boolean-encoding","title":"Tokenize(String, Boolean, Encoding)","text":"

    Convert a string of text into tokens

    public Int32[] Tokenize(string text, bool add_bos, Encoding encoding)\n
    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#parameters_5","title":"Parameters","text":"

    text String

    add_bos Boolean

    encoding Encoding

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#returns_4","title":"Returns","text":"

    Int32[]

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#createcontextllamacontextparams","title":"CreateContext(LLamaContextParams)","text":"

    Create a new context for this model

    public SafeLLamaContextHandle CreateContext(LLamaContextParams params)\n
    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#parameters_6","title":"Parameters","text":"

    params LLamaContextParams

    "},{"location":"xmldocs/llama.native.safellamamodelhandle/#returns_5","title":"Returns","text":"

    SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.native.samplingapi/","title":"SamplingApi","text":"

    Namespace: LLama.Native

    Direct translation of the llama.cpp sampling API

    public class SamplingApi\n

    Inheritance Object \u2192 SamplingApi

    "},{"location":"xmldocs/llama.native.samplingapi/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.native.samplingapi/#samplingapi_1","title":"SamplingApi()","text":"
    public SamplingApi()\n
    "},{"location":"xmldocs/llama.native.samplingapi/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.native.samplingapi/#llama_sample_grammarsafellamacontexthandle-llamatokendataarray-safellamagrammarhandle","title":"llama_sample_grammar(SafeLLamaContextHandle, LLamaTokenDataArray, SafeLLamaGrammarHandle)","text":"

    Apply grammar rules to candidate tokens

    public static void llama_sample_grammar(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, SafeLLamaGrammarHandle grammar)\n
    "},{"location":"xmldocs/llama.native.samplingapi/#parameters","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArray

    grammar SafeLLamaGrammarHandle

    "},{"location":"xmldocs/llama.native.samplingapi/#llama_sample_repetition_penaltysafellamacontexthandle-llamatokendataarray-memoryint32-uint64-single","title":"llama_sample_repetition_penalty(SafeLLamaContextHandle, LLamaTokenDataArray, Memory<Int32>, UInt64, Single)","text":""},{"location":"xmldocs/llama.native.samplingapi/#caution","title":"Caution","text":"

    last_tokens_size parameter is no longer needed

    Repetition penalty described in CTRL academic paper https://arxiv.org/abs/1909.05858, with negative logit fix.

    public static void llama_sample_repetition_penalty(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, Memory<int> last_tokens, ulong last_tokens_size, float penalty)\n
    "},{"location":"xmldocs/llama.native.samplingapi/#parameters_1","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArray Pointer to LLamaTokenDataArray

    last_tokens Memory<Int32>

    last_tokens_size UInt64

    penalty Single

    "},{"location":"xmldocs/llama.native.samplingapi/#llama_sample_repetition_penaltysafellamacontexthandle-llamatokendataarray-memoryint32-single","title":"llama_sample_repetition_penalty(SafeLLamaContextHandle, LLamaTokenDataArray, Memory<Int32>, Single)","text":"

    Repetition penalty described in CTRL academic paper https://arxiv.org/abs/1909.05858, with negative logit fix.

    public static void llama_sample_repetition_penalty(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, Memory<int> last_tokens, float penalty)\n
    "},{"location":"xmldocs/llama.native.samplingapi/#parameters_2","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArray Pointer to LLamaTokenDataArray

    last_tokens Memory<Int32>

    penalty Single

    "},{"location":"xmldocs/llama.native.samplingapi/#llama_sample_frequency_and_presence_penaltiessafellamacontexthandle-llamatokendataarray-memoryint32-uint64-single-single","title":"llama_sample_frequency_and_presence_penalties(SafeLLamaContextHandle, LLamaTokenDataArray, Memory<Int32>, UInt64, Single, Single)","text":""},{"location":"xmldocs/llama.native.samplingapi/#caution_1","title":"Caution","text":"

    last_tokens_size parameter is no longer needed

    Frequency and presence penalties described in OpenAI API https://platform.openai.com/docs/api-reference/parameter-details.

    public static void llama_sample_frequency_and_presence_penalties(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, Memory<int> last_tokens, ulong last_tokens_size, float alpha_frequency, float alpha_presence)\n
    "},{"location":"xmldocs/llama.native.samplingapi/#parameters_3","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArray Pointer to LLamaTokenDataArray

    last_tokens Memory<Int32>

    last_tokens_size UInt64

    alpha_frequency Single

    alpha_presence Single

    "},{"location":"xmldocs/llama.native.samplingapi/#llama_sample_frequency_and_presence_penaltiessafellamacontexthandle-llamatokendataarray-memoryint32-single-single","title":"llama_sample_frequency_and_presence_penalties(SafeLLamaContextHandle, LLamaTokenDataArray, Memory<Int32>, Single, Single)","text":"

    Frequency and presence penalties described in OpenAI API https://platform.openai.com/docs/api-reference/parameter-details.

    public static void llama_sample_frequency_and_presence_penalties(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, Memory<int> last_tokens, float alpha_frequency, float alpha_presence)\n
    "},{"location":"xmldocs/llama.native.samplingapi/#parameters_4","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArray Pointer to LLamaTokenDataArray

    last_tokens Memory<Int32>

    alpha_frequency Single

    alpha_presence Single

    "},{"location":"xmldocs/llama.native.samplingapi/#llama_sample_softmaxsafellamacontexthandle-llamatokendataarray","title":"llama_sample_softmax(SafeLLamaContextHandle, LLamaTokenDataArray)","text":"

    Sorts candidate tokens by their logits in descending order and calculate probabilities based on logits.

    public static void llama_sample_softmax(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates)\n
    "},{"location":"xmldocs/llama.native.samplingapi/#parameters_5","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArray Pointer to LLamaTokenDataArray

    "},{"location":"xmldocs/llama.native.samplingapi/#llama_sample_top_ksafellamacontexthandle-llamatokendataarray-int32-uint64","title":"llama_sample_top_k(SafeLLamaContextHandle, LLamaTokenDataArray, Int32, UInt64)","text":"

    Top-K sampling described in academic paper \"The Curious Case of Neural Text Degeneration\" https://arxiv.org/abs/1904.09751

    public static void llama_sample_top_k(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, int k, ulong min_keep)\n
    "},{"location":"xmldocs/llama.native.samplingapi/#parameters_6","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArray Pointer to LLamaTokenDataArray

    k Int32

    min_keep UInt64

    "},{"location":"xmldocs/llama.native.samplingapi/#llama_sample_top_psafellamacontexthandle-llamatokendataarray-single-uint64","title":"llama_sample_top_p(SafeLLamaContextHandle, LLamaTokenDataArray, Single, UInt64)","text":"

    Nucleus sampling described in academic paper \"The Curious Case of Neural Text Degeneration\" https://arxiv.org/abs/1904.09751

    public static void llama_sample_top_p(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, float p, ulong min_keep)\n
    "},{"location":"xmldocs/llama.native.samplingapi/#parameters_7","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArray Pointer to LLamaTokenDataArray

    p Single

    min_keep UInt64

    "},{"location":"xmldocs/llama.native.samplingapi/#llama_sample_tail_freesafellamacontexthandle-llamatokendataarray-single-uint64","title":"llama_sample_tail_free(SafeLLamaContextHandle, LLamaTokenDataArray, Single, UInt64)","text":"

    Tail Free Sampling described in https://www.trentonbricken.com/Tail-Free-Sampling/.

    public static void llama_sample_tail_free(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, float z, ulong min_keep)\n
    "},{"location":"xmldocs/llama.native.samplingapi/#parameters_8","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArray Pointer to LLamaTokenDataArray

    z Single

    min_keep UInt64

    "},{"location":"xmldocs/llama.native.samplingapi/#llama_sample_typicalsafellamacontexthandle-llamatokendataarray-single-uint64","title":"llama_sample_typical(SafeLLamaContextHandle, LLamaTokenDataArray, Single, UInt64)","text":"

    Locally Typical Sampling implementation described in the paper https://arxiv.org/abs/2202.00666.

    public static void llama_sample_typical(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, float p, ulong min_keep)\n
    "},{"location":"xmldocs/llama.native.samplingapi/#parameters_9","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArray Pointer to LLamaTokenDataArray

    p Single

    min_keep UInt64

    "},{"location":"xmldocs/llama.native.samplingapi/#llama_sample_temperaturesafellamacontexthandle-llamatokendataarray-single","title":"llama_sample_temperature(SafeLLamaContextHandle, LLamaTokenDataArray, Single)","text":"

    Sample with temperature. As temperature increases, the prediction becomes diverse but also vulnerable to hallucinations -- generating tokens that are sensible but not factual

    public static void llama_sample_temperature(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, float temp)\n
    "},{"location":"xmldocs/llama.native.samplingapi/#parameters_10","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArray

    temp Single

    "},{"location":"xmldocs/llama.native.samplingapi/#llama_sample_token_mirostatsafellamacontexthandle-llamatokendataarray-single-single-int32-single","title":"llama_sample_token_mirostat(SafeLLamaContextHandle, LLamaTokenDataArray, Single, Single, Int32, Single&)","text":"

    Mirostat 1.0 algorithm described in the paper https://arxiv.org/abs/2007.14966. Uses tokens instead of words.

    public static int llama_sample_token_mirostat(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, float tau, float eta, int m, Single& mu)\n
    "},{"location":"xmldocs/llama.native.samplingapi/#parameters_11","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArray A vector of LLamaTokenData containing the candidate tokens, their probabilities (p), and log-odds (logit) for the current position in the generated text.

    tau Single The target cross-entropy (or surprise) value you want to achieve for the generated text. A higher value corresponds to more surprising or less predictable text, while a lower value corresponds to less surprising or more predictable text.

    eta Single The learning rate used to update mu based on the error between the target and observed surprisal of the sampled word. A larger learning rate will cause mu to be updated more quickly, while a smaller learning rate will result in slower updates.

    m Int32 The number of tokens considered in the estimation of s_hat. This is an arbitrary value that is used to calculate s_hat, which in turn helps to calculate the value of k. In the paper, they use m = 100, but you can experiment with different values to see how it affects the performance of the algorithm.

    mu Single& Maximum cross-entropy. This value is initialized to be twice the target cross-entropy (2 * tau) and is updated in the algorithm based on the error between the target and observed surprisal.

    "},{"location":"xmldocs/llama.native.samplingapi/#returns","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.samplingapi/#llama_sample_token_mirostat_v2safellamacontexthandle-llamatokendataarray-single-single-single","title":"llama_sample_token_mirostat_v2(SafeLLamaContextHandle, LLamaTokenDataArray, Single, Single, Single&)","text":"

    Mirostat 2.0 algorithm described in the paper https://arxiv.org/abs/2007.14966. Uses tokens instead of words.

    public static int llama_sample_token_mirostat_v2(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, float tau, float eta, Single& mu)\n
    "},{"location":"xmldocs/llama.native.samplingapi/#parameters_12","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArray A vector of LLamaTokenData containing the candidate tokens, their probabilities (p), and log-odds (logit) for the current position in the generated text.

    tau Single The target cross-entropy (or surprise) value you want to achieve for the generated text. A higher value corresponds to more surprising or less predictable text, while a lower value corresponds to less surprising or more predictable text.

    eta Single The learning rate used to update mu based on the error between the target and observed surprisal of the sampled word. A larger learning rate will cause mu to be updated more quickly, while a smaller learning rate will result in slower updates.

    mu Single& Maximum cross-entropy. This value is initialized to be twice the target cross-entropy (2 * tau) and is updated in the algorithm based on the error between the target and observed surprisal.

    "},{"location":"xmldocs/llama.native.samplingapi/#returns_1","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.samplingapi/#llama_sample_token_greedysafellamacontexthandle-llamatokendataarray","title":"llama_sample_token_greedy(SafeLLamaContextHandle, LLamaTokenDataArray)","text":"

    Selects the token with the highest probability.

    public static int llama_sample_token_greedy(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates)\n
    "},{"location":"xmldocs/llama.native.samplingapi/#parameters_13","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArray Pointer to LLamaTokenDataArray

    "},{"location":"xmldocs/llama.native.samplingapi/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.native.samplingapi/#llama_sample_tokensafellamacontexthandle-llamatokendataarray","title":"llama_sample_token(SafeLLamaContextHandle, LLamaTokenDataArray)","text":"

    Randomly selects a token from the candidates based on their probabilities.

    public static int llama_sample_token(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates)\n
    "},{"location":"xmldocs/llama.native.samplingapi/#parameters_14","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    candidates LLamaTokenDataArray Pointer to LLamaTokenDataArray

    "},{"location":"xmldocs/llama.native.samplingapi/#returns_3","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/","title":"ChatCompletion","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class ChatCompletion : System.IEquatable`1[[LLama.OldVersion.ChatCompletion, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 ChatCompletion Implements IEquatable<ChatCompletion>

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.chatcompletion/#id","title":"Id","text":"
    public string Id { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#property-value","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#object","title":"Object","text":"
    public string Object { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#created","title":"Created","text":"
    public int Created { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#property-value_2","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#model","title":"Model","text":"
    public string Model { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#property-value_3","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#choices","title":"Choices","text":"
    public ChatCompletionChoice[] Choices { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#property-value_4","title":"Property Value","text":"

    ChatCompletionChoice[]

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#usage","title":"Usage","text":"
    public CompletionUsage Usage { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#property-value_5","title":"Property Value","text":"

    CompletionUsage

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.chatcompletion/#chatcompletionstring-string-int32-string-chatcompletionchoice-completionusage","title":"ChatCompletion(String, String, Int32, String, ChatCompletionChoice[], CompletionUsage)","text":"
    public ChatCompletion(string Id, string Object, int Created, string Model, ChatCompletionChoice[] Choices, CompletionUsage Usage)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#parameters","title":"Parameters","text":"

    Id String

    Object String

    Created Int32

    Model String

    Choices ChatCompletionChoice[]

    Usage CompletionUsage

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.chatcompletion/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#parameters_1","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#equalschatcompletion","title":"Equals(ChatCompletion)","text":"
    public bool Equals(ChatCompletion other)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#parameters_3","title":"Parameters","text":"

    other ChatCompletion

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#clone","title":"<Clone>$()","text":"
    public ChatCompletion <Clone>$()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#returns_5","title":"Returns","text":"

    ChatCompletion

    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#deconstructstring-string-int32-string-chatcompletionchoice-completionusage","title":"Deconstruct(String&, String&, Int32&, String&, ChatCompletionChoice[]&, CompletionUsage&)","text":"
    public void Deconstruct(String& Id, String& Object, Int32& Created, String& Model, ChatCompletionChoice[]& Choices, CompletionUsage& Usage)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletion/#parameters_4","title":"Parameters","text":"

    Id String&

    Object String&

    Created Int32&

    Model String&

    Choices ChatCompletionChoice[]&

    Usage CompletionUsage&

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/","title":"ChatCompletionChoice","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class ChatCompletionChoice : System.IEquatable`1[[LLama.OldVersion.ChatCompletionChoice, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 ChatCompletionChoice Implements IEquatable<ChatCompletionChoice>

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#index","title":"Index","text":"
    public int Index { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#message","title":"Message","text":"
    public ChatCompletionMessage Message { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#property-value_1","title":"Property Value","text":"

    ChatCompletionMessage

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#finishreason","title":"FinishReason","text":"
    public string FinishReason { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#property-value_2","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#chatcompletionchoiceint32-chatcompletionmessage-string","title":"ChatCompletionChoice(Int32, ChatCompletionMessage, String)","text":"
    public ChatCompletionChoice(int Index, ChatCompletionMessage Message, string FinishReason)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#parameters","title":"Parameters","text":"

    Index Int32

    Message ChatCompletionMessage

    FinishReason String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#parameters_1","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#equalschatcompletionchoice","title":"Equals(ChatCompletionChoice)","text":"
    public bool Equals(ChatCompletionChoice other)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#parameters_3","title":"Parameters","text":"

    other ChatCompletionChoice

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#clone","title":"<Clone>$()","text":"
    public ChatCompletionChoice <Clone>$()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#returns_5","title":"Returns","text":"

    ChatCompletionChoice

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#deconstructint32-chatcompletionmessage-string","title":"Deconstruct(Int32&, ChatCompletionMessage&, String&)","text":"
    public void Deconstruct(Int32& Index, ChatCompletionMessage& Message, String& FinishReason)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchoice/#parameters_4","title":"Parameters","text":"

    Index Int32&

    Message ChatCompletionMessage&

    FinishReason String&

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/","title":"ChatCompletionChunk","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class ChatCompletionChunk : System.IEquatable`1[[LLama.OldVersion.ChatCompletionChunk, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 ChatCompletionChunk Implements IEquatable<ChatCompletionChunk>

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#id","title":"Id","text":"
    public string Id { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#property-value","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#model","title":"Model","text":"
    public string Model { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#object","title":"Object","text":"
    public string Object { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#property-value_2","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#created","title":"Created","text":"
    public int Created { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#property-value_3","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#choices","title":"Choices","text":"
    public ChatCompletionChunkChoice[] Choices { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#property-value_4","title":"Property Value","text":"

    ChatCompletionChunkChoice[]

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#chatcompletionchunkstring-string-string-int32-chatcompletionchunkchoice","title":"ChatCompletionChunk(String, String, String, Int32, ChatCompletionChunkChoice[])","text":"
    public ChatCompletionChunk(string Id, string Model, string Object, int Created, ChatCompletionChunkChoice[] Choices)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#parameters","title":"Parameters","text":"

    Id String

    Model String

    Object String

    Created Int32

    Choices ChatCompletionChunkChoice[]

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#parameters_1","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#equalschatcompletionchunk","title":"Equals(ChatCompletionChunk)","text":"
    public bool Equals(ChatCompletionChunk other)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#parameters_3","title":"Parameters","text":"

    other ChatCompletionChunk

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#clone","title":"<Clone>$()","text":"
    public ChatCompletionChunk <Clone>$()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#returns_5","title":"Returns","text":"

    ChatCompletionChunk

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#deconstructstring-string-string-int32-chatcompletionchunkchoice","title":"Deconstruct(String&, String&, String&, Int32&, ChatCompletionChunkChoice[]&)","text":"
    public void Deconstruct(String& Id, String& Model, String& Object, Int32& Created, ChatCompletionChunkChoice[]& Choices)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunk/#parameters_4","title":"Parameters","text":"

    Id String&

    Model String&

    Object String&

    Created Int32&

    Choices ChatCompletionChunkChoice[]&

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/","title":"ChatCompletionChunkChoice","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class ChatCompletionChunkChoice : System.IEquatable`1[[LLama.OldVersion.ChatCompletionChunkChoice, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 ChatCompletionChunkChoice Implements IEquatable<ChatCompletionChunkChoice>

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#index","title":"Index","text":"
    public int Index { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#delta","title":"Delta","text":"
    public ChatCompletionChunkDelta Delta { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#property-value_1","title":"Property Value","text":"

    ChatCompletionChunkDelta

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#finishreason","title":"FinishReason","text":"
    public string FinishReason { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#property-value_2","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#chatcompletionchunkchoiceint32-chatcompletionchunkdelta-string","title":"ChatCompletionChunkChoice(Int32, ChatCompletionChunkDelta, String)","text":"
    public ChatCompletionChunkChoice(int Index, ChatCompletionChunkDelta Delta, string FinishReason)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#parameters","title":"Parameters","text":"

    Index Int32

    Delta ChatCompletionChunkDelta

    FinishReason String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#parameters_1","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#equalschatcompletionchunkchoice","title":"Equals(ChatCompletionChunkChoice)","text":"
    public bool Equals(ChatCompletionChunkChoice other)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#parameters_3","title":"Parameters","text":"

    other ChatCompletionChunkChoice

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#clone","title":"<Clone>$()","text":"
    public ChatCompletionChunkChoice <Clone>$()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#returns_5","title":"Returns","text":"

    ChatCompletionChunkChoice

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#deconstructint32-chatcompletionchunkdelta-string","title":"Deconstruct(Int32&, ChatCompletionChunkDelta&, String&)","text":"
    public void Deconstruct(Int32& Index, ChatCompletionChunkDelta& Delta, String& FinishReason)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkchoice/#parameters_4","title":"Parameters","text":"

    Index Int32&

    Delta ChatCompletionChunkDelta&

    FinishReason String&

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/","title":"ChatCompletionChunkDelta","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class ChatCompletionChunkDelta : System.IEquatable`1[[LLama.OldVersion.ChatCompletionChunkDelta, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 ChatCompletionChunkDelta Implements IEquatable<ChatCompletionChunkDelta>

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#role","title":"Role","text":"
    public string Role { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#property-value","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#content","title":"Content","text":"
    public string Content { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#chatcompletionchunkdeltastring-string","title":"ChatCompletionChunkDelta(String, String)","text":"
    public ChatCompletionChunkDelta(string Role, string Content)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#parameters","title":"Parameters","text":"

    Role String

    Content String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#parameters_1","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#equalschatcompletionchunkdelta","title":"Equals(ChatCompletionChunkDelta)","text":"
    public bool Equals(ChatCompletionChunkDelta other)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#parameters_3","title":"Parameters","text":"

    other ChatCompletionChunkDelta

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#clone","title":"<Clone>$()","text":"
    public ChatCompletionChunkDelta <Clone>$()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#returns_5","title":"Returns","text":"

    ChatCompletionChunkDelta

    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#deconstructstring-string","title":"Deconstruct(String&, String&)","text":"
    public void Deconstruct(String& Role, String& Content)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionchunkdelta/#parameters_4","title":"Parameters","text":"

    Role String&

    Content String&

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/","title":"ChatCompletionMessage","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class ChatCompletionMessage : System.IEquatable`1[[LLama.OldVersion.ChatCompletionMessage, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 ChatCompletionMessage Implements IEquatable<ChatCompletionMessage>

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#role","title":"Role","text":"
    public ChatRole Role { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#property-value","title":"Property Value","text":"

    ChatRole

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#content","title":"Content","text":"
    public string Content { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#name","title":"Name","text":"
    public string Name { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#property-value_2","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#chatcompletionmessagechatrole-string-string","title":"ChatCompletionMessage(ChatRole, String, String)","text":"
    public ChatCompletionMessage(ChatRole Role, string Content, string Name)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#parameters","title":"Parameters","text":"

    Role ChatRole

    Content String

    Name String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#parameters_1","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#equalschatcompletionmessage","title":"Equals(ChatCompletionMessage)","text":"
    public bool Equals(ChatCompletionMessage other)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#parameters_3","title":"Parameters","text":"

    other ChatCompletionMessage

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#clone","title":"<Clone>$()","text":"
    public ChatCompletionMessage <Clone>$()\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#returns_5","title":"Returns","text":"

    ChatCompletionMessage

    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#deconstructchatrole-string-string","title":"Deconstruct(ChatRole&, String&, String&)","text":"
    public void Deconstruct(ChatRole& Role, String& Content, String& Name)\n
    "},{"location":"xmldocs/llama.oldversion.chatcompletionmessage/#parameters_4","title":"Parameters","text":"

    Role ChatRole&

    Content String&

    Name String&

    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/","title":"ChatMessageRecord","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class ChatMessageRecord : System.IEquatable`1[[LLama.OldVersion.ChatMessageRecord, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 ChatMessageRecord Implements IEquatable<ChatMessageRecord>

    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#message","title":"Message","text":"
    public ChatCompletionMessage Message { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#property-value","title":"Property Value","text":"

    ChatCompletionMessage

    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#time","title":"Time","text":"
    public DateTime Time { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#property-value_1","title":"Property Value","text":"

    DateTime

    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#chatmessagerecordchatcompletionmessage-datetime","title":"ChatMessageRecord(ChatCompletionMessage, DateTime)","text":"
    public ChatMessageRecord(ChatCompletionMessage Message, DateTime Time)\n
    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#parameters","title":"Parameters","text":"

    Message ChatCompletionMessage

    Time DateTime

    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#parameters_1","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#equalschatmessagerecord","title":"Equals(ChatMessageRecord)","text":"
    public bool Equals(ChatMessageRecord other)\n
    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#parameters_3","title":"Parameters","text":"

    other ChatMessageRecord

    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#clone","title":"<Clone>$()","text":"
    public ChatMessageRecord <Clone>$()\n
    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#returns_5","title":"Returns","text":"

    ChatMessageRecord

    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#deconstructchatcompletionmessage-datetime","title":"Deconstruct(ChatCompletionMessage&, DateTime&)","text":"
    public void Deconstruct(ChatCompletionMessage& Message, DateTime& Time)\n
    "},{"location":"xmldocs/llama.oldversion.chatmessagerecord/#parameters_4","title":"Parameters","text":"

    Message ChatCompletionMessage&

    Time DateTime&

    "},{"location":"xmldocs/llama.oldversion.chatrole/","title":"ChatRole","text":"

    Namespace: LLama.OldVersion

    public enum ChatRole\n

    Inheritance Object \u2192 ValueType \u2192 Enum \u2192 ChatRole Implements IComparable, IFormattable, IConvertible

    "},{"location":"xmldocs/llama.oldversion.chatrole/#fields","title":"Fields","text":"Name Value Description"},{"location":"xmldocs/llama.oldversion.chatsession-1/","title":"ChatSession<T>","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class ChatSession<T>\n
    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#type-parameters","title":"Type Parameters","text":"

    T

    Inheritance Object \u2192 ChatSession<T>

    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.chatsession-1/#chatsessiont_1","title":"ChatSession(T)","text":"
    public ChatSession(T model)\n
    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#parameters","title":"Parameters","text":"

    model T

    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.chatsession-1/#chatstring-string-string","title":"Chat(String, String, String)","text":"
    public IEnumerable<string> Chat(string text, string prompt, string encoding)\n
    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#parameters_1","title":"Parameters","text":"

    text String

    prompt String

    encoding String

    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#returns","title":"Returns","text":"

    IEnumerable<String>

    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#withpromptstring-string","title":"WithPrompt(String, String)","text":"
    public ChatSession<T> WithPrompt(string prompt, string encoding)\n
    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#parameters_2","title":"Parameters","text":"

    prompt String

    encoding String

    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#returns_1","title":"Returns","text":"

    ChatSession<T>

    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#withpromptfilestring-string","title":"WithPromptFile(String, String)","text":"
    public ChatSession<T> WithPromptFile(string promptFilename, string encoding)\n
    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#parameters_3","title":"Parameters","text":"

    promptFilename String

    encoding String

    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#returns_2","title":"Returns","text":"

    ChatSession<T>

    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#withantipromptstring","title":"WithAntiprompt(String[])","text":"

    Set the keywords to split the return value of chat AI.

    public ChatSession<T> WithAntiprompt(String[] antiprompt)\n
    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#parameters_4","title":"Parameters","text":"

    antiprompt String[]

    "},{"location":"xmldocs/llama.oldversion.chatsession-1/#returns_3","title":"Returns","text":"

    ChatSession<T>

    "},{"location":"xmldocs/llama.oldversion.completion/","title":"Completion","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.completion/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class Completion : System.IEquatable`1[[LLama.OldVersion.Completion, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 Completion Implements IEquatable<Completion>

    "},{"location":"xmldocs/llama.oldversion.completion/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.completion/#id","title":"Id","text":"
    public string Id { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completion/#property-value","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.completion/#object","title":"Object","text":"
    public string Object { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completion/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.completion/#created","title":"Created","text":"
    public int Created { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completion/#property-value_2","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.completion/#model","title":"Model","text":"
    public string Model { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completion/#property-value_3","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.completion/#choices","title":"Choices","text":"
    public CompletionChoice[] Choices { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completion/#property-value_4","title":"Property Value","text":"

    CompletionChoice[]

    "},{"location":"xmldocs/llama.oldversion.completion/#usage","title":"Usage","text":"
    public CompletionUsage Usage { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completion/#property-value_5","title":"Property Value","text":"

    CompletionUsage

    "},{"location":"xmldocs/llama.oldversion.completion/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.completion/#completionstring-string-int32-string-completionchoice-completionusage","title":"Completion(String, String, Int32, String, CompletionChoice[], CompletionUsage)","text":"
    public Completion(string Id, string Object, int Created, string Model, CompletionChoice[] Choices, CompletionUsage Usage)\n
    "},{"location":"xmldocs/llama.oldversion.completion/#parameters","title":"Parameters","text":"

    Id String

    Object String

    Created Int32

    Model String

    Choices CompletionChoice[]

    Usage CompletionUsage

    "},{"location":"xmldocs/llama.oldversion.completion/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.completion/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.oldversion.completion/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.completion/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.oldversion.completion/#parameters_1","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.oldversion.completion/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.completion/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.oldversion.completion/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.completion/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.oldversion.completion/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.oldversion.completion/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.completion/#equalscompletion","title":"Equals(Completion)","text":"
    public bool Equals(Completion other)\n
    "},{"location":"xmldocs/llama.oldversion.completion/#parameters_3","title":"Parameters","text":"

    other Completion

    "},{"location":"xmldocs/llama.oldversion.completion/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.completion/#clone","title":"<Clone>$()","text":"
    public Completion <Clone>$()\n
    "},{"location":"xmldocs/llama.oldversion.completion/#returns_5","title":"Returns","text":"

    Completion

    "},{"location":"xmldocs/llama.oldversion.completion/#deconstructstring-string-int32-string-completionchoice-completionusage","title":"Deconstruct(String&, String&, Int32&, String&, CompletionChoice[]&, CompletionUsage&)","text":"
    public void Deconstruct(String& Id, String& Object, Int32& Created, String& Model, CompletionChoice[]& Choices, CompletionUsage& Usage)\n
    "},{"location":"xmldocs/llama.oldversion.completion/#parameters_4","title":"Parameters","text":"

    Id String&

    Object String&

    Created Int32&

    Model String&

    Choices CompletionChoice[]&

    Usage CompletionUsage&

    "},{"location":"xmldocs/llama.oldversion.completionchoice/","title":"CompletionChoice","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class CompletionChoice : System.IEquatable`1[[LLama.OldVersion.CompletionChoice, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 CompletionChoice Implements IEquatable<CompletionChoice>

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.completionchoice/#text","title":"Text","text":"
    public string Text { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionchoice/#property-value","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#index","title":"Index","text":"
    public int Index { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionchoice/#property-value_1","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#logprobs","title":"Logprobs","text":"
    public CompletionLogprobs Logprobs { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionchoice/#property-value_2","title":"Property Value","text":"

    CompletionLogprobs

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#finishreason","title":"FinishReason","text":"
    public string FinishReason { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionchoice/#property-value_3","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.completionchoice/#completionchoicestring-int32-completionlogprobs-string","title":"CompletionChoice(String, Int32, CompletionLogprobs, String)","text":"
    public CompletionChoice(string Text, int Index, CompletionLogprobs Logprobs, string FinishReason)\n
    "},{"location":"xmldocs/llama.oldversion.completionchoice/#parameters","title":"Parameters","text":"

    Text String

    Index Int32

    Logprobs CompletionLogprobs

    FinishReason String

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.completionchoice/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.oldversion.completionchoice/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.oldversion.completionchoice/#parameters_1","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.oldversion.completionchoice/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.oldversion.completionchoice/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#equalscompletionchoice","title":"Equals(CompletionChoice)","text":"
    public bool Equals(CompletionChoice other)\n
    "},{"location":"xmldocs/llama.oldversion.completionchoice/#parameters_3","title":"Parameters","text":"

    other CompletionChoice

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#clone","title":"<Clone>$()","text":"
    public CompletionChoice <Clone>$()\n
    "},{"location":"xmldocs/llama.oldversion.completionchoice/#returns_5","title":"Returns","text":"

    CompletionChoice

    "},{"location":"xmldocs/llama.oldversion.completionchoice/#deconstructstring-int32-completionlogprobs-string","title":"Deconstruct(String&, Int32&, CompletionLogprobs&, String&)","text":"
    public void Deconstruct(String& Text, Int32& Index, CompletionLogprobs& Logprobs, String& FinishReason)\n
    "},{"location":"xmldocs/llama.oldversion.completionchoice/#parameters_4","title":"Parameters","text":"

    Text String&

    Index Int32&

    Logprobs CompletionLogprobs&

    FinishReason String&

    "},{"location":"xmldocs/llama.oldversion.completionchunk/","title":"CompletionChunk","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class CompletionChunk : System.IEquatable`1[[LLama.OldVersion.CompletionChunk, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 CompletionChunk Implements IEquatable<CompletionChunk>

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.completionchunk/#id","title":"Id","text":"
    public string Id { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionchunk/#property-value","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#object","title":"Object","text":"
    public string Object { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionchunk/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#created","title":"Created","text":"
    public int Created { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionchunk/#property-value_2","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#model","title":"Model","text":"
    public string Model { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionchunk/#property-value_3","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#choices","title":"Choices","text":"
    public CompletionChoice[] Choices { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionchunk/#property-value_4","title":"Property Value","text":"

    CompletionChoice[]

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.completionchunk/#completionchunkstring-string-int32-string-completionchoice","title":"CompletionChunk(String, String, Int32, String, CompletionChoice[])","text":"
    public CompletionChunk(string Id, string Object, int Created, string Model, CompletionChoice[] Choices)\n
    "},{"location":"xmldocs/llama.oldversion.completionchunk/#parameters","title":"Parameters","text":"

    Id String

    Object String

    Created Int32

    Model String

    Choices CompletionChoice[]

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.completionchunk/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.oldversion.completionchunk/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.oldversion.completionchunk/#parameters_1","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.oldversion.completionchunk/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.oldversion.completionchunk/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#equalscompletionchunk","title":"Equals(CompletionChunk)","text":"
    public bool Equals(CompletionChunk other)\n
    "},{"location":"xmldocs/llama.oldversion.completionchunk/#parameters_3","title":"Parameters","text":"

    other CompletionChunk

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#clone","title":"<Clone>$()","text":"
    public CompletionChunk <Clone>$()\n
    "},{"location":"xmldocs/llama.oldversion.completionchunk/#returns_5","title":"Returns","text":"

    CompletionChunk

    "},{"location":"xmldocs/llama.oldversion.completionchunk/#deconstructstring-string-int32-string-completionchoice","title":"Deconstruct(String&, String&, Int32&, String&, CompletionChoice[]&)","text":"
    public void Deconstruct(String& Id, String& Object, Int32& Created, String& Model, CompletionChoice[]& Choices)\n
    "},{"location":"xmldocs/llama.oldversion.completionchunk/#parameters_4","title":"Parameters","text":"

    Id String&

    Object String&

    Created Int32&

    Model String&

    Choices CompletionChoice[]&

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/","title":"CompletionLogprobs","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class CompletionLogprobs : System.IEquatable`1[[LLama.OldVersion.CompletionLogprobs, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 CompletionLogprobs Implements IEquatable<CompletionLogprobs>

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.completionlogprobs/#textoffset","title":"TextOffset","text":"
    public Int32[] TextOffset { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#property-value","title":"Property Value","text":"

    Int32[]

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#tokenlogprobs","title":"TokenLogProbs","text":"
    public Single[] TokenLogProbs { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#property-value_1","title":"Property Value","text":"

    Single[]

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#tokens","title":"Tokens","text":"
    public String[] Tokens { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#property-value_2","title":"Property Value","text":"

    String[]

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#toplogprobs","title":"TopLogprobs","text":"
    public Dictionary`2[] TopLogprobs { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#property-value_3","title":"Property Value","text":"

    Dictionary`2[]

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.completionlogprobs/#completionlogprobsint32-single-string-dictionary2","title":"CompletionLogprobs(Int32[], Single[], String[], Dictionary`2[])","text":"
    public CompletionLogprobs(Int32[] TextOffset, Single[] TokenLogProbs, String[] Tokens, Dictionary`2[] TopLogprobs)\n
    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#parameters","title":"Parameters","text":"

    TextOffset Int32[]

    TokenLogProbs Single[]

    Tokens String[]

    TopLogprobs Dictionary`2[]

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.completionlogprobs/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#parameters_1","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#equalscompletionlogprobs","title":"Equals(CompletionLogprobs)","text":"
    public bool Equals(CompletionLogprobs other)\n
    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#parameters_3","title":"Parameters","text":"

    other CompletionLogprobs

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#clone","title":"<Clone>$()","text":"
    public CompletionLogprobs <Clone>$()\n
    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#returns_5","title":"Returns","text":"

    CompletionLogprobs

    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#deconstructint32-single-string-dictionary2","title":"Deconstruct(Int32[]&, Single[]&, String[]&, Dictionary`2[]&)","text":"
    public void Deconstruct(Int32[]& TextOffset, Single[]& TokenLogProbs, String[]& Tokens, Dictionary`2[]& TopLogprobs)\n
    "},{"location":"xmldocs/llama.oldversion.completionlogprobs/#parameters_4","title":"Parameters","text":"

    TextOffset Int32[]&

    TokenLogProbs Single[]&

    Tokens String[]&

    TopLogprobs Dictionary`2[]&

    "},{"location":"xmldocs/llama.oldversion.completionusage/","title":"CompletionUsage","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.completionusage/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class CompletionUsage : System.IEquatable`1[[LLama.OldVersion.CompletionUsage, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 CompletionUsage Implements IEquatable<CompletionUsage>

    "},{"location":"xmldocs/llama.oldversion.completionusage/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.completionusage/#prompttokens","title":"PromptTokens","text":"
    public int PromptTokens { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionusage/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.completionusage/#completiontokens","title":"CompletionTokens","text":"
    public int CompletionTokens { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionusage/#property-value_1","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.completionusage/#totaltokens","title":"TotalTokens","text":"
    public int TotalTokens { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.completionusage/#property-value_2","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.completionusage/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.completionusage/#completionusageint32-int32-int32","title":"CompletionUsage(Int32, Int32, Int32)","text":"
    public CompletionUsage(int PromptTokens, int CompletionTokens, int TotalTokens)\n
    "},{"location":"xmldocs/llama.oldversion.completionusage/#parameters","title":"Parameters","text":"

    PromptTokens Int32

    CompletionTokens Int32

    TotalTokens Int32

    "},{"location":"xmldocs/llama.oldversion.completionusage/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.completionusage/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.oldversion.completionusage/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.completionusage/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.oldversion.completionusage/#parameters_1","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.oldversion.completionusage/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.completionusage/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.oldversion.completionusage/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.completionusage/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.oldversion.completionusage/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.oldversion.completionusage/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.completionusage/#equalscompletionusage","title":"Equals(CompletionUsage)","text":"
    public bool Equals(CompletionUsage other)\n
    "},{"location":"xmldocs/llama.oldversion.completionusage/#parameters_3","title":"Parameters","text":"

    other CompletionUsage

    "},{"location":"xmldocs/llama.oldversion.completionusage/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.completionusage/#clone","title":"<Clone>$()","text":"
    public CompletionUsage <Clone>$()\n
    "},{"location":"xmldocs/llama.oldversion.completionusage/#returns_5","title":"Returns","text":"

    CompletionUsage

    "},{"location":"xmldocs/llama.oldversion.completionusage/#deconstructint32-int32-int32","title":"Deconstruct(Int32&, Int32&, Int32&)","text":"
    public void Deconstruct(Int32& PromptTokens, Int32& CompletionTokens, Int32& TotalTokens)\n
    "},{"location":"xmldocs/llama.oldversion.completionusage/#parameters_4","title":"Parameters","text":"

    PromptTokens Int32&

    CompletionTokens Int32&

    TotalTokens Int32&

    "},{"location":"xmldocs/llama.oldversion.embedding/","title":"Embedding","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.embedding/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class Embedding : System.IEquatable`1[[LLama.OldVersion.Embedding, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 Embedding Implements IEquatable<Embedding>

    "},{"location":"xmldocs/llama.oldversion.embedding/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.embedding/#object","title":"Object","text":"
    public string Object { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.embedding/#property-value","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.embedding/#model","title":"Model","text":"
    public string Model { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.embedding/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.embedding/#data","title":"Data","text":"
    public EmbeddingData[] Data { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.embedding/#property-value_2","title":"Property Value","text":"

    EmbeddingData[]

    "},{"location":"xmldocs/llama.oldversion.embedding/#usage","title":"Usage","text":"
    public EmbeddingUsage Usage { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.embedding/#property-value_3","title":"Property Value","text":"

    EmbeddingUsage

    "},{"location":"xmldocs/llama.oldversion.embedding/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.embedding/#embeddingstring-string-embeddingdata-embeddingusage","title":"Embedding(String, String, EmbeddingData[], EmbeddingUsage)","text":"
    public Embedding(string Object, string Model, EmbeddingData[] Data, EmbeddingUsage Usage)\n
    "},{"location":"xmldocs/llama.oldversion.embedding/#parameters","title":"Parameters","text":"

    Object String

    Model String

    Data EmbeddingData[]

    Usage EmbeddingUsage

    "},{"location":"xmldocs/llama.oldversion.embedding/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.embedding/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.oldversion.embedding/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.embedding/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.oldversion.embedding/#parameters_1","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.oldversion.embedding/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.embedding/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.oldversion.embedding/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.embedding/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.oldversion.embedding/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.oldversion.embedding/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.embedding/#equalsembedding","title":"Equals(Embedding)","text":"
    public bool Equals(Embedding other)\n
    "},{"location":"xmldocs/llama.oldversion.embedding/#parameters_3","title":"Parameters","text":"

    other Embedding

    "},{"location":"xmldocs/llama.oldversion.embedding/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.embedding/#clone","title":"<Clone>$()","text":"
    public Embedding <Clone>$()\n
    "},{"location":"xmldocs/llama.oldversion.embedding/#returns_5","title":"Returns","text":"

    Embedding

    "},{"location":"xmldocs/llama.oldversion.embedding/#deconstructstring-string-embeddingdata-embeddingusage","title":"Deconstruct(String&, String&, EmbeddingData[]&, EmbeddingUsage&)","text":"
    public void Deconstruct(String& Object, String& Model, EmbeddingData[]& Data, EmbeddingUsage& Usage)\n
    "},{"location":"xmldocs/llama.oldversion.embedding/#parameters_4","title":"Parameters","text":"

    Object String&

    Model String&

    Data EmbeddingData[]&

    Usage EmbeddingUsage&

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/","title":"EmbeddingData","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class EmbeddingData : System.IEquatable`1[[LLama.OldVersion.EmbeddingData, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 EmbeddingData Implements IEquatable<EmbeddingData>

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.embeddingdata/#index","title":"Index","text":"
    public int Index { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#object","title":"Object","text":"
    public string Object { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#property-value_1","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#embedding","title":"Embedding","text":"
    public Single[] Embedding { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#property-value_2","title":"Property Value","text":"

    Single[]

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.embeddingdata/#embeddingdataint32-string-single","title":"EmbeddingData(Int32, String, Single[])","text":"
    public EmbeddingData(int Index, string Object, Single[] Embedding)\n
    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#parameters","title":"Parameters","text":"

    Index Int32

    Object String

    Embedding Single[]

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.embeddingdata/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#parameters_1","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#equalsembeddingdata","title":"Equals(EmbeddingData)","text":"
    public bool Equals(EmbeddingData other)\n
    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#parameters_3","title":"Parameters","text":"

    other EmbeddingData

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#clone","title":"<Clone>$()","text":"
    public EmbeddingData <Clone>$()\n
    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#returns_5","title":"Returns","text":"

    EmbeddingData

    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#deconstructint32-string-single","title":"Deconstruct(Int32&, String&, Single[]&)","text":"
    public void Deconstruct(Int32& Index, String& Object, Single[]& Embedding)\n
    "},{"location":"xmldocs/llama.oldversion.embeddingdata/#parameters_4","title":"Parameters","text":"

    Index Int32&

    Object String&

    Embedding Single[]&

    "},{"location":"xmldocs/llama.oldversion.embeddingusage/","title":"EmbeddingUsage","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class EmbeddingUsage : System.IEquatable`1[[LLama.OldVersion.EmbeddingUsage, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]\n

    Inheritance Object \u2192 EmbeddingUsage Implements IEquatable<EmbeddingUsage>

    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.embeddingusage/#prompttokens","title":"PromptTokens","text":"
    public int PromptTokens { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#property-value","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#totaltokens","title":"TotalTokens","text":"
    public int TotalTokens { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#property-value_1","title":"Property Value","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.embeddingusage/#embeddingusageint32-int32","title":"EmbeddingUsage(Int32, Int32)","text":"
    public EmbeddingUsage(int PromptTokens, int TotalTokens)\n
    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#parameters","title":"Parameters","text":"

    PromptTokens Int32

    TotalTokens Int32

    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.embeddingusage/#tostring","title":"ToString()","text":"
    public string ToString()\n
    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#returns","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#printmembersstringbuilder","title":"PrintMembers(StringBuilder)","text":"
    protected bool PrintMembers(StringBuilder builder)\n
    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#parameters_1","title":"Parameters","text":"

    builder StringBuilder

    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#gethashcode","title":"GetHashCode()","text":"
    public int GetHashCode()\n
    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#returns_2","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#equalsobject","title":"Equals(Object)","text":"
    public bool Equals(object obj)\n
    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#parameters_2","title":"Parameters","text":"

    obj Object

    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#returns_3","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#equalsembeddingusage","title":"Equals(EmbeddingUsage)","text":"
    public bool Equals(EmbeddingUsage other)\n
    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#parameters_3","title":"Parameters","text":"

    other EmbeddingUsage

    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#returns_4","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#clone","title":"<Clone>$()","text":"
    public EmbeddingUsage <Clone>$()\n
    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#returns_5","title":"Returns","text":"

    EmbeddingUsage

    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#deconstructint32-int32","title":"Deconstruct(Int32&, Int32&)","text":"
    public void Deconstruct(Int32& PromptTokens, Int32& TotalTokens)\n
    "},{"location":"xmldocs/llama.oldversion.embeddingusage/#parameters_4","title":"Parameters","text":"

    PromptTokens Int32&

    TotalTokens Int32&

    "},{"location":"xmldocs/llama.oldversion.ichatmodel/","title":"IChatModel","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.ichatmodel/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public interface IChatModel\n
    "},{"location":"xmldocs/llama.oldversion.ichatmodel/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.ichatmodel/#name","title":"Name","text":"
    public abstract string Name { get; }\n
    "},{"location":"xmldocs/llama.oldversion.ichatmodel/#property-value","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.ichatmodel/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.ichatmodel/#chatstring-string-string","title":"Chat(String, String, String)","text":"
    IEnumerable<string> Chat(string text, string prompt, string encoding)\n
    "},{"location":"xmldocs/llama.oldversion.ichatmodel/#parameters","title":"Parameters","text":"

    text String

    prompt String

    encoding String

    "},{"location":"xmldocs/llama.oldversion.ichatmodel/#returns","title":"Returns","text":"

    IEnumerable<String>

    "},{"location":"xmldocs/llama.oldversion.ichatmodel/#initchatpromptstring-string","title":"InitChatPrompt(String, String)","text":"

    Init a prompt for chat and automatically produce the next prompt during the chat.

    void InitChatPrompt(string prompt, string encoding)\n
    "},{"location":"xmldocs/llama.oldversion.ichatmodel/#parameters_1","title":"Parameters","text":"

    prompt String

    encoding String

    "},{"location":"xmldocs/llama.oldversion.ichatmodel/#initchatantipromptstring","title":"InitChatAntiprompt(String[])","text":"
    void InitChatAntiprompt(String[] antiprompt)\n
    "},{"location":"xmldocs/llama.oldversion.ichatmodel/#parameters_2","title":"Parameters","text":"

    antiprompt String[]

    "},{"location":"xmldocs/llama.oldversion.llamaembedder/","title":"LLamaEmbedder","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.llamaembedder/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class LLamaEmbedder : System.IDisposable\n

    Inheritance Object \u2192 LLamaEmbedder Implements IDisposable

    "},{"location":"xmldocs/llama.oldversion.llamaembedder/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.llamaembedder/#llamaembedderllamaparams","title":"LLamaEmbedder(LLamaParams)","text":"
    public LLamaEmbedder(LLamaParams params)\n
    "},{"location":"xmldocs/llama.oldversion.llamaembedder/#parameters","title":"Parameters","text":"

    params LLamaParams

    "},{"location":"xmldocs/llama.oldversion.llamaembedder/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.llamaembedder/#getembeddingsstring-int32-boolean-string","title":"GetEmbeddings(String, Int32, Boolean, String)","text":"
    public Single[] GetEmbeddings(string text, int n_thread, bool add_bos, string encoding)\n
    "},{"location":"xmldocs/llama.oldversion.llamaembedder/#parameters_1","title":"Parameters","text":"

    text String

    n_thread Int32

    add_bos Boolean

    encoding String

    "},{"location":"xmldocs/llama.oldversion.llamaembedder/#returns","title":"Returns","text":"

    Single[]

    "},{"location":"xmldocs/llama.oldversion.llamaembedder/#dispose","title":"Dispose()","text":"
    public void Dispose()\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/","title":"LLamaModel","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public class LLamaModel : IChatModel, System.IDisposable\n

    Inheritance Object \u2192 LLamaModel Implements IChatModel, IDisposable

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.oldversion.llamamodel/#name","title":"Name","text":"
    public string Name { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/#property-value","title":"Property Value","text":"

    String

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#verbose","title":"Verbose","text":"
    public bool Verbose { get; set; }\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/#property-value_1","title":"Property Value","text":"

    Boolean

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#nativehandle","title":"NativeHandle","text":"
    public SafeLLamaContextHandle NativeHandle { get; }\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/#property-value_2","title":"Property Value","text":"

    SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.llamamodel/#llamamodelstring-string-boolean-int32-int32-int32-int32-int32-int32-int32-dictionaryint32-single-int32-single-single-single-single-single-int32-single-single-int32-single-single-string-string-string-string-liststring-string-string-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-string","title":"LLamaModel(String, String, Boolean, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Dictionary<Int32, Single>, Int32, Single, Single, Single, Single, Single, Int32, Single, Single, Int32, Single, Single, String, String, String, String, List<String>, String, String, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, String)","text":"

    Please refer LLamaParams to find the meanings of each arg. Be sure to have set the n_gpu_layers, otherwise it will load 20 layers to gpu by default.

    public LLamaModel(string model_path, string model_name, bool verbose, int seed, int n_threads, int n_predict, int n_ctx, int n_batch, int n_keep, int n_gpu_layers, Dictionary<int, float> logit_bias, int top_k, float top_p, float tfs_z, float typical_p, float temp, float repeat_penalty, int repeat_last_n, float frequency_penalty, float presence_penalty, int mirostat, float mirostat_tau, float mirostat_eta, string prompt, string path_session, string input_prefix, string input_suffix, List<string> antiprompt, string lora_adapter, string lora_base, bool memory_f16, bool random_prompt, bool use_color, bool interactive, bool embedding, bool interactive_first, bool prompt_cache_all, bool instruct, bool penalize_nl, bool perplexity, bool use_mmap, bool use_mlock, bool mem_test, bool verbose_prompt, string encoding)\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/#parameters","title":"Parameters","text":"

    model_path String The model file path.

    model_name String The model name.

    verbose Boolean Whether to print details when running the model.

    seed Int32

    n_threads Int32

    n_predict Int32

    n_ctx Int32

    n_batch Int32

    n_keep Int32

    n_gpu_layers Int32

    logit_bias Dictionary<Int32, Single>

    top_k Int32

    top_p Single

    tfs_z Single

    typical_p Single

    temp Single

    repeat_penalty Single

    repeat_last_n Int32

    frequency_penalty Single

    presence_penalty Single

    mirostat Int32

    mirostat_tau Single

    mirostat_eta Single

    prompt String

    path_session String

    input_prefix String

    input_suffix String

    antiprompt List<String>

    lora_adapter String

    lora_base String

    memory_f16 Boolean

    random_prompt Boolean

    use_color Boolean

    interactive Boolean

    embedding Boolean

    interactive_first Boolean

    prompt_cache_all Boolean

    instruct Boolean

    penalize_nl Boolean

    perplexity Boolean

    use_mmap Boolean

    use_mlock Boolean

    mem_test Boolean

    verbose_prompt Boolean

    encoding String

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#llamamodelllamaparams-string-boolean-string","title":"LLamaModel(LLamaParams, String, Boolean, String)","text":"

    Please refer LLamaParams to find the meanings of each arg. Be sure to have set the n_gpu_layers, otherwise it will load 20 layers to gpu by default.

    public LLamaModel(LLamaParams params, string name, bool verbose, string encoding)\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/#parameters_1","title":"Parameters","text":"

    params LLamaParams The LLamaModel params

    name String Model name

    verbose Boolean Whether to output the detailed info.

    encoding String

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#exceptions","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.oldversion.llamamodel/#withpromptstring-string","title":"WithPrompt(String, String)","text":"

    Apply a prompt to the model.

    public LLamaModel WithPrompt(string prompt, string encoding)\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/#parameters_2","title":"Parameters","text":"

    prompt String

    encoding String

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#returns","title":"Returns","text":"

    LLamaModel

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#exceptions_1","title":"Exceptions","text":"

    ArgumentException

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#withpromptfilestring","title":"WithPromptFile(String)","text":"

    Apply the prompt file to the model.

    public LLamaModel WithPromptFile(string promptFileName)\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/#parameters_3","title":"Parameters","text":"

    promptFileName String

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#returns_1","title":"Returns","text":"

    LLamaModel

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#initchatpromptstring-string","title":"InitChatPrompt(String, String)","text":"
    public void InitChatPrompt(string prompt, string encoding)\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/#parameters_4","title":"Parameters","text":"

    prompt String

    encoding String

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#initchatantipromptstring","title":"InitChatAntiprompt(String[])","text":"
    public void InitChatAntiprompt(String[] antiprompt)\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/#parameters_5","title":"Parameters","text":"

    antiprompt String[]

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#chatstring-string-string","title":"Chat(String, String, String)","text":"

    Chat with the LLaMa model under interactive mode.

    public IEnumerable<string> Chat(string text, string prompt, string encoding)\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/#parameters_6","title":"Parameters","text":"

    text String

    prompt String

    encoding String

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#returns_2","title":"Returns","text":"

    IEnumerable<String>

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#exceptions_2","title":"Exceptions","text":"

    ArgumentException

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#savestatestring","title":"SaveState(String)","text":"

    Save the state to specified path.

    public void SaveState(string filename)\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/#parameters_7","title":"Parameters","text":"

    filename String

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#loadstatestring-boolean","title":"LoadState(String, Boolean)","text":"

    Load the state from specified path.

    public void LoadState(string filename, bool clearPreviousEmbed)\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/#parameters_8","title":"Parameters","text":"

    filename String

    clearPreviousEmbed Boolean Whether to clear previous footprints of this model.

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#exceptions_3","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#tokenizestring-string","title":"Tokenize(String, String)","text":"

    Tokenize a string.

    public List<int> Tokenize(string text, string encoding)\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/#parameters_9","title":"Parameters","text":"

    text String The utf-8 encoded string to tokenize.

    encoding String

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#returns_3","title":"Returns","text":"

    List<Int32> A list of tokens.

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#exceptions_4","title":"Exceptions","text":"

    RuntimeError If the tokenization failed.

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#detokenizeienumerableint32","title":"DeTokenize(IEnumerable<Int32>)","text":"

    Detokenize a list of tokens.

    public string DeTokenize(IEnumerable<int> tokens)\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/#parameters_10","title":"Parameters","text":"

    tokens IEnumerable<Int32> The list of tokens to detokenize.

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#returns_4","title":"Returns","text":"

    String The detokenized string.

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#callstring-string","title":"Call(String, String)","text":"

    Call the model to run inference.

    public IEnumerable<string> Call(string text, string encoding)\n
    "},{"location":"xmldocs/llama.oldversion.llamamodel/#parameters_11","title":"Parameters","text":"

    text String

    encoding String

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#returns_5","title":"Returns","text":"

    IEnumerable<String>

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#exceptions_5","title":"Exceptions","text":"

    RuntimeError

    "},{"location":"xmldocs/llama.oldversion.llamamodel/#dispose","title":"Dispose()","text":"
    public void Dispose()\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/","title":"LLamaParams","text":"

    Namespace: LLama.OldVersion

    "},{"location":"xmldocs/llama.oldversion.llamaparams/#caution","title":"Caution","text":"

    The entire LLama.OldVersion namespace will be removed

    public struct LLamaParams\n

    Inheritance Object \u2192 ValueType \u2192 LLamaParams

    "},{"location":"xmldocs/llama.oldversion.llamaparams/#fields","title":"Fields","text":""},{"location":"xmldocs/llama.oldversion.llamaparams/#seed","title":"seed","text":"
    public int seed;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#n_threads","title":"n_threads","text":"
    public int n_threads;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#n_predict","title":"n_predict","text":"
    public int n_predict;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#n_ctx","title":"n_ctx","text":"
    public int n_ctx;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#n_batch","title":"n_batch","text":"
    public int n_batch;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#n_keep","title":"n_keep","text":"
    public int n_keep;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#n_gpu_layers","title":"n_gpu_layers","text":"
    public int n_gpu_layers;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#logit_bias","title":"logit_bias","text":"
    public Dictionary<int, float> logit_bias;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#top_k","title":"top_k","text":"
    public int top_k;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#top_p","title":"top_p","text":"
    public float top_p;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#tfs_z","title":"tfs_z","text":"
    public float tfs_z;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#typical_p","title":"typical_p","text":"
    public float typical_p;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#temp","title":"temp","text":"
    public float temp;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#repeat_penalty","title":"repeat_penalty","text":"
    public float repeat_penalty;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#repeat_last_n","title":"repeat_last_n","text":"
    public int repeat_last_n;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#frequency_penalty","title":"frequency_penalty","text":"
    public float frequency_penalty;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#presence_penalty","title":"presence_penalty","text":"
    public float presence_penalty;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#mirostat","title":"mirostat","text":"
    public int mirostat;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#mirostat_tau","title":"mirostat_tau","text":"
    public float mirostat_tau;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#mirostat_eta","title":"mirostat_eta","text":"
    public float mirostat_eta;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#model","title":"model","text":"
    public string model;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#prompt","title":"prompt","text":"
    public string prompt;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#path_session","title":"path_session","text":"
    public string path_session;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#input_prefix","title":"input_prefix","text":"
    public string input_prefix;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#input_suffix","title":"input_suffix","text":"
    public string input_suffix;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#antiprompt","title":"antiprompt","text":"
    public List<string> antiprompt;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#lora_adapter","title":"lora_adapter","text":"
    public string lora_adapter;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#lora_base","title":"lora_base","text":"
    public string lora_base;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#memory_f16","title":"memory_f16","text":"
    public bool memory_f16;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#random_prompt","title":"random_prompt","text":"
    public bool random_prompt;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#use_color","title":"use_color","text":"
    public bool use_color;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#interactive","title":"interactive","text":"
    public bool interactive;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#prompt_cache_all","title":"prompt_cache_all","text":"
    public bool prompt_cache_all;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#embedding","title":"embedding","text":"
    public bool embedding;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#interactive_first","title":"interactive_first","text":"
    public bool interactive_first;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#instruct","title":"instruct","text":"
    public bool instruct;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#penalize_nl","title":"penalize_nl","text":"
    public bool penalize_nl;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#perplexity","title":"perplexity","text":"
    public bool perplexity;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#use_mmap","title":"use_mmap","text":"
    public bool use_mmap;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#use_mlock","title":"use_mlock","text":"
    public bool use_mlock;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#mem_test","title":"mem_test","text":"
    public bool mem_test;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#verbose_prompt","title":"verbose_prompt","text":"
    public bool verbose_prompt;\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.oldversion.llamaparams/#llamaparamsint32-int32-int32-int32-int32-int32-int32-dictionaryint32-single-int32-single-single-single-single-single-int32-single-single-int32-single-single-string-string-string-string-string-liststring-string-string-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean","title":"LLamaParams(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Dictionary<Int32, Single>, Int32, Single, Single, Single, Single, Single, Int32, Single, Single, Int32, Single, Single, String, String, String, String, String, List<String>, String, String, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean)","text":"
    LLamaParams(int seed, int n_threads, int n_predict, int n_ctx, int n_batch, int n_keep, int n_gpu_layers, Dictionary<int, float> logit_bias, int top_k, float top_p, float tfs_z, float typical_p, float temp, float repeat_penalty, int repeat_last_n, float frequency_penalty, float presence_penalty, int mirostat, float mirostat_tau, float mirostat_eta, string model, string prompt, string path_session, string input_prefix, string input_suffix, List<string> antiprompt, string lora_adapter, string lora_base, bool memory_f16, bool random_prompt, bool use_color, bool interactive, bool prompt_cache_all, bool embedding, bool interactive_first, bool instruct, bool penalize_nl, bool perplexity, bool use_mmap, bool use_mlock, bool mem_test, bool verbose_prompt)\n
    "},{"location":"xmldocs/llama.oldversion.llamaparams/#parameters","title":"Parameters","text":"

    seed Int32

    n_threads Int32

    n_predict Int32

    n_ctx Int32

    n_batch Int32

    n_keep Int32

    n_gpu_layers Int32

    logit_bias Dictionary<Int32, Single>

    top_k Int32

    top_p Single

    tfs_z Single

    typical_p Single

    temp Single

    repeat_penalty Single

    repeat_last_n Int32

    frequency_penalty Single

    presence_penalty Single

    mirostat Int32

    mirostat_tau Single

    mirostat_eta Single

    model String

    prompt String

    path_session String

    input_prefix String

    input_suffix String

    antiprompt List<String>

    lora_adapter String

    lora_base String

    memory_f16 Boolean

    random_prompt Boolean

    use_color Boolean

    interactive Boolean

    prompt_cache_all Boolean

    embedding Boolean

    interactive_first Boolean

    instruct Boolean

    penalize_nl Boolean

    perplexity Boolean

    use_mmap Boolean

    use_mlock Boolean

    mem_test Boolean

    verbose_prompt Boolean

    "},{"location":"xmldocs/llama.statefulexecutorbase/","title":"StatefulExecutorBase","text":"

    Namespace: LLama

    The base class for stateful LLama executors.

    public abstract class StatefulExecutorBase : LLama.Abstractions.ILLamaExecutor\n

    Inheritance Object \u2192 StatefulExecutorBase Implements ILLamaExecutor

    "},{"location":"xmldocs/llama.statefulexecutorbase/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.statefulexecutorbase/#context","title":"Context","text":"

    The context used by the executor.

    public LLamaContext Context { get; }\n
    "},{"location":"xmldocs/llama.statefulexecutorbase/#property-value","title":"Property Value","text":"

    LLamaContext

    "},{"location":"xmldocs/llama.statefulexecutorbase/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.statefulexecutorbase/#withsessionfilestring","title":"WithSessionFile(String)","text":"

    This API is currently not verified.

    public StatefulExecutorBase WithSessionFile(string filename)\n
    "},{"location":"xmldocs/llama.statefulexecutorbase/#parameters","title":"Parameters","text":"

    filename String

    "},{"location":"xmldocs/llama.statefulexecutorbase/#returns","title":"Returns","text":"

    StatefulExecutorBase

    "},{"location":"xmldocs/llama.statefulexecutorbase/#exceptions","title":"Exceptions","text":"

    ArgumentNullException

    RuntimeError

    "},{"location":"xmldocs/llama.statefulexecutorbase/#savesessionfilestring","title":"SaveSessionFile(String)","text":"

    This API has not been verified currently.

    public void SaveSessionFile(string filename)\n
    "},{"location":"xmldocs/llama.statefulexecutorbase/#parameters_1","title":"Parameters","text":"

    filename String

    "},{"location":"xmldocs/llama.statefulexecutorbase/#handlerunoutofcontextint32","title":"HandleRunOutOfContext(Int32)","text":"

    After running out of the context, take some tokens from the original prompt and recompute the logits in batches.

    protected void HandleRunOutOfContext(int tokensToKeep)\n
    "},{"location":"xmldocs/llama.statefulexecutorbase/#parameters_2","title":"Parameters","text":"

    tokensToKeep Int32

    "},{"location":"xmldocs/llama.statefulexecutorbase/#tryreusemathingprefix","title":"TryReuseMathingPrefix()","text":"

    Try to reuse the matching prefix from the session file.

    protected void TryReuseMathingPrefix()\n
    "},{"location":"xmldocs/llama.statefulexecutorbase/#getloopconditioninferstateargs","title":"GetLoopCondition(InferStateArgs)","text":"

    Decide whether to continue the loop.

    protected abstract bool GetLoopCondition(InferStateArgs args)\n
    "},{"location":"xmldocs/llama.statefulexecutorbase/#parameters_3","title":"Parameters","text":"

    args InferStateArgs

    "},{"location":"xmldocs/llama.statefulexecutorbase/#returns_1","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.statefulexecutorbase/#preprocessinputsstring-inferstateargs","title":"PreprocessInputs(String, InferStateArgs)","text":"

    Preprocess the inputs before the inference.

    protected abstract void PreprocessInputs(string text, InferStateArgs args)\n
    "},{"location":"xmldocs/llama.statefulexecutorbase/#parameters_4","title":"Parameters","text":"

    text String

    args InferStateArgs

    "},{"location":"xmldocs/llama.statefulexecutorbase/#postprocessiinferenceparams-inferstateargs-ienumerable1","title":"PostProcess(IInferenceParams, InferStateArgs, IEnumerable`1&)","text":"

    Do some post processing after the inference.

    protected abstract bool PostProcess(IInferenceParams inferenceParams, InferStateArgs args, IEnumerable`1& extraOutputs)\n
    "},{"location":"xmldocs/llama.statefulexecutorbase/#parameters_5","title":"Parameters","text":"

    inferenceParams IInferenceParams

    args InferStateArgs

    extraOutputs IEnumerable`1&

    "},{"location":"xmldocs/llama.statefulexecutorbase/#returns_2","title":"Returns","text":"

    Boolean

    "},{"location":"xmldocs/llama.statefulexecutorbase/#inferinternaliinferenceparams-inferstateargs","title":"InferInternal(IInferenceParams, InferStateArgs)","text":"

    The core inference logic.

    protected abstract void InferInternal(IInferenceParams inferenceParams, InferStateArgs args)\n
    "},{"location":"xmldocs/llama.statefulexecutorbase/#parameters_6","title":"Parameters","text":"

    inferenceParams IInferenceParams

    args InferStateArgs

    "},{"location":"xmldocs/llama.statefulexecutorbase/#savestatestring","title":"SaveState(String)","text":"

    Save the current state to a file.

    public abstract void SaveState(string filename)\n
    "},{"location":"xmldocs/llama.statefulexecutorbase/#parameters_7","title":"Parameters","text":"

    filename String

    "},{"location":"xmldocs/llama.statefulexecutorbase/#getstatedata","title":"GetStateData()","text":"

    Get the current state data.

    public abstract ExecutorBaseState GetStateData()\n
    "},{"location":"xmldocs/llama.statefulexecutorbase/#returns_3","title":"Returns","text":"

    ExecutorBaseState

    "},{"location":"xmldocs/llama.statefulexecutorbase/#loadstateexecutorbasestate","title":"LoadState(ExecutorBaseState)","text":"

    Load the state from data.

    public abstract void LoadState(ExecutorBaseState data)\n
    "},{"location":"xmldocs/llama.statefulexecutorbase/#parameters_8","title":"Parameters","text":"

    data ExecutorBaseState

    "},{"location":"xmldocs/llama.statefulexecutorbase/#loadstatestring","title":"LoadState(String)","text":"

    Load the state from a file.

    public abstract void LoadState(string filename)\n
    "},{"location":"xmldocs/llama.statefulexecutorbase/#parameters_9","title":"Parameters","text":"

    filename String

    "},{"location":"xmldocs/llama.statefulexecutorbase/#inferstring-iinferenceparams-cancellationtoken","title":"Infer(String, IInferenceParams, CancellationToken)","text":"

    Execute the inference.

    public IEnumerable<string> Infer(string text, IInferenceParams inferenceParams, CancellationToken cancellationToken)\n
    "},{"location":"xmldocs/llama.statefulexecutorbase/#parameters_10","title":"Parameters","text":"

    text String

    inferenceParams IInferenceParams

    cancellationToken CancellationToken

    "},{"location":"xmldocs/llama.statefulexecutorbase/#returns_4","title":"Returns","text":"

    IEnumerable<String>

    "},{"location":"xmldocs/llama.statefulexecutorbase/#inferasyncstring-iinferenceparams-cancellationtoken","title":"InferAsync(String, IInferenceParams, CancellationToken)","text":"

    Execute the inference asynchronously.

    public IAsyncEnumerable<string> InferAsync(string text, IInferenceParams inferenceParams, CancellationToken cancellationToken)\n
    "},{"location":"xmldocs/llama.statefulexecutorbase/#parameters_11","title":"Parameters","text":"

    text String

    inferenceParams IInferenceParams

    cancellationToken CancellationToken

    "},{"location":"xmldocs/llama.statefulexecutorbase/#returns_5","title":"Returns","text":"

    IAsyncEnumerable<String>

    "},{"location":"xmldocs/llama.statelessexecutor/","title":"StatelessExecutor","text":"

    Namespace: LLama

    This executor infer the input as one-time job. Previous inputs won't impact on the response to current input.

    public class StatelessExecutor : LLama.Abstractions.ILLamaExecutor\n

    Inheritance Object \u2192 StatelessExecutor Implements ILLamaExecutor

    "},{"location":"xmldocs/llama.statelessexecutor/#properties","title":"Properties","text":""},{"location":"xmldocs/llama.statelessexecutor/#context","title":"Context","text":"

    The context used by the executor when running the inference.

    public LLamaContext Context { get; private set; }\n
    "},{"location":"xmldocs/llama.statelessexecutor/#property-value","title":"Property Value","text":"

    LLamaContext

    "},{"location":"xmldocs/llama.statelessexecutor/#constructors","title":"Constructors","text":""},{"location":"xmldocs/llama.statelessexecutor/#statelessexecutorllamaweights-imodelparams","title":"StatelessExecutor(LLamaWeights, IModelParams)","text":"

    Create a new stateless executor which will use the given model

    public StatelessExecutor(LLamaWeights weights, IModelParams params)\n
    "},{"location":"xmldocs/llama.statelessexecutor/#parameters","title":"Parameters","text":"

    weights LLamaWeights

    params IModelParams

    "},{"location":"xmldocs/llama.statelessexecutor/#statelessexecutorllamacontext","title":"StatelessExecutor(LLamaContext)","text":""},{"location":"xmldocs/llama.statelessexecutor/#caution","title":"Caution","text":"

    Use the constructor which automatically creates contexts using the LLamaWeights

    Create a new stateless executor which will use the model used to create the given context

    public StatelessExecutor(LLamaContext context)\n
    "},{"location":"xmldocs/llama.statelessexecutor/#parameters_1","title":"Parameters","text":"

    context LLamaContext

    "},{"location":"xmldocs/llama.statelessexecutor/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.statelessexecutor/#inferstring-iinferenceparams-cancellationtoken","title":"Infer(String, IInferenceParams, CancellationToken)","text":"
    public IEnumerable<string> Infer(string text, IInferenceParams inferenceParams, CancellationToken cancellationToken)\n
    "},{"location":"xmldocs/llama.statelessexecutor/#parameters_2","title":"Parameters","text":"

    text String

    inferenceParams IInferenceParams

    cancellationToken CancellationToken

    "},{"location":"xmldocs/llama.statelessexecutor/#returns","title":"Returns","text":"

    IEnumerable<String>

    "},{"location":"xmldocs/llama.statelessexecutor/#inferasyncstring-iinferenceparams-cancellationtoken","title":"InferAsync(String, IInferenceParams, CancellationToken)","text":"
    public IAsyncEnumerable<string> InferAsync(string text, IInferenceParams inferenceParams, CancellationToken cancellationToken)\n
    "},{"location":"xmldocs/llama.statelessexecutor/#parameters_3","title":"Parameters","text":"

    text String

    inferenceParams IInferenceParams

    cancellationToken CancellationToken

    "},{"location":"xmldocs/llama.statelessexecutor/#returns_1","title":"Returns","text":"

    IAsyncEnumerable<String>

    "},{"location":"xmldocs/llama.utils/","title":"Utils","text":"

    Namespace: LLama

    Assorted llama utilities

    public static class Utils\n

    Inheritance Object \u2192 Utils

    "},{"location":"xmldocs/llama.utils/#methods","title":"Methods","text":""},{"location":"xmldocs/llama.utils/#initllamacontextfrommodelparamsimodelparams","title":"InitLLamaContextFromModelParams(IModelParams)","text":""},{"location":"xmldocs/llama.utils/#caution","title":"Caution","text":"

    Use LLamaWeights.LoadFromFile and LLamaWeights.CreateContext instead

    public static SafeLLamaContextHandle InitLLamaContextFromModelParams(IModelParams params)\n
    "},{"location":"xmldocs/llama.utils/#parameters","title":"Parameters","text":"

    params IModelParams

    "},{"location":"xmldocs/llama.utils/#returns","title":"Returns","text":"

    SafeLLamaContextHandle

    "},{"location":"xmldocs/llama.utils/#tokenizesafellamacontexthandle-string-boolean-encoding","title":"Tokenize(SafeLLamaContextHandle, String, Boolean, Encoding)","text":""},{"location":"xmldocs/llama.utils/#caution_1","title":"Caution","text":"

    Use SafeLLamaContextHandle Tokenize method instead

    public static IEnumerable<int> Tokenize(SafeLLamaContextHandle ctx, string text, bool add_bos, Encoding encoding)\n
    "},{"location":"xmldocs/llama.utils/#parameters_1","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    text String

    add_bos Boolean

    encoding Encoding

    "},{"location":"xmldocs/llama.utils/#returns_1","title":"Returns","text":"

    IEnumerable<Int32>

    "},{"location":"xmldocs/llama.utils/#getlogitssafellamacontexthandle-int32","title":"GetLogits(SafeLLamaContextHandle, Int32)","text":""},{"location":"xmldocs/llama.utils/#caution_2","title":"Caution","text":"

    Use SafeLLamaContextHandle GetLogits method instead

    public static Span<float> GetLogits(SafeLLamaContextHandle ctx, int length)\n
    "},{"location":"xmldocs/llama.utils/#parameters_2","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    length Int32

    "},{"location":"xmldocs/llama.utils/#returns_2","title":"Returns","text":"

    Span<Single>

    "},{"location":"xmldocs/llama.utils/#evalsafellamacontexthandle-int32-int32-int32-int32-int32","title":"Eval(SafeLLamaContextHandle, Int32[], Int32, Int32, Int32, Int32)","text":""},{"location":"xmldocs/llama.utils/#caution_3","title":"Caution","text":"

    Use SafeLLamaContextHandle Eval method instead

    public static int Eval(SafeLLamaContextHandle ctx, Int32[] tokens, int startIndex, int n_tokens, int n_past, int n_threads)\n
    "},{"location":"xmldocs/llama.utils/#parameters_3","title":"Parameters","text":"

    ctx SafeLLamaContextHandle

    tokens Int32[]

    startIndex Int32

    n_tokens Int32

    n_past Int32

    n_threads Int32

    "},{"location":"xmldocs/llama.utils/#returns_3","title":"Returns","text":"

    Int32

    "},{"location":"xmldocs/llama.utils/#tokentostringint32-safellamacontexthandle-encoding","title":"TokenToString(Int32, SafeLLamaContextHandle, Encoding)","text":""},{"location":"xmldocs/llama.utils/#caution_4","title":"Caution","text":"

    Use SafeLLamaContextHandle TokenToString method instead

    public static string TokenToString(int token, SafeLLamaContextHandle ctx, Encoding encoding)\n
    "},{"location":"xmldocs/llama.utils/#parameters_4","title":"Parameters","text":"

    token Int32

    ctx SafeLLamaContextHandle

    encoding Encoding

    "},{"location":"xmldocs/llama.utils/#returns_4","title":"Returns","text":"

    String

    "},{"location":"xmldocs/llama.utils/#ptrtostringintptr-encoding","title":"PtrToString(IntPtr, Encoding)","text":""},{"location":"xmldocs/llama.utils/#caution_5","title":"Caution","text":"

    No longer used internally by LlamaSharp

    public static string PtrToString(IntPtr ptr, Encoding encoding)\n
    "},{"location":"xmldocs/llama.utils/#parameters_5","title":"Parameters","text":"

    ptr IntPtr

    encoding Encoding

    "},{"location":"xmldocs/llama.utils/#returns_5","title":"Returns","text":"

    String

    "}]} \ No newline at end of file diff --git a/0.5/sitemap.xml b/0.5/sitemap.xml new file mode 100755 index 00000000..0f8724ef --- /dev/null +++ b/0.5/sitemap.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/0.5/sitemap.xml.gz b/0.5/sitemap.xml.gz new file mode 100755 index 0000000000000000000000000000000000000000..e9e72e98bd721b4053eebe94a2cb949590c8f948 GIT binary patch literal 127 zcmV-_0D%7=iwFoZzVc)O|8r?{Wo=<_E_iKh04<9_3V)_WXo8&M?ytk3HC}0~zlG)Vu + + + + + + + + + + + + + + + + + + + + index - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaSharp

    +

    LLama

    +

    ChatSession

    +

    InstructExecutor

    +

    InteractiveExecutor

    +

    LLamaContext

    +

    LLamaEmbedder

    +

    LLamaQuantizer

    +

    LLamaTransforms

    +

    LLamaWeights

    +

    StatefulExecutorBase

    +

    StatelessExecutor

    +

    Utils

    +

    LLama.Abstractions

    +

    IHistoryTransform

    +

    IInferenceParams

    +

    ILLamaExecutor

    +

    IModelParams

    +

    ITextStreamTransform

    +

    ITextTransform

    +

    LLama.Common

    +

    AuthorRole

    +

    ChatHistory

    +

    FixedSizeQueue<T>

    +

    ILLamaLogger

    +

    InferenceParams

    +

    LLamaDefaultLogger

    +

    MirostatType

    +

    ModelParams

    +

    LLama.Exceptions

    +

    GrammarExpectedName

    +

    GrammarExpectedNext

    +

    GrammarExpectedPrevious

    +

    GrammarFormatException

    +

    GrammarUnexpectedCharAltElement

    +

    GrammarUnexpectedCharRngElement

    +

    GrammarUnexpectedEndElement

    +

    GrammarUnexpectedEndOfInput

    +

    GrammarUnexpectedHexCharsCount

    +

    GrammarUnknownEscapeCharacter

    +

    RuntimeError

    +

    LLama.Extensions

    +

    IModelParamsExtensions

    +

    KeyValuePairExtensions

    +

    LLama.Grammars

    +

    Grammar

    +

    GrammarRule

    +

    LLama.Native

    +

    LLamaContextParams

    +

    LLamaFtype

    +

    LLamaGrammarElement

    +

    LLamaGrammarElementType

    +

    LLamaModelQuantizeParams

    +

    LLamaTokenData

    +

    LLamaTokenDataArray

    +

    LLamaTokenDataArrayNative

    +

    NativeApi

    +

    SafeLLamaContextHandle

    +

    SafeLLamaGrammarHandle

    +

    SafeLLamaHandleBase

    +

    SafeLlamaModelHandle

    +

    SamplingApi

    +

    LLama.OldVersion

    +

    ChatCompletion

    +

    ChatCompletionChoice

    +

    ChatCompletionChunk

    +

    ChatCompletionChunkChoice

    +

    ChatCompletionChunkDelta

    +

    ChatCompletionMessage

    +

    ChatMessageRecord

    +

    ChatRole

    +

    ChatSession<T>

    +

    Completion

    +

    CompletionChoice

    +

    CompletionChunk

    +

    CompletionLogprobs

    +

    CompletionUsage

    +

    Embedding

    +

    EmbeddingData

    +

    EmbeddingUsage

    +

    IChatModel

    +

    LLamaEmbedder

    +

    LLamaModel

    +

    LLamaParams

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.abstractions.ihistorytransform/index.html b/0.5/xmldocs/llama.abstractions.ihistorytransform/index.html new file mode 100755 index 00000000..0d7e0194 --- /dev/null +++ b/0.5/xmldocs/llama.abstractions.ihistorytransform/index.html @@ -0,0 +1,2232 @@ + + + + + + + + + + + + + + + + + + + + + + llama.abstractions.ihistorytransform - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    IHistoryTransform

    +

    Namespace: LLama.Abstractions

    +

    Transform history to plain text and vice versa.

    +
    public interface IHistoryTransform
    +
    +

    Methods

    +

    HistoryToText(ChatHistory)

    +

    Convert a ChatHistory instance to plain text.

    +
    string HistoryToText(ChatHistory history)
    +
    +

    Parameters

    +

    history ChatHistory
    +The ChatHistory instance

    +

    Returns

    +

    String

    +

    TextToHistory(AuthorRole, String)

    +

    Converts plain text to a ChatHistory instance.

    +
    ChatHistory TextToHistory(AuthorRole role, string text)
    +
    +

    Parameters

    +

    role AuthorRole
    +The role for the author.

    +

    text String
    +The chat history as plain text.

    +

    Returns

    +

    ChatHistory
    +The updated history.

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.abstractions.iinferenceparams/index.html b/0.5/xmldocs/llama.abstractions.iinferenceparams/index.html new file mode 100755 index 00000000..f7cf1f88 --- /dev/null +++ b/0.5/xmldocs/llama.abstractions.iinferenceparams/index.html @@ -0,0 +1,3074 @@ + + + + + + + + + + + + + + + + + + + + + + llama.abstractions.iinferenceparams - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    IInferenceParams

    +

    Namespace: LLama.Abstractions

    +

    The paramters used for inference.

    +
    public interface IInferenceParams
    +
    +

    Properties

    +

    TokensKeep

    +

    number of tokens to keep from initial prompt

    +
    public abstract int TokensKeep { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    MaxTokens

    +

    how many new tokens to predict (n_predict), set to -1 to inifinitely generate response + until it complete.

    +
    public abstract int MaxTokens { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    LogitBias

    +

    logit bias for specific tokens

    +
    public abstract Dictionary<int, float> LogitBias { get; set; }
    +
    +

    Property Value

    +

    Dictionary<Int32, Single>

    +

    AntiPrompts

    +

    Sequences where the model will stop generating further tokens.

    +
    public abstract IEnumerable<string> AntiPrompts { get; set; }
    +
    +

    Property Value

    +

    IEnumerable<String>

    +

    PathSession

    +

    path to file for saving/loading model eval state

    +
    public abstract string PathSession { get; set; }
    +
    +

    Property Value

    +

    String

    +

    InputSuffix

    +

    string to suffix user inputs with

    +
    public abstract string InputSuffix { get; set; }
    +
    +

    Property Value

    +

    String

    +

    InputPrefix

    +

    string to prefix user inputs with

    +
    public abstract string InputPrefix { get; set; }
    +
    +

    Property Value

    +

    String

    +

    TopK

    +

    0 or lower to use vocab size

    +
    public abstract int TopK { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    TopP

    +

    1.0 = disabled

    +
    public abstract float TopP { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    TfsZ

    +

    1.0 = disabled

    +
    public abstract float TfsZ { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    TypicalP

    +

    1.0 = disabled

    +
    public abstract float TypicalP { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    Temperature

    +

    1.0 = disabled

    +
    public abstract float Temperature { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    RepeatPenalty

    +

    1.0 = disabled

    +
    public abstract float RepeatPenalty { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    RepeatLastTokensCount

    +

    last n tokens to penalize (0 = disable penalty, -1 = context size) (repeat_last_n)

    +
    public abstract int RepeatLastTokensCount { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    FrequencyPenalty

    +

    frequency penalty coefficient + 0.0 = disabled

    +
    public abstract float FrequencyPenalty { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    PresencePenalty

    +

    presence penalty coefficient + 0.0 = disabled

    +
    public abstract float PresencePenalty { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    Mirostat

    +

    Mirostat uses tokens instead of words. + algorithm described in the paper https://arxiv.org/abs/2007.14966. + 0 = disabled, 1 = mirostat, 2 = mirostat 2.0

    +
    public abstract MirostatType Mirostat { get; set; }
    +
    +

    Property Value

    +

    MirostatType

    +

    MirostatTau

    +

    target entropy

    +
    public abstract float MirostatTau { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    MirostatEta

    +

    learning rate

    +
    public abstract float MirostatEta { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    PenalizeNL

    +

    consider newlines as a repeatable token (penalize_nl)

    +
    public abstract bool PenalizeNL { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    Grammar

    +

    Grammar to constrain possible tokens

    +
    public abstract SafeLLamaGrammarHandle Grammar { get; set; }
    +
    +

    Property Value

    +

    SafeLLamaGrammarHandle

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.abstractions.illamaexecutor/index.html b/0.5/xmldocs/llama.abstractions.illamaexecutor/index.html new file mode 100755 index 00000000..b05ee54e --- /dev/null +++ b/0.5/xmldocs/llama.abstractions.illamaexecutor/index.html @@ -0,0 +1,2310 @@ + + + + + + + + + + + + + + + + + + + + + + llama.abstractions.illamaexecutor - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    ILLamaExecutor

    +

    Namespace: LLama.Abstractions

    +

    A high level interface for LLama models.

    +
    public interface ILLamaExecutor
    +
    +

    Properties

    +

    Context

    +

    The loaded context for this executor.

    +
    public abstract LLamaContext Context { get; }
    +
    +

    Property Value

    +

    LLamaContext

    +

    Methods

    +

    Infer(String, IInferenceParams, CancellationToken)

    +

    Infers a response from the model.

    +
    IEnumerable<string> Infer(string text, IInferenceParams inferenceParams, CancellationToken token)
    +
    +

    Parameters

    +

    text String
    +Your prompt

    +

    inferenceParams IInferenceParams
    +Any additional parameters

    +

    token CancellationToken
    +A cancellation token.

    +

    Returns

    +

    IEnumerable<String>

    +

    InferAsync(String, IInferenceParams, CancellationToken)

    +

    Asynchronously infers a response from the model.

    +
    IAsyncEnumerable<string> InferAsync(string text, IInferenceParams inferenceParams, CancellationToken token)
    +
    +

    Parameters

    +

    text String
    +Your prompt

    +

    inferenceParams IInferenceParams
    +Any additional parameters

    +

    token CancellationToken
    +A cancellation token.

    +

    Returns

    +

    IAsyncEnumerable<String>

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.abstractions.imodelparams/index.html b/0.5/xmldocs/llama.abstractions.imodelparams/index.html new file mode 100755 index 00000000..94aacf6f --- /dev/null +++ b/0.5/xmldocs/llama.abstractions.imodelparams/index.html @@ -0,0 +1,3116 @@ + + + + + + + + + + + + + + + + + + + + + + llama.abstractions.imodelparams - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    IModelParams

    +

    Namespace: LLama.Abstractions

    +

    The parameters for initializing a LLama model.

    +
    public interface IModelParams
    +
    +

    Properties

    +

    ContextSize

    +

    Model context size (n_ctx)

    +
    public abstract int ContextSize { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    MainGpu

    +

    the GPU that is used for scratch and small tensors

    +
    public abstract int MainGpu { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    LowVram

    +

    if true, reduce VRAM usage at the cost of performance

    +
    public abstract bool LowVram { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    GpuLayerCount

    +

    Number of layers to run in VRAM / GPU memory (n_gpu_layers)

    +
    public abstract int GpuLayerCount { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    Seed

    +

    Seed for the random number generator (seed)

    +
    public abstract int Seed { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    UseFp16Memory

    +

    Use f16 instead of f32 for memory kv (memory_f16)

    +
    public abstract bool UseFp16Memory { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    UseMemorymap

    +

    Use mmap for faster loads (use_mmap)

    +
    public abstract bool UseMemorymap { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    UseMemoryLock

    +

    Use mlock to keep model in memory (use_mlock)

    +
    public abstract bool UseMemoryLock { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    Perplexity

    +

    Compute perplexity over the prompt (perplexity)

    +
    public abstract bool Perplexity { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    ModelPath

    +

    Model path (model)

    +
    public abstract string ModelPath { get; set; }
    +
    +

    Property Value

    +

    String

    +

    ModelAlias

    +

    model alias

    +
    public abstract string ModelAlias { get; set; }
    +
    +

    Property Value

    +

    String

    +

    LoraAdapter

    +

    lora adapter path (lora_adapter)

    +
    public abstract string LoraAdapter { get; set; }
    +
    +

    Property Value

    +

    String

    +

    LoraBase

    +

    base model path for the lora adapter (lora_base)

    +
    public abstract string LoraBase { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Threads

    +

    Number of threads (-1 = autodetect) (n_threads)

    +
    public abstract int Threads { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    BatchSize

    +

    batch size for prompt processing (must be >=32 to use BLAS) (n_batch)

    +
    public abstract int BatchSize { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    ConvertEosToNewLine

    +

    Whether to convert eos to newline during the inference.

    +
    public abstract bool ConvertEosToNewLine { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    EmbeddingMode

    +

    Whether to use embedding mode. (embedding) Note that if this is set to true, + The LLamaModel won't produce text response anymore.

    +
    public abstract bool EmbeddingMode { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    TensorSplits

    +

    how split tensors should be distributed across GPUs

    +
    public abstract Single[] TensorSplits { get; set; }
    +
    +

    Property Value

    +

    Single[]

    +

    RopeFrequencyBase

    +

    RoPE base frequency

    +
    public abstract float RopeFrequencyBase { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    RopeFrequencyScale

    +

    RoPE frequency scaling factor

    +
    public abstract float RopeFrequencyScale { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    MulMatQ

    +

    Use experimental mul_mat_q kernels

    +
    public abstract bool MulMatQ { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    Encoding

    +

    The encoding to use for models

    +
    public abstract Encoding Encoding { get; set; }
    +
    +

    Property Value

    +

    Encoding

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.abstractions.itextstreamtransform/index.html b/0.5/xmldocs/llama.abstractions.itextstreamtransform/index.html new file mode 100755 index 00000000..2b3ab231 --- /dev/null +++ b/0.5/xmldocs/llama.abstractions.itextstreamtransform/index.html @@ -0,0 +1,2227 @@ + + + + + + + + + + + + + + + + + + + + + + llama.abstractions.itextstreamtransform - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    ITextStreamTransform

    +

    Namespace: LLama.Abstractions

    +

    Takes a stream of tokens and transforms them.

    +
    public interface ITextStreamTransform
    +
    +

    Methods

    +

    Transform(IEnumerable<String>)

    +

    Takes a stream of tokens and transforms them, returning a new stream of tokens.

    +
    IEnumerable<string> Transform(IEnumerable<string> tokens)
    +
    +

    Parameters

    +

    tokens IEnumerable<String>

    +

    Returns

    +

    IEnumerable<String>

    +

    TransformAsync(IAsyncEnumerable<String>)

    +

    Takes a stream of tokens and transforms them, returning a new stream of tokens asynchronously.

    +
    IAsyncEnumerable<string> TransformAsync(IAsyncEnumerable<string> tokens)
    +
    +

    Parameters

    +

    tokens IAsyncEnumerable<String>

    +

    Returns

    +

    IAsyncEnumerable<String>

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.abstractions.itexttransform/index.html b/0.5/xmldocs/llama.abstractions.itexttransform/index.html new file mode 100755 index 00000000..a9ee5d91 --- /dev/null +++ b/0.5/xmldocs/llama.abstractions.itexttransform/index.html @@ -0,0 +1,2171 @@ + + + + + + + + + + + + + + + + + + + + + + llama.abstractions.itexttransform - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    ITextTransform

    +

    Namespace: LLama.Abstractions

    +

    An interface for text transformations. + These can be used to compose a pipeline of text transformations, such as: + - Tokenization + - Lowercasing + - Punctuation removal + - Trimming + - etc.

    +
    public interface ITextTransform
    +
    +

    Methods

    +

    Transform(String)

    +

    Takes a string and transforms it.

    +
    string Transform(string text)
    +
    +

    Parameters

    +

    text String

    +

    Returns

    +

    String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.chatsession/index.html b/0.5/xmldocs/llama.chatsession/index.html new file mode 100755 index 00000000..f25d5d84 --- /dev/null +++ b/0.5/xmldocs/llama.chatsession/index.html @@ -0,0 +1,2968 @@ + + + + + + + + + + + + + + + + + + + + + + llama.chatsession - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    ChatSession

    +

    Namespace: LLama

    +

    The main chat session class.

    +
    public class ChatSession
    +
    +

    Inheritance ObjectChatSession

    +

    Fields

    +

    OutputTransform

    +

    The output transform used in this session.

    +
    public ITextStreamTransform OutputTransform;
    +
    +

    Properties

    +

    Executor

    +

    The executor for this session.

    +
    public ILLamaExecutor Executor { get; }
    +
    +

    Property Value

    +

    ILLamaExecutor

    +

    History

    +

    The chat history for this session.

    +
    public ChatHistory History { get; }
    +
    +

    Property Value

    +

    ChatHistory

    +

    HistoryTransform

    +

    The history transform used in this session.

    +
    public IHistoryTransform HistoryTransform { get; set; }
    +
    +

    Property Value

    +

    IHistoryTransform

    +

    InputTransformPipeline

    +

    The input transform pipeline used in this session.

    +
    public List<ITextTransform> InputTransformPipeline { get; set; }
    +
    +

    Property Value

    +

    List<ITextTransform>

    +

    Constructors

    +

    ChatSession(ILLamaExecutor)

    +
    public ChatSession(ILLamaExecutor executor)
    +
    +

    Parameters

    +

    executor ILLamaExecutor
    +The executor for this session

    +

    Methods

    +

    WithHistoryTransform(IHistoryTransform)

    +

    Use a custom history transform.

    +
    public ChatSession WithHistoryTransform(IHistoryTransform transform)
    +
    +

    Parameters

    +

    transform IHistoryTransform

    +

    Returns

    +

    ChatSession

    +

    AddInputTransform(ITextTransform)

    +

    Add a text transform to the input transform pipeline.

    +
    public ChatSession AddInputTransform(ITextTransform transform)
    +
    +

    Parameters

    +

    transform ITextTransform

    +

    Returns

    +

    ChatSession

    +

    WithOutputTransform(ITextStreamTransform)

    +

    Use a custom output transform.

    +
    public ChatSession WithOutputTransform(ITextStreamTransform transform)
    +
    +

    Parameters

    +

    transform ITextStreamTransform

    +

    Returns

    +

    ChatSession

    +

    SaveSession(String)

    +
    public void SaveSession(string path)
    +
    +

    Parameters

    +

    path String
    +The directory name to save the session. If the directory does not exist, a new directory will be created.

    +

    LoadSession(String)

    +
    public void LoadSession(string path)
    +
    +

    Parameters

    +

    path String
    +The directory name to load the session.

    +

    Chat(ChatHistory, IInferenceParams, CancellationToken)

    +

    Get the response from the LLama model with chat histories.

    +
    public IEnumerable<string> Chat(ChatHistory history, IInferenceParams inferenceParams, CancellationToken cancellationToken)
    +
    +

    Parameters

    +

    history ChatHistory

    +

    inferenceParams IInferenceParams

    +

    cancellationToken CancellationToken

    +

    Returns

    +

    IEnumerable<String>

    +

    Chat(String, IInferenceParams, CancellationToken)

    +

    Get the response from the LLama model. Note that prompt could not only be the preset words, + but also the question you want to ask.

    +
    public IEnumerable<string> Chat(string prompt, IInferenceParams inferenceParams, CancellationToken cancellationToken)
    +
    +

    Parameters

    +

    prompt String

    +

    inferenceParams IInferenceParams

    +

    cancellationToken CancellationToken

    +

    Returns

    +

    IEnumerable<String>

    +

    ChatAsync(ChatHistory, IInferenceParams, CancellationToken)

    +

    Get the response from the LLama model with chat histories.

    +
    public IAsyncEnumerable<string> ChatAsync(ChatHistory history, IInferenceParams inferenceParams, CancellationToken cancellationToken)
    +
    +

    Parameters

    +

    history ChatHistory

    +

    inferenceParams IInferenceParams

    +

    cancellationToken CancellationToken

    +

    Returns

    +

    IAsyncEnumerable<String>

    +

    ChatAsync(String, IInferenceParams, CancellationToken)

    +

    Get the response from the LLama model with chat histories asynchronously.

    +
    public IAsyncEnumerable<string> ChatAsync(string prompt, IInferenceParams inferenceParams, CancellationToken cancellationToken)
    +
    +

    Parameters

    +

    prompt String

    +

    inferenceParams IInferenceParams

    +

    cancellationToken CancellationToken

    +

    Returns

    +

    IAsyncEnumerable<String>

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.common.authorrole/index.html b/0.5/xmldocs/llama.common.authorrole/index.html new file mode 100755 index 00000000..d1b0b2d1 --- /dev/null +++ b/0.5/xmldocs/llama.common.authorrole/index.html @@ -0,0 +1,2124 @@ + + + + + + + + + + + + + + + + + + + + + + llama.common.authorrole - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    AuthorRole

    +

    Namespace: LLama.Common

    +

    Role of the message author, e.g. user/assistant/system

    +
    public enum AuthorRole
    +
    +

    Inheritance ObjectValueTypeEnumAuthorRole
    +Implements IComparable, IFormattable, IConvertible

    +

    Fields

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameValueDescription
    Unknown-1Role is unknown
    System0Message comes from a "system" prompt, not written by a user or language model
    User1Message comes from the user
    Assistant2Messages was generated by the language model
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.common.chathistory/index.html b/0.5/xmldocs/llama.common.chathistory/index.html new file mode 100755 index 00000000..4751ccf7 --- /dev/null +++ b/0.5/xmldocs/llama.common.chathistory/index.html @@ -0,0 +1,2271 @@ + + + + + + + + + + + + + + + + + + + + + + llama.common.chathistory - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    ChatHistory

    +

    Namespace: LLama.Common

    +

    The chat history class

    +
    public class ChatHistory
    +
    +

    Inheritance ObjectChatHistory

    +

    Properties

    +

    Messages

    +

    List of messages in the chat

    +
    public List<Message> Messages { get; }
    +
    +

    Property Value

    +

    List<Message>

    +

    Constructors

    +

    ChatHistory()

    +

    Create a new instance of the chat content class

    +
    public ChatHistory()
    +
    +

    Methods

    +

    AddMessage(AuthorRole, String)

    +

    Add a message to the chat history

    +
    public void AddMessage(AuthorRole authorRole, string content)
    +
    +

    Parameters

    +

    authorRole AuthorRole
    +Role of the message author

    +

    content String
    +Message content

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.common.fixedsizequeue-1/index.html b/0.5/xmldocs/llama.common.fixedsizequeue-1/index.html new file mode 100755 index 00000000..9e8307f6 --- /dev/null +++ b/0.5/xmldocs/llama.common.fixedsizequeue-1/index.html @@ -0,0 +1,2517 @@ + + + + + + + + + + + + + + + + + + + + + + llama.common.fixedsizequeue-1 - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    FixedSizeQueue<T>

    +

    Namespace: LLama.Common

    +

    A queue with fixed storage size. + Currently it's only a naive implementation and needs to be further optimized in the future.

    +
    public class FixedSizeQueue<T> : , System.Collections.IEnumerable
    +
    +

    Type Parameters

    +

    T

    +

    Inheritance ObjectFixedSizeQueue<T>
    +Implements IEnumerable<T>, IEnumerable

    +

    Properties

    +

    Count

    +

    Number of items in this queue

    +
    public int Count { get; }
    +
    +

    Property Value

    +

    Int32

    +

    Capacity

    +

    Maximum number of items allowed in this queue

    +
    public int Capacity { get; }
    +
    +

    Property Value

    +

    Int32

    +

    Constructors

    +

    FixedSizeQueue(Int32)

    +

    Create a new queue

    +
    public FixedSizeQueue(int size)
    +
    +

    Parameters

    +

    size Int32
    +the maximum number of items to store in this queue

    +

    FixedSizeQueue(Int32, IEnumerable<T>)

    +

    Fill the quene with the data. Please ensure that data.Count <= size

    +
    public FixedSizeQueue(int size, IEnumerable<T> data)
    +
    +

    Parameters

    +

    size Int32

    +

    data IEnumerable<T>

    +

    Methods

    +

    FillWith(T)

    +

    Replace every item in the queue with the given value

    +
    public FixedSizeQueue<T> FillWith(T value)
    +
    +

    Parameters

    +

    value T
    +The value to replace all items with

    +

    Returns

    +

    FixedSizeQueue<T>
    +returns this

    +

    Enqueue(T)

    +

    Enquene an element.

    +
    public void Enqueue(T item)
    +
    +

    Parameters

    +

    item T

    +

    GetEnumerator()

    +
    public IEnumerator<T> GetEnumerator()
    +
    +

    Returns

    +

    IEnumerator<T>

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.common.illamalogger/index.html b/0.5/xmldocs/llama.common.illamalogger/index.html new file mode 100755 index 00000000..1ac5cf30 --- /dev/null +++ b/0.5/xmldocs/llama.common.illamalogger/index.html @@ -0,0 +1,2154 @@ + + + + + + + + + + + + + + + + + + + + + + llama.common.illamalogger - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    ILLamaLogger

    +

    Namespace: LLama.Common

    +

    receives log messages from LLamaSharp

    +
    public interface ILLamaLogger
    +
    +

    Methods

    +

    Log(String, String, LogLevel)

    +

    Write the log in customized way

    +
    void Log(string source, string message, LogLevel level)
    +
    +

    Parameters

    +

    source String
    +The source of the log. It may be a method name or class name.

    +

    message String
    +The message.

    +

    level LogLevel
    +The log level.

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.common.inferenceparams/index.html b/0.5/xmldocs/llama.common.inferenceparams/index.html new file mode 100755 index 00000000..de6f6736 --- /dev/null +++ b/0.5/xmldocs/llama.common.inferenceparams/index.html @@ -0,0 +1,3120 @@ + + + + + + + + + + + + + + + + + + + + + + llama.common.inferenceparams - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    InferenceParams

    +

    Namespace: LLama.Common

    +

    The paramters used for inference.

    +
    public class InferenceParams : LLama.Abstractions.IInferenceParams
    +
    +

    Inheritance ObjectInferenceParams
    +Implements IInferenceParams

    +

    Properties

    +

    TokensKeep

    +

    number of tokens to keep from initial prompt

    +
    public int TokensKeep { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    MaxTokens

    +

    how many new tokens to predict (n_predict), set to -1 to inifinitely generate response + until it complete.

    +
    public int MaxTokens { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    LogitBias

    +

    logit bias for specific tokens

    +
    public Dictionary<int, float> LogitBias { get; set; }
    +
    +

    Property Value

    +

    Dictionary<Int32, Single>

    +

    AntiPrompts

    +

    Sequences where the model will stop generating further tokens.

    +
    public IEnumerable<string> AntiPrompts { get; set; }
    +
    +

    Property Value

    +

    IEnumerable<String>

    +

    PathSession

    +

    path to file for saving/loading model eval state

    +
    public string PathSession { get; set; }
    +
    +

    Property Value

    +

    String

    +

    InputSuffix

    +

    string to suffix user inputs with

    +
    public string InputSuffix { get; set; }
    +
    +

    Property Value

    +

    String

    +

    InputPrefix

    +

    string to prefix user inputs with

    +
    public string InputPrefix { get; set; }
    +
    +

    Property Value

    +

    String

    +

    TopK

    +

    0 or lower to use vocab size

    +
    public int TopK { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    TopP

    +

    1.0 = disabled

    +
    public float TopP { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    TfsZ

    +

    1.0 = disabled

    +
    public float TfsZ { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    TypicalP

    +

    1.0 = disabled

    +
    public float TypicalP { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    Temperature

    +

    1.0 = disabled

    +
    public float Temperature { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    RepeatPenalty

    +

    1.0 = disabled

    +
    public float RepeatPenalty { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    RepeatLastTokensCount

    +

    last n tokens to penalize (0 = disable penalty, -1 = context size) (repeat_last_n)

    +
    public int RepeatLastTokensCount { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    FrequencyPenalty

    +

    frequency penalty coefficient + 0.0 = disabled

    +
    public float FrequencyPenalty { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    PresencePenalty

    +

    presence penalty coefficient + 0.0 = disabled

    +
    public float PresencePenalty { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    Mirostat

    +

    Mirostat uses tokens instead of words. + algorithm described in the paper https://arxiv.org/abs/2007.14966. + 0 = disabled, 1 = mirostat, 2 = mirostat 2.0

    +
    public MirostatType Mirostat { get; set; }
    +
    +

    Property Value

    +

    MirostatType

    +

    MirostatTau

    +

    target entropy

    +
    public float MirostatTau { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    MirostatEta

    +

    learning rate

    +
    public float MirostatEta { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    PenalizeNL

    +

    consider newlines as a repeatable token (penalize_nl)

    +
    public bool PenalizeNL { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    Grammar

    +

    A grammar to constrain the possible tokens

    +
    public SafeLLamaGrammarHandle Grammar { get; set; }
    +
    +

    Property Value

    +

    SafeLLamaGrammarHandle

    +

    Constructors

    +

    InferenceParams()

    +
    public InferenceParams()
    +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.common.llamadefaultlogger/index.html b/0.5/xmldocs/llama.common.llamadefaultlogger/index.html new file mode 100755 index 00000000..c4f38404 --- /dev/null +++ b/0.5/xmldocs/llama.common.llamadefaultlogger/index.html @@ -0,0 +1,2695 @@ + + + + + + + + + + + + + + + + + + + + + + llama.common.llamadefaultlogger - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaDefaultLogger

    +

    Namespace: LLama.Common

    +

    The default logger of LLamaSharp. On default it write to console. Use methods of LLamaLogger.Default to change the behavior. + It's recommended to inherit ILLamaLogger to customize the behavior.

    +
    public sealed class LLamaDefaultLogger : ILLamaLogger
    +
    +

    Inheritance ObjectLLamaDefaultLogger
    +Implements ILLamaLogger

    +

    Properties

    +

    Default

    +

    Get the default logger instance

    +
    public static LLamaDefaultLogger Default { get; }
    +
    +

    Property Value

    +

    LLamaDefaultLogger

    +

    Methods

    +

    EnableNative()

    +

    Enable logging output from llama.cpp

    +
    public LLamaDefaultLogger EnableNative()
    +
    +

    Returns

    +

    LLamaDefaultLogger

    +

    EnableConsole()

    +

    Enable writing log messages to console

    +
    public LLamaDefaultLogger EnableConsole()
    +
    +

    Returns

    +

    LLamaDefaultLogger

    +

    DisableConsole()

    +

    Disable writing messages to console

    +
    public LLamaDefaultLogger DisableConsole()
    +
    +

    Returns

    +

    LLamaDefaultLogger

    +

    EnableFile(String, FileMode)

    +

    Enable writing log messages to file

    +
    public LLamaDefaultLogger EnableFile(string filename, FileMode mode)
    +
    +

    Parameters

    +

    filename String

    +

    mode FileMode

    +

    Returns

    +

    LLamaDefaultLogger

    +

    DisableFile(String)

    +

    Caution

    +

    Use DisableFile method without 'filename' parameter

    +
    +

    Disable writing log messages to file

    +
    public LLamaDefaultLogger DisableFile(string filename)
    +
    +

    Parameters

    +

    filename String
    +unused!

    +

    Returns

    +

    LLamaDefaultLogger

    +

    DisableFile()

    +

    Disable writing log messages to file

    +
    public LLamaDefaultLogger DisableFile()
    +
    +

    Returns

    +

    LLamaDefaultLogger

    +

    Log(String, String, LogLevel)

    +

    Log a message

    +
    public void Log(string source, string message, LogLevel level)
    +
    +

    Parameters

    +

    source String
    +The source of this message (e.g. class name)

    +

    message String
    +The message to log

    +

    level LogLevel
    +Severity level of this message

    +

    Info(String)

    +

    Write a log message with "Info" severity

    +
    public void Info(string message)
    +
    +

    Parameters

    +

    message String

    +

    Warn(String)

    +

    Write a log message with "Warn" severity

    +
    public void Warn(string message)
    +
    +

    Parameters

    +

    message String

    +

    Error(String)

    +

    Write a log message with "Error" severity

    +
    public void Error(string message)
    +
    +

    Parameters

    +

    message String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.common.mirostattype/index.html b/0.5/xmldocs/llama.common.mirostattype/index.html new file mode 100755 index 00000000..f78111c7 --- /dev/null +++ b/0.5/xmldocs/llama.common.mirostattype/index.html @@ -0,0 +1,2120 @@ + + + + + + + + + + + + + + + + + + + + + + llama.common.mirostattype - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    MirostatType

    +

    Namespace: LLama.Common

    +

    Type of "mirostat" sampling to use. + https://github.com/basusourya/mirostat

    +
    public enum MirostatType
    +
    +

    Inheritance ObjectValueTypeEnumMirostatType
    +Implements IComparable, IFormattable, IConvertible

    +

    Fields

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameValueDescription
    Disable0Disable Mirostat sampling
    Mirostat1Original mirostat algorithm
    Mirostat22Mirostat 2.0 algorithm
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.common.modelparams/index.html b/0.5/xmldocs/llama.common.modelparams/index.html new file mode 100755 index 00000000..df119e3c --- /dev/null +++ b/0.5/xmldocs/llama.common.modelparams/index.html @@ -0,0 +1,3633 @@ + + + + + + + + + + + + + + + + + + + + + + llama.common.modelparams - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    ModelParams

    +

    Namespace: LLama.Common

    +

    The parameters for initializing a LLama model.

    +
    public class ModelParams : LLama.Abstractions.IModelParams, System.IEquatable`1[[LLama.Common.ModelParams, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectModelParams
    +Implements IModelParams, IEquatable<ModelParams>

    +

    Properties

    +

    ContextSize

    +

    Model context size (n_ctx)

    +
    public int ContextSize { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    MainGpu

    +

    the GPU that is used for scratch and small tensors

    +
    public int MainGpu { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    LowVram

    +

    if true, reduce VRAM usage at the cost of performance

    +
    public bool LowVram { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    GpuLayerCount

    +

    Number of layers to run in VRAM / GPU memory (n_gpu_layers)

    +
    public int GpuLayerCount { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    Seed

    +

    Seed for the random number generator (seed)

    +
    public int Seed { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    UseFp16Memory

    +

    Use f16 instead of f32 for memory kv (memory_f16)

    +
    public bool UseFp16Memory { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    UseMemorymap

    +

    Use mmap for faster loads (use_mmap)

    +
    public bool UseMemorymap { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    UseMemoryLock

    +

    Use mlock to keep model in memory (use_mlock)

    +
    public bool UseMemoryLock { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    Perplexity

    +

    Compute perplexity over the prompt (perplexity)

    +
    public bool Perplexity { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    ModelPath

    +

    Model path (model)

    +
    public string ModelPath { get; set; }
    +
    +

    Property Value

    +

    String

    +

    ModelAlias

    +

    model alias

    +
    public string ModelAlias { get; set; }
    +
    +

    Property Value

    +

    String

    +

    LoraAdapter

    +

    lora adapter path (lora_adapter)

    +
    public string LoraAdapter { get; set; }
    +
    +

    Property Value

    +

    String

    +

    LoraBase

    +

    base model path for the lora adapter (lora_base)

    +
    public string LoraBase { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Threads

    +

    Number of threads (-1 = autodetect) (n_threads)

    +
    public int Threads { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    BatchSize

    +

    batch size for prompt processing (must be >=32 to use BLAS) (n_batch)

    +
    public int BatchSize { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    ConvertEosToNewLine

    +

    Whether to convert eos to newline during the inference.

    +
    public bool ConvertEosToNewLine { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    EmbeddingMode

    +

    Whether to use embedding mode. (embedding) Note that if this is set to true, + The LLamaModel won't produce text response anymore.

    +
    public bool EmbeddingMode { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    TensorSplits

    +

    how split tensors should be distributed across GPUs

    +
    public Single[] TensorSplits { get; set; }
    +
    +

    Property Value

    +

    Single[]

    +

    RopeFrequencyBase

    +

    RoPE base frequency

    +
    public float RopeFrequencyBase { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    RopeFrequencyScale

    +

    RoPE frequency scaling factor

    +
    public float RopeFrequencyScale { get; set; }
    +
    +

    Property Value

    +

    Single

    +

    MulMatQ

    +

    Use experimental mul_mat_q kernels

    +
    public bool MulMatQ { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    Encoding

    +

    The encoding to use to convert text for the model

    +
    public Encoding Encoding { get; set; }
    +
    +

    Property Value

    +

    Encoding

    +

    Constructors

    +

    ModelParams(String)

    +
    public ModelParams(string modelPath)
    +
    +

    Parameters

    +

    modelPath String
    +The model path.

    +

    ModelParams(String, Int32, Int32, Int32, Boolean, Boolean, Boolean, Boolean, String, String, Int32, Int32, Boolean, Boolean, Single, Single, Boolean, String)

    +

    Caution

    +

    Use object initializer to set all optional parameters

    +
    +
    public ModelParams(string modelPath, int contextSize, int gpuLayerCount, int seed, bool useFp16Memory, bool useMemorymap, bool useMemoryLock, bool perplexity, string loraAdapter, string loraBase, int threads, int batchSize, bool convertEosToNewLine, bool embeddingMode, float ropeFrequencyBase, float ropeFrequencyScale, bool mulMatQ, string encoding)
    +
    +

    Parameters

    +

    modelPath String
    +The model path.

    +

    contextSize Int32
    +Model context size (n_ctx)

    +

    gpuLayerCount Int32
    +Number of layers to run in VRAM / GPU memory (n_gpu_layers)

    +

    seed Int32
    +Seed for the random number generator (seed)

    +

    useFp16Memory Boolean
    +Whether to use f16 instead of f32 for memory kv (memory_f16)

    +

    useMemorymap Boolean
    +Whether to use mmap for faster loads (use_mmap)

    +

    useMemoryLock Boolean
    +Whether to use mlock to keep model in memory (use_mlock)

    +

    perplexity Boolean
    +Thether to compute perplexity over the prompt (perplexity)

    +

    loraAdapter String
    +Lora adapter path (lora_adapter)

    +

    loraBase String
    +Base model path for the lora adapter (lora_base)

    +

    threads Int32
    +Number of threads (-1 = autodetect) (n_threads)

    +

    batchSize Int32
    +Batch size for prompt processing (must be >=32 to use BLAS) (n_batch)

    +

    convertEosToNewLine Boolean
    +Whether to convert eos to newline during the inference.

    +

    embeddingMode Boolean
    +Whether to use embedding mode. (embedding) Note that if this is set to true, The LLamaModel won't produce text response anymore.

    +

    ropeFrequencyBase Single
    +RoPE base frequency.

    +

    ropeFrequencyScale Single
    +RoPE frequency scaling factor

    +

    mulMatQ Boolean
    +Use experimental mul_mat_q kernels

    +

    encoding String
    +The encoding to use to convert text for the model

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(ModelParams)

    +
    public bool Equals(ModelParams other)
    +
    +

    Parameters

    +

    other ModelParams

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public ModelParams <Clone>$()
    +
    +

    Returns

    +

    ModelParams

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.exceptions.grammarexpectedname/index.html b/0.5/xmldocs/llama.exceptions.grammarexpectedname/index.html new file mode 100755 index 00000000..b683447d --- /dev/null +++ b/0.5/xmldocs/llama.exceptions.grammarexpectedname/index.html @@ -0,0 +1,2465 @@ + + + + + + + + + + + + + + + + + + + + + + llama.exceptions.grammarexpectedname - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    GrammarExpectedName

    +

    Namespace: LLama.Exceptions

    +

    Failed to parse a "name" element when one was expected

    +
    public class GrammarExpectedName : GrammarFormatException, System.Runtime.Serialization.ISerializable
    +
    +

    Inheritance ObjectExceptionGrammarFormatExceptionGrammarExpectedName
    +Implements ISerializable

    +

    Properties

    +

    TargetSite

    +
    public MethodBase TargetSite { get; }
    +
    +

    Property Value

    +

    MethodBase

    +

    Message

    +
    public string Message { get; }
    +
    +

    Property Value

    +

    String

    +

    Data

    +
    public IDictionary Data { get; }
    +
    +

    Property Value

    +

    IDictionary

    +

    InnerException

    +
    public Exception InnerException { get; }
    +
    +

    Property Value

    +

    Exception

    + +
    public string HelpLink { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Source

    +
    public string Source { get; set; }
    +
    +

    Property Value

    +

    String

    +

    HResult

    +
    public int HResult { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    StackTrace

    +
    public string StackTrace { get; }
    +
    +

    Property Value

    +

    String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.exceptions.grammarexpectednext/index.html b/0.5/xmldocs/llama.exceptions.grammarexpectednext/index.html new file mode 100755 index 00000000..4303527b --- /dev/null +++ b/0.5/xmldocs/llama.exceptions.grammarexpectednext/index.html @@ -0,0 +1,2465 @@ + + + + + + + + + + + + + + + + + + + + + + llama.exceptions.grammarexpectednext - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    GrammarExpectedNext

    +

    Namespace: LLama.Exceptions

    +

    A specified string was expected when parsing

    +
    public class GrammarExpectedNext : GrammarFormatException, System.Runtime.Serialization.ISerializable
    +
    +

    Inheritance ObjectExceptionGrammarFormatExceptionGrammarExpectedNext
    +Implements ISerializable

    +

    Properties

    +

    TargetSite

    +
    public MethodBase TargetSite { get; }
    +
    +

    Property Value

    +

    MethodBase

    +

    Message

    +
    public string Message { get; }
    +
    +

    Property Value

    +

    String

    +

    Data

    +
    public IDictionary Data { get; }
    +
    +

    Property Value

    +

    IDictionary

    +

    InnerException

    +
    public Exception InnerException { get; }
    +
    +

    Property Value

    +

    Exception

    + +
    public string HelpLink { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Source

    +
    public string Source { get; set; }
    +
    +

    Property Value

    +

    String

    +

    HResult

    +
    public int HResult { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    StackTrace

    +
    public string StackTrace { get; }
    +
    +

    Property Value

    +

    String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.exceptions.grammarexpectedprevious/index.html b/0.5/xmldocs/llama.exceptions.grammarexpectedprevious/index.html new file mode 100755 index 00000000..05cbb42e --- /dev/null +++ b/0.5/xmldocs/llama.exceptions.grammarexpectedprevious/index.html @@ -0,0 +1,2465 @@ + + + + + + + + + + + + + + + + + + + + + + llama.exceptions.grammarexpectedprevious - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    GrammarExpectedPrevious

    +

    Namespace: LLama.Exceptions

    +

    A specified character was expected to preceded another when parsing

    +
    public class GrammarExpectedPrevious : GrammarFormatException, System.Runtime.Serialization.ISerializable
    +
    +

    Inheritance ObjectExceptionGrammarFormatExceptionGrammarExpectedPrevious
    +Implements ISerializable

    +

    Properties

    +

    TargetSite

    +
    public MethodBase TargetSite { get; }
    +
    +

    Property Value

    +

    MethodBase

    +

    Message

    +
    public string Message { get; }
    +
    +

    Property Value

    +

    String

    +

    Data

    +
    public IDictionary Data { get; }
    +
    +

    Property Value

    +

    IDictionary

    +

    InnerException

    +
    public Exception InnerException { get; }
    +
    +

    Property Value

    +

    Exception

    + +
    public string HelpLink { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Source

    +
    public string Source { get; set; }
    +
    +

    Property Value

    +

    String

    +

    HResult

    +
    public int HResult { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    StackTrace

    +
    public string StackTrace { get; }
    +
    +

    Property Value

    +

    String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.exceptions.grammarformatexception/index.html b/0.5/xmldocs/llama.exceptions.grammarformatexception/index.html new file mode 100755 index 00000000..d10e6d03 --- /dev/null +++ b/0.5/xmldocs/llama.exceptions.grammarformatexception/index.html @@ -0,0 +1,2465 @@ + + + + + + + + + + + + + + + + + + + + + + llama.exceptions.grammarformatexception - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    GrammarFormatException

    +

    Namespace: LLama.Exceptions

    +

    Base class for all grammar exceptions

    +
    public abstract class GrammarFormatException : System.Exception, System.Runtime.Serialization.ISerializable
    +
    +

    Inheritance ObjectExceptionGrammarFormatException
    +Implements ISerializable

    +

    Properties

    +

    TargetSite

    +
    public MethodBase TargetSite { get; }
    +
    +

    Property Value

    +

    MethodBase

    +

    Message

    +
    public string Message { get; }
    +
    +

    Property Value

    +

    String

    +

    Data

    +
    public IDictionary Data { get; }
    +
    +

    Property Value

    +

    IDictionary

    +

    InnerException

    +
    public Exception InnerException { get; }
    +
    +

    Property Value

    +

    Exception

    + +
    public string HelpLink { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Source

    +
    public string Source { get; set; }
    +
    +

    Property Value

    +

    String

    +

    HResult

    +
    public int HResult { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    StackTrace

    +
    public string StackTrace { get; }
    +
    +

    Property Value

    +

    String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.exceptions.grammarunexpectedcharaltelement/index.html b/0.5/xmldocs/llama.exceptions.grammarunexpectedcharaltelement/index.html new file mode 100755 index 00000000..08943cd7 --- /dev/null +++ b/0.5/xmldocs/llama.exceptions.grammarunexpectedcharaltelement/index.html @@ -0,0 +1,2465 @@ + + + + + + + + + + + + + + + + + + + + + + llama.exceptions.grammarunexpectedcharaltelement - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    GrammarUnexpectedCharAltElement

    +

    Namespace: LLama.Exceptions

    +

    A CHAR_ALT was created without a preceding CHAR element

    +
    public class GrammarUnexpectedCharAltElement : GrammarFormatException, System.Runtime.Serialization.ISerializable
    +
    +

    Inheritance ObjectExceptionGrammarFormatExceptionGrammarUnexpectedCharAltElement
    +Implements ISerializable

    +

    Properties

    +

    TargetSite

    +
    public MethodBase TargetSite { get; }
    +
    +

    Property Value

    +

    MethodBase

    +

    Message

    +
    public string Message { get; }
    +
    +

    Property Value

    +

    String

    +

    Data

    +
    public IDictionary Data { get; }
    +
    +

    Property Value

    +

    IDictionary

    +

    InnerException

    +
    public Exception InnerException { get; }
    +
    +

    Property Value

    +

    Exception

    + +
    public string HelpLink { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Source

    +
    public string Source { get; set; }
    +
    +

    Property Value

    +

    String

    +

    HResult

    +
    public int HResult { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    StackTrace

    +
    public string StackTrace { get; }
    +
    +

    Property Value

    +

    String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.exceptions.grammarunexpectedcharrngelement/index.html b/0.5/xmldocs/llama.exceptions.grammarunexpectedcharrngelement/index.html new file mode 100755 index 00000000..ba20cd25 --- /dev/null +++ b/0.5/xmldocs/llama.exceptions.grammarunexpectedcharrngelement/index.html @@ -0,0 +1,2465 @@ + + + + + + + + + + + + + + + + + + + + + + llama.exceptions.grammarunexpectedcharrngelement - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    GrammarUnexpectedCharRngElement

    +

    Namespace: LLama.Exceptions

    +

    A CHAR_RNG was created without a preceding CHAR element

    +
    public class GrammarUnexpectedCharRngElement : GrammarFormatException, System.Runtime.Serialization.ISerializable
    +
    +

    Inheritance ObjectExceptionGrammarFormatExceptionGrammarUnexpectedCharRngElement
    +Implements ISerializable

    +

    Properties

    +

    TargetSite

    +
    public MethodBase TargetSite { get; }
    +
    +

    Property Value

    +

    MethodBase

    +

    Message

    +
    public string Message { get; }
    +
    +

    Property Value

    +

    String

    +

    Data

    +
    public IDictionary Data { get; }
    +
    +

    Property Value

    +

    IDictionary

    +

    InnerException

    +
    public Exception InnerException { get; }
    +
    +

    Property Value

    +

    Exception

    + +
    public string HelpLink { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Source

    +
    public string Source { get; set; }
    +
    +

    Property Value

    +

    String

    +

    HResult

    +
    public int HResult { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    StackTrace

    +
    public string StackTrace { get; }
    +
    +

    Property Value

    +

    String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.exceptions.grammarunexpectedendelement/index.html b/0.5/xmldocs/llama.exceptions.grammarunexpectedendelement/index.html new file mode 100755 index 00000000..2e17d90f --- /dev/null +++ b/0.5/xmldocs/llama.exceptions.grammarunexpectedendelement/index.html @@ -0,0 +1,2465 @@ + + + + + + + + + + + + + + + + + + + + + + llama.exceptions.grammarunexpectedendelement - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    GrammarUnexpectedEndElement

    +

    Namespace: LLama.Exceptions

    +

    An END was encountered before the last element

    +
    public class GrammarUnexpectedEndElement : GrammarFormatException, System.Runtime.Serialization.ISerializable
    +
    +

    Inheritance ObjectExceptionGrammarFormatExceptionGrammarUnexpectedEndElement
    +Implements ISerializable

    +

    Properties

    +

    TargetSite

    +
    public MethodBase TargetSite { get; }
    +
    +

    Property Value

    +

    MethodBase

    +

    Message

    +
    public string Message { get; }
    +
    +

    Property Value

    +

    String

    +

    Data

    +
    public IDictionary Data { get; }
    +
    +

    Property Value

    +

    IDictionary

    +

    InnerException

    +
    public Exception InnerException { get; }
    +
    +

    Property Value

    +

    Exception

    + +
    public string HelpLink { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Source

    +
    public string Source { get; set; }
    +
    +

    Property Value

    +

    String

    +

    HResult

    +
    public int HResult { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    StackTrace

    +
    public string StackTrace { get; }
    +
    +

    Property Value

    +

    String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.exceptions.grammarunexpectedendofinput/index.html b/0.5/xmldocs/llama.exceptions.grammarunexpectedendofinput/index.html new file mode 100755 index 00000000..99de7030 --- /dev/null +++ b/0.5/xmldocs/llama.exceptions.grammarunexpectedendofinput/index.html @@ -0,0 +1,2465 @@ + + + + + + + + + + + + + + + + + + + + + + llama.exceptions.grammarunexpectedendofinput - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    GrammarUnexpectedEndOfInput

    +

    Namespace: LLama.Exceptions

    +

    End-of-file was encountered while parsing

    +
    public class GrammarUnexpectedEndOfInput : GrammarFormatException, System.Runtime.Serialization.ISerializable
    +
    +

    Inheritance ObjectExceptionGrammarFormatExceptionGrammarUnexpectedEndOfInput
    +Implements ISerializable

    +

    Properties

    +

    TargetSite

    +
    public MethodBase TargetSite { get; }
    +
    +

    Property Value

    +

    MethodBase

    +

    Message

    +
    public string Message { get; }
    +
    +

    Property Value

    +

    String

    +

    Data

    +
    public IDictionary Data { get; }
    +
    +

    Property Value

    +

    IDictionary

    +

    InnerException

    +
    public Exception InnerException { get; }
    +
    +

    Property Value

    +

    Exception

    + +
    public string HelpLink { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Source

    +
    public string Source { get; set; }
    +
    +

    Property Value

    +

    String

    +

    HResult

    +
    public int HResult { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    StackTrace

    +
    public string StackTrace { get; }
    +
    +

    Property Value

    +

    String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.exceptions.grammarunexpectedhexcharscount/index.html b/0.5/xmldocs/llama.exceptions.grammarunexpectedhexcharscount/index.html new file mode 100755 index 00000000..32c7be22 --- /dev/null +++ b/0.5/xmldocs/llama.exceptions.grammarunexpectedhexcharscount/index.html @@ -0,0 +1,2465 @@ + + + + + + + + + + + + + + + + + + + + + + llama.exceptions.grammarunexpectedhexcharscount - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    GrammarUnexpectedHexCharsCount

    +

    Namespace: LLama.Exceptions

    +

    An incorrect number of characters were encountered while parsing a hex literal

    +
    public class GrammarUnexpectedHexCharsCount : GrammarFormatException, System.Runtime.Serialization.ISerializable
    +
    +

    Inheritance ObjectExceptionGrammarFormatExceptionGrammarUnexpectedHexCharsCount
    +Implements ISerializable

    +

    Properties

    +

    TargetSite

    +
    public MethodBase TargetSite { get; }
    +
    +

    Property Value

    +

    MethodBase

    +

    Message

    +
    public string Message { get; }
    +
    +

    Property Value

    +

    String

    +

    Data

    +
    public IDictionary Data { get; }
    +
    +

    Property Value

    +

    IDictionary

    +

    InnerException

    +
    public Exception InnerException { get; }
    +
    +

    Property Value

    +

    Exception

    + +
    public string HelpLink { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Source

    +
    public string Source { get; set; }
    +
    +

    Property Value

    +

    String

    +

    HResult

    +
    public int HResult { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    StackTrace

    +
    public string StackTrace { get; }
    +
    +

    Property Value

    +

    String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.exceptions.grammarunknownescapecharacter/index.html b/0.5/xmldocs/llama.exceptions.grammarunknownescapecharacter/index.html new file mode 100755 index 00000000..c032f81c --- /dev/null +++ b/0.5/xmldocs/llama.exceptions.grammarunknownescapecharacter/index.html @@ -0,0 +1,2465 @@ + + + + + + + + + + + + + + + + + + + + + + llama.exceptions.grammarunknownescapecharacter - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    GrammarUnknownEscapeCharacter

    +

    Namespace: LLama.Exceptions

    +

    An unexpected character was encountered after an escape sequence

    +
    public class GrammarUnknownEscapeCharacter : GrammarFormatException, System.Runtime.Serialization.ISerializable
    +
    +

    Inheritance ObjectExceptionGrammarFormatExceptionGrammarUnknownEscapeCharacter
    +Implements ISerializable

    +

    Properties

    +

    TargetSite

    +
    public MethodBase TargetSite { get; }
    +
    +

    Property Value

    +

    MethodBase

    +

    Message

    +
    public string Message { get; }
    +
    +

    Property Value

    +

    String

    +

    Data

    +
    public IDictionary Data { get; }
    +
    +

    Property Value

    +

    IDictionary

    +

    InnerException

    +
    public Exception InnerException { get; }
    +
    +

    Property Value

    +

    Exception

    + +
    public string HelpLink { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Source

    +
    public string Source { get; set; }
    +
    +

    Property Value

    +

    String

    +

    HResult

    +
    public int HResult { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    StackTrace

    +
    public string StackTrace { get; }
    +
    +

    Property Value

    +

    String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.exceptions.runtimeerror/index.html b/0.5/xmldocs/llama.exceptions.runtimeerror/index.html new file mode 100755 index 00000000..fa98e4a0 --- /dev/null +++ b/0.5/xmldocs/llama.exceptions.runtimeerror/index.html @@ -0,0 +1,2553 @@ + + + + + + + + + + + + + + + + + + + + + + llama.exceptions.runtimeerror - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    RuntimeError

    +

    Namespace: LLama.Exceptions

    +
    public class RuntimeError : System.Exception, System.Runtime.Serialization.ISerializable
    +
    +

    Inheritance ObjectExceptionRuntimeError
    +Implements ISerializable

    +

    Properties

    +

    TargetSite

    +
    public MethodBase TargetSite { get; }
    +
    +

    Property Value

    +

    MethodBase

    +

    Message

    +
    public string Message { get; }
    +
    +

    Property Value

    +

    String

    +

    Data

    +
    public IDictionary Data { get; }
    +
    +

    Property Value

    +

    IDictionary

    +

    InnerException

    +
    public Exception InnerException { get; }
    +
    +

    Property Value

    +

    Exception

    + +
    public string HelpLink { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Source

    +
    public string Source { get; set; }
    +
    +

    Property Value

    +

    String

    +

    HResult

    +
    public int HResult { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    StackTrace

    +
    public string StackTrace { get; }
    +
    +

    Property Value

    +

    String

    +

    Constructors

    +

    RuntimeError()

    +
    public RuntimeError()
    +
    +

    RuntimeError(String)

    +
    public RuntimeError(string message)
    +
    +

    Parameters

    +

    message String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.extensions.imodelparamsextensions/index.html b/0.5/xmldocs/llama.extensions.imodelparamsextensions/index.html new file mode 100755 index 00000000..1d61bb4b --- /dev/null +++ b/0.5/xmldocs/llama.extensions.imodelparamsextensions/index.html @@ -0,0 +1,2184 @@ + + + + + + + + + + + + + + + + + + + + + + llama.extensions.imodelparamsextensions - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    IModelParamsExtensions

    +

    Namespace: LLama.Extensions

    +

    Extention methods to the IModelParams interface

    +
    public static class IModelParamsExtensions
    +
    +

    Inheritance ObjectIModelParamsExtensions

    +

    Methods

    +

    ToLlamaContextParams(IModelParams, LLamaContextParams&)

    +

    Convert the given IModelParams into a LLamaContextParams

    +
    public static MemoryHandle ToLlamaContextParams(IModelParams params, LLamaContextParams& result)
    +
    +

    Parameters

    +

    params IModelParams

    +

    result LLamaContextParams&

    +

    Returns

    +

    MemoryHandle

    +

    Exceptions

    +

    FileNotFoundException

    +

    ArgumentException

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.extensions.keyvaluepairextensions/index.html b/0.5/xmldocs/llama.extensions.keyvaluepairextensions/index.html new file mode 100755 index 00000000..ad9f338b --- /dev/null +++ b/0.5/xmldocs/llama.extensions.keyvaluepairextensions/index.html @@ -0,0 +1,2174 @@ + + + + + + + + + + + + + + + + + + + + + + llama.extensions.keyvaluepairextensions - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    KeyValuePairExtensions

    +

    Namespace: LLama.Extensions

    +

    Extensions to the KeyValuePair struct

    +
    public static class KeyValuePairExtensions
    +
    +

    Inheritance ObjectKeyValuePairExtensions

    +

    Methods

    +

    Deconstruct<TKey, TValue>(KeyValuePair<TKey, TValue>, TKey&, TValue&)

    +

    Deconstruct a KeyValuePair into it's constituent parts.

    +
    public static void Deconstruct<TKey, TValue>(KeyValuePair<TKey, TValue> pair, TKey& first, TValue& second)
    +
    +

    Type Parameters

    +

    TKey
    +Type of the Key

    +

    TValue
    +Type of the Value

    +

    Parameters

    +

    pair KeyValuePair<TKey, TValue>
    +The KeyValuePair to deconstruct

    +

    first TKey&
    +First element, the Key

    +

    second TValue&
    +Second element, the Value

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.grammars.grammar/index.html b/0.5/xmldocs/llama.grammars.grammar/index.html new file mode 100755 index 00000000..f05901a4 --- /dev/null +++ b/0.5/xmldocs/llama.grammars.grammar/index.html @@ -0,0 +1,2490 @@ + + + + + + + + + + + + + + + + + + + + + + llama.grammars.grammar - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    Grammar

    +

    Namespace: LLama.Grammars

    +

    A grammar is a set of GrammarRules for deciding which characters are valid next. Can be used to constrain + output to certain formats - e.g. force the model to output JSON

    +
    public sealed class Grammar
    +
    +

    Inheritance ObjectGrammar

    +

    Properties

    +

    StartRuleIndex

    +

    Index of the initial rule to start from

    +
    public ulong StartRuleIndex { get; set; }
    +
    +

    Property Value

    +

    UInt64

    +

    Rules

    +

    The rules which make up this grammar

    +
    public IReadOnlyList<GrammarRule> Rules { get; }
    +
    +

    Property Value

    +

    IReadOnlyList<GrammarRule>

    +

    Constructors

    +

    Grammar(IReadOnlyList<GrammarRule>, UInt64)

    +

    Create a new grammar from a set of rules

    +
    public Grammar(IReadOnlyList<GrammarRule> rules, ulong startRuleIndex)
    +
    +

    Parameters

    +

    rules IReadOnlyList<GrammarRule>
    +The rules which make up this grammar

    +

    startRuleIndex UInt64
    +Index of the initial rule to start from

    +

    Exceptions

    +

    ArgumentOutOfRangeException

    +

    Methods

    +

    CreateInstance()

    +

    Create a SafeLLamaGrammarHandle instance to use for parsing

    +
    public SafeLLamaGrammarHandle CreateInstance()
    +
    +

    Returns

    +

    SafeLLamaGrammarHandle

    +

    Parse(String, String)

    +

    Parse a string of GGML BNF into a Grammar

    +
    public static Grammar Parse(string gbnf, string startRule)
    +
    +

    Parameters

    +

    gbnf String
    +The string to parse

    +

    startRule String
    +Name of the start rule of this grammar

    +

    Returns

    +

    Grammar
    +A Grammar which can be converted into a SafeLLamaGrammarHandle for sampling

    +

    Exceptions

    +

    GrammarFormatException
    +Thrown if input is malformed

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.grammars.grammarrule/index.html b/0.5/xmldocs/llama.grammars.grammarrule/index.html new file mode 100755 index 00000000..13ca143a --- /dev/null +++ b/0.5/xmldocs/llama.grammars.grammarrule/index.html @@ -0,0 +1,2571 @@ + + + + + + + + + + + + + + + + + + + + + + llama.grammars.grammarrule - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    GrammarRule

    +

    Namespace: LLama.Grammars

    +

    A single rule in a Grammar

    +
    public sealed class GrammarRule : System.IEquatable`1[[LLama.Grammars.GrammarRule, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectGrammarRule
    +Implements IEquatable<GrammarRule>

    +

    Properties

    +

    Name

    +

    Name of this rule

    +
    public string Name { get; }
    +
    +

    Property Value

    +

    String

    +

    Elements

    +

    The elements of this grammar rule

    +
    public IReadOnlyList<LLamaGrammarElement> Elements { get; }
    +
    +

    Property Value

    +

    IReadOnlyList<LLamaGrammarElement>

    +

    Constructors

    +

    GrammarRule(String, IReadOnlyList<LLamaGrammarElement>)

    +

    Create a new GrammarRule containing the given elements

    +
    public GrammarRule(string name, IReadOnlyList<LLamaGrammarElement> elements)
    +
    +

    Parameters

    +

    name String

    +

    elements IReadOnlyList<LLamaGrammarElement>

    +

    Exceptions

    +

    ArgumentException

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(GrammarRule)

    +
    public bool Equals(GrammarRule other)
    +
    +

    Parameters

    +

    other GrammarRule

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public GrammarRule <Clone>$()
    +
    +

    Returns

    +

    GrammarRule

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.instructexecutor/index.html b/0.5/xmldocs/llama.instructexecutor/index.html new file mode 100755 index 00000000..b299f184 --- /dev/null +++ b/0.5/xmldocs/llama.instructexecutor/index.html @@ -0,0 +1,2648 @@ + + + + + + + + + + + + + + + + + + + + + + llama.instructexecutor - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    InstructExecutor

    +

    Namespace: LLama

    +

    The LLama executor for instruct mode.

    +
    public class InstructExecutor : StatefulExecutorBase, LLama.Abstractions.ILLamaExecutor
    +
    +

    Inheritance ObjectStatefulExecutorBaseInstructExecutor
    +Implements ILLamaExecutor

    +

    Properties

    +

    Context

    +

    The context used by the executor.

    +
    public LLamaContext Context { get; }
    +
    +

    Property Value

    +

    LLamaContext

    +

    Constructors

    +

    InstructExecutor(LLamaContext, String, String)

    +
    public InstructExecutor(LLamaContext context, string instructionPrefix, string instructionSuffix)
    +
    +

    Parameters

    +

    context LLamaContext

    +

    instructionPrefix String

    +

    instructionSuffix String

    +

    Methods

    +

    GetStateData()

    +
    public ExecutorBaseState GetStateData()
    +
    +

    Returns

    +

    ExecutorBaseState

    +

    LoadState(ExecutorBaseState)

    +
    public void LoadState(ExecutorBaseState data)
    +
    +

    Parameters

    +

    data ExecutorBaseState

    +

    SaveState(String)

    +
    public void SaveState(string filename)
    +
    +

    Parameters

    +

    filename String

    +

    LoadState(String)

    +
    public void LoadState(string filename)
    +
    +

    Parameters

    +

    filename String

    +

    GetLoopCondition(InferStateArgs)

    +
    protected bool GetLoopCondition(InferStateArgs args)
    +
    +

    Parameters

    +

    args InferStateArgs

    +

    Returns

    +

    Boolean

    +

    PreprocessInputs(String, InferStateArgs)

    +
    protected void PreprocessInputs(string text, InferStateArgs args)
    +
    +

    Parameters

    +

    text String

    +

    args InferStateArgs

    +

    PostProcess(IInferenceParams, InferStateArgs, IEnumerable`1&)

    +
    protected bool PostProcess(IInferenceParams inferenceParams, InferStateArgs args, IEnumerable`1& extraOutputs)
    +
    +

    Parameters

    +

    inferenceParams IInferenceParams

    +

    args InferStateArgs

    +

    extraOutputs IEnumerable`1&

    +

    Returns

    +

    Boolean

    +

    InferInternal(IInferenceParams, InferStateArgs)

    +
    protected void InferInternal(IInferenceParams inferenceParams, InferStateArgs args)
    +
    +

    Parameters

    +

    inferenceParams IInferenceParams

    +

    args InferStateArgs

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.interactiveexecutor/index.html b/0.5/xmldocs/llama.interactiveexecutor/index.html new file mode 100755 index 00000000..f6136c6f --- /dev/null +++ b/0.5/xmldocs/llama.interactiveexecutor/index.html @@ -0,0 +1,2648 @@ + + + + + + + + + + + + + + + + + + + + + + llama.interactiveexecutor - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    InteractiveExecutor

    +

    Namespace: LLama

    +

    The LLama executor for interactive mode.

    +
    public class InteractiveExecutor : StatefulExecutorBase, LLama.Abstractions.ILLamaExecutor
    +
    +

    Inheritance ObjectStatefulExecutorBaseInteractiveExecutor
    +Implements ILLamaExecutor

    +

    Properties

    +

    Context

    +

    The context used by the executor.

    +
    public LLamaContext Context { get; }
    +
    +

    Property Value

    +

    LLamaContext

    +

    Constructors

    +

    InteractiveExecutor(LLamaContext)

    +
    public InteractiveExecutor(LLamaContext context)
    +
    +

    Parameters

    +

    context LLamaContext

    +

    Methods

    +

    GetStateData()

    +
    public ExecutorBaseState GetStateData()
    +
    +

    Returns

    +

    ExecutorBaseState

    +

    LoadState(ExecutorBaseState)

    +
    public void LoadState(ExecutorBaseState data)
    +
    +

    Parameters

    +

    data ExecutorBaseState

    +

    SaveState(String)

    +
    public void SaveState(string filename)
    +
    +

    Parameters

    +

    filename String

    +

    LoadState(String)

    +
    public void LoadState(string filename)
    +
    +

    Parameters

    +

    filename String

    +

    GetLoopCondition(InferStateArgs)

    +

    Define whether to continue the loop to generate responses.

    +
    protected bool GetLoopCondition(InferStateArgs args)
    +
    +

    Parameters

    +

    args InferStateArgs

    +

    Returns

    +

    Boolean

    +

    PreprocessInputs(String, InferStateArgs)

    +
    protected void PreprocessInputs(string text, InferStateArgs args)
    +
    +

    Parameters

    +

    text String

    +

    args InferStateArgs

    +

    PostProcess(IInferenceParams, InferStateArgs, IEnumerable`1&)

    +

    Return whether to break the generation.

    +
    protected bool PostProcess(IInferenceParams inferenceParams, InferStateArgs args, IEnumerable`1& extraOutputs)
    +
    +

    Parameters

    +

    inferenceParams IInferenceParams

    +

    args InferStateArgs

    +

    extraOutputs IEnumerable`1&

    +

    Returns

    +

    Boolean

    +

    InferInternal(IInferenceParams, InferStateArgs)

    +
    protected void InferInternal(IInferenceParams inferenceParams, InferStateArgs args)
    +
    +

    Parameters

    +

    inferenceParams IInferenceParams

    +

    args InferStateArgs

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.llamacontext/index.html b/0.5/xmldocs/llama.llamacontext/index.html new file mode 100755 index 00000000..d5b41f74 --- /dev/null +++ b/0.5/xmldocs/llama.llamacontext/index.html @@ -0,0 +1,3721 @@ + + + + + + + + + + + + + + + + + + + + + + llama.llamacontext - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaContext

    +

    Namespace: LLama

    +

    A llama_context, which holds all the context required to interact with a model

    +
    public sealed class LLamaContext : System.IDisposable
    +
    +

    Inheritance ObjectLLamaContext
    +Implements IDisposable

    +

    Properties

    +

    VocabCount

    +

    Total number of tokens in vocabulary of this model

    +
    public int VocabCount { get; }
    +
    +

    Property Value

    +

    Int32

    +

    ContextSize

    +

    Total number of tokens in the context

    +
    public int ContextSize { get; }
    +
    +

    Property Value

    +

    Int32

    +

    EmbeddingSize

    +

    Dimension of embedding vectors

    +
    public int EmbeddingSize { get; }
    +
    +

    Property Value

    +

    Int32

    +

    Params

    +

    The model params set for this model.

    +
    public IModelParams Params { get; set; }
    +
    +

    Property Value

    +

    IModelParams

    +

    NativeHandle

    +

    The native handle, which is used to be passed to the native APIs

    +
    public SafeLLamaContextHandle NativeHandle { get; }
    +
    +

    Property Value

    +

    SafeLLamaContextHandle

    +

    Remarks:

    +

    Be careful how you use this!

    +

    Encoding

    +

    The encoding set for this model to deal with text input.

    +
    public Encoding Encoding { get; }
    +
    +

    Property Value

    +

    Encoding

    +

    EmbeddingLength

    +

    The embedding length of the model, also known as n_embed

    +
    public int EmbeddingLength { get; }
    +
    +

    Property Value

    +

    Int32

    +

    Constructors

    +

    LLamaContext(IModelParams, ILLamaLogger)

    +

    Caution

    +

    Use the LLamaWeights.CreateContext instead

    +
    +
    public LLamaContext(IModelParams params, ILLamaLogger logger)
    +
    +

    Parameters

    +

    params IModelParams
    +Model params.

    +

    logger ILLamaLogger
    +The logger.

    +

    LLamaContext(LLamaWeights, IModelParams, ILLamaLogger)

    +

    Create a new LLamaContext for the given LLamaWeights

    +
    public LLamaContext(LLamaWeights model, IModelParams params, ILLamaLogger logger)
    +
    +

    Parameters

    +

    model LLamaWeights

    +

    params IModelParams

    +

    logger ILLamaLogger

    +

    Exceptions

    +

    ObjectDisposedException

    +

    Methods

    +

    Clone()

    +

    Create a copy of the current state of this context

    +
    public LLamaContext Clone()
    +
    +

    Returns

    +

    LLamaContext

    +

    Tokenize(String, Boolean)

    +

    Tokenize a string.

    +
    public Int32[] Tokenize(string text, bool addBos)
    +
    +

    Parameters

    +

    text String

    +

    addBos Boolean
    +Whether to add a bos to the text.

    +

    Returns

    +

    Int32[]

    +

    DeTokenize(IEnumerable<Int32>)

    +

    Detokenize the tokens to text.

    +
    public string DeTokenize(IEnumerable<int> tokens)
    +
    +

    Parameters

    +

    tokens IEnumerable<Int32>

    +

    Returns

    +

    String

    +

    SaveState(String)

    +

    Save the state to specified path.

    +
    public void SaveState(string filename)
    +
    +

    Parameters

    +

    filename String

    +

    GetStateData()

    +

    Caution

    +

    Use GetState instead, this supports larger states (over 2GB)

    +
    +

    Get the state data as a byte array.

    +
    public Byte[] GetStateData()
    +
    +

    Returns

    +

    Byte[]

    +

    GetState()

    +

    Get the state data as an opaque handle

    +
    public State GetState()
    +
    +

    Returns

    +

    State

    +

    LoadState(String)

    +

    Load the state from specified path.

    +
    public void LoadState(string filename)
    +
    +

    Parameters

    +

    filename String

    +

    Exceptions

    +

    RuntimeError

    +

    LoadState(Byte[])

    +

    Load the state from memory.

    +
    public void LoadState(Byte[] stateData)
    +
    +

    Parameters

    +

    stateData Byte[]

    +

    Exceptions

    +

    RuntimeError

    +

    LoadState(State)

    +

    Load the state from memory.

    +
    public void LoadState(State state)
    +
    +

    Parameters

    +

    state State

    +

    Exceptions

    +

    RuntimeError

    +

    Sample(LLamaTokenDataArray, Nullable`1&, Single, MirostatType, Single, Single, Int32, Single, Single, Single, SafeLLamaGrammarHandle)

    +

    Perform the sampling. Please don't use it unless you fully know what it does.

    +
    public int Sample(LLamaTokenDataArray candidates, Nullable`1& mirostat_mu, float temperature, MirostatType mirostat, float mirostatTau, float mirostatEta, int topK, float topP, float tfsZ, float typicalP, SafeLLamaGrammarHandle grammar)
    +
    +

    Parameters

    +

    candidates LLamaTokenDataArray

    +

    mirostat_mu Nullable`1&

    +

    temperature Single

    +

    mirostat MirostatType

    +

    mirostatTau Single

    +

    mirostatEta Single

    +

    topK Int32

    +

    topP Single

    +

    tfsZ Single

    +

    typicalP Single

    +

    grammar SafeLLamaGrammarHandle

    +

    Returns

    +

    Int32

    +

    ApplyPenalty(IEnumerable<Int32>, Dictionary<Int32, Single>, Int32, Single, Single, Single, Boolean)

    +

    Apply the penalty for the tokens. Please don't use it unless you fully know what it does.

    +
    public LLamaTokenDataArray ApplyPenalty(IEnumerable<int> lastTokens, Dictionary<int, float> logitBias, int repeatLastTokensCount, float repeatPenalty, float alphaFrequency, float alphaPresence, bool penalizeNL)
    +
    +

    Parameters

    +

    lastTokens IEnumerable<Int32>

    +

    logitBias Dictionary<Int32, Single>

    +

    repeatLastTokensCount Int32

    +

    repeatPenalty Single

    +

    alphaFrequency Single

    +

    alphaPresence Single

    +

    penalizeNL Boolean

    +

    Returns

    +

    LLamaTokenDataArray

    +

    Eval(Int32[], Int32)

    +
    public int Eval(Int32[] tokens, int pastTokensCount)
    +
    +

    Parameters

    +

    tokens Int32[]

    +

    pastTokensCount Int32

    +

    Returns

    +

    Int32
    +The updated pastTokensCount.

    +

    Exceptions

    +

    RuntimeError

    +

    Eval(List<Int32>, Int32)

    +
    public int Eval(List<int> tokens, int pastTokensCount)
    +
    +

    Parameters

    +

    tokens List<Int32>

    +

    pastTokensCount Int32

    +

    Returns

    +

    Int32
    +The updated pastTokensCount.

    +

    Exceptions

    +

    RuntimeError

    +

    Eval(ReadOnlyMemory<Int32>, Int32)

    +
    public int Eval(ReadOnlyMemory<int> tokens, int pastTokensCount)
    +
    +

    Parameters

    +

    tokens ReadOnlyMemory<Int32>

    +

    pastTokensCount Int32

    +

    Returns

    +

    Int32
    +The updated pastTokensCount.

    +

    Exceptions

    +

    RuntimeError

    +

    Eval(ReadOnlySpan<Int32>, Int32)

    +
    public int Eval(ReadOnlySpan<int> tokens, int pastTokensCount)
    +
    +

    Parameters

    +

    tokens ReadOnlySpan<Int32>

    +

    pastTokensCount Int32

    +

    Returns

    +

    Int32
    +The updated pastTokensCount.

    +

    Exceptions

    +

    RuntimeError

    +

    GenerateResult(IEnumerable<Int32>)

    +
    internal IEnumerable<string> GenerateResult(IEnumerable<int> ids)
    +
    +

    Parameters

    +

    ids IEnumerable<Int32>

    +

    Returns

    +

    IEnumerable<String>

    +

    TokenToString(Int32)

    +

    Convert a token into a string

    +
    public string TokenToString(int token)
    +
    +

    Parameters

    +

    token Int32

    +

    Returns

    +

    String

    +

    Dispose()

    +
    public void Dispose()
    +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.llamaembedder/index.html b/0.5/xmldocs/llama.llamaembedder/index.html new file mode 100755 index 00000000..ad4b4360 --- /dev/null +++ b/0.5/xmldocs/llama.llamaembedder/index.html @@ -0,0 +1,2572 @@ + + + + + + + + + + + + + + + + + + + + + + llama.llamaembedder - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaEmbedder

    +

    Namespace: LLama

    +

    The embedder for LLama, which supports getting embeddings from text.

    +
    public sealed class LLamaEmbedder : System.IDisposable
    +
    +

    Inheritance ObjectLLamaEmbedder
    +Implements IDisposable

    +

    Properties

    +

    EmbeddingSize

    +

    Dimension of embedding vectors

    +
    public int EmbeddingSize { get; }
    +
    +

    Property Value

    +

    Int32

    +

    Constructors

    +

    LLamaEmbedder(IModelParams)

    +
    public LLamaEmbedder(IModelParams params)
    +
    +

    Parameters

    +

    params IModelParams

    +

    LLamaEmbedder(LLamaWeights, IModelParams)

    +
    public LLamaEmbedder(LLamaWeights weights, IModelParams params)
    +
    +

    Parameters

    +

    weights LLamaWeights

    +

    params IModelParams

    +

    Methods

    +

    GetEmbeddings(String, Int32, Boolean, String)

    +

    Caution

    +

    'threads' and 'encoding' parameters are no longer used

    +
    +

    Get the embeddings of the text.

    +
    public Single[] GetEmbeddings(string text, int threads, bool addBos, string encoding)
    +
    +

    Parameters

    +

    text String

    +

    threads Int32
    +unused

    +

    addBos Boolean
    +Add bos to the text.

    +

    encoding String
    +unused

    +

    Returns

    +

    Single[]

    +

    Exceptions

    +

    RuntimeError

    +

    GetEmbeddings(String)

    +

    Get the embeddings of the text.

    +
    public Single[] GetEmbeddings(string text)
    +
    +

    Parameters

    +

    text String

    +

    Returns

    +

    Single[]

    +

    Exceptions

    +

    RuntimeError

    +

    GetEmbeddings(String, Boolean)

    +

    Get the embeddings of the text.

    +
    public Single[] GetEmbeddings(string text, bool addBos)
    +
    +

    Parameters

    +

    text String

    +

    addBos Boolean
    +Add bos to the text.

    +

    Returns

    +

    Single[]

    +

    Exceptions

    +

    RuntimeError

    +

    Dispose()

    +
    public void Dispose()
    +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.llamaquantizer/index.html b/0.5/xmldocs/llama.llamaquantizer/index.html new file mode 100755 index 00000000..1403157c --- /dev/null +++ b/0.5/xmldocs/llama.llamaquantizer/index.html @@ -0,0 +1,2280 @@ + + + + + + + + + + + + + + + + + + + + + + llama.llamaquantizer - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaQuantizer

    +

    Namespace: LLama

    +

    The quantizer to quantize the model.

    +
    public static class LLamaQuantizer
    +
    +

    Inheritance ObjectLLamaQuantizer

    +

    Methods

    +

    Quantize(String, String, LLamaFtype, Int32, Boolean, Boolean)

    +

    Quantize the model.

    +
    public static bool Quantize(string srcFileName, string dstFilename, LLamaFtype ftype, int nthread, bool allowRequantize, bool quantizeOutputTensor)
    +
    +

    Parameters

    +

    srcFileName String
    +The model file to be quantized.

    +

    dstFilename String
    +The path to save the quantized model.

    +

    ftype LLamaFtype
    +The type of quantization.

    +

    nthread Int32
    +Thread to be used during the quantization. By default it's the physical core number.

    +

    allowRequantize Boolean

    +

    quantizeOutputTensor Boolean

    +

    Returns

    +

    Boolean
    +Whether the quantization is successful.

    +

    Exceptions

    +

    ArgumentException

    +

    Quantize(String, String, String, Int32, Boolean, Boolean)

    +

    Quantize the model.

    +
    public static bool Quantize(string srcFileName, string dstFilename, string ftype, int nthread, bool allowRequantize, bool quantizeOutputTensor)
    +
    +

    Parameters

    +

    srcFileName String
    +The model file to be quantized.

    +

    dstFilename String
    +The path to save the quantized model.

    +

    ftype String
    +The type of quantization.

    +

    nthread Int32
    +Thread to be used during the quantization. By default it's the physical core number.

    +

    allowRequantize Boolean

    +

    quantizeOutputTensor Boolean

    +

    Returns

    +

    Boolean
    +Whether the quantization is successful.

    +

    Exceptions

    +

    ArgumentException

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.llamatransforms/index.html b/0.5/xmldocs/llama.llamatransforms/index.html new file mode 100755 index 00000000..68150578 --- /dev/null +++ b/0.5/xmldocs/llama.llamatransforms/index.html @@ -0,0 +1,2121 @@ + + + + + + + + + + + + + + + + + + + + + + llama.llamatransforms - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaTransforms

    +

    Namespace: LLama

    +

    A class that contains all the transforms provided internally by LLama.

    +
    public class LLamaTransforms
    +
    +

    Inheritance ObjectLLamaTransforms

    +

    Constructors

    +

    LLamaTransforms()

    +
    public LLamaTransforms()
    +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.llamaweights/index.html b/0.5/xmldocs/llama.llamaweights/index.html new file mode 100755 index 00000000..99d6c540 --- /dev/null +++ b/0.5/xmldocs/llama.llamaweights/index.html @@ -0,0 +1,2505 @@ + + + + + + + + + + + + + + + + + + + + + + llama.llamaweights - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaWeights

    +

    Namespace: LLama

    +

    A set of model weights, loaded into memory.

    +
    public sealed class LLamaWeights : System.IDisposable
    +
    +

    Inheritance ObjectLLamaWeights
    +Implements IDisposable

    +

    Properties

    +

    NativeHandle

    +

    The native handle, which is used in the native APIs

    +
    public SafeLlamaModelHandle NativeHandle { get; }
    +
    +

    Property Value

    +

    SafeLlamaModelHandle

    +

    Remarks:

    +

    Be careful how you use this!

    +

    Encoding

    +

    Encoding to use to convert text into bytes for the model

    +
    public Encoding Encoding { get; }
    +
    +

    Property Value

    +

    Encoding

    +

    VocabCount

    +

    Total number of tokens in vocabulary of this model

    +
    public int VocabCount { get; }
    +
    +

    Property Value

    +

    Int32

    +

    ContextSize

    +

    Total number of tokens in the context

    +
    public int ContextSize { get; }
    +
    +

    Property Value

    +

    Int32

    +

    EmbeddingSize

    +

    Dimension of embedding vectors

    +
    public int EmbeddingSize { get; }
    +
    +

    Property Value

    +

    Int32

    +

    Methods

    +

    LoadFromFile(IModelParams)

    +

    Load weights into memory

    +
    public static LLamaWeights LoadFromFile(IModelParams params)
    +
    +

    Parameters

    +

    params IModelParams

    +

    Returns

    +

    LLamaWeights

    +

    Dispose()

    +
    public void Dispose()
    +
    +

    CreateContext(IModelParams)

    +

    Create a llama_context using this model

    +
    public LLamaContext CreateContext(IModelParams params)
    +
    +

    Parameters

    +

    params IModelParams

    +

    Returns

    +

    LLamaContext

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.native.llamacontextparams/index.html b/0.5/xmldocs/llama.native.llamacontextparams/index.html new file mode 100755 index 00000000..0d9015d9 --- /dev/null +++ b/0.5/xmldocs/llama.native.llamacontextparams/index.html @@ -0,0 +1,2681 @@ + + + + + + + + + + + + + + + + + + + + + + llama.native.llamacontextparams - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaContextParams

    +

    Namespace: LLama.Native

    +

    A C# representation of the llama.cpp llama_context_params struct

    +
    public struct LLamaContextParams
    +
    +

    Inheritance ObjectValueTypeLLamaContextParams

    +

    Fields

    +

    seed

    +

    RNG seed, -1 for random

    +
    public int seed;
    +
    +

    n_ctx

    +

    text context

    +
    public int n_ctx;
    +
    +

    n_batch

    +

    prompt processing batch size

    +
    public int n_batch;
    +
    +

    n_gpu_layers

    +

    number of layers to store in VRAM

    +
    public int n_gpu_layers;
    +
    +

    main_gpu

    +

    the GPU that is used for scratch and small tensors

    +
    public int main_gpu;
    +
    +

    tensor_split

    +

    how to split layers across multiple GPUs

    +
    public IntPtr tensor_split;
    +
    +

    rope_freq_base

    +

    ref: https://github.com/ggerganov/llama.cpp/pull/2054 + RoPE base frequency

    +
    public float rope_freq_base;
    +
    +

    rope_freq_scale

    +

    ref: https://github.com/ggerganov/llama.cpp/pull/2054 + RoPE frequency scaling factor

    +
    public float rope_freq_scale;
    +
    +

    progress_callback

    +

    called with a progress value between 0 and 1, pass NULL to disable

    +
    public IntPtr progress_callback;
    +
    +

    progress_callback_user_data

    +

    context pointer passed to the progress callback

    +
    public IntPtr progress_callback_user_data;
    +
    +

    Properties

    +

    low_vram

    +

    if true, reduce VRAM usage at the cost of performance

    +
    public bool low_vram { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    mul_mat_q

    +

    if true, use experimental mul_mat_q kernels

    +
    public bool mul_mat_q { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    f16_kv

    +

    use fp16 for KV cache

    +
    public bool f16_kv { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    logits_all

    +

    the llama_eval() call computes all logits, not just the last one

    +
    public bool logits_all { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    vocab_only

    +

    only load the vocabulary, no weights

    +
    public bool vocab_only { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    use_mmap

    +

    use mmap if possible

    +
    public bool use_mmap { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    use_mlock

    +

    force system to keep model in RAM

    +
    public bool use_mlock { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    embedding

    +

    embedding mode only

    +
    public bool embedding { get; set; }
    +
    +

    Property Value

    +

    Boolean

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.native.llamaftype/index.html b/0.5/xmldocs/llama.native.llamaftype/index.html new file mode 100755 index 00000000..07dd7fcf --- /dev/null +++ b/0.5/xmldocs/llama.native.llamaftype/index.html @@ -0,0 +1,2194 @@ + + + + + + + + + + + + + + + + + + + + + + llama.native.llamaftype - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaFtype

    +

    Namespace: LLama.Native

    +

    Supported model file types

    +
    public enum LLamaFtype
    +
    +

    Inheritance ObjectValueTypeEnumLLamaFtype
    +Implements IComparable, IFormattable, IConvertible

    +

    Fields

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameValueDescription
    LLAMA_FTYPE_ALL_F320All f32
    LLAMA_FTYPE_MOSTLY_F161Mostly f16
    LLAMA_FTYPE_MOSTLY_Q8_07Mostly 8 bit
    LLAMA_FTYPE_MOSTLY_Q4_02Mostly 4 bit
    LLAMA_FTYPE_MOSTLY_Q4_13Mostly 4 bit
    LLAMA_FTYPE_MOSTLY_Q4_1_SOME_F164Mostly 4 bit, tok_embeddings.weight and output.weight are f16
    LLAMA_FTYPE_MOSTLY_Q5_08Mostly 5 bit
    LLAMA_FTYPE_MOSTLY_Q5_19Mostly 5 bit
    LLAMA_FTYPE_MOSTLY_Q2_K10K-Quant 2 bit
    LLAMA_FTYPE_MOSTLY_Q3_K_S11K-Quant 3 bit (Small)
    LLAMA_FTYPE_MOSTLY_Q3_K_M12K-Quant 3 bit (Medium)
    LLAMA_FTYPE_MOSTLY_Q3_K_L13K-Quant 3 bit (Large)
    LLAMA_FTYPE_MOSTLY_Q4_K_S14K-Quant 4 bit (Small)
    LLAMA_FTYPE_MOSTLY_Q4_K_M15K-Quant 4 bit (Medium)
    LLAMA_FTYPE_MOSTLY_Q5_K_S16K-Quant 5 bit (Small)
    LLAMA_FTYPE_MOSTLY_Q5_K_M17K-Quant 5 bit (Medium)
    LLAMA_FTYPE_MOSTLY_Q6_K18K-Quant 6 bit
    LLAMA_FTYPE_GUESSED1024File type was not specified
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.native.llamagrammarelement/index.html b/0.5/xmldocs/llama.native.llamagrammarelement/index.html new file mode 100755 index 00000000..96e35633 --- /dev/null +++ b/0.5/xmldocs/llama.native.llamagrammarelement/index.html @@ -0,0 +1,2454 @@ + + + + + + + + + + + + + + + + + + + + + + llama.native.llamagrammarelement - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaGrammarElement

    +

    Namespace: LLama.Native

    +

    An element of a grammar

    +
    public struct LLamaGrammarElement
    +
    +

    Inheritance ObjectValueTypeLLamaGrammarElement
    +Implements IEquatable<LLamaGrammarElement>

    +

    Fields

    +

    Type

    +

    The type of this element

    +
    public LLamaGrammarElementType Type;
    +
    +

    Value

    +

    Unicode code point or rule ID

    +
    public uint Value;
    +
    +

    Constructors

    +

    LLamaGrammarElement(LLamaGrammarElementType, UInt32)

    +

    Construct a new LLamaGrammarElement

    +
    LLamaGrammarElement(LLamaGrammarElementType type, uint value)
    +
    +

    Parameters

    +

    type LLamaGrammarElementType

    +

    value UInt32

    +

    Methods

    +

    Equals(LLamaGrammarElement)

    +
    bool Equals(LLamaGrammarElement other)
    +
    +

    Parameters

    +

    other LLamaGrammarElement

    +

    Returns

    +

    Boolean

    +

    Equals(Object)

    +
    bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    IsCharElement()

    +
    bool IsCharElement()
    +
    +

    Returns

    +

    Boolean

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.native.llamagrammarelementtype/index.html b/0.5/xmldocs/llama.native.llamagrammarelementtype/index.html new file mode 100755 index 00000000..dfa8e27f --- /dev/null +++ b/0.5/xmldocs/llama.native.llamagrammarelementtype/index.html @@ -0,0 +1,2139 @@ + + + + + + + + + + + + + + + + + + + + + + llama.native.llamagrammarelementtype - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaGrammarElementType

    +

    Namespace: LLama.Native

    +

    grammar element type

    +
    public enum LLamaGrammarElementType
    +
    +

    Inheritance ObjectValueTypeEnumLLamaGrammarElementType
    +Implements IComparable, IFormattable, IConvertible

    +

    Fields

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameValueDescription
    END0end of rule definition
    ALT1start of alternate definition for rule
    RULE_REF2non-terminal element: reference to rule
    CHAR3terminal element: character (code point)
    CHAR_NOT4inverse char(s) ([^a], [^a-b] [^abc])
    CHAR_RNG_UPPER5modifies a preceding CHAR or CHAR_ALT to be an inclusive range ([a-z])
    CHAR_ALT6modifies a preceding CHAR or CHAR_RNG_UPPER to add an alternate char to match ([ab], [a-zA])
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.native.llamamodelquantizeparams/index.html b/0.5/xmldocs/llama.native.llamamodelquantizeparams/index.html new file mode 100755 index 00000000..a4a7b35a --- /dev/null +++ b/0.5/xmldocs/llama.native.llamamodelquantizeparams/index.html @@ -0,0 +1,2259 @@ + + + + + + + + + + + + + + + + + + + + + + llama.native.llamamodelquantizeparams - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaModelQuantizeParams

    +

    Namespace: LLama.Native

    +

    Quantizer parameters used in the native API

    +
    public struct LLamaModelQuantizeParams
    +
    +

    Inheritance ObjectValueTypeLLamaModelQuantizeParams

    +

    Fields

    +

    nthread

    +

    number of threads to use for quantizing, if <=0 will use std::thread::hardware_concurrency()

    +
    public int nthread;
    +
    +

    ftype

    +

    quantize to this llama_ftype

    +
    public LLamaFtype ftype;
    +
    +

    Properties

    +

    allow_requantize

    +

    allow quantizing non-f32/f16 tensors

    +
    public bool allow_requantize { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    quantize_output_tensor

    +

    quantize output.weight

    +
    public bool quantize_output_tensor { get; set; }
    +
    +

    Property Value

    +

    Boolean

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.native.llamatokendata/index.html b/0.5/xmldocs/llama.native.llamatokendata/index.html new file mode 100755 index 00000000..b78726a3 --- /dev/null +++ b/0.5/xmldocs/llama.native.llamatokendata/index.html @@ -0,0 +1,2231 @@ + + + + + + + + + + + + + + + + + + + + + + llama.native.llamatokendata - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaTokenData

    +

    Namespace: LLama.Native

    +
    public struct LLamaTokenData
    +
    +

    Inheritance ObjectValueTypeLLamaTokenData

    +

    Fields

    +

    id

    +

    token id

    +
    public int id;
    +
    +

    logit

    +

    log-odds of the token

    +
    public float logit;
    +
    +

    p

    +

    probability of the token

    +
    public float p;
    +
    +

    Constructors

    +

    LLamaTokenData(Int32, Single, Single)

    +
    LLamaTokenData(int id, float logit, float p)
    +
    +

    Parameters

    +

    id Int32

    +

    logit Single

    +

    p Single

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.native.llamatokendataarray/index.html b/0.5/xmldocs/llama.native.llamatokendataarray/index.html new file mode 100755 index 00000000..8782b497 --- /dev/null +++ b/0.5/xmldocs/llama.native.llamatokendataarray/index.html @@ -0,0 +1,2303 @@ + + + + + + + + + + + + + + + + + + + + + + llama.native.llamatokendataarray - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaTokenDataArray

    +

    Namespace: LLama.Native

    +

    Contains an array of LLamaTokenData, potentially sorted.

    +
    public struct LLamaTokenDataArray
    +
    +

    Inheritance ObjectValueTypeLLamaTokenDataArray

    +

    Fields

    +

    data

    +

    The LLamaTokenData

    +
    public Memory<LLamaTokenData> data;
    +
    +

    sorted

    +

    Indicates if data is sorted by logits in descending order. If this is false the token data is in no particular order.

    +
    public bool sorted;
    +
    +

    Constructors

    +

    LLamaTokenDataArray(Memory<LLamaTokenData>, Boolean)

    +

    Create a new LLamaTokenDataArray

    +
    LLamaTokenDataArray(Memory<LLamaTokenData> tokens, bool isSorted)
    +
    +

    Parameters

    +

    tokens Memory<LLamaTokenData>

    +

    isSorted Boolean

    +

    Methods

    +

    Create(ReadOnlySpan<Single>)

    +

    Create a new LLamaTokenDataArray, copying the data from the given logits

    +
    LLamaTokenDataArray Create(ReadOnlySpan<float> logits)
    +
    +

    Parameters

    +

    logits ReadOnlySpan<Single>

    +

    Returns

    +

    LLamaTokenDataArray

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.native.llamatokendataarraynative/index.html b/0.5/xmldocs/llama.native.llamatokendataarraynative/index.html new file mode 100755 index 00000000..813013c7 --- /dev/null +++ b/0.5/xmldocs/llama.native.llamatokendataarraynative/index.html @@ -0,0 +1,2308 @@ + + + + + + + + + + + + + + + + + + + + + + llama.native.llamatokendataarraynative - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaTokenDataArrayNative

    +

    Namespace: LLama.Native

    +

    Contains a pointer to an array of LLamaTokenData which is pinned in memory.

    +
    public struct LLamaTokenDataArrayNative
    +
    +

    Inheritance ObjectValueTypeLLamaTokenDataArrayNative

    +

    Fields

    +

    data

    +

    A pointer to an array of LlamaTokenData

    +
    public IntPtr data;
    +
    +

    Remarks:

    +

    Memory must be pinned in place for all the time this LLamaTokenDataArrayNative is in use

    +

    size

    +

    Number of LLamaTokenData in the array

    +
    public ulong size;
    +
    +

    Properties

    +

    sorted

    +

    Indicates if the items in the array are sorted

    +
    public bool sorted { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    Methods

    +

    Create(LLamaTokenDataArray, LLamaTokenDataArrayNative&)

    +

    Create a new LLamaTokenDataArrayNative around the data in the LLamaTokenDataArray

    +
    MemoryHandle Create(LLamaTokenDataArray array, LLamaTokenDataArrayNative& native)
    +
    +

    Parameters

    +

    array LLamaTokenDataArray
    +Data source

    +

    native LLamaTokenDataArrayNative&
    +Created native array

    +

    Returns

    +

    MemoryHandle
    +A memory handle, pinning the data in place until disposed

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.native.nativeapi/index.html b/0.5/xmldocs/llama.native.nativeapi/index.html new file mode 100755 index 00000000..a11eb299 --- /dev/null +++ b/0.5/xmldocs/llama.native.nativeapi/index.html @@ -0,0 +1,5736 @@ + + + + + + + + + + + + + + + + + + + + + + llama.native.nativeapi - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    NativeApi

    +

    Namespace: LLama.Native

    +

    Direct translation of the llama.cpp API

    +
    public class NativeApi
    +
    +

    Inheritance ObjectNativeApi

    +

    Constructors

    +

    NativeApi()

    +
    public NativeApi()
    +
    +

    Methods

    +

    llama_sample_token_mirostat(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Single, Single, Int32, Single&)

    +

    Mirostat 1.0 algorithm described in the paper https://arxiv.org/abs/2007.14966. Uses tokens instead of words.

    +
    public static int llama_sample_token_mirostat(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, float tau, float eta, int m, Single& mu)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArrayNative&
    +A vector of llama_token_data containing the candidate tokens, their probabilities (p), and log-odds (logit) for the current position in the generated text.

    +

    tau Single
    +The target cross-entropy (or surprise) value you want to achieve for the generated text. A higher value corresponds to more surprising or less predictable text, while a lower value corresponds to less surprising or more predictable text.

    +

    eta Single
    +The learning rate used to update mu based on the error between the target and observed surprisal of the sampled word. A larger learning rate will cause mu to be updated more quickly, while a smaller learning rate will result in slower updates.

    +

    m Int32
    +The number of tokens considered in the estimation of s_hat. This is an arbitrary value that is used to calculate s_hat, which in turn helps to calculate the value of k. In the paper, they use m = 100, but you can experiment with different values to see how it affects the performance of the algorithm.

    +

    mu Single&
    +Maximum cross-entropy. This value is initialized to be twice the target cross-entropy (2 * tau) and is updated in the algorithm based on the error between the target and observed surprisal.

    +

    Returns

    +

    Int32

    +

    llama_sample_token_mirostat_v2(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Single, Single, Single&)

    +

    Mirostat 2.0 algorithm described in the paper https://arxiv.org/abs/2007.14966. Uses tokens instead of words.

    +
    public static int llama_sample_token_mirostat_v2(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, float tau, float eta, Single& mu)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArrayNative&
    +A vector of llama_token_data containing the candidate tokens, their probabilities (p), and log-odds (logit) for the current position in the generated text.

    +

    tau Single
    +The target cross-entropy (or surprise) value you want to achieve for the generated text. A higher value corresponds to more surprising or less predictable text, while a lower value corresponds to less surprising or more predictable text.

    +

    eta Single
    +The learning rate used to update mu based on the error between the target and observed surprisal of the sampled word. A larger learning rate will cause mu to be updated more quickly, while a smaller learning rate will result in slower updates.

    +

    mu Single&
    +Maximum cross-entropy. This value is initialized to be twice the target cross-entropy (2 * tau) and is updated in the algorithm based on the error between the target and observed surprisal.

    +

    Returns

    +

    Int32

    +

    llama_sample_token_greedy(SafeLLamaContextHandle, LLamaTokenDataArrayNative&)

    +

    Selects the token with the highest probability.

    +
    public static int llama_sample_token_greedy(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArrayNative&
    +Pointer to LLamaTokenDataArray

    +

    Returns

    +

    Int32

    +

    llama_sample_token(SafeLLamaContextHandle, LLamaTokenDataArrayNative&)

    +

    Randomly selects a token from the candidates based on their probabilities.

    +
    public static int llama_sample_token(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArrayNative&
    +Pointer to LLamaTokenDataArray

    +

    Returns

    +

    Int32

    +

    llama_token_to_str(SafeLLamaContextHandle, Int32)

    +

    Token Id -> String. Uses the vocabulary in the provided context

    +
    public static IntPtr llama_token_to_str(SafeLLamaContextHandle ctx, int token)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    token Int32

    +

    Returns

    +

    IntPtr
    +Pointer to a string.

    +

    llama_token_bos(SafeLLamaContextHandle)

    +

    Get the "Beginning of sentence" token

    +
    public static int llama_token_bos(SafeLLamaContextHandle ctx)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    Returns

    +

    Int32

    +

    llama_token_eos(SafeLLamaContextHandle)

    +

    Get the "End of sentence" token

    +
    public static int llama_token_eos(SafeLLamaContextHandle ctx)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    Returns

    +

    Int32

    +

    llama_token_nl(SafeLLamaContextHandle)

    +

    Get the "new line" token

    +
    public static int llama_token_nl(SafeLLamaContextHandle ctx)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    Returns

    +

    Int32

    +

    llama_print_timings(SafeLLamaContextHandle)

    +

    Print out timing information for this context

    +
    public static void llama_print_timings(SafeLLamaContextHandle ctx)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    llama_reset_timings(SafeLLamaContextHandle)

    +

    Reset all collected timing information for this context

    +
    public static void llama_reset_timings(SafeLLamaContextHandle ctx)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    llama_print_system_info()

    +

    Print system information

    +
    public static IntPtr llama_print_system_info()
    +
    +

    Returns

    +

    IntPtr

    +

    llama_model_n_vocab(SafeLlamaModelHandle)

    +

    Get the number of tokens in the model vocabulary

    +
    public static int llama_model_n_vocab(SafeLlamaModelHandle model)
    +
    +

    Parameters

    +

    model SafeLlamaModelHandle

    +

    Returns

    +

    Int32

    +

    llama_model_n_ctx(SafeLlamaModelHandle)

    +

    Get the size of the context window for the model

    +
    public static int llama_model_n_ctx(SafeLlamaModelHandle model)
    +
    +

    Parameters

    +

    model SafeLlamaModelHandle

    +

    Returns

    +

    Int32

    +

    llama_model_n_embd(SafeLlamaModelHandle)

    +

    Get the dimension of embedding vectors from this model

    +
    public static int llama_model_n_embd(SafeLlamaModelHandle model)
    +
    +

    Parameters

    +

    model SafeLlamaModelHandle

    +

    Returns

    +

    Int32

    +

    llama_token_to_piece_with_model(SafeLlamaModelHandle, Int32, Byte*, Int32)

    +

    Convert a single token into text

    +
    public static int llama_token_to_piece_with_model(SafeLlamaModelHandle model, int llamaToken, Byte* buffer, int length)
    +
    +

    Parameters

    +

    model SafeLlamaModelHandle

    +

    llamaToken Int32

    +

    buffer Byte*
    +buffer to write string into

    +

    length Int32
    +size of the buffer

    +

    Returns

    +

    Int32
    +The length writte, or if the buffer is too small a negative that indicates the length required

    +

    llama_tokenize_with_model(SafeLlamaModelHandle, Byte, Int32, Int32, Boolean)

    +

    Convert text into tokens

    +
    public static int llama_tokenize_with_model(SafeLlamaModelHandle model, Byte* text, Int32* tokens, int n_max_tokens, bool add_bos)
    +
    +

    Parameters

    +

    model SafeLlamaModelHandle

    +

    text Byte*

    +

    tokens Int32*

    +

    n_max_tokens Int32

    +

    add_bos Boolean

    +

    Returns

    +

    Int32
    +Returns the number of tokens on success, no more than n_max_tokens. + Returns a negative number on failure - the number of tokens that would have been returned

    +

    llama_log_set(LLamaLogCallback)

    +

    Register a callback to receive llama log messages

    +
    public static void llama_log_set(LLamaLogCallback logCallback)
    +
    +

    Parameters

    +

    logCallback LLamaLogCallback

    +

    llama_grammar_init(LLamaGrammarElement, UInt64, UInt64)**

    +

    Create a new grammar from the given set of grammar rules

    +
    public static IntPtr llama_grammar_init(LLamaGrammarElement** rules, ulong n_rules, ulong start_rule_index)
    +
    +

    Parameters

    +

    rules LLamaGrammarElement**

    +

    n_rules UInt64

    +

    start_rule_index UInt64

    +

    Returns

    +

    IntPtr

    +

    llama_grammar_free(IntPtr)

    +

    Free all memory from the given SafeLLamaGrammarHandle

    +
    public static void llama_grammar_free(IntPtr grammar)
    +
    +

    Parameters

    +

    grammar IntPtr

    +

    llama_sample_grammar(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, SafeLLamaGrammarHandle)

    +

    Apply constraints from grammar

    +
    public static void llama_sample_grammar(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, SafeLLamaGrammarHandle grammar)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArrayNative&

    +

    grammar SafeLLamaGrammarHandle

    +

    llama_grammar_accept_token(SafeLLamaContextHandle, SafeLLamaGrammarHandle, Int32)

    +

    Accepts the sampled token into the grammar

    +
    public static void llama_grammar_accept_token(SafeLLamaContextHandle ctx, SafeLLamaGrammarHandle grammar, int token)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    grammar SafeLLamaGrammarHandle

    +

    token Int32

    +

    llama_model_quantize(String, String, LLamaModelQuantizeParams*)

    +

    Returns 0 on success

    +
    public static int llama_model_quantize(string fname_inp, string fname_out, LLamaModelQuantizeParams* param)
    +
    +

    Parameters

    +

    fname_inp String

    +

    fname_out String

    +

    param LLamaModelQuantizeParams*

    +

    Returns

    +

    Int32
    +Returns 0 on success

    +

    Remarks:

    +

    not great API - very likely to change

    +

    llama_sample_classifier_free_guidance(SafeLLamaContextHandle, LLamaTokenDataArrayNative, SafeLLamaContextHandle, Single)

    +

    Apply classifier-free guidance to the logits as described in academic paper "Stay on topic with Classifier-Free Guidance" https://arxiv.org/abs/2306.17806

    +
    public static void llama_sample_classifier_free_guidance(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative candidates, SafeLLamaContextHandle guidanceCtx, float scale)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArrayNative
    +A vector of llama_token_data containing the candidate tokens, the logits must be directly extracted from the original generation context without being sorted.

    +

    guidanceCtx SafeLLamaContextHandle
    +A separate context from the same model. Other than a negative prompt at the beginning, it should have all generated and user input tokens copied from the main context.

    +

    scale Single
    +Guidance strength. 1.0f means no guidance. Higher values mean stronger guidance.

    +

    llama_sample_repetition_penalty(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Int32*, UInt64, Single)

    +

    Repetition penalty described in CTRL academic paper https://arxiv.org/abs/1909.05858, with negative logit fix.

    +
    public static void llama_sample_repetition_penalty(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, Int32* last_tokens, ulong last_tokens_size, float penalty)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArrayNative&
    +Pointer to LLamaTokenDataArray

    +

    last_tokens Int32*

    +

    last_tokens_size UInt64

    +

    penalty Single

    +

    llama_sample_frequency_and_presence_penalties(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Int32*, UInt64, Single, Single)

    +

    Frequency and presence penalties described in OpenAI API https://platform.openai.com/docs/api-reference/parameter-details.

    +
    public static void llama_sample_frequency_and_presence_penalties(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, Int32* last_tokens, ulong last_tokens_size, float alpha_frequency, float alpha_presence)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArrayNative&
    +Pointer to LLamaTokenDataArray

    +

    last_tokens Int32*

    +

    last_tokens_size UInt64

    +

    alpha_frequency Single

    +

    alpha_presence Single

    +

    llama_sample_classifier_free_guidance(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, SafeLLamaContextHandle, Single)

    +

    Apply classifier-free guidance to the logits as described in academic paper "Stay on topic with Classifier-Free Guidance" https://arxiv.org/abs/2306.17806

    +
    public static void llama_sample_classifier_free_guidance(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, SafeLLamaContextHandle guidance_ctx, float scale)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArrayNative&
    +A vector of llama_token_data containing the candidate tokens, the logits must be directly extracted from the original generation context without being sorted.

    +

    guidance_ctx SafeLLamaContextHandle
    +A separate context from the same model. Other than a negative prompt at the beginning, it should have all generated and user input tokens copied from the main context.

    +

    scale Single
    +Guidance strength. 1.0f means no guidance. Higher values mean stronger guidance.

    +

    llama_sample_softmax(SafeLLamaContextHandle, LLamaTokenDataArrayNative&)

    +

    Sorts candidate tokens by their logits in descending order and calculate probabilities based on logits.

    +
    public static void llama_sample_softmax(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArrayNative&
    +Pointer to LLamaTokenDataArray

    +

    llama_sample_top_k(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Int32, UInt64)

    +

    Top-K sampling described in academic paper "The Curious Case of Neural Text Degeneration" https://arxiv.org/abs/1904.09751

    +
    public static void llama_sample_top_k(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, int k, ulong min_keep)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArrayNative&
    +Pointer to LLamaTokenDataArray

    +

    k Int32

    +

    min_keep UInt64

    +

    llama_sample_top_p(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Single, UInt64)

    +

    Nucleus sampling described in academic paper "The Curious Case of Neural Text Degeneration" https://arxiv.org/abs/1904.09751

    +
    public static void llama_sample_top_p(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, float p, ulong min_keep)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArrayNative&
    +Pointer to LLamaTokenDataArray

    +

    p Single

    +

    min_keep UInt64

    +

    llama_sample_tail_free(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Single, UInt64)

    +

    Tail Free Sampling described in https://www.trentonbricken.com/Tail-Free-Sampling/.

    +
    public static void llama_sample_tail_free(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, float z, ulong min_keep)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArrayNative&
    +Pointer to LLamaTokenDataArray

    +

    z Single

    +

    min_keep UInt64

    +

    llama_sample_typical(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Single, UInt64)

    +

    Locally Typical Sampling implementation described in the paper https://arxiv.org/abs/2202.00666.

    +
    public static void llama_sample_typical(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, float p, ulong min_keep)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArrayNative&
    +Pointer to LLamaTokenDataArray

    +

    p Single

    +

    min_keep UInt64

    +

    llama_sample_temperature(SafeLLamaContextHandle, LLamaTokenDataArrayNative&, Single)

    +

    Modify logits by temperature

    +
    public static void llama_sample_temperature(SafeLLamaContextHandle ctx, LLamaTokenDataArrayNative& candidates, float temp)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArrayNative&

    +

    temp Single

    +

    llama_empty_call()

    +

    A method that does nothing. This is a native method, calling it will force the llama native dependencies to be loaded.

    +
    public static bool llama_empty_call()
    +
    +

    Returns

    +

    Boolean

    +

    llama_context_default_params()

    +

    Create a LLamaContextParams with default values

    +
    public static LLamaContextParams llama_context_default_params()
    +
    +

    Returns

    +

    LLamaContextParams

    +

    llama_model_quantize_default_params()

    +

    Create a LLamaModelQuantizeParams with default values

    +
    public static LLamaModelQuantizeParams llama_model_quantize_default_params()
    +
    +

    Returns

    +

    LLamaModelQuantizeParams

    +

    llama_mmap_supported()

    +

    Check if memory mapping is supported

    +
    public static bool llama_mmap_supported()
    +
    +

    Returns

    +

    Boolean

    +

    llama_mlock_supported()

    +

    Check if memory lockingis supported

    +
    public static bool llama_mlock_supported()
    +
    +

    Returns

    +

    Boolean

    +

    llama_eval_export(SafeLLamaContextHandle, String)

    +

    Export a static computation graph for context of 511 and batch size of 1 + NOTE: since this functionality is mostly for debugging and demonstration purposes, we hardcode these + parameters here to keep things simple + IMPORTANT: do not use for anything else other than debugging and testing!

    +
    public static int llama_eval_export(SafeLLamaContextHandle ctx, string fname)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    fname String

    +

    Returns

    +

    Int32

    +

    llama_load_model_from_file(String, LLamaContextParams)

    +

    Various functions for loading a ggml llama model. + Allocate (almost) all memory needed for the model. + Return NULL on failure

    +
    public static IntPtr llama_load_model_from_file(string path_model, LLamaContextParams params)
    +
    +

    Parameters

    +

    path_model String

    +

    params LLamaContextParams

    +

    Returns

    +

    IntPtr

    +

    llama_new_context_with_model(SafeLlamaModelHandle, LLamaContextParams)

    +

    Create a new llama_context with the given model. + Return value should always be wrapped in SafeLLamaContextHandle!

    +
    public static IntPtr llama_new_context_with_model(SafeLlamaModelHandle model, LLamaContextParams params)
    +
    +

    Parameters

    +

    model SafeLlamaModelHandle

    +

    params LLamaContextParams

    +

    Returns

    +

    IntPtr

    +

    llama_backend_init(Boolean)

    +

    not great API - very likely to change. + Initialize the llama + ggml backend + Call once at the start of the program

    +
    public static void llama_backend_init(bool numa)
    +
    +

    Parameters

    +

    numa Boolean

    +

    llama_free(IntPtr)

    +

    Frees all allocated memory in the given llama_context

    +
    public static void llama_free(IntPtr ctx)
    +
    +

    Parameters

    +

    ctx IntPtr

    +

    llama_free_model(IntPtr)

    +

    Frees all allocated memory associated with a model

    +
    public static void llama_free_model(IntPtr model)
    +
    +

    Parameters

    +

    model IntPtr

    +

    llama_model_apply_lora_from_file(SafeLlamaModelHandle, String, String, Int32)

    +

    Apply a LoRA adapter to a loaded model + path_base_model is the path to a higher quality model to use as a base for + the layers modified by the adapter. Can be NULL to use the current loaded model. + The model needs to be reloaded before applying a new adapter, otherwise the adapter + will be applied on top of the previous one

    +
    public static int llama_model_apply_lora_from_file(SafeLlamaModelHandle model_ptr, string path_lora, string path_base_model, int n_threads)
    +
    +

    Parameters

    +

    model_ptr SafeLlamaModelHandle

    +

    path_lora String

    +

    path_base_model String

    +

    n_threads Int32

    +

    Returns

    +

    Int32
    +Returns 0 on success

    +

    llama_get_kv_cache_token_count(SafeLLamaContextHandle)

    +

    Returns the number of tokens in the KV cache

    +
    public static int llama_get_kv_cache_token_count(SafeLLamaContextHandle ctx)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    Returns

    +

    Int32

    +

    llama_set_rng_seed(SafeLLamaContextHandle, Int32)

    +

    Sets the current rng seed.

    +
    public static void llama_set_rng_seed(SafeLLamaContextHandle ctx, int seed)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    seed Int32

    +

    llama_get_state_size(SafeLLamaContextHandle)

    +

    Returns the maximum size in bytes of the state (rng, logits, embedding + and kv_cache) - will often be smaller after compacting tokens

    +
    public static ulong llama_get_state_size(SafeLLamaContextHandle ctx)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    Returns

    +

    UInt64

    +

    llama_copy_state_data(SafeLLamaContextHandle, Byte*)

    +

    Copies the state to the specified destination address. + Destination needs to have allocated enough memory.

    +
    public static ulong llama_copy_state_data(SafeLLamaContextHandle ctx, Byte* dest)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    dest Byte*

    +

    Returns

    +

    UInt64
    +the number of bytes copied

    +

    llama_copy_state_data(SafeLLamaContextHandle, Byte[])

    +

    Copies the state to the specified destination address. + Destination needs to have allocated enough memory (see llama_get_state_size)

    +
    public static ulong llama_copy_state_data(SafeLLamaContextHandle ctx, Byte[] dest)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    dest Byte[]

    +

    Returns

    +

    UInt64
    +the number of bytes copied

    +

    llama_set_state_data(SafeLLamaContextHandle, Byte*)

    +

    Set the state reading from the specified address

    +
    public static ulong llama_set_state_data(SafeLLamaContextHandle ctx, Byte* src)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    src Byte*

    +

    Returns

    +

    UInt64
    +the number of bytes read

    +

    llama_set_state_data(SafeLLamaContextHandle, Byte[])

    +

    Set the state reading from the specified address

    +
    public static ulong llama_set_state_data(SafeLLamaContextHandle ctx, Byte[] src)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    src Byte[]

    +

    Returns

    +

    UInt64
    +the number of bytes read

    +

    llama_load_session_file(SafeLLamaContextHandle, String, Int32[], UInt64, UInt64*)

    +

    Load session file

    +
    public static bool llama_load_session_file(SafeLLamaContextHandle ctx, string path_session, Int32[] tokens_out, ulong n_token_capacity, UInt64* n_token_count_out)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    path_session String

    +

    tokens_out Int32[]

    +

    n_token_capacity UInt64

    +

    n_token_count_out UInt64*

    +

    Returns

    +

    Boolean

    +

    llama_save_session_file(SafeLLamaContextHandle, String, Int32[], UInt64)

    +

    Save session file

    +
    public static bool llama_save_session_file(SafeLLamaContextHandle ctx, string path_session, Int32[] tokens, ulong n_token_count)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    path_session String

    +

    tokens Int32[]

    +

    n_token_count UInt64

    +

    Returns

    +

    Boolean

    +

    llama_eval(SafeLLamaContextHandle, Int32[], Int32, Int32, Int32)

    +

    Run the llama inference to obtain the logits and probabilities for the next token. + tokens + n_tokens is the provided batch of new tokens to process + n_past is the number of tokens to use from previous eval calls

    +
    public static int llama_eval(SafeLLamaContextHandle ctx, Int32[] tokens, int n_tokens, int n_past, int n_threads)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    tokens Int32[]

    +

    n_tokens Int32

    +

    n_past Int32

    +

    n_threads Int32

    +

    Returns

    +

    Int32
    +Returns 0 on success

    +

    llama_eval_with_pointer(SafeLLamaContextHandle, Int32*, Int32, Int32, Int32)

    +

    Run the llama inference to obtain the logits and probabilities for the next token. + tokens + n_tokens is the provided batch of new tokens to process + n_past is the number of tokens to use from previous eval calls

    +
    public static int llama_eval_with_pointer(SafeLLamaContextHandle ctx, Int32* tokens, int n_tokens, int n_past, int n_threads)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    tokens Int32*

    +

    n_tokens Int32

    +

    n_past Int32

    +

    n_threads Int32

    +

    Returns

    +

    Int32
    +Returns 0 on success

    +

    llama_tokenize(SafeLLamaContextHandle, String, Encoding, Int32[], Int32, Boolean)

    +

    Convert the provided text into tokens.

    +
    public static int llama_tokenize(SafeLLamaContextHandle ctx, string text, Encoding encoding, Int32[] tokens, int n_max_tokens, bool add_bos)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    text String

    +

    encoding Encoding

    +

    tokens Int32[]

    +

    n_max_tokens Int32

    +

    add_bos Boolean

    +

    Returns

    +

    Int32
    +Returns the number of tokens on success, no more than n_max_tokens. + Returns a negative number on failure - the number of tokens that would have been returned

    +

    llama_tokenize_native(SafeLLamaContextHandle, Byte, Int32, Int32, Boolean)

    +

    Convert the provided text into tokens.

    +
    public static int llama_tokenize_native(SafeLLamaContextHandle ctx, Byte* text, Int32* tokens, int n_max_tokens, bool add_bos)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    text Byte*

    +

    tokens Int32*

    +

    n_max_tokens Int32

    +

    add_bos Boolean

    +

    Returns

    +

    Int32
    +Returns the number of tokens on success, no more than n_max_tokens. + Returns a negative number on failure - the number of tokens that would have been returned

    +

    llama_n_vocab(SafeLLamaContextHandle)

    +

    Get the number of tokens in the model vocabulary for this context

    +
    public static int llama_n_vocab(SafeLLamaContextHandle ctx)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    Returns

    +

    Int32

    +

    llama_n_ctx(SafeLLamaContextHandle)

    +

    Get the size of the context window for the model for this context

    +
    public static int llama_n_ctx(SafeLLamaContextHandle ctx)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    Returns

    +

    Int32

    +

    llama_n_embd(SafeLLamaContextHandle)

    +

    Get the dimension of embedding vectors from the model for this context

    +
    public static int llama_n_embd(SafeLLamaContextHandle ctx)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    Returns

    +

    Int32

    +

    llama_get_logits(SafeLLamaContextHandle)

    +

    Token logits obtained from the last call to llama_eval() + The logits for the last token are stored in the last row + Can be mutated in order to change the probabilities of the next token.
    + Rows: n_tokens
    + Cols: n_vocab

    +
    public static Single* llama_get_logits(SafeLLamaContextHandle ctx)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    Returns

    +

    Single*

    +

    llama_get_embeddings(SafeLLamaContextHandle)

    +

    Get the embeddings for the input + shape: [n_embd] (1-dimensional)

    +
    public static Single* llama_get_embeddings(SafeLLamaContextHandle ctx)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    Returns

    +

    Single*

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.native.safellamacontexthandle/index.html b/0.5/xmldocs/llama.native.safellamacontexthandle/index.html new file mode 100755 index 00000000..5678a29d --- /dev/null +++ b/0.5/xmldocs/llama.native.safellamacontexthandle/index.html @@ -0,0 +1,3388 @@ + + + + + + + + + + + + + + + + + + + + + + llama.native.safellamacontexthandle - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    SafeLLamaContextHandle

    +

    Namespace: LLama.Native

    +

    A safe wrapper around a llama_context

    +
    public sealed class SafeLLamaContextHandle : SafeLLamaHandleBase, System.IDisposable
    +
    +

    Inheritance ObjectCriticalFinalizerObjectSafeHandleSafeLLamaHandleBaseSafeLLamaContextHandle
    +Implements IDisposable

    +

    Properties

    +

    VocabCount

    +

    Total number of tokens in vocabulary of this model

    +
    public int VocabCount { get; }
    +
    +

    Property Value

    +

    Int32

    +

    ContextSize

    +

    Total number of tokens in the context

    +
    public int ContextSize { get; }
    +
    +

    Property Value

    +

    Int32

    +

    EmbeddingSize

    +

    Dimension of embedding vectors

    +
    public int EmbeddingSize { get; }
    +
    +

    Property Value

    +

    Int32

    +

    ModelHandle

    +

    Get the model which this context is using

    +
    public SafeLlamaModelHandle ModelHandle { get; }
    +
    +

    Property Value

    +

    SafeLlamaModelHandle

    +

    IsInvalid

    +
    public bool IsInvalid { get; }
    +
    +

    Property Value

    +

    Boolean

    +

    IsClosed

    +
    public bool IsClosed { get; }
    +
    +

    Property Value

    +

    Boolean

    +

    Constructors

    +

    SafeLLamaContextHandle(IntPtr, SafeLlamaModelHandle)

    +

    Create a new SafeLLamaContextHandle

    +
    public SafeLLamaContextHandle(IntPtr handle, SafeLlamaModelHandle model)
    +
    +

    Parameters

    +

    handle IntPtr
    +pointer to an allocated llama_context

    +

    model SafeLlamaModelHandle
    +the model which this context was created from

    +

    Methods

    +

    ReleaseHandle()

    +
    protected bool ReleaseHandle()
    +
    +

    Returns

    +

    Boolean

    +

    Create(SafeLlamaModelHandle, LLamaContextParams)

    +

    Create a new llama_state for the given model

    +
    public static SafeLLamaContextHandle Create(SafeLlamaModelHandle model, LLamaContextParams lparams)
    +
    +

    Parameters

    +

    model SafeLlamaModelHandle

    +

    lparams LLamaContextParams

    +

    Returns

    +

    SafeLLamaContextHandle

    +

    Exceptions

    +

    RuntimeError

    +

    Clone(LLamaContextParams)

    +

    Create a new llama context with a clone of the current llama context state

    +
    public SafeLLamaContextHandle Clone(LLamaContextParams lparams)
    +
    +

    Parameters

    +

    lparams LLamaContextParams

    +

    Returns

    +

    SafeLLamaContextHandle

    +

    Tokenize(String, Boolean, Encoding)

    +

    Convert the given text into tokens

    +
    public Int32[] Tokenize(string text, bool add_bos, Encoding encoding)
    +
    +

    Parameters

    +

    text String
    +The text to tokenize

    +

    add_bos Boolean
    +Whether the "BOS" token should be added

    +

    encoding Encoding
    +Encoding to use for the text

    +

    Returns

    +

    Int32[]

    +

    Exceptions

    +

    RuntimeError

    +

    GetLogits()

    +

    Token logits obtained from the last call to llama_eval() + The logits for the last token are stored in the last row + Can be mutated in order to change the probabilities of the next token.
    + Rows: n_tokens
    + Cols: n_vocab

    +
    public Span<float> GetLogits()
    +
    +

    Returns

    +

    Span<Single>

    +

    TokenToString(Int32, Encoding)

    +

    Convert a token into a string

    +
    public string TokenToString(int token, Encoding encoding)
    +
    +

    Parameters

    +

    token Int32
    +Token to decode into a string

    +

    encoding Encoding

    +

    Returns

    +

    String

    +

    TokenToString(Int32, Encoding, StringBuilder)

    +

    Append a single llama token to a string builder

    +
    public void TokenToString(int token, Encoding encoding, StringBuilder dest)
    +
    +

    Parameters

    +

    token Int32
    +Token to decode

    +

    encoding Encoding

    +

    dest StringBuilder
    +string builder to append the result to

    +

    TokenToSpan(Int32, Span<Byte>)

    +

    Convert a single llama token into bytes

    +
    public int TokenToSpan(int token, Span<byte> dest)
    +
    +

    Parameters

    +

    token Int32
    +Token to decode

    +

    dest Span<Byte>
    +A span to attempt to write into. If this is too small nothing will be written

    +

    Returns

    +

    Int32
    +The size of this token. nothing will be written if this is larger than dest

    +

    Eval(ReadOnlySpan<Int32>, Int32, Int32)

    +

    Run the llama inference to obtain the logits and probabilities for the next token.

    +
    public bool Eval(ReadOnlySpan<int> tokens, int n_past, int n_threads)
    +
    +

    Parameters

    +

    tokens ReadOnlySpan<Int32>
    +The provided batch of new tokens to process

    +

    n_past Int32
    +the number of tokens to use from previous eval calls

    +

    n_threads Int32

    +

    Returns

    +

    Boolean
    +Returns true on success

    +

    GetStateSize()

    +

    Get the size of the state, when saved as bytes

    +
    public ulong GetStateSize()
    +
    +

    Returns

    +

    UInt64

    +

    GetState(Byte*, UInt64)

    +

    Get the raw state of this context, encoded as bytes. Data is written into the dest pointer.

    +
    public ulong GetState(Byte* dest, ulong size)
    +
    +

    Parameters

    +

    dest Byte*
    +Destination to write to

    +

    size UInt64
    +Number of bytes available to write to in dest (check required size with GetStateSize())

    +

    Returns

    +

    UInt64
    +The number of bytes written to dest

    +

    Exceptions

    +

    ArgumentOutOfRangeException
    +Thrown if dest is too small

    +

    GetState(IntPtr, UInt64)

    +

    Get the raw state of this context, encoded as bytes. Data is written into the dest pointer.

    +
    public ulong GetState(IntPtr dest, ulong size)
    +
    +

    Parameters

    +

    dest IntPtr
    +Destination to write to

    +

    size UInt64
    +Number of bytes available to write to in dest (check required size with GetStateSize())

    +

    Returns

    +

    UInt64
    +The number of bytes written to dest

    +

    Exceptions

    +

    ArgumentOutOfRangeException
    +Thrown if dest is too small

    +

    SetState(Byte*)

    +

    Set the raw state of this context

    +
    public ulong SetState(Byte* src)
    +
    +

    Parameters

    +

    src Byte*
    +The pointer to read the state from

    +

    Returns

    +

    UInt64
    +Number of bytes read from the src pointer

    +

    SetState(IntPtr)

    +

    Set the raw state of this context

    +
    public ulong SetState(IntPtr src)
    +
    +

    Parameters

    +

    src IntPtr
    +The pointer to read the state from

    +

    Returns

    +

    UInt64
    +Number of bytes read from the src pointer

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.native.safellamagrammarhandle/index.html b/0.5/xmldocs/llama.native.safellamagrammarhandle/index.html new file mode 100755 index 00000000..5d023a41 --- /dev/null +++ b/0.5/xmldocs/llama.native.safellamagrammarhandle/index.html @@ -0,0 +1,2431 @@ + + + + + + + + + + + + + + + + + + + + + + llama.native.safellamagrammarhandle - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    SafeLLamaGrammarHandle

    +

    Namespace: LLama.Native

    +

    A safe reference to a llama_grammar

    +
    public class SafeLLamaGrammarHandle : SafeLLamaHandleBase, System.IDisposable
    +
    +

    Inheritance ObjectCriticalFinalizerObjectSafeHandleSafeLLamaHandleBaseSafeLLamaGrammarHandle
    +Implements IDisposable

    +

    Properties

    +

    IsInvalid

    +
    public bool IsInvalid { get; }
    +
    +

    Property Value

    +

    Boolean

    +

    IsClosed

    +
    public bool IsClosed { get; }
    +
    +

    Property Value

    +

    Boolean

    +

    Methods

    +

    ReleaseHandle()

    +
    protected bool ReleaseHandle()
    +
    +

    Returns

    +

    Boolean

    +

    Create(IReadOnlyList<GrammarRule>, UInt64)

    +

    Create a new llama_grammar

    +
    public static SafeLLamaGrammarHandle Create(IReadOnlyList<GrammarRule> rules, ulong start_rule_index)
    +
    +

    Parameters

    +

    rules IReadOnlyList<GrammarRule>
    +A list of list of elements, each inner list makes up one grammar rule

    +

    start_rule_index UInt64
    +The index (in the outer list) of the start rule

    +

    Returns

    +

    SafeLLamaGrammarHandle

    +

    Exceptions

    +

    RuntimeError

    +

    Create(LLamaGrammarElement, UInt64, UInt64)**

    +

    Create a new llama_grammar

    +
    public static SafeLLamaGrammarHandle Create(LLamaGrammarElement** rules, ulong nrules, ulong start_rule_index)
    +
    +

    Parameters

    +

    rules LLamaGrammarElement**
    +rules list, each rule is a list of rule elements (terminated by a LLamaGrammarElementType.END element)

    +

    nrules UInt64
    +total number of rules

    +

    start_rule_index UInt64
    +index of the start rule of the grammar

    +

    Returns

    +

    SafeLLamaGrammarHandle

    +

    Exceptions

    +

    RuntimeError

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.native.safellamahandlebase/index.html b/0.5/xmldocs/llama.native.safellamahandlebase/index.html new file mode 100755 index 00000000..161736f1 --- /dev/null +++ b/0.5/xmldocs/llama.native.safellamahandlebase/index.html @@ -0,0 +1,2267 @@ + + + + + + + + + + + + + + + + + + + + + + llama.native.safellamahandlebase - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    SafeLLamaHandleBase

    +

    Namespace: LLama.Native

    +

    Base class for all llama handles to native resources

    +
    public abstract class SafeLLamaHandleBase : System.Runtime.InteropServices.SafeHandle, System.IDisposable
    +
    +

    Inheritance ObjectCriticalFinalizerObjectSafeHandleSafeLLamaHandleBase
    +Implements IDisposable

    +

    Properties

    +

    IsInvalid

    +
    public bool IsInvalid { get; }
    +
    +

    Property Value

    +

    Boolean

    +

    IsClosed

    +
    public bool IsClosed { get; }
    +
    +

    Property Value

    +

    Boolean

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.native.safellamamodelhandle/index.html b/0.5/xmldocs/llama.native.safellamamodelhandle/index.html new file mode 100755 index 00000000..bbdc0dfa --- /dev/null +++ b/0.5/xmldocs/llama.native.safellamamodelhandle/index.html @@ -0,0 +1,2856 @@ + + + + + + + + + + + + + + + + + + + + + + llama.native.safellamamodelhandle - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    SafeLlamaModelHandle

    +

    Namespace: LLama.Native

    +

    A reference to a set of llama model weights

    +
    public sealed class SafeLlamaModelHandle : SafeLLamaHandleBase, System.IDisposable
    +
    +

    Inheritance ObjectCriticalFinalizerObjectSafeHandleSafeLLamaHandleBaseSafeLlamaModelHandle
    +Implements IDisposable

    +

    Properties

    +

    VocabCount

    +

    Total number of tokens in vocabulary of this model

    +
    public int VocabCount { get; }
    +
    +

    Property Value

    +

    Int32

    +

    ContextSize

    +

    Total number of tokens in the context

    +
    public int ContextSize { get; }
    +
    +

    Property Value

    +

    Int32

    +

    EmbeddingSize

    +

    Dimension of embedding vectors

    +
    public int EmbeddingSize { get; }
    +
    +

    Property Value

    +

    Int32

    +

    IsInvalid

    +
    public bool IsInvalid { get; }
    +
    +

    Property Value

    +

    Boolean

    +

    IsClosed

    +
    public bool IsClosed { get; }
    +
    +

    Property Value

    +

    Boolean

    +

    Methods

    +

    ReleaseHandle()

    +
    protected bool ReleaseHandle()
    +
    +

    Returns

    +

    Boolean

    +

    LoadFromFile(String, LLamaContextParams)

    +

    Load a model from the given file path into memory

    +
    public static SafeLlamaModelHandle LoadFromFile(string modelPath, LLamaContextParams lparams)
    +
    +

    Parameters

    +

    modelPath String

    +

    lparams LLamaContextParams

    +

    Returns

    +

    SafeLlamaModelHandle

    +

    Exceptions

    +

    RuntimeError

    +

    ApplyLoraFromFile(String, String, Int32)

    +

    Apply a LoRA adapter to a loaded model

    +
    public void ApplyLoraFromFile(string lora, string modelBase, int threads)
    +
    +

    Parameters

    +

    lora String

    +

    modelBase String
    +A path to a higher quality model to use as a base for the layers modified by the + adapter. Can be NULL to use the current loaded model.

    +

    threads Int32

    +

    Exceptions

    +

    RuntimeError

    +

    TokenToSpan(Int32, Span<Byte>)

    +

    Convert a single llama token into bytes

    +
    public int TokenToSpan(int llama_token, Span<byte> dest)
    +
    +

    Parameters

    +

    llama_token Int32
    +Token to decode

    +

    dest Span<Byte>
    +A span to attempt to write into. If this is too small nothing will be written

    +

    Returns

    +

    Int32
    +The size of this token. nothing will be written if this is larger than dest

    +

    TokenToString(Int32, Encoding)

    +

    Convert a single llama token into a string

    +
    public string TokenToString(int llama_token, Encoding encoding)
    +
    +

    Parameters

    +

    llama_token Int32

    +

    encoding Encoding
    +Encoding to use to decode the bytes into a string

    +

    Returns

    +

    String

    +

    TokenToString(Int32, Encoding, StringBuilder)

    +

    Append a single llama token to a string builder

    +
    public void TokenToString(int llama_token, Encoding encoding, StringBuilder dest)
    +
    +

    Parameters

    +

    llama_token Int32
    +Token to decode

    +

    encoding Encoding

    +

    dest StringBuilder
    +string builder to append the result to

    +

    Tokenize(String, Boolean, Encoding)

    +

    Convert a string of text into tokens

    +
    public Int32[] Tokenize(string text, bool add_bos, Encoding encoding)
    +
    +

    Parameters

    +

    text String

    +

    add_bos Boolean

    +

    encoding Encoding

    +

    Returns

    +

    Int32[]

    +

    CreateContext(LLamaContextParams)

    +

    Create a new context for this model

    +
    public SafeLLamaContextHandle CreateContext(LLamaContextParams params)
    +
    +

    Parameters

    +

    params LLamaContextParams

    +

    Returns

    +

    SafeLLamaContextHandle

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.native.samplingapi/index.html b/0.5/xmldocs/llama.native.samplingapi/index.html new file mode 100755 index 00000000..75ef781e --- /dev/null +++ b/0.5/xmldocs/llama.native.samplingapi/index.html @@ -0,0 +1,3001 @@ + + + + + + + + + + + + + + + + + + + + + + llama.native.samplingapi - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    SamplingApi

    +

    Namespace: LLama.Native

    +

    Direct translation of the llama.cpp sampling API

    +
    public class SamplingApi
    +
    +

    Inheritance ObjectSamplingApi

    +

    Constructors

    +

    SamplingApi()

    +
    public SamplingApi()
    +
    +

    Methods

    +

    llama_sample_grammar(SafeLLamaContextHandle, LLamaTokenDataArray, SafeLLamaGrammarHandle)

    +

    Apply grammar rules to candidate tokens

    +
    public static void llama_sample_grammar(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, SafeLLamaGrammarHandle grammar)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArray

    +

    grammar SafeLLamaGrammarHandle

    +

    llama_sample_repetition_penalty(SafeLLamaContextHandle, LLamaTokenDataArray, Memory<Int32>, UInt64, Single)

    +

    Caution

    +

    last_tokens_size parameter is no longer needed

    +
    +

    Repetition penalty described in CTRL academic paper https://arxiv.org/abs/1909.05858, with negative logit fix.

    +
    public static void llama_sample_repetition_penalty(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, Memory<int> last_tokens, ulong last_tokens_size, float penalty)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArray
    +Pointer to LLamaTokenDataArray

    +

    last_tokens Memory<Int32>

    +

    last_tokens_size UInt64

    +

    penalty Single

    +

    llama_sample_repetition_penalty(SafeLLamaContextHandle, LLamaTokenDataArray, Memory<Int32>, Single)

    +

    Repetition penalty described in CTRL academic paper https://arxiv.org/abs/1909.05858, with negative logit fix.

    +
    public static void llama_sample_repetition_penalty(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, Memory<int> last_tokens, float penalty)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArray
    +Pointer to LLamaTokenDataArray

    +

    last_tokens Memory<Int32>

    +

    penalty Single

    +

    llama_sample_frequency_and_presence_penalties(SafeLLamaContextHandle, LLamaTokenDataArray, Memory<Int32>, UInt64, Single, Single)

    +

    Caution

    +

    last_tokens_size parameter is no longer needed

    +
    +

    Frequency and presence penalties described in OpenAI API https://platform.openai.com/docs/api-reference/parameter-details.

    +
    public static void llama_sample_frequency_and_presence_penalties(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, Memory<int> last_tokens, ulong last_tokens_size, float alpha_frequency, float alpha_presence)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArray
    +Pointer to LLamaTokenDataArray

    +

    last_tokens Memory<Int32>

    +

    last_tokens_size UInt64

    +

    alpha_frequency Single

    +

    alpha_presence Single

    +

    llama_sample_frequency_and_presence_penalties(SafeLLamaContextHandle, LLamaTokenDataArray, Memory<Int32>, Single, Single)

    +

    Frequency and presence penalties described in OpenAI API https://platform.openai.com/docs/api-reference/parameter-details.

    +
    public static void llama_sample_frequency_and_presence_penalties(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, Memory<int> last_tokens, float alpha_frequency, float alpha_presence)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArray
    +Pointer to LLamaTokenDataArray

    +

    last_tokens Memory<Int32>

    +

    alpha_frequency Single

    +

    alpha_presence Single

    +

    llama_sample_softmax(SafeLLamaContextHandle, LLamaTokenDataArray)

    +

    Sorts candidate tokens by their logits in descending order and calculate probabilities based on logits.

    +
    public static void llama_sample_softmax(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArray
    +Pointer to LLamaTokenDataArray

    +

    llama_sample_top_k(SafeLLamaContextHandle, LLamaTokenDataArray, Int32, UInt64)

    +

    Top-K sampling described in academic paper "The Curious Case of Neural Text Degeneration" https://arxiv.org/abs/1904.09751

    +
    public static void llama_sample_top_k(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, int k, ulong min_keep)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArray
    +Pointer to LLamaTokenDataArray

    +

    k Int32

    +

    min_keep UInt64

    +

    llama_sample_top_p(SafeLLamaContextHandle, LLamaTokenDataArray, Single, UInt64)

    +

    Nucleus sampling described in academic paper "The Curious Case of Neural Text Degeneration" https://arxiv.org/abs/1904.09751

    +
    public static void llama_sample_top_p(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, float p, ulong min_keep)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArray
    +Pointer to LLamaTokenDataArray

    +

    p Single

    +

    min_keep UInt64

    +

    llama_sample_tail_free(SafeLLamaContextHandle, LLamaTokenDataArray, Single, UInt64)

    +

    Tail Free Sampling described in https://www.trentonbricken.com/Tail-Free-Sampling/.

    +
    public static void llama_sample_tail_free(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, float z, ulong min_keep)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArray
    +Pointer to LLamaTokenDataArray

    +

    z Single

    +

    min_keep UInt64

    +

    llama_sample_typical(SafeLLamaContextHandle, LLamaTokenDataArray, Single, UInt64)

    +

    Locally Typical Sampling implementation described in the paper https://arxiv.org/abs/2202.00666.

    +
    public static void llama_sample_typical(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, float p, ulong min_keep)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArray
    +Pointer to LLamaTokenDataArray

    +

    p Single

    +

    min_keep UInt64

    +

    llama_sample_temperature(SafeLLamaContextHandle, LLamaTokenDataArray, Single)

    +

    Sample with temperature. + As temperature increases, the prediction becomes diverse but also vulnerable to hallucinations -- generating tokens that are sensible but not factual

    +
    public static void llama_sample_temperature(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, float temp)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArray

    +

    temp Single

    +

    llama_sample_token_mirostat(SafeLLamaContextHandle, LLamaTokenDataArray, Single, Single, Int32, Single&)

    +

    Mirostat 1.0 algorithm described in the paper https://arxiv.org/abs/2007.14966. Uses tokens instead of words.

    +
    public static int llama_sample_token_mirostat(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, float tau, float eta, int m, Single& mu)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArray
    +A vector of LLamaTokenData containing the candidate tokens, their probabilities (p), and log-odds (logit) for the current position in the generated text.

    +

    tau Single
    +The target cross-entropy (or surprise) value you want to achieve for the generated text. A higher value corresponds to more surprising or less predictable text, while a lower value corresponds to less surprising or more predictable text.

    +

    eta Single
    +The learning rate used to update mu based on the error between the target and observed surprisal of the sampled word. A larger learning rate will cause mu to be updated more quickly, while a smaller learning rate will result in slower updates.

    +

    m Int32
    +The number of tokens considered in the estimation of s_hat. This is an arbitrary value that is used to calculate s_hat, which in turn helps to calculate the value of k. In the paper, they use m = 100, but you can experiment with different values to see how it affects the performance of the algorithm.

    +

    mu Single&
    +Maximum cross-entropy. This value is initialized to be twice the target cross-entropy (2 * tau) and is updated in the algorithm based on the error between the target and observed surprisal.

    +

    Returns

    +

    Int32

    +

    llama_sample_token_mirostat_v2(SafeLLamaContextHandle, LLamaTokenDataArray, Single, Single, Single&)

    +

    Mirostat 2.0 algorithm described in the paper https://arxiv.org/abs/2007.14966. Uses tokens instead of words.

    +
    public static int llama_sample_token_mirostat_v2(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates, float tau, float eta, Single& mu)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArray
    +A vector of LLamaTokenData containing the candidate tokens, their probabilities (p), and log-odds (logit) for the current position in the generated text.

    +

    tau Single
    +The target cross-entropy (or surprise) value you want to achieve for the generated text. A higher value corresponds to more surprising or less predictable text, while a lower value corresponds to less surprising or more predictable text.

    +

    eta Single
    +The learning rate used to update mu based on the error between the target and observed surprisal of the sampled word. A larger learning rate will cause mu to be updated more quickly, while a smaller learning rate will result in slower updates.

    +

    mu Single&
    +Maximum cross-entropy. This value is initialized to be twice the target cross-entropy (2 * tau) and is updated in the algorithm based on the error between the target and observed surprisal.

    +

    Returns

    +

    Int32

    +

    llama_sample_token_greedy(SafeLLamaContextHandle, LLamaTokenDataArray)

    +

    Selects the token with the highest probability.

    +
    public static int llama_sample_token_greedy(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArray
    +Pointer to LLamaTokenDataArray

    +

    Returns

    +

    Int32

    +

    llama_sample_token(SafeLLamaContextHandle, LLamaTokenDataArray)

    +

    Randomly selects a token from the candidates based on their probabilities.

    +
    public static int llama_sample_token(SafeLLamaContextHandle ctx, LLamaTokenDataArray candidates)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    candidates LLamaTokenDataArray
    +Pointer to LLamaTokenDataArray

    +

    Returns

    +

    Int32

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.chatcompletion/index.html b/0.5/xmldocs/llama.oldversion.chatcompletion/index.html new file mode 100755 index 00000000..31684c59 --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.chatcompletion/index.html @@ -0,0 +1,2863 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.chatcompletion - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    ChatCompletion

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class ChatCompletion : System.IEquatable`1[[LLama.OldVersion.ChatCompletion, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectChatCompletion
    +Implements IEquatable<ChatCompletion>

    +

    Properties

    +

    Id

    +
    public string Id { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Object

    +
    public string Object { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Created

    +
    public int Created { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    Model

    +
    public string Model { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Choices

    +
    public ChatCompletionChoice[] Choices { get; set; }
    +
    +

    Property Value

    +

    ChatCompletionChoice[]

    +

    Usage

    +
    public CompletionUsage Usage { get; set; }
    +
    +

    Property Value

    +

    CompletionUsage

    +

    Constructors

    +

    ChatCompletion(String, String, Int32, String, ChatCompletionChoice[], CompletionUsage)

    +
    public ChatCompletion(string Id, string Object, int Created, string Model, ChatCompletionChoice[] Choices, CompletionUsage Usage)
    +
    +

    Parameters

    +

    Id String

    +

    Object String

    +

    Created Int32

    +

    Model String

    +

    Choices ChatCompletionChoice[]

    +

    Usage CompletionUsage

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(ChatCompletion)

    +
    public bool Equals(ChatCompletion other)
    +
    +

    Parameters

    +

    other ChatCompletion

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public ChatCompletion <Clone>$()
    +
    +

    Returns

    +

    ChatCompletion

    +

    Deconstruct(String&, String&, Int32&, String&, ChatCompletionChoice[]&, CompletionUsage&)

    +
    public void Deconstruct(String& Id, String& Object, Int32& Created, String& Model, ChatCompletionChoice[]& Choices, CompletionUsage& Usage)
    +
    +

    Parameters

    +

    Id String&

    +

    Object String&

    +

    Created Int32&

    +

    Model String&

    +

    Choices ChatCompletionChoice[]&

    +

    Usage CompletionUsage&

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.chatcompletionchoice/index.html b/0.5/xmldocs/llama.oldversion.chatcompletionchoice/index.html new file mode 100755 index 00000000..af88833b --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.chatcompletionchoice/index.html @@ -0,0 +1,2722 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.chatcompletionchoice - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    ChatCompletionChoice

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class ChatCompletionChoice : System.IEquatable`1[[LLama.OldVersion.ChatCompletionChoice, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectChatCompletionChoice
    +Implements IEquatable<ChatCompletionChoice>

    +

    Properties

    +

    Index

    +
    public int Index { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    Message

    +
    public ChatCompletionMessage Message { get; set; }
    +
    +

    Property Value

    +

    ChatCompletionMessage

    +

    FinishReason

    +
    public string FinishReason { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Constructors

    +

    ChatCompletionChoice(Int32, ChatCompletionMessage, String)

    +
    public ChatCompletionChoice(int Index, ChatCompletionMessage Message, string FinishReason)
    +
    +

    Parameters

    +

    Index Int32

    +

    Message ChatCompletionMessage

    +

    FinishReason String

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(ChatCompletionChoice)

    +
    public bool Equals(ChatCompletionChoice other)
    +
    +

    Parameters

    +

    other ChatCompletionChoice

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public ChatCompletionChoice <Clone>$()
    +
    +

    Returns

    +

    ChatCompletionChoice

    +

    Deconstruct(Int32&, ChatCompletionMessage&, String&)

    +
    public void Deconstruct(Int32& Index, ChatCompletionMessage& Message, String& FinishReason)
    +
    +

    Parameters

    +

    Index Int32&

    +

    Message ChatCompletionMessage&

    +

    FinishReason String&

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.chatcompletionchunk/index.html b/0.5/xmldocs/llama.oldversion.chatcompletionchunk/index.html new file mode 100755 index 00000000..f0bc3953 --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.chatcompletionchunk/index.html @@ -0,0 +1,2816 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.chatcompletionchunk - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    ChatCompletionChunk

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class ChatCompletionChunk : System.IEquatable`1[[LLama.OldVersion.ChatCompletionChunk, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectChatCompletionChunk
    +Implements IEquatable<ChatCompletionChunk>

    +

    Properties

    +

    Id

    +
    public string Id { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Model

    +
    public string Model { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Object

    +
    public string Object { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Created

    +
    public int Created { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    Choices

    +
    public ChatCompletionChunkChoice[] Choices { get; set; }
    +
    +

    Property Value

    +

    ChatCompletionChunkChoice[]

    +

    Constructors

    +

    ChatCompletionChunk(String, String, String, Int32, ChatCompletionChunkChoice[])

    +
    public ChatCompletionChunk(string Id, string Model, string Object, int Created, ChatCompletionChunkChoice[] Choices)
    +
    +

    Parameters

    +

    Id String

    +

    Model String

    +

    Object String

    +

    Created Int32

    +

    Choices ChatCompletionChunkChoice[]

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(ChatCompletionChunk)

    +
    public bool Equals(ChatCompletionChunk other)
    +
    +

    Parameters

    +

    other ChatCompletionChunk

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public ChatCompletionChunk <Clone>$()
    +
    +

    Returns

    +

    ChatCompletionChunk

    +

    Deconstruct(String&, String&, String&, Int32&, ChatCompletionChunkChoice[]&)

    +
    public void Deconstruct(String& Id, String& Model, String& Object, Int32& Created, ChatCompletionChunkChoice[]& Choices)
    +
    +

    Parameters

    +

    Id String&

    +

    Model String&

    +

    Object String&

    +

    Created Int32&

    +

    Choices ChatCompletionChunkChoice[]&

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.chatcompletionchunkchoice/index.html b/0.5/xmldocs/llama.oldversion.chatcompletionchunkchoice/index.html new file mode 100755 index 00000000..baed8a54 --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.chatcompletionchunkchoice/index.html @@ -0,0 +1,2722 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.chatcompletionchunkchoice - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    ChatCompletionChunkChoice

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class ChatCompletionChunkChoice : System.IEquatable`1[[LLama.OldVersion.ChatCompletionChunkChoice, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectChatCompletionChunkChoice
    +Implements IEquatable<ChatCompletionChunkChoice>

    +

    Properties

    +

    Index

    +
    public int Index { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    Delta

    +
    public ChatCompletionChunkDelta Delta { get; set; }
    +
    +

    Property Value

    +

    ChatCompletionChunkDelta

    +

    FinishReason

    +
    public string FinishReason { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Constructors

    +

    ChatCompletionChunkChoice(Int32, ChatCompletionChunkDelta, String)

    +
    public ChatCompletionChunkChoice(int Index, ChatCompletionChunkDelta Delta, string FinishReason)
    +
    +

    Parameters

    +

    Index Int32

    +

    Delta ChatCompletionChunkDelta

    +

    FinishReason String

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(ChatCompletionChunkChoice)

    +
    public bool Equals(ChatCompletionChunkChoice other)
    +
    +

    Parameters

    +

    other ChatCompletionChunkChoice

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public ChatCompletionChunkChoice <Clone>$()
    +
    +

    Returns

    +

    ChatCompletionChunkChoice

    +

    Deconstruct(Int32&, ChatCompletionChunkDelta&, String&)

    +
    public void Deconstruct(Int32& Index, ChatCompletionChunkDelta& Delta, String& FinishReason)
    +
    +

    Parameters

    +

    Index Int32&

    +

    Delta ChatCompletionChunkDelta&

    +

    FinishReason String&

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.chatcompletionchunkdelta/index.html b/0.5/xmldocs/llama.oldversion.chatcompletionchunkdelta/index.html new file mode 100755 index 00000000..93a643b6 --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.chatcompletionchunkdelta/index.html @@ -0,0 +1,2675 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.chatcompletionchunkdelta - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    ChatCompletionChunkDelta

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class ChatCompletionChunkDelta : System.IEquatable`1[[LLama.OldVersion.ChatCompletionChunkDelta, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectChatCompletionChunkDelta
    +Implements IEquatable<ChatCompletionChunkDelta>

    +

    Properties

    +

    Role

    +
    public string Role { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Content

    +
    public string Content { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Constructors

    +

    ChatCompletionChunkDelta(String, String)

    +
    public ChatCompletionChunkDelta(string Role, string Content)
    +
    +

    Parameters

    +

    Role String

    +

    Content String

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(ChatCompletionChunkDelta)

    +
    public bool Equals(ChatCompletionChunkDelta other)
    +
    +

    Parameters

    +

    other ChatCompletionChunkDelta

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public ChatCompletionChunkDelta <Clone>$()
    +
    +

    Returns

    +

    ChatCompletionChunkDelta

    +

    Deconstruct(String&, String&)

    +
    public void Deconstruct(String& Role, String& Content)
    +
    +

    Parameters

    +

    Role String&

    +

    Content String&

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.chatcompletionmessage/index.html b/0.5/xmldocs/llama.oldversion.chatcompletionmessage/index.html new file mode 100755 index 00000000..3bcff2d1 --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.chatcompletionmessage/index.html @@ -0,0 +1,2722 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.chatcompletionmessage - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    ChatCompletionMessage

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class ChatCompletionMessage : System.IEquatable`1[[LLama.OldVersion.ChatCompletionMessage, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectChatCompletionMessage
    +Implements IEquatable<ChatCompletionMessage>

    +

    Properties

    +

    Role

    +
    public ChatRole Role { get; set; }
    +
    +

    Property Value

    +

    ChatRole

    +

    Content

    +
    public string Content { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Name

    +
    public string Name { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Constructors

    +

    ChatCompletionMessage(ChatRole, String, String)

    +
    public ChatCompletionMessage(ChatRole Role, string Content, string Name)
    +
    +

    Parameters

    +

    Role ChatRole

    +

    Content String

    +

    Name String

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(ChatCompletionMessage)

    +
    public bool Equals(ChatCompletionMessage other)
    +
    +

    Parameters

    +

    other ChatCompletionMessage

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public ChatCompletionMessage <Clone>$()
    +
    +

    Returns

    +

    ChatCompletionMessage

    +

    Deconstruct(ChatRole&, String&, String&)

    +
    public void Deconstruct(ChatRole& Role, String& Content, String& Name)
    +
    +

    Parameters

    +

    Role ChatRole&

    +

    Content String&

    +

    Name String&

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.chatmessagerecord/index.html b/0.5/xmldocs/llama.oldversion.chatmessagerecord/index.html new file mode 100755 index 00000000..61c7ea1c --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.chatmessagerecord/index.html @@ -0,0 +1,2675 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.chatmessagerecord - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    ChatMessageRecord

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class ChatMessageRecord : System.IEquatable`1[[LLama.OldVersion.ChatMessageRecord, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectChatMessageRecord
    +Implements IEquatable<ChatMessageRecord>

    +

    Properties

    +

    Message

    +
    public ChatCompletionMessage Message { get; set; }
    +
    +

    Property Value

    +

    ChatCompletionMessage

    +

    Time

    +
    public DateTime Time { get; set; }
    +
    +

    Property Value

    +

    DateTime

    +

    Constructors

    +

    ChatMessageRecord(ChatCompletionMessage, DateTime)

    +
    public ChatMessageRecord(ChatCompletionMessage Message, DateTime Time)
    +
    +

    Parameters

    +

    Message ChatCompletionMessage

    +

    Time DateTime

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(ChatMessageRecord)

    +
    public bool Equals(ChatMessageRecord other)
    +
    +

    Parameters

    +

    other ChatMessageRecord

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public ChatMessageRecord <Clone>$()
    +
    +

    Returns

    +

    ChatMessageRecord

    +

    Deconstruct(ChatCompletionMessage&, DateTime&)

    +
    public void Deconstruct(ChatCompletionMessage& Message, DateTime& Time)
    +
    +

    Parameters

    +

    Message ChatCompletionMessage&

    +

    Time DateTime&

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.chatrole/index.html b/0.5/xmldocs/llama.oldversion.chatrole/index.html new file mode 100755 index 00000000..a2b18fe8 --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.chatrole/index.html @@ -0,0 +1,2108 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.chatrole - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    + +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.chatsession-1/index.html b/0.5/xmldocs/llama.oldversion.chatsession-1/index.html new file mode 100755 index 00000000..5a559a02 --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.chatsession-1/index.html @@ -0,0 +1,2457 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.chatsession-1 - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    ChatSession<T>

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class ChatSession<T>
    +
    +

    Type Parameters

    +

    T

    +

    Inheritance ObjectChatSession<T>

    +

    Constructors

    +

    ChatSession(T)

    +
    public ChatSession(T model)
    +
    +

    Parameters

    +

    model T

    +

    Methods

    +

    Chat(String, String, String)

    +
    public IEnumerable<string> Chat(string text, string prompt, string encoding)
    +
    +

    Parameters

    +

    text String

    +

    prompt String

    +

    encoding String

    +

    Returns

    +

    IEnumerable<String>

    +

    WithPrompt(String, String)

    +
    public ChatSession<T> WithPrompt(string prompt, string encoding)
    +
    +

    Parameters

    +

    prompt String

    +

    encoding String

    +

    Returns

    +

    ChatSession<T>

    +

    WithPromptFile(String, String)

    +
    public ChatSession<T> WithPromptFile(string promptFilename, string encoding)
    +
    +

    Parameters

    +

    promptFilename String

    +

    encoding String

    +

    Returns

    +

    ChatSession<T>

    +

    WithAntiprompt(String[])

    +

    Set the keywords to split the return value of chat AI.

    +
    public ChatSession<T> WithAntiprompt(String[] antiprompt)
    +
    +

    Parameters

    +

    antiprompt String[]

    +

    Returns

    +

    ChatSession<T>

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.completion/index.html b/0.5/xmldocs/llama.oldversion.completion/index.html new file mode 100755 index 00000000..e76db76a --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.completion/index.html @@ -0,0 +1,2863 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.completion - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    Completion

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class Completion : System.IEquatable`1[[LLama.OldVersion.Completion, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectCompletion
    +Implements IEquatable<Completion>

    +

    Properties

    +

    Id

    +
    public string Id { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Object

    +
    public string Object { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Created

    +
    public int Created { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    Model

    +
    public string Model { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Choices

    +
    public CompletionChoice[] Choices { get; set; }
    +
    +

    Property Value

    +

    CompletionChoice[]

    +

    Usage

    +
    public CompletionUsage Usage { get; set; }
    +
    +

    Property Value

    +

    CompletionUsage

    +

    Constructors

    +

    Completion(String, String, Int32, String, CompletionChoice[], CompletionUsage)

    +
    public Completion(string Id, string Object, int Created, string Model, CompletionChoice[] Choices, CompletionUsage Usage)
    +
    +

    Parameters

    +

    Id String

    +

    Object String

    +

    Created Int32

    +

    Model String

    +

    Choices CompletionChoice[]

    +

    Usage CompletionUsage

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(Completion)

    +
    public bool Equals(Completion other)
    +
    +

    Parameters

    +

    other Completion

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public Completion <Clone>$()
    +
    +

    Returns

    +

    Completion

    +

    Deconstruct(String&, String&, Int32&, String&, CompletionChoice[]&, CompletionUsage&)

    +
    public void Deconstruct(String& Id, String& Object, Int32& Created, String& Model, CompletionChoice[]& Choices, CompletionUsage& Usage)
    +
    +

    Parameters

    +

    Id String&

    +

    Object String&

    +

    Created Int32&

    +

    Model String&

    +

    Choices CompletionChoice[]&

    +

    Usage CompletionUsage&

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.completionchoice/index.html b/0.5/xmldocs/llama.oldversion.completionchoice/index.html new file mode 100755 index 00000000..eb75eb70 --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.completionchoice/index.html @@ -0,0 +1,2769 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.completionchoice - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    CompletionChoice

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class CompletionChoice : System.IEquatable`1[[LLama.OldVersion.CompletionChoice, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectCompletionChoice
    +Implements IEquatable<CompletionChoice>

    +

    Properties

    +

    Text

    +
    public string Text { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Index

    +
    public int Index { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    Logprobs

    +
    public CompletionLogprobs Logprobs { get; set; }
    +
    +

    Property Value

    +

    CompletionLogprobs

    +

    FinishReason

    +
    public string FinishReason { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Constructors

    +

    CompletionChoice(String, Int32, CompletionLogprobs, String)

    +
    public CompletionChoice(string Text, int Index, CompletionLogprobs Logprobs, string FinishReason)
    +
    +

    Parameters

    +

    Text String

    +

    Index Int32

    +

    Logprobs CompletionLogprobs

    +

    FinishReason String

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(CompletionChoice)

    +
    public bool Equals(CompletionChoice other)
    +
    +

    Parameters

    +

    other CompletionChoice

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public CompletionChoice <Clone>$()
    +
    +

    Returns

    +

    CompletionChoice

    +

    Deconstruct(String&, Int32&, CompletionLogprobs&, String&)

    +
    public void Deconstruct(String& Text, Int32& Index, CompletionLogprobs& Logprobs, String& FinishReason)
    +
    +

    Parameters

    +

    Text String&

    +

    Index Int32&

    +

    Logprobs CompletionLogprobs&

    +

    FinishReason String&

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.completionchunk/index.html b/0.5/xmldocs/llama.oldversion.completionchunk/index.html new file mode 100755 index 00000000..d89bccdf --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.completionchunk/index.html @@ -0,0 +1,2816 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.completionchunk - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    CompletionChunk

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class CompletionChunk : System.IEquatable`1[[LLama.OldVersion.CompletionChunk, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectCompletionChunk
    +Implements IEquatable<CompletionChunk>

    +

    Properties

    +

    Id

    +
    public string Id { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Object

    +
    public string Object { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Created

    +
    public int Created { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    Model

    +
    public string Model { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Choices

    +
    public CompletionChoice[] Choices { get; set; }
    +
    +

    Property Value

    +

    CompletionChoice[]

    +

    Constructors

    +

    CompletionChunk(String, String, Int32, String, CompletionChoice[])

    +
    public CompletionChunk(string Id, string Object, int Created, string Model, CompletionChoice[] Choices)
    +
    +

    Parameters

    +

    Id String

    +

    Object String

    +

    Created Int32

    +

    Model String

    +

    Choices CompletionChoice[]

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(CompletionChunk)

    +
    public bool Equals(CompletionChunk other)
    +
    +

    Parameters

    +

    other CompletionChunk

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public CompletionChunk <Clone>$()
    +
    +

    Returns

    +

    CompletionChunk

    +

    Deconstruct(String&, String&, Int32&, String&, CompletionChoice[]&)

    +
    public void Deconstruct(String& Id, String& Object, Int32& Created, String& Model, CompletionChoice[]& Choices)
    +
    +

    Parameters

    +

    Id String&

    +

    Object String&

    +

    Created Int32&

    +

    Model String&

    +

    Choices CompletionChoice[]&

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.completionlogprobs/index.html b/0.5/xmldocs/llama.oldversion.completionlogprobs/index.html new file mode 100755 index 00000000..ffce5309 --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.completionlogprobs/index.html @@ -0,0 +1,2769 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.completionlogprobs - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    CompletionLogprobs

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class CompletionLogprobs : System.IEquatable`1[[LLama.OldVersion.CompletionLogprobs, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectCompletionLogprobs
    +Implements IEquatable<CompletionLogprobs>

    +

    Properties

    +

    TextOffset

    +
    public Int32[] TextOffset { get; set; }
    +
    +

    Property Value

    +

    Int32[]

    +

    TokenLogProbs

    +
    public Single[] TokenLogProbs { get; set; }
    +
    +

    Property Value

    +

    Single[]

    +

    Tokens

    +
    public String[] Tokens { get; set; }
    +
    +

    Property Value

    +

    String[]

    +

    TopLogprobs

    +
    public Dictionary`2[] TopLogprobs { get; set; }
    +
    +

    Property Value

    +

    Dictionary`2[]

    +

    Constructors

    +

    CompletionLogprobs(Int32[], Single[], String[], Dictionary`2[])

    +
    public CompletionLogprobs(Int32[] TextOffset, Single[] TokenLogProbs, String[] Tokens, Dictionary`2[] TopLogprobs)
    +
    +

    Parameters

    +

    TextOffset Int32[]

    +

    TokenLogProbs Single[]

    +

    Tokens String[]

    +

    TopLogprobs Dictionary`2[]

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(CompletionLogprobs)

    +
    public bool Equals(CompletionLogprobs other)
    +
    +

    Parameters

    +

    other CompletionLogprobs

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public CompletionLogprobs <Clone>$()
    +
    +

    Returns

    +

    CompletionLogprobs

    +

    Deconstruct(Int32[]&, Single[]&, String[]&, Dictionary`2[]&)

    +
    public void Deconstruct(Int32[]& TextOffset, Single[]& TokenLogProbs, String[]& Tokens, Dictionary`2[]& TopLogprobs)
    +
    +

    Parameters

    +

    TextOffset Int32[]&

    +

    TokenLogProbs Single[]&

    +

    Tokens String[]&

    +

    TopLogprobs Dictionary`2[]&

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.completionusage/index.html b/0.5/xmldocs/llama.oldversion.completionusage/index.html new file mode 100755 index 00000000..856218f9 --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.completionusage/index.html @@ -0,0 +1,2722 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.completionusage - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    CompletionUsage

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class CompletionUsage : System.IEquatable`1[[LLama.OldVersion.CompletionUsage, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectCompletionUsage
    +Implements IEquatable<CompletionUsage>

    +

    Properties

    +

    PromptTokens

    +
    public int PromptTokens { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    CompletionTokens

    +
    public int CompletionTokens { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    TotalTokens

    +
    public int TotalTokens { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    Constructors

    +

    CompletionUsage(Int32, Int32, Int32)

    +
    public CompletionUsage(int PromptTokens, int CompletionTokens, int TotalTokens)
    +
    +

    Parameters

    +

    PromptTokens Int32

    +

    CompletionTokens Int32

    +

    TotalTokens Int32

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(CompletionUsage)

    +
    public bool Equals(CompletionUsage other)
    +
    +

    Parameters

    +

    other CompletionUsage

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public CompletionUsage <Clone>$()
    +
    +

    Returns

    +

    CompletionUsage

    +

    Deconstruct(Int32&, Int32&, Int32&)

    +
    public void Deconstruct(Int32& PromptTokens, Int32& CompletionTokens, Int32& TotalTokens)
    +
    +

    Parameters

    +

    PromptTokens Int32&

    +

    CompletionTokens Int32&

    +

    TotalTokens Int32&

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.embedding/index.html b/0.5/xmldocs/llama.oldversion.embedding/index.html new file mode 100755 index 00000000..6aa01c15 --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.embedding/index.html @@ -0,0 +1,2769 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.embedding - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    Embedding

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class Embedding : System.IEquatable`1[[LLama.OldVersion.Embedding, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectEmbedding
    +Implements IEquatable<Embedding>

    +

    Properties

    +

    Object

    +
    public string Object { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Model

    +
    public string Model { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Data

    +
    public EmbeddingData[] Data { get; set; }
    +
    +

    Property Value

    +

    EmbeddingData[]

    +

    Usage

    +
    public EmbeddingUsage Usage { get; set; }
    +
    +

    Property Value

    +

    EmbeddingUsage

    +

    Constructors

    +

    Embedding(String, String, EmbeddingData[], EmbeddingUsage)

    +
    public Embedding(string Object, string Model, EmbeddingData[] Data, EmbeddingUsage Usage)
    +
    +

    Parameters

    +

    Object String

    +

    Model String

    +

    Data EmbeddingData[]

    +

    Usage EmbeddingUsage

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(Embedding)

    +
    public bool Equals(Embedding other)
    +
    +

    Parameters

    +

    other Embedding

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public Embedding <Clone>$()
    +
    +

    Returns

    +

    Embedding

    +

    Deconstruct(String&, String&, EmbeddingData[]&, EmbeddingUsage&)

    +
    public void Deconstruct(String& Object, String& Model, EmbeddingData[]& Data, EmbeddingUsage& Usage)
    +
    +

    Parameters

    +

    Object String&

    +

    Model String&

    +

    Data EmbeddingData[]&

    +

    Usage EmbeddingUsage&

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.embeddingdata/index.html b/0.5/xmldocs/llama.oldversion.embeddingdata/index.html new file mode 100755 index 00000000..ef72d2ef --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.embeddingdata/index.html @@ -0,0 +1,2722 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.embeddingdata - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    EmbeddingData

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class EmbeddingData : System.IEquatable`1[[LLama.OldVersion.EmbeddingData, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectEmbeddingData
    +Implements IEquatable<EmbeddingData>

    +

    Properties

    +

    Index

    +
    public int Index { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    Object

    +
    public string Object { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Embedding

    +
    public Single[] Embedding { get; set; }
    +
    +

    Property Value

    +

    Single[]

    +

    Constructors

    +

    EmbeddingData(Int32, String, Single[])

    +
    public EmbeddingData(int Index, string Object, Single[] Embedding)
    +
    +

    Parameters

    +

    Index Int32

    +

    Object String

    +

    Embedding Single[]

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(EmbeddingData)

    +
    public bool Equals(EmbeddingData other)
    +
    +

    Parameters

    +

    other EmbeddingData

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public EmbeddingData <Clone>$()
    +
    +

    Returns

    +

    EmbeddingData

    +

    Deconstruct(Int32&, String&, Single[]&)

    +
    public void Deconstruct(Int32& Index, String& Object, Single[]& Embedding)
    +
    +

    Parameters

    +

    Index Int32&

    +

    Object String&

    +

    Embedding Single[]&

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.embeddingusage/index.html b/0.5/xmldocs/llama.oldversion.embeddingusage/index.html new file mode 100755 index 00000000..8b7ebea7 --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.embeddingusage/index.html @@ -0,0 +1,2675 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.embeddingusage - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    EmbeddingUsage

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class EmbeddingUsage : System.IEquatable`1[[LLama.OldVersion.EmbeddingUsage, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
    +
    +

    Inheritance ObjectEmbeddingUsage
    +Implements IEquatable<EmbeddingUsage>

    +

    Properties

    +

    PromptTokens

    +
    public int PromptTokens { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    TotalTokens

    +
    public int TotalTokens { get; set; }
    +
    +

    Property Value

    +

    Int32

    +

    Constructors

    +

    EmbeddingUsage(Int32, Int32)

    +
    public EmbeddingUsage(int PromptTokens, int TotalTokens)
    +
    +

    Parameters

    +

    PromptTokens Int32

    +

    TotalTokens Int32

    +

    Methods

    +

    ToString()

    +
    public string ToString()
    +
    +

    Returns

    +

    String

    +

    PrintMembers(StringBuilder)

    +
    protected bool PrintMembers(StringBuilder builder)
    +
    +

    Parameters

    +

    builder StringBuilder

    +

    Returns

    +

    Boolean

    +

    GetHashCode()

    +
    public int GetHashCode()
    +
    +

    Returns

    +

    Int32

    +

    Equals(Object)

    +
    public bool Equals(object obj)
    +
    +

    Parameters

    +

    obj Object

    +

    Returns

    +

    Boolean

    +

    Equals(EmbeddingUsage)

    +
    public bool Equals(EmbeddingUsage other)
    +
    +

    Parameters

    +

    other EmbeddingUsage

    +

    Returns

    +

    Boolean

    +

    <Clone>$()

    +
    public EmbeddingUsage <Clone>$()
    +
    +

    Returns

    +

    EmbeddingUsage

    +

    Deconstruct(Int32&, Int32&)

    +
    public void Deconstruct(Int32& PromptTokens, Int32& TotalTokens)
    +
    +

    Parameters

    +

    PromptTokens Int32&

    +

    TotalTokens Int32&

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.ichatmodel/index.html b/0.5/xmldocs/llama.oldversion.ichatmodel/index.html new file mode 100755 index 00000000..b2757082 --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.ichatmodel/index.html @@ -0,0 +1,2346 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.ichatmodel - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    IChatModel

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public interface IChatModel
    +
    +

    Properties

    +

    Name

    +
    public abstract string Name { get; }
    +
    +

    Property Value

    +

    String

    +

    Methods

    +

    Chat(String, String, String)

    +
    IEnumerable<string> Chat(string text, string prompt, string encoding)
    +
    +

    Parameters

    +

    text String

    +

    prompt String

    +

    encoding String

    +

    Returns

    +

    IEnumerable<String>

    +

    InitChatPrompt(String, String)

    +

    Init a prompt for chat and automatically produce the next prompt during the chat.

    +
    void InitChatPrompt(string prompt, string encoding)
    +
    +

    Parameters

    +

    prompt String

    +

    encoding String

    +

    InitChatAntiprompt(String[])

    +
    void InitChatAntiprompt(String[] antiprompt)
    +
    +

    Parameters

    +

    antiprompt String[]

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.llamaembedder/index.html b/0.5/xmldocs/llama.oldversion.llamaembedder/index.html new file mode 100755 index 00000000..cba22d9b --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.llamaembedder/index.html @@ -0,0 +1,2274 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.llamaembedder - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaEmbedder

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class LLamaEmbedder : System.IDisposable
    +
    +

    Inheritance ObjectLLamaEmbedder
    +Implements IDisposable

    +

    Constructors

    +

    LLamaEmbedder(LLamaParams)

    +
    public LLamaEmbedder(LLamaParams params)
    +
    +

    Parameters

    +

    params LLamaParams

    +

    Methods

    +

    GetEmbeddings(String, Int32, Boolean, String)

    +
    public Single[] GetEmbeddings(string text, int n_thread, bool add_bos, string encoding)
    +
    +

    Parameters

    +

    text String

    +

    n_thread Int32

    +

    add_bos Boolean

    +

    encoding String

    +

    Returns

    +

    Single[]

    +

    Dispose()

    +
    public void Dispose()
    +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.llamamodel/index.html b/0.5/xmldocs/llama.oldversion.llamamodel/index.html new file mode 100755 index 00000000..46a31749 --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.llamamodel/index.html @@ -0,0 +1,3137 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.llamamodel - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaModel

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public class LLamaModel : IChatModel, System.IDisposable
    +
    +

    Inheritance ObjectLLamaModel
    +Implements IChatModel, IDisposable

    +

    Properties

    +

    Name

    +
    public string Name { get; set; }
    +
    +

    Property Value

    +

    String

    +

    Verbose

    +
    public bool Verbose { get; set; }
    +
    +

    Property Value

    +

    Boolean

    +

    NativeHandle

    +
    public SafeLLamaContextHandle NativeHandle { get; }
    +
    +

    Property Value

    +

    SafeLLamaContextHandle

    +

    Constructors

    +

    LLamaModel(String, String, Boolean, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Dictionary<Int32, Single>, Int32, Single, Single, Single, Single, Single, Int32, Single, Single, Int32, Single, Single, String, String, String, String, List<String>, String, String, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, String)

    +

    Please refer LLamaParams to find the meanings of each arg. Be sure to have set the n_gpu_layers, otherwise it will + load 20 layers to gpu by default.

    +
    public LLamaModel(string model_path, string model_name, bool verbose, int seed, int n_threads, int n_predict, int n_ctx, int n_batch, int n_keep, int n_gpu_layers, Dictionary<int, float> logit_bias, int top_k, float top_p, float tfs_z, float typical_p, float temp, float repeat_penalty, int repeat_last_n, float frequency_penalty, float presence_penalty, int mirostat, float mirostat_tau, float mirostat_eta, string prompt, string path_session, string input_prefix, string input_suffix, List<string> antiprompt, string lora_adapter, string lora_base, bool memory_f16, bool random_prompt, bool use_color, bool interactive, bool embedding, bool interactive_first, bool prompt_cache_all, bool instruct, bool penalize_nl, bool perplexity, bool use_mmap, bool use_mlock, bool mem_test, bool verbose_prompt, string encoding)
    +
    +

    Parameters

    +

    model_path String
    +The model file path.

    +

    model_name String
    +The model name.

    +

    verbose Boolean
    +Whether to print details when running the model.

    +

    seed Int32

    +

    n_threads Int32

    +

    n_predict Int32

    +

    n_ctx Int32

    +

    n_batch Int32

    +

    n_keep Int32

    +

    n_gpu_layers Int32

    +

    logit_bias Dictionary<Int32, Single>

    +

    top_k Int32

    +

    top_p Single

    +

    tfs_z Single

    +

    typical_p Single

    +

    temp Single

    +

    repeat_penalty Single

    +

    repeat_last_n Int32

    +

    frequency_penalty Single

    +

    presence_penalty Single

    +

    mirostat Int32

    +

    mirostat_tau Single

    +

    mirostat_eta Single

    +

    prompt String

    +

    path_session String

    +

    input_prefix String

    +

    input_suffix String

    +

    antiprompt List<String>

    +

    lora_adapter String

    +

    lora_base String

    +

    memory_f16 Boolean

    +

    random_prompt Boolean

    +

    use_color Boolean

    +

    interactive Boolean

    +

    embedding Boolean

    +

    interactive_first Boolean

    +

    prompt_cache_all Boolean

    +

    instruct Boolean

    +

    penalize_nl Boolean

    +

    perplexity Boolean

    +

    use_mmap Boolean

    +

    use_mlock Boolean

    +

    mem_test Boolean

    +

    verbose_prompt Boolean

    +

    encoding String

    +

    LLamaModel(LLamaParams, String, Boolean, String)

    +

    Please refer LLamaParams to find the meanings of each arg. Be sure to have set the n_gpu_layers, otherwise it will + load 20 layers to gpu by default.

    +
    public LLamaModel(LLamaParams params, string name, bool verbose, string encoding)
    +
    +

    Parameters

    +

    params LLamaParams
    +The LLamaModel params

    +

    name String
    +Model name

    +

    verbose Boolean
    +Whether to output the detailed info.

    +

    encoding String

    +

    Exceptions

    +

    RuntimeError

    +

    Methods

    +

    WithPrompt(String, String)

    +

    Apply a prompt to the model.

    +
    public LLamaModel WithPrompt(string prompt, string encoding)
    +
    +

    Parameters

    +

    prompt String

    +

    encoding String

    +

    Returns

    +

    LLamaModel

    +

    Exceptions

    +

    ArgumentException

    +

    WithPromptFile(String)

    +

    Apply the prompt file to the model.

    +
    public LLamaModel WithPromptFile(string promptFileName)
    +
    +

    Parameters

    +

    promptFileName String

    +

    Returns

    +

    LLamaModel

    +

    InitChatPrompt(String, String)

    +
    public void InitChatPrompt(string prompt, string encoding)
    +
    +

    Parameters

    +

    prompt String

    +

    encoding String

    +

    InitChatAntiprompt(String[])

    +
    public void InitChatAntiprompt(String[] antiprompt)
    +
    +

    Parameters

    +

    antiprompt String[]

    +

    Chat(String, String, String)

    +

    Chat with the LLaMa model under interactive mode.

    +
    public IEnumerable<string> Chat(string text, string prompt, string encoding)
    +
    +

    Parameters

    +

    text String

    +

    prompt String

    +

    encoding String

    +

    Returns

    +

    IEnumerable<String>

    +

    Exceptions

    +

    ArgumentException

    +

    SaveState(String)

    +

    Save the state to specified path.

    +
    public void SaveState(string filename)
    +
    +

    Parameters

    +

    filename String

    +

    LoadState(String, Boolean)

    +

    Load the state from specified path.

    +
    public void LoadState(string filename, bool clearPreviousEmbed)
    +
    +

    Parameters

    +

    filename String

    +

    clearPreviousEmbed Boolean
    +Whether to clear previous footprints of this model.

    +

    Exceptions

    +

    RuntimeError

    +

    Tokenize(String, String)

    +

    Tokenize a string.

    +
    public List<int> Tokenize(string text, string encoding)
    +
    +

    Parameters

    +

    text String
    +The utf-8 encoded string to tokenize.

    +

    encoding String

    +

    Returns

    +

    List<Int32>
    +A list of tokens.

    +

    Exceptions

    +

    RuntimeError
    +If the tokenization failed.

    +

    DeTokenize(IEnumerable<Int32>)

    +

    Detokenize a list of tokens.

    +
    public string DeTokenize(IEnumerable<int> tokens)
    +
    +

    Parameters

    +

    tokens IEnumerable<Int32>
    +The list of tokens to detokenize.

    +

    Returns

    +

    String
    +The detokenized string.

    +

    Call(String, String)

    +

    Call the model to run inference.

    +
    public IEnumerable<string> Call(string text, string encoding)
    +
    +

    Parameters

    +

    text String

    +

    encoding String

    +

    Returns

    +

    IEnumerable<String>

    +

    Exceptions

    +

    RuntimeError

    +

    Dispose()

    +
    public void Dispose()
    +
    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.oldversion.llamaparams/index.html b/0.5/xmldocs/llama.oldversion.llamaparams/index.html new file mode 100755 index 00000000..258c1785 --- /dev/null +++ b/0.5/xmldocs/llama.oldversion.llamaparams/index.html @@ -0,0 +1,2947 @@ + + + + + + + + + + + + + + + + + + + + + + llama.oldversion.llamaparams - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    LLamaParams

    +

    Namespace: LLama.OldVersion

    +

    Caution

    +

    The entire LLama.OldVersion namespace will be removed

    +
    +
    public struct LLamaParams
    +
    +

    Inheritance ObjectValueTypeLLamaParams

    +

    Fields

    +

    seed

    +
    public int seed;
    +
    +

    n_threads

    +
    public int n_threads;
    +
    +

    n_predict

    +
    public int n_predict;
    +
    +

    n_ctx

    +
    public int n_ctx;
    +
    +

    n_batch

    +
    public int n_batch;
    +
    +

    n_keep

    +
    public int n_keep;
    +
    +

    n_gpu_layers

    +
    public int n_gpu_layers;
    +
    +

    logit_bias

    +
    public Dictionary<int, float> logit_bias;
    +
    +

    top_k

    +
    public int top_k;
    +
    +

    top_p

    +
    public float top_p;
    +
    +

    tfs_z

    +
    public float tfs_z;
    +
    +

    typical_p

    +
    public float typical_p;
    +
    +

    temp

    +
    public float temp;
    +
    +

    repeat_penalty

    +
    public float repeat_penalty;
    +
    +

    repeat_last_n

    +
    public int repeat_last_n;
    +
    +

    frequency_penalty

    +
    public float frequency_penalty;
    +
    +

    presence_penalty

    +
    public float presence_penalty;
    +
    +

    mirostat

    +
    public int mirostat;
    +
    +

    mirostat_tau

    +
    public float mirostat_tau;
    +
    +

    mirostat_eta

    +
    public float mirostat_eta;
    +
    +

    model

    +
    public string model;
    +
    +

    prompt

    +
    public string prompt;
    +
    +

    path_session

    +
    public string path_session;
    +
    +

    input_prefix

    +
    public string input_prefix;
    +
    +

    input_suffix

    +
    public string input_suffix;
    +
    +

    antiprompt

    +
    public List<string> antiprompt;
    +
    +

    lora_adapter

    +
    public string lora_adapter;
    +
    +

    lora_base

    +
    public string lora_base;
    +
    +

    memory_f16

    +
    public bool memory_f16;
    +
    +

    random_prompt

    +
    public bool random_prompt;
    +
    +

    use_color

    +
    public bool use_color;
    +
    +

    interactive

    +
    public bool interactive;
    +
    +

    prompt_cache_all

    +
    public bool prompt_cache_all;
    +
    +

    embedding

    +
    public bool embedding;
    +
    +

    interactive_first

    +
    public bool interactive_first;
    +
    +

    instruct

    +
    public bool instruct;
    +
    +

    penalize_nl

    +
    public bool penalize_nl;
    +
    +

    perplexity

    +
    public bool perplexity;
    +
    +

    use_mmap

    +
    public bool use_mmap;
    +
    +

    use_mlock

    +
    public bool use_mlock;
    +
    +

    mem_test

    +
    public bool mem_test;
    +
    +

    verbose_prompt

    +
    public bool verbose_prompt;
    +
    +

    Constructors

    +

    LLamaParams(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Dictionary<Int32, Single>, Int32, Single, Single, Single, Single, Single, Int32, Single, Single, Int32, Single, Single, String, String, String, String, String, List<String>, String, String, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean)

    +
    LLamaParams(int seed, int n_threads, int n_predict, int n_ctx, int n_batch, int n_keep, int n_gpu_layers, Dictionary<int, float> logit_bias, int top_k, float top_p, float tfs_z, float typical_p, float temp, float repeat_penalty, int repeat_last_n, float frequency_penalty, float presence_penalty, int mirostat, float mirostat_tau, float mirostat_eta, string model, string prompt, string path_session, string input_prefix, string input_suffix, List<string> antiprompt, string lora_adapter, string lora_base, bool memory_f16, bool random_prompt, bool use_color, bool interactive, bool prompt_cache_all, bool embedding, bool interactive_first, bool instruct, bool penalize_nl, bool perplexity, bool use_mmap, bool use_mlock, bool mem_test, bool verbose_prompt)
    +
    +

    Parameters

    +

    seed Int32

    +

    n_threads Int32

    +

    n_predict Int32

    +

    n_ctx Int32

    +

    n_batch Int32

    +

    n_keep Int32

    +

    n_gpu_layers Int32

    +

    logit_bias Dictionary<Int32, Single>

    +

    top_k Int32

    +

    top_p Single

    +

    tfs_z Single

    +

    typical_p Single

    +

    temp Single

    +

    repeat_penalty Single

    +

    repeat_last_n Int32

    +

    frequency_penalty Single

    +

    presence_penalty Single

    +

    mirostat Int32

    +

    mirostat_tau Single

    +

    mirostat_eta Single

    +

    model String

    +

    prompt String

    +

    path_session String

    +

    input_prefix String

    +

    input_suffix String

    +

    antiprompt List<String>

    +

    lora_adapter String

    +

    lora_base String

    +

    memory_f16 Boolean

    +

    random_prompt Boolean

    +

    use_color Boolean

    +

    interactive Boolean

    +

    prompt_cache_all Boolean

    +

    embedding Boolean

    +

    interactive_first Boolean

    +

    instruct Boolean

    +

    penalize_nl Boolean

    +

    perplexity Boolean

    +

    use_mmap Boolean

    +

    use_mlock Boolean

    +

    mem_test Boolean

    +

    verbose_prompt Boolean

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.statefulexecutorbase/index.html b/0.5/xmldocs/llama.statefulexecutorbase/index.html new file mode 100755 index 00000000..bcd146f4 --- /dev/null +++ b/0.5/xmldocs/llama.statefulexecutorbase/index.html @@ -0,0 +1,2899 @@ + + + + + + + + + + + + + + + + + + + + + + llama.statefulexecutorbase - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + + + + + +
    +
    + + + + +

    StatefulExecutorBase

    +

    Namespace: LLama

    +

    The base class for stateful LLama executors.

    +
    public abstract class StatefulExecutorBase : LLama.Abstractions.ILLamaExecutor
    +
    +

    Inheritance ObjectStatefulExecutorBase
    +Implements ILLamaExecutor

    +

    Properties

    +

    Context

    +

    The context used by the executor.

    +
    public LLamaContext Context { get; }
    +
    +

    Property Value

    +

    LLamaContext

    +

    Methods

    +

    WithSessionFile(String)

    +

    This API is currently not verified.

    +
    public StatefulExecutorBase WithSessionFile(string filename)
    +
    +

    Parameters

    +

    filename String

    +

    Returns

    +

    StatefulExecutorBase

    +

    Exceptions

    +

    ArgumentNullException

    +

    RuntimeError

    +

    SaveSessionFile(String)

    +

    This API has not been verified currently.

    +
    public void SaveSessionFile(string filename)
    +
    +

    Parameters

    +

    filename String

    +

    HandleRunOutOfContext(Int32)

    +

    After running out of the context, take some tokens from the original prompt and recompute the logits in batches.

    +
    protected void HandleRunOutOfContext(int tokensToKeep)
    +
    +

    Parameters

    +

    tokensToKeep Int32

    +

    TryReuseMathingPrefix()

    +

    Try to reuse the matching prefix from the session file.

    +
    protected void TryReuseMathingPrefix()
    +
    +

    GetLoopCondition(InferStateArgs)

    +

    Decide whether to continue the loop.

    +
    protected abstract bool GetLoopCondition(InferStateArgs args)
    +
    +

    Parameters

    +

    args InferStateArgs

    +

    Returns

    +

    Boolean

    +

    PreprocessInputs(String, InferStateArgs)

    +

    Preprocess the inputs before the inference.

    +
    protected abstract void PreprocessInputs(string text, InferStateArgs args)
    +
    +

    Parameters

    +

    text String

    +

    args InferStateArgs

    +

    PostProcess(IInferenceParams, InferStateArgs, IEnumerable`1&)

    +

    Do some post processing after the inference.

    +
    protected abstract bool PostProcess(IInferenceParams inferenceParams, InferStateArgs args, IEnumerable`1& extraOutputs)
    +
    +

    Parameters

    +

    inferenceParams IInferenceParams

    +

    args InferStateArgs

    +

    extraOutputs IEnumerable`1&

    +

    Returns

    +

    Boolean

    +

    InferInternal(IInferenceParams, InferStateArgs)

    +

    The core inference logic.

    +
    protected abstract void InferInternal(IInferenceParams inferenceParams, InferStateArgs args)
    +
    +

    Parameters

    +

    inferenceParams IInferenceParams

    +

    args InferStateArgs

    +

    SaveState(String)

    +

    Save the current state to a file.

    +
    public abstract void SaveState(string filename)
    +
    +

    Parameters

    +

    filename String

    +

    GetStateData()

    +

    Get the current state data.

    +
    public abstract ExecutorBaseState GetStateData()
    +
    +

    Returns

    +

    ExecutorBaseState

    +

    LoadState(ExecutorBaseState)

    +

    Load the state from data.

    +
    public abstract void LoadState(ExecutorBaseState data)
    +
    +

    Parameters

    +

    data ExecutorBaseState

    +

    LoadState(String)

    +

    Load the state from a file.

    +
    public abstract void LoadState(string filename)
    +
    +

    Parameters

    +

    filename String

    +

    Infer(String, IInferenceParams, CancellationToken)

    +

    Execute the inference.

    +
    public IEnumerable<string> Infer(string text, IInferenceParams inferenceParams, CancellationToken cancellationToken)
    +
    +

    Parameters

    +

    text String

    +

    inferenceParams IInferenceParams

    +

    cancellationToken CancellationToken

    +

    Returns

    +

    IEnumerable<String>

    +

    InferAsync(String, IInferenceParams, CancellationToken)

    +

    Execute the inference asynchronously.

    +
    public IAsyncEnumerable<string> InferAsync(string text, IInferenceParams inferenceParams, CancellationToken cancellationToken)
    +
    +

    Parameters

    +

    text String

    +

    inferenceParams IInferenceParams

    +

    cancellationToken CancellationToken

    +

    Returns

    +

    IAsyncEnumerable<String>

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.statelessexecutor/index.html b/0.5/xmldocs/llama.statelessexecutor/index.html new file mode 100755 index 00000000..580f8a45 --- /dev/null +++ b/0.5/xmldocs/llama.statelessexecutor/index.html @@ -0,0 +1,2442 @@ + + + + + + + + + + + + + + + + + + + + + + llama.statelessexecutor - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    StatelessExecutor

    +

    Namespace: LLama

    +

    This executor infer the input as one-time job. Previous inputs won't impact on the + response to current input.

    +
    public class StatelessExecutor : LLama.Abstractions.ILLamaExecutor
    +
    +

    Inheritance ObjectStatelessExecutor
    +Implements ILLamaExecutor

    +

    Properties

    +

    Context

    +

    The context used by the executor when running the inference.

    +
    public LLamaContext Context { get; private set; }
    +
    +

    Property Value

    +

    LLamaContext

    +

    Constructors

    +

    StatelessExecutor(LLamaWeights, IModelParams)

    +

    Create a new stateless executor which will use the given model

    +
    public StatelessExecutor(LLamaWeights weights, IModelParams params)
    +
    +

    Parameters

    +

    weights LLamaWeights

    +

    params IModelParams

    +

    StatelessExecutor(LLamaContext)

    +

    Caution

    +

    Use the constructor which automatically creates contexts using the LLamaWeights

    +
    +

    Create a new stateless executor which will use the model used to create the given context

    +
    public StatelessExecutor(LLamaContext context)
    +
    +

    Parameters

    +

    context LLamaContext

    +

    Methods

    +

    Infer(String, IInferenceParams, CancellationToken)

    +
    public IEnumerable<string> Infer(string text, IInferenceParams inferenceParams, CancellationToken cancellationToken)
    +
    +

    Parameters

    +

    text String

    +

    inferenceParams IInferenceParams

    +

    cancellationToken CancellationToken

    +

    Returns

    +

    IEnumerable<String>

    +

    InferAsync(String, IInferenceParams, CancellationToken)

    +
    public IAsyncEnumerable<string> InferAsync(string text, IInferenceParams inferenceParams, CancellationToken cancellationToken)
    +
    +

    Parameters

    +

    text String

    +

    inferenceParams IInferenceParams

    +

    cancellationToken CancellationToken

    +

    Returns

    +

    IAsyncEnumerable<String>

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/0.5/xmldocs/llama.utils/index.html b/0.5/xmldocs/llama.utils/index.html new file mode 100755 index 00000000..6159d852 --- /dev/null +++ b/0.5/xmldocs/llama.utils/index.html @@ -0,0 +1,2582 @@ + + + + + + + + + + + + + + + + + + + + llama.utils - LLamaSharp Documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + +
    +
    +
    + + + + + + + +
    +
    + + + + +

    Utils

    +

    Namespace: LLama

    +

    Assorted llama utilities

    +
    public static class Utils
    +
    +

    Inheritance ObjectUtils

    +

    Methods

    +

    InitLLamaContextFromModelParams(IModelParams)

    +

    Caution

    +

    Use LLamaWeights.LoadFromFile and LLamaWeights.CreateContext instead

    +
    +
    public static SafeLLamaContextHandle InitLLamaContextFromModelParams(IModelParams params)
    +
    +

    Parameters

    +

    params IModelParams

    +

    Returns

    +

    SafeLLamaContextHandle

    +

    Tokenize(SafeLLamaContextHandle, String, Boolean, Encoding)

    +

    Caution

    +

    Use SafeLLamaContextHandle Tokenize method instead

    +
    +
    public static IEnumerable<int> Tokenize(SafeLLamaContextHandle ctx, string text, bool add_bos, Encoding encoding)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    text String

    +

    add_bos Boolean

    +

    encoding Encoding

    +

    Returns

    +

    IEnumerable<Int32>

    +

    GetLogits(SafeLLamaContextHandle, Int32)

    +

    Caution

    +

    Use SafeLLamaContextHandle GetLogits method instead

    +
    +
    public static Span<float> GetLogits(SafeLLamaContextHandle ctx, int length)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    length Int32

    +

    Returns

    +

    Span<Single>

    +

    Eval(SafeLLamaContextHandle, Int32[], Int32, Int32, Int32, Int32)

    +

    Caution

    +

    Use SafeLLamaContextHandle Eval method instead

    +
    +
    public static int Eval(SafeLLamaContextHandle ctx, Int32[] tokens, int startIndex, int n_tokens, int n_past, int n_threads)
    +
    +

    Parameters

    +

    ctx SafeLLamaContextHandle

    +

    tokens Int32[]

    +

    startIndex Int32

    +

    n_tokens Int32

    +

    n_past Int32

    +

    n_threads Int32

    +

    Returns

    +

    Int32

    +

    TokenToString(Int32, SafeLLamaContextHandle, Encoding)

    +

    Caution

    +

    Use SafeLLamaContextHandle TokenToString method instead

    +
    +
    public static string TokenToString(int token, SafeLLamaContextHandle ctx, Encoding encoding)
    +
    +

    Parameters

    +

    token Int32

    +

    ctx SafeLLamaContextHandle

    +

    encoding Encoding

    +

    Returns

    +

    String

    +

    PtrToString(IntPtr, Encoding)

    +

    Caution

    +

    No longer used internally by LlamaSharp

    +
    +
    public static string PtrToString(IntPtr ptr, Encoding encoding)
    +
    +

    Parameters

    +

    ptr IntPtr

    +

    encoding Encoding

    +

    Returns

    +

    String

    + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/latest/404.html b/latest/404.html index e2b60413..6dfa0d53 100644 --- a/latest/404.html +++ b/latest/404.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../0.4/404.html... + Redirecting to ../0.5/404.html... \ No newline at end of file diff --git a/latest/Architecture/index.html b/latest/Architecture/index.html index 803acd82..bfdcbd89 100644 --- a/latest/Architecture/index.html +++ b/latest/Architecture/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../0.4/Architecture/... + Redirecting to ../../0.5/Architecture/... \ No newline at end of file diff --git a/latest/ChatSession/basic-usages/index.html b/latest/ChatSession/basic-usages/index.html index dd84d615..d5bb823a 100644 --- a/latest/ChatSession/basic-usages/index.html +++ b/latest/ChatSession/basic-usages/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/ChatSession/basic-usages/... + Redirecting to ../../../0.5/ChatSession/basic-usages/... \ No newline at end of file diff --git a/latest/ChatSession/save-load-session/index.html b/latest/ChatSession/save-load-session/index.html index 2b362438..8ec617e7 100644 --- a/latest/ChatSession/save-load-session/index.html +++ b/latest/ChatSession/save-load-session/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/ChatSession/save-load-session/... + Redirecting to ../../../0.5/ChatSession/save-load-session/... \ No newline at end of file diff --git a/latest/ChatSession/transforms/index.html b/latest/ChatSession/transforms/index.html index 4699105e..2bc92b45 100644 --- a/latest/ChatSession/transforms/index.html +++ b/latest/ChatSession/transforms/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/ChatSession/transforms/... + Redirecting to ../../../0.5/ChatSession/transforms/... \ No newline at end of file diff --git a/latest/ContributingGuide/index.html b/latest/ContributingGuide/index.html index 1ffa3652..4c538668 100644 --- a/latest/ContributingGuide/index.html +++ b/latest/ContributingGuide/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../0.4/ContributingGuide/... + Redirecting to ../../0.5/ContributingGuide/... \ No newline at end of file diff --git a/latest/Examples/ChatSessionStripRoleName/index.html b/latest/Examples/ChatSessionStripRoleName/index.html index 47a12b88..dbfac7e4 100644 --- a/latest/Examples/ChatSessionStripRoleName/index.html +++ b/latest/Examples/ChatSessionStripRoleName/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/Examples/ChatSessionStripRoleName/... + Redirecting to ../../../0.5/Examples/ChatSessionStripRoleName/... \ No newline at end of file diff --git a/latest/Examples/ChatSessionWithRoleName/index.html b/latest/Examples/ChatSessionWithRoleName/index.html index adedfd2c..46a48a71 100644 --- a/latest/Examples/ChatSessionWithRoleName/index.html +++ b/latest/Examples/ChatSessionWithRoleName/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/Examples/ChatSessionWithRoleName/... + Redirecting to ../../../0.5/Examples/ChatSessionWithRoleName/... \ No newline at end of file diff --git a/latest/Examples/GetEmbeddings/index.html b/latest/Examples/GetEmbeddings/index.html index 0c29c365..8721fde1 100644 --- a/latest/Examples/GetEmbeddings/index.html +++ b/latest/Examples/GetEmbeddings/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/Examples/GetEmbeddings/... + Redirecting to ../../../0.5/Examples/GetEmbeddings/... \ No newline at end of file diff --git a/latest/Examples/InstructModeExecute/index.html b/latest/Examples/InstructModeExecute/index.html index c50f48d6..d4cf4c35 100644 --- a/latest/Examples/InstructModeExecute/index.html +++ b/latest/Examples/InstructModeExecute/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/Examples/InstructModeExecute/... + Redirecting to ../../../0.5/Examples/InstructModeExecute/... \ No newline at end of file diff --git a/latest/Examples/InteractiveModeExecute/index.html b/latest/Examples/InteractiveModeExecute/index.html index c24f0b5a..a7d73348 100644 --- a/latest/Examples/InteractiveModeExecute/index.html +++ b/latest/Examples/InteractiveModeExecute/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/Examples/InteractiveModeExecute/... + Redirecting to ../../../0.5/Examples/InteractiveModeExecute/... \ No newline at end of file diff --git a/latest/Examples/LoadAndSaveSession/index.html b/latest/Examples/LoadAndSaveSession/index.html index 16728338..cad732bd 100644 --- a/latest/Examples/LoadAndSaveSession/index.html +++ b/latest/Examples/LoadAndSaveSession/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/Examples/LoadAndSaveSession/... + Redirecting to ../../../0.5/Examples/LoadAndSaveSession/... \ No newline at end of file diff --git a/latest/Examples/LoadAndSaveState/index.html b/latest/Examples/LoadAndSaveState/index.html index fa92765b..ee1c4390 100644 --- a/latest/Examples/LoadAndSaveState/index.html +++ b/latest/Examples/LoadAndSaveState/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/Examples/LoadAndSaveState/... + Redirecting to ../../../0.5/Examples/LoadAndSaveState/... \ No newline at end of file diff --git a/latest/Examples/QuantizeModel/index.html b/latest/Examples/QuantizeModel/index.html index 83aa5cf6..2bed73a0 100644 --- a/latest/Examples/QuantizeModel/index.html +++ b/latest/Examples/QuantizeModel/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/Examples/QuantizeModel/... + Redirecting to ../../../0.5/Examples/QuantizeModel/... \ No newline at end of file diff --git a/latest/Examples/StatelessModeExecute/index.html b/latest/Examples/StatelessModeExecute/index.html index f6501675..9f5632f1 100644 --- a/latest/Examples/StatelessModeExecute/index.html +++ b/latest/Examples/StatelessModeExecute/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/Examples/StatelessModeExecute/... + Redirecting to ../../../0.5/Examples/StatelessModeExecute/... \ No newline at end of file diff --git a/latest/GetStarted/index.html b/latest/GetStarted/index.html index 3489fc44..2d536da5 100644 --- a/latest/GetStarted/index.html +++ b/latest/GetStarted/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../0.4/GetStarted/... + Redirecting to ../../0.5/GetStarted/... \ No newline at end of file diff --git a/latest/HighLevelApps/bot-sharp/index.html b/latest/HighLevelApps/bot-sharp/index.html index c2b27ea7..527e0ec0 100644 --- a/latest/HighLevelApps/bot-sharp/index.html +++ b/latest/HighLevelApps/bot-sharp/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/HighLevelApps/bot-sharp/... + Redirecting to ../../../0.5/HighLevelApps/bot-sharp/... \ No newline at end of file diff --git a/latest/HighLevelApps/semantic-kernel/index.html b/latest/HighLevelApps/semantic-kernel/index.html new file mode 100644 index 00000000..3026e6ff --- /dev/null +++ b/latest/HighLevelApps/semantic-kernel/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/HighLevelApps/semantic-kernel/... + + \ No newline at end of file diff --git a/latest/LLamaExecutors/differences/index.html b/latest/LLamaExecutors/differences/index.html index fd70331d..0596cdfb 100644 --- a/latest/LLamaExecutors/differences/index.html +++ b/latest/LLamaExecutors/differences/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/LLamaExecutors/differences/... + Redirecting to ../../../0.5/LLamaExecutors/differences/... \ No newline at end of file diff --git a/latest/LLamaExecutors/parameters/index.html b/latest/LLamaExecutors/parameters/index.html index 488f2c3d..b1ca21d0 100644 --- a/latest/LLamaExecutors/parameters/index.html +++ b/latest/LLamaExecutors/parameters/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/LLamaExecutors/parameters/... + Redirecting to ../../../0.5/LLamaExecutors/parameters/... \ No newline at end of file diff --git a/latest/LLamaExecutors/save-load-state/index.html b/latest/LLamaExecutors/save-load-state/index.html index e664cedd..97b6d21e 100644 --- a/latest/LLamaExecutors/save-load-state/index.html +++ b/latest/LLamaExecutors/save-load-state/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/LLamaExecutors/save-load-state/... + Redirecting to ../../../0.5/LLamaExecutors/save-load-state/... \ No newline at end of file diff --git a/latest/LLamaExecutors/text-to-text-apis/index.html b/latest/LLamaExecutors/text-to-text-apis/index.html index 04652ebe..e9eb487e 100644 --- a/latest/LLamaExecutors/text-to-text-apis/index.html +++ b/latest/LLamaExecutors/text-to-text-apis/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/LLamaExecutors/text-to-text-apis/... + Redirecting to ../../../0.5/LLamaExecutors/text-to-text-apis/... \ No newline at end of file diff --git a/latest/LLamaModel/embeddings/index.html b/latest/LLamaModel/embeddings/index.html index 6b411ec4..4cc9eed6 100644 --- a/latest/LLamaModel/embeddings/index.html +++ b/latest/LLamaModel/embeddings/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/LLamaModel/embeddings/... + Redirecting to ../../../0.5/LLamaModel/embeddings/... \ No newline at end of file diff --git a/latest/LLamaModel/parameters/index.html b/latest/LLamaModel/parameters/index.html index f2bf323b..0aad0213 100644 --- a/latest/LLamaModel/parameters/index.html +++ b/latest/LLamaModel/parameters/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/LLamaModel/parameters/... + Redirecting to ../../../0.5/LLamaModel/parameters/... \ No newline at end of file diff --git a/latest/LLamaModel/quantization/index.html b/latest/LLamaModel/quantization/index.html index 7bc98708..3d6e243b 100644 --- a/latest/LLamaModel/quantization/index.html +++ b/latest/LLamaModel/quantization/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/LLamaModel/quantization/... + Redirecting to ../../../0.5/LLamaModel/quantization/... \ No newline at end of file diff --git a/latest/LLamaModel/save-load-state/index.html b/latest/LLamaModel/save-load-state/index.html index 19bec36f..34f1070b 100644 --- a/latest/LLamaModel/save-load-state/index.html +++ b/latest/LLamaModel/save-load-state/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/LLamaModel/save-load-state/... + Redirecting to ../../../0.5/LLamaModel/save-load-state/... \ No newline at end of file diff --git a/latest/LLamaModel/tokenization/index.html b/latest/LLamaModel/tokenization/index.html index 83a40bc2..f57940a4 100644 --- a/latest/LLamaModel/tokenization/index.html +++ b/latest/LLamaModel/tokenization/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/LLamaModel/tokenization/... + Redirecting to ../../../0.5/LLamaModel/tokenization/... \ No newline at end of file diff --git a/latest/More/log/index.html b/latest/More/log/index.html index 9243d647..bec86e09 100644 --- a/latest/More/log/index.html +++ b/latest/More/log/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/More/log/... + Redirecting to ../../../0.5/More/log/... \ No newline at end of file diff --git a/latest/NonEnglishUsage/Chinese/index.html b/latest/NonEnglishUsage/Chinese/index.html index 81232dfd..0693c54e 100644 --- a/latest/NonEnglishUsage/Chinese/index.html +++ b/latest/NonEnglishUsage/Chinese/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/NonEnglishUsage/Chinese/... + Redirecting to ../../../0.5/NonEnglishUsage/Chinese/... \ No newline at end of file diff --git a/latest/Tricks/index.html b/latest/Tricks/index.html index 3a58e26a..ae575e7f 100644 --- a/latest/Tricks/index.html +++ b/latest/Tricks/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../0.4/Tricks/... + Redirecting to ../../0.5/Tricks/... \ No newline at end of file diff --git a/latest/index.html b/latest/index.html index cd6dfdb2..c153150b 100644 --- a/latest/index.html +++ b/latest/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../0.4/... + Redirecting to ../0.5/... \ No newline at end of file diff --git a/latest/xmldocs/index.html b/latest/xmldocs/index.html index e8fa666c..91dd8f1e 100644 --- a/latest/xmldocs/index.html +++ b/latest/xmldocs/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../0.4/xmldocs/... + Redirecting to ../../0.5/xmldocs/... \ No newline at end of file diff --git a/latest/xmldocs/llama.abstractions.ihistorytransform/index.html b/latest/xmldocs/llama.abstractions.ihistorytransform/index.html index 829c5d23..b7e993b9 100644 --- a/latest/xmldocs/llama.abstractions.ihistorytransform/index.html +++ b/latest/xmldocs/llama.abstractions.ihistorytransform/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.abstractions.ihistorytransform/... + Redirecting to ../../../0.5/xmldocs/llama.abstractions.ihistorytransform/... \ No newline at end of file diff --git a/latest/xmldocs/llama.abstractions.iinferenceparams/index.html b/latest/xmldocs/llama.abstractions.iinferenceparams/index.html new file mode 100644 index 00000000..b49d7ed7 --- /dev/null +++ b/latest/xmldocs/llama.abstractions.iinferenceparams/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.abstractions.iinferenceparams/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.abstractions.illamaexecutor/index.html b/latest/xmldocs/llama.abstractions.illamaexecutor/index.html index a645804e..711bd0a2 100644 --- a/latest/xmldocs/llama.abstractions.illamaexecutor/index.html +++ b/latest/xmldocs/llama.abstractions.illamaexecutor/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.abstractions.illamaexecutor/... + Redirecting to ../../../0.5/xmldocs/llama.abstractions.illamaexecutor/... \ No newline at end of file diff --git a/latest/xmldocs/llama.abstractions.imodelparams/index.html b/latest/xmldocs/llama.abstractions.imodelparams/index.html new file mode 100644 index 00000000..a9f07489 --- /dev/null +++ b/latest/xmldocs/llama.abstractions.imodelparams/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.abstractions.imodelparams/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.abstractions.itextstreamtransform/index.html b/latest/xmldocs/llama.abstractions.itextstreamtransform/index.html index 21ecf4d4..8e0c017d 100644 --- a/latest/xmldocs/llama.abstractions.itextstreamtransform/index.html +++ b/latest/xmldocs/llama.abstractions.itextstreamtransform/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.abstractions.itextstreamtransform/... + Redirecting to ../../../0.5/xmldocs/llama.abstractions.itextstreamtransform/... \ No newline at end of file diff --git a/latest/xmldocs/llama.abstractions.itexttransform/index.html b/latest/xmldocs/llama.abstractions.itexttransform/index.html index c3a54684..73f583ff 100644 --- a/latest/xmldocs/llama.abstractions.itexttransform/index.html +++ b/latest/xmldocs/llama.abstractions.itexttransform/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.abstractions.itexttransform/... + Redirecting to ../../../0.5/xmldocs/llama.abstractions.itexttransform/... \ No newline at end of file diff --git a/latest/xmldocs/llama.chatsession/index.html b/latest/xmldocs/llama.chatsession/index.html index 1966a4b6..5ac2d03a 100644 --- a/latest/xmldocs/llama.chatsession/index.html +++ b/latest/xmldocs/llama.chatsession/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.chatsession/... + Redirecting to ../../../0.5/xmldocs/llama.chatsession/... \ No newline at end of file diff --git a/latest/xmldocs/llama.common.authorrole/index.html b/latest/xmldocs/llama.common.authorrole/index.html index 008ca669..042f8da3 100644 --- a/latest/xmldocs/llama.common.authorrole/index.html +++ b/latest/xmldocs/llama.common.authorrole/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.common.authorrole/... + Redirecting to ../../../0.5/xmldocs/llama.common.authorrole/... \ No newline at end of file diff --git a/latest/xmldocs/llama.common.chathistory/index.html b/latest/xmldocs/llama.common.chathistory/index.html index d1bbd858..ed216b24 100644 --- a/latest/xmldocs/llama.common.chathistory/index.html +++ b/latest/xmldocs/llama.common.chathistory/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.common.chathistory/... + Redirecting to ../../../0.5/xmldocs/llama.common.chathistory/... \ No newline at end of file diff --git a/latest/xmldocs/llama.common.fixedsizequeue-1/index.html b/latest/xmldocs/llama.common.fixedsizequeue-1/index.html index 3d2f4e94..0299edaf 100644 --- a/latest/xmldocs/llama.common.fixedsizequeue-1/index.html +++ b/latest/xmldocs/llama.common.fixedsizequeue-1/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.common.fixedsizequeue-1/... + Redirecting to ../../../0.5/xmldocs/llama.common.fixedsizequeue-1/... \ No newline at end of file diff --git a/latest/xmldocs/llama.common.illamalogger/index.html b/latest/xmldocs/llama.common.illamalogger/index.html index 98627e8f..7181fc47 100644 --- a/latest/xmldocs/llama.common.illamalogger/index.html +++ b/latest/xmldocs/llama.common.illamalogger/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.common.illamalogger/... + Redirecting to ../../../0.5/xmldocs/llama.common.illamalogger/... \ No newline at end of file diff --git a/latest/xmldocs/llama.common.inferenceparams/index.html b/latest/xmldocs/llama.common.inferenceparams/index.html index c5d25da9..90aa3e04 100644 --- a/latest/xmldocs/llama.common.inferenceparams/index.html +++ b/latest/xmldocs/llama.common.inferenceparams/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.common.inferenceparams/... + Redirecting to ../../../0.5/xmldocs/llama.common.inferenceparams/... \ No newline at end of file diff --git a/latest/xmldocs/llama.common.llamadefaultlogger/index.html b/latest/xmldocs/llama.common.llamadefaultlogger/index.html index e7956022..abc2f828 100644 --- a/latest/xmldocs/llama.common.llamadefaultlogger/index.html +++ b/latest/xmldocs/llama.common.llamadefaultlogger/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.common.llamadefaultlogger/... + Redirecting to ../../../0.5/xmldocs/llama.common.llamadefaultlogger/... \ No newline at end of file diff --git a/latest/xmldocs/llama.common.mirostatetype/index.html b/latest/xmldocs/llama.common.mirostatetype/index.html deleted file mode 100644 index 6fea7b44..00000000 --- a/latest/xmldocs/llama.common.mirostatetype/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - Redirecting - - - - - Redirecting to ../../../0.4/xmldocs/llama.common.mirostatetype/... - - \ No newline at end of file diff --git a/latest/xmldocs/llama.common.mirostattype/index.html b/latest/xmldocs/llama.common.mirostattype/index.html new file mode 100644 index 00000000..810fcc6d --- /dev/null +++ b/latest/xmldocs/llama.common.mirostattype/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.common.mirostattype/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.common.modelparams/index.html b/latest/xmldocs/llama.common.modelparams/index.html index 106b8408..982fde5c 100644 --- a/latest/xmldocs/llama.common.modelparams/index.html +++ b/latest/xmldocs/llama.common.modelparams/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.common.modelparams/... + Redirecting to ../../../0.5/xmldocs/llama.common.modelparams/... \ No newline at end of file diff --git a/latest/xmldocs/llama.exceptions.grammarexpectedname/index.html b/latest/xmldocs/llama.exceptions.grammarexpectedname/index.html new file mode 100644 index 00000000..fe5a735f --- /dev/null +++ b/latest/xmldocs/llama.exceptions.grammarexpectedname/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.exceptions.grammarexpectedname/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.exceptions.grammarexpectednext/index.html b/latest/xmldocs/llama.exceptions.grammarexpectednext/index.html new file mode 100644 index 00000000..cd7a8a66 --- /dev/null +++ b/latest/xmldocs/llama.exceptions.grammarexpectednext/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.exceptions.grammarexpectednext/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.exceptions.grammarexpectedprevious/index.html b/latest/xmldocs/llama.exceptions.grammarexpectedprevious/index.html new file mode 100644 index 00000000..4399d2ae --- /dev/null +++ b/latest/xmldocs/llama.exceptions.grammarexpectedprevious/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.exceptions.grammarexpectedprevious/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.exceptions.grammarformatexception/index.html b/latest/xmldocs/llama.exceptions.grammarformatexception/index.html new file mode 100644 index 00000000..c119d736 --- /dev/null +++ b/latest/xmldocs/llama.exceptions.grammarformatexception/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.exceptions.grammarformatexception/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.exceptions.grammarunexpectedcharaltelement/index.html b/latest/xmldocs/llama.exceptions.grammarunexpectedcharaltelement/index.html new file mode 100644 index 00000000..19deae50 --- /dev/null +++ b/latest/xmldocs/llama.exceptions.grammarunexpectedcharaltelement/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.exceptions.grammarunexpectedcharaltelement/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.exceptions.grammarunexpectedcharrngelement/index.html b/latest/xmldocs/llama.exceptions.grammarunexpectedcharrngelement/index.html new file mode 100644 index 00000000..a3f3fbb7 --- /dev/null +++ b/latest/xmldocs/llama.exceptions.grammarunexpectedcharrngelement/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.exceptions.grammarunexpectedcharrngelement/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.exceptions.grammarunexpectedendelement/index.html b/latest/xmldocs/llama.exceptions.grammarunexpectedendelement/index.html new file mode 100644 index 00000000..faf804fa --- /dev/null +++ b/latest/xmldocs/llama.exceptions.grammarunexpectedendelement/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.exceptions.grammarunexpectedendelement/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.exceptions.grammarunexpectedendofinput/index.html b/latest/xmldocs/llama.exceptions.grammarunexpectedendofinput/index.html new file mode 100644 index 00000000..ed6ebd3b --- /dev/null +++ b/latest/xmldocs/llama.exceptions.grammarunexpectedendofinput/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.exceptions.grammarunexpectedendofinput/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.exceptions.grammarunexpectedhexcharscount/index.html b/latest/xmldocs/llama.exceptions.grammarunexpectedhexcharscount/index.html new file mode 100644 index 00000000..ad3e96a5 --- /dev/null +++ b/latest/xmldocs/llama.exceptions.grammarunexpectedhexcharscount/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.exceptions.grammarunexpectedhexcharscount/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.exceptions.grammarunknownescapecharacter/index.html b/latest/xmldocs/llama.exceptions.grammarunknownescapecharacter/index.html new file mode 100644 index 00000000..9c8da207 --- /dev/null +++ b/latest/xmldocs/llama.exceptions.grammarunknownescapecharacter/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.exceptions.grammarunknownescapecharacter/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.exceptions.runtimeerror/index.html b/latest/xmldocs/llama.exceptions.runtimeerror/index.html index ff1becfa..bd1ba399 100644 --- a/latest/xmldocs/llama.exceptions.runtimeerror/index.html +++ b/latest/xmldocs/llama.exceptions.runtimeerror/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.exceptions.runtimeerror/... + Redirecting to ../../../0.5/xmldocs/llama.exceptions.runtimeerror/... \ No newline at end of file diff --git a/latest/xmldocs/llama.extensions.dictionaryextension/index.html b/latest/xmldocs/llama.extensions.dictionaryextension/index.html deleted file mode 100644 index 2da66de8..00000000 --- a/latest/xmldocs/llama.extensions.dictionaryextension/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - Redirecting - - - - - Redirecting to ../../../0.4/xmldocs/llama.extensions.dictionaryextension/... - - \ No newline at end of file diff --git a/latest/xmldocs/llama.extensions.imodelparamsextensions/index.html b/latest/xmldocs/llama.extensions.imodelparamsextensions/index.html new file mode 100644 index 00000000..e5d8aa03 --- /dev/null +++ b/latest/xmldocs/llama.extensions.imodelparamsextensions/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.extensions.imodelparamsextensions/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.extensions.keyvaluepairextensions/index.html b/latest/xmldocs/llama.extensions.keyvaluepairextensions/index.html new file mode 100644 index 00000000..7ae9f95e --- /dev/null +++ b/latest/xmldocs/llama.extensions.keyvaluepairextensions/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.extensions.keyvaluepairextensions/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.grammars.grammar/index.html b/latest/xmldocs/llama.grammars.grammar/index.html new file mode 100644 index 00000000..8651a9b1 --- /dev/null +++ b/latest/xmldocs/llama.grammars.grammar/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.grammars.grammar/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.grammars.grammarrule/index.html b/latest/xmldocs/llama.grammars.grammarrule/index.html new file mode 100644 index 00000000..fece5f52 --- /dev/null +++ b/latest/xmldocs/llama.grammars.grammarrule/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.grammars.grammarrule/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.instructexecutor/index.html b/latest/xmldocs/llama.instructexecutor/index.html index 6751fafa..1eacf6bc 100644 --- a/latest/xmldocs/llama.instructexecutor/index.html +++ b/latest/xmldocs/llama.instructexecutor/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.instructexecutor/... + Redirecting to ../../../0.5/xmldocs/llama.instructexecutor/... \ No newline at end of file diff --git a/latest/xmldocs/llama.interactiveexecutor/index.html b/latest/xmldocs/llama.interactiveexecutor/index.html index d9e400bb..2eeb347b 100644 --- a/latest/xmldocs/llama.interactiveexecutor/index.html +++ b/latest/xmldocs/llama.interactiveexecutor/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.interactiveexecutor/... + Redirecting to ../../../0.5/xmldocs/llama.interactiveexecutor/... \ No newline at end of file diff --git a/latest/xmldocs/llama.llamacontext/index.html b/latest/xmldocs/llama.llamacontext/index.html new file mode 100644 index 00000000..f74021c2 --- /dev/null +++ b/latest/xmldocs/llama.llamacontext/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.llamacontext/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.llamaembedder/index.html b/latest/xmldocs/llama.llamaembedder/index.html index f618c119..d143b82f 100644 --- a/latest/xmldocs/llama.llamaembedder/index.html +++ b/latest/xmldocs/llama.llamaembedder/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.llamaembedder/... + Redirecting to ../../../0.5/xmldocs/llama.llamaembedder/... \ No newline at end of file diff --git a/latest/xmldocs/llama.llamamodel/index.html b/latest/xmldocs/llama.llamamodel/index.html deleted file mode 100644 index 844268b6..00000000 --- a/latest/xmldocs/llama.llamamodel/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - Redirecting - - - - - Redirecting to ../../../0.4/xmldocs/llama.llamamodel/... - - \ No newline at end of file diff --git a/latest/xmldocs/llama.llamaquantizer/index.html b/latest/xmldocs/llama.llamaquantizer/index.html index 392c3b5b..a891bdf5 100644 --- a/latest/xmldocs/llama.llamaquantizer/index.html +++ b/latest/xmldocs/llama.llamaquantizer/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.llamaquantizer/... + Redirecting to ../../../0.5/xmldocs/llama.llamaquantizer/... \ No newline at end of file diff --git a/latest/xmldocs/llama.llamatransforms/index.html b/latest/xmldocs/llama.llamatransforms/index.html index 5aa6a051..93613cd5 100644 --- a/latest/xmldocs/llama.llamatransforms/index.html +++ b/latest/xmldocs/llama.llamatransforms/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.llamatransforms/... + Redirecting to ../../../0.5/xmldocs/llama.llamatransforms/... \ No newline at end of file diff --git a/latest/xmldocs/llama.llamaweights/index.html b/latest/xmldocs/llama.llamaweights/index.html new file mode 100644 index 00000000..7fdf9f55 --- /dev/null +++ b/latest/xmldocs/llama.llamaweights/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.llamaweights/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.native.llamacontextparams/index.html b/latest/xmldocs/llama.native.llamacontextparams/index.html index 3032c2fc..9fa67e3d 100644 --- a/latest/xmldocs/llama.native.llamacontextparams/index.html +++ b/latest/xmldocs/llama.native.llamacontextparams/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.native.llamacontextparams/... + Redirecting to ../../../0.5/xmldocs/llama.native.llamacontextparams/... \ No newline at end of file diff --git a/latest/xmldocs/llama.native.llamaftype/index.html b/latest/xmldocs/llama.native.llamaftype/index.html index b484613d..57487e25 100644 --- a/latest/xmldocs/llama.native.llamaftype/index.html +++ b/latest/xmldocs/llama.native.llamaftype/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.native.llamaftype/... + Redirecting to ../../../0.5/xmldocs/llama.native.llamaftype/... \ No newline at end of file diff --git a/latest/xmldocs/llama.native.llamagrammarelement/index.html b/latest/xmldocs/llama.native.llamagrammarelement/index.html new file mode 100644 index 00000000..4332c2db --- /dev/null +++ b/latest/xmldocs/llama.native.llamagrammarelement/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.native.llamagrammarelement/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.native.llamagrammarelementtype/index.html b/latest/xmldocs/llama.native.llamagrammarelementtype/index.html new file mode 100644 index 00000000..00a92732 --- /dev/null +++ b/latest/xmldocs/llama.native.llamagrammarelementtype/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.native.llamagrammarelementtype/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.native.llamamodelquantizeparams/index.html b/latest/xmldocs/llama.native.llamamodelquantizeparams/index.html new file mode 100644 index 00000000..83bbf339 --- /dev/null +++ b/latest/xmldocs/llama.native.llamamodelquantizeparams/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.native.llamamodelquantizeparams/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.native.llamatokendata/index.html b/latest/xmldocs/llama.native.llamatokendata/index.html index e66e3d8d..02fc8a93 100644 --- a/latest/xmldocs/llama.native.llamatokendata/index.html +++ b/latest/xmldocs/llama.native.llamatokendata/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.native.llamatokendata/... + Redirecting to ../../../0.5/xmldocs/llama.native.llamatokendata/... \ No newline at end of file diff --git a/latest/xmldocs/llama.native.llamatokendataarray/index.html b/latest/xmldocs/llama.native.llamatokendataarray/index.html index 7c131a2c..acbe488f 100644 --- a/latest/xmldocs/llama.native.llamatokendataarray/index.html +++ b/latest/xmldocs/llama.native.llamatokendataarray/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.native.llamatokendataarray/... + Redirecting to ../../../0.5/xmldocs/llama.native.llamatokendataarray/... \ No newline at end of file diff --git a/latest/xmldocs/llama.native.llamatokendataarraynative/index.html b/latest/xmldocs/llama.native.llamatokendataarraynative/index.html index dd41c244..26b15304 100644 --- a/latest/xmldocs/llama.native.llamatokendataarraynative/index.html +++ b/latest/xmldocs/llama.native.llamatokendataarraynative/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.native.llamatokendataarraynative/... + Redirecting to ../../../0.5/xmldocs/llama.native.llamatokendataarraynative/... \ No newline at end of file diff --git a/latest/xmldocs/llama.native.nativeapi/index.html b/latest/xmldocs/llama.native.nativeapi/index.html index 35ef5b27..2c2453c6 100644 --- a/latest/xmldocs/llama.native.nativeapi/index.html +++ b/latest/xmldocs/llama.native.nativeapi/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.native.nativeapi/... + Redirecting to ../../../0.5/xmldocs/llama.native.nativeapi/... \ No newline at end of file diff --git a/latest/xmldocs/llama.native.safellamacontexthandle/index.html b/latest/xmldocs/llama.native.safellamacontexthandle/index.html index 75a04ae7..12c2b155 100644 --- a/latest/xmldocs/llama.native.safellamacontexthandle/index.html +++ b/latest/xmldocs/llama.native.safellamacontexthandle/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.native.safellamacontexthandle/... + Redirecting to ../../../0.5/xmldocs/llama.native.safellamacontexthandle/... \ No newline at end of file diff --git a/latest/xmldocs/llama.native.safellamagrammarhandle/index.html b/latest/xmldocs/llama.native.safellamagrammarhandle/index.html new file mode 100644 index 00000000..586a7b51 --- /dev/null +++ b/latest/xmldocs/llama.native.safellamagrammarhandle/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.native.safellamagrammarhandle/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.native.safellamahandlebase/index.html b/latest/xmldocs/llama.native.safellamahandlebase/index.html index 83fbe5e1..4081d867 100644 --- a/latest/xmldocs/llama.native.safellamahandlebase/index.html +++ b/latest/xmldocs/llama.native.safellamahandlebase/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.native.safellamahandlebase/... + Redirecting to ../../../0.5/xmldocs/llama.native.safellamahandlebase/... \ No newline at end of file diff --git a/latest/xmldocs/llama.native.safellamamodelhandle/index.html b/latest/xmldocs/llama.native.safellamamodelhandle/index.html new file mode 100644 index 00000000..9cd07a49 --- /dev/null +++ b/latest/xmldocs/llama.native.safellamamodelhandle/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.native.safellamamodelhandle/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.native.samplingapi/index.html b/latest/xmldocs/llama.native.samplingapi/index.html new file mode 100644 index 00000000..56046aa3 --- /dev/null +++ b/latest/xmldocs/llama.native.samplingapi/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.native.samplingapi/... + + \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.chatcompletion/index.html b/latest/xmldocs/llama.oldversion.chatcompletion/index.html index 12dfbd98..22b823c0 100644 --- a/latest/xmldocs/llama.oldversion.chatcompletion/index.html +++ b/latest/xmldocs/llama.oldversion.chatcompletion/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.chatcompletion/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.chatcompletion/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.chatcompletionchoice/index.html b/latest/xmldocs/llama.oldversion.chatcompletionchoice/index.html index 77879fee..1dc40340 100644 --- a/latest/xmldocs/llama.oldversion.chatcompletionchoice/index.html +++ b/latest/xmldocs/llama.oldversion.chatcompletionchoice/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.chatcompletionchoice/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.chatcompletionchoice/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.chatcompletionchunk/index.html b/latest/xmldocs/llama.oldversion.chatcompletionchunk/index.html index a5b3d818..ca86d4fd 100644 --- a/latest/xmldocs/llama.oldversion.chatcompletionchunk/index.html +++ b/latest/xmldocs/llama.oldversion.chatcompletionchunk/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.chatcompletionchunk/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.chatcompletionchunk/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.chatcompletionchunkchoice/index.html b/latest/xmldocs/llama.oldversion.chatcompletionchunkchoice/index.html index d9becf4e..c901d862 100644 --- a/latest/xmldocs/llama.oldversion.chatcompletionchunkchoice/index.html +++ b/latest/xmldocs/llama.oldversion.chatcompletionchunkchoice/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.chatcompletionchunkchoice/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.chatcompletionchunkchoice/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.chatcompletionchunkdelta/index.html b/latest/xmldocs/llama.oldversion.chatcompletionchunkdelta/index.html index 20f57850..83b7039a 100644 --- a/latest/xmldocs/llama.oldversion.chatcompletionchunkdelta/index.html +++ b/latest/xmldocs/llama.oldversion.chatcompletionchunkdelta/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.chatcompletionchunkdelta/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.chatcompletionchunkdelta/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.chatcompletionmessage/index.html b/latest/xmldocs/llama.oldversion.chatcompletionmessage/index.html index 5f9e6954..8519a944 100644 --- a/latest/xmldocs/llama.oldversion.chatcompletionmessage/index.html +++ b/latest/xmldocs/llama.oldversion.chatcompletionmessage/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.chatcompletionmessage/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.chatcompletionmessage/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.chatmessagerecord/index.html b/latest/xmldocs/llama.oldversion.chatmessagerecord/index.html index b8fa3c97..bdb8302d 100644 --- a/latest/xmldocs/llama.oldversion.chatmessagerecord/index.html +++ b/latest/xmldocs/llama.oldversion.chatmessagerecord/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.chatmessagerecord/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.chatmessagerecord/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.chatrole/index.html b/latest/xmldocs/llama.oldversion.chatrole/index.html index 9f665af8..9bc8c7eb 100644 --- a/latest/xmldocs/llama.oldversion.chatrole/index.html +++ b/latest/xmldocs/llama.oldversion.chatrole/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.chatrole/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.chatrole/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.chatsession-1/index.html b/latest/xmldocs/llama.oldversion.chatsession-1/index.html index 8db5a660..3f093c4f 100644 --- a/latest/xmldocs/llama.oldversion.chatsession-1/index.html +++ b/latest/xmldocs/llama.oldversion.chatsession-1/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.chatsession-1/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.chatsession-1/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.completion/index.html b/latest/xmldocs/llama.oldversion.completion/index.html index 00a084ea..51e619be 100644 --- a/latest/xmldocs/llama.oldversion.completion/index.html +++ b/latest/xmldocs/llama.oldversion.completion/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.completion/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.completion/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.completionchoice/index.html b/latest/xmldocs/llama.oldversion.completionchoice/index.html index 83c0f9b4..082d3473 100644 --- a/latest/xmldocs/llama.oldversion.completionchoice/index.html +++ b/latest/xmldocs/llama.oldversion.completionchoice/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.completionchoice/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.completionchoice/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.completionchunk/index.html b/latest/xmldocs/llama.oldversion.completionchunk/index.html index fb1c4fdc..6bf3b815 100644 --- a/latest/xmldocs/llama.oldversion.completionchunk/index.html +++ b/latest/xmldocs/llama.oldversion.completionchunk/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.completionchunk/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.completionchunk/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.completionlogprobs/index.html b/latest/xmldocs/llama.oldversion.completionlogprobs/index.html index bb438fcb..e498410d 100644 --- a/latest/xmldocs/llama.oldversion.completionlogprobs/index.html +++ b/latest/xmldocs/llama.oldversion.completionlogprobs/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.completionlogprobs/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.completionlogprobs/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.completionusage/index.html b/latest/xmldocs/llama.oldversion.completionusage/index.html index ea1712ad..f63885dc 100644 --- a/latest/xmldocs/llama.oldversion.completionusage/index.html +++ b/latest/xmldocs/llama.oldversion.completionusage/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.completionusage/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.completionusage/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.embedding/index.html b/latest/xmldocs/llama.oldversion.embedding/index.html index 9f30f7ea..7114e9fb 100644 --- a/latest/xmldocs/llama.oldversion.embedding/index.html +++ b/latest/xmldocs/llama.oldversion.embedding/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.embedding/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.embedding/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.embeddingdata/index.html b/latest/xmldocs/llama.oldversion.embeddingdata/index.html index 35234485..799ec4c3 100644 --- a/latest/xmldocs/llama.oldversion.embeddingdata/index.html +++ b/latest/xmldocs/llama.oldversion.embeddingdata/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.embeddingdata/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.embeddingdata/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.embeddingusage/index.html b/latest/xmldocs/llama.oldversion.embeddingusage/index.html index b9f7e277..068174a0 100644 --- a/latest/xmldocs/llama.oldversion.embeddingusage/index.html +++ b/latest/xmldocs/llama.oldversion.embeddingusage/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.embeddingusage/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.embeddingusage/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.ichatmodel/index.html b/latest/xmldocs/llama.oldversion.ichatmodel/index.html index 49050774..d902db61 100644 --- a/latest/xmldocs/llama.oldversion.ichatmodel/index.html +++ b/latest/xmldocs/llama.oldversion.ichatmodel/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.ichatmodel/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.ichatmodel/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.llamaembedder/index.html b/latest/xmldocs/llama.oldversion.llamaembedder/index.html index 4b7a7d09..d15c1796 100644 --- a/latest/xmldocs/llama.oldversion.llamaembedder/index.html +++ b/latest/xmldocs/llama.oldversion.llamaembedder/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.llamaembedder/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.llamaembedder/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.llamamodel/index.html b/latest/xmldocs/llama.oldversion.llamamodel/index.html index c452d200..551752a1 100644 --- a/latest/xmldocs/llama.oldversion.llamamodel/index.html +++ b/latest/xmldocs/llama.oldversion.llamamodel/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.llamamodel/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.llamamodel/... \ No newline at end of file diff --git a/latest/xmldocs/llama.oldversion.llamaparams/index.html b/latest/xmldocs/llama.oldversion.llamaparams/index.html index fd3cd081..09ea966c 100644 --- a/latest/xmldocs/llama.oldversion.llamaparams/index.html +++ b/latest/xmldocs/llama.oldversion.llamaparams/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.oldversion.llamaparams/... + Redirecting to ../../../0.5/xmldocs/llama.oldversion.llamaparams/... \ No newline at end of file diff --git a/latest/xmldocs/llama.resettablellamamodel/index.html b/latest/xmldocs/llama.resettablellamamodel/index.html deleted file mode 100644 index b6dc6db1..00000000 --- a/latest/xmldocs/llama.resettablellamamodel/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - Redirecting - - - - - Redirecting to ../../../0.4/xmldocs/llama.resettablellamamodel/... - - \ No newline at end of file diff --git a/latest/xmldocs/llama.statefulexecutorbase/index.html b/latest/xmldocs/llama.statefulexecutorbase/index.html index 9f27b417..bcf978d4 100644 --- a/latest/xmldocs/llama.statefulexecutorbase/index.html +++ b/latest/xmldocs/llama.statefulexecutorbase/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.statefulexecutorbase/... + Redirecting to ../../../0.5/xmldocs/llama.statefulexecutorbase/... \ No newline at end of file diff --git a/latest/xmldocs/llama.statelessexecutor/index.html b/latest/xmldocs/llama.statelessexecutor/index.html index 7b33656b..52f52b89 100644 --- a/latest/xmldocs/llama.statelessexecutor/index.html +++ b/latest/xmldocs/llama.statelessexecutor/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../0.4/xmldocs/llama.statelessexecutor/... + Redirecting to ../../../0.5/xmldocs/llama.statelessexecutor/... \ No newline at end of file diff --git a/latest/xmldocs/llama.utils/index.html b/latest/xmldocs/llama.utils/index.html new file mode 100644 index 00000000..a42a22ed --- /dev/null +++ b/latest/xmldocs/llama.utils/index.html @@ -0,0 +1,16 @@ + + + + + Redirecting + + + + + Redirecting to ../../../0.5/xmldocs/llama.utils/... + + \ No newline at end of file diff --git a/versions.json b/versions.json index dbe6fd2c..9bae761b 100644 --- a/versions.json +++ b/versions.json @@ -1 +1 @@ -[{"version": "0.4", "title": "0.4", "aliases": ["latest"]}] \ No newline at end of file +[{"version": "0.5", "title": "0.5", "aliases": ["latest"]}, {"version": "0.4", "title": "0.4", "aliases": []}] \ No newline at end of file