From ed1af53e657ab6c09904b66f5918d19f5eb356f6 Mon Sep 17 00:00:00 2001 From: Yi Xu Date: Thu, 13 Jul 2023 23:04:54 -0700 Subject: [PATCH] Deployed f5c86e7 with MkDocs version: 1.4.3 --- 404.html | 10 +- api/langchain/index.html | 10 +- api/python_client/index.html | 250 ++++++++++++------ assets/_mkdocstrings.css | 58 ++-- assets/javascripts/bundle.220ee61c.min.js | 29 ++ assets/javascripts/bundle.220ee61c.min.js.map | 8 + assets/javascripts/bundle.51198bba.min.js | 29 -- assets/javascripts/bundle.51198bba.min.js.map | 8 - assets/javascripts/lunr/min/lunr.hy.min.js | 1 + assets/javascripts/lunr/min/lunr.kn.min.js | 1 + assets/javascripts/lunr/min/lunr.ko.min.js | 2 +- assets/javascripts/lunr/min/lunr.sa.min.js | 1 + assets/javascripts/lunr/min/lunr.te.min.js | 1 + assets/javascripts/lunr/min/lunr.zh.min.js | 2 +- assets/javascripts/lunr/wordcut.js | 4 +- ...208ed371.min.js => search.74e28a9f.min.js} | 2 +- ....min.js.map => search.74e28a9f.min.js.map} | 2 +- assets/stylesheets/main.26e3688c.min.css | 1 + assets/stylesheets/main.26e3688c.min.css.map | 1 + assets/stylesheets/main.ded33207.min.css | 1 - assets/stylesheets/main.ded33207.min.css.map | 1 - assets/stylesheets/palette.a0c5b2b5.min.css | 1 - .../stylesheets/palette.a0c5b2b5.min.css.map | 1 - assets/stylesheets/palette.ecc896b0.min.css | 1 + .../stylesheets/palette.ecc896b0.min.css.map | 1 + faq/index.html | 10 +- getting_started/index.html | 50 ++-- index.html | 10 +- search/search_index.json | 2 +- sitemap.xml | 25 -- sitemap.xml.gz | Bin 199 -> 127 bytes 31 files changed, 300 insertions(+), 223 deletions(-) create mode 100644 assets/javascripts/bundle.220ee61c.min.js create mode 100644 assets/javascripts/bundle.220ee61c.min.js.map delete mode 100644 assets/javascripts/bundle.51198bba.min.js delete mode 100644 assets/javascripts/bundle.51198bba.min.js.map create mode 100644 assets/javascripts/lunr/min/lunr.hy.min.js create mode 100644 assets/javascripts/lunr/min/lunr.kn.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sa.min.js create mode 100644 assets/javascripts/lunr/min/lunr.te.min.js rename assets/javascripts/workers/{search.208ed371.min.js => search.74e28a9f.min.js} (99%) rename assets/javascripts/workers/{search.208ed371.min.js.map => search.74e28a9f.min.js.map} (77%) create mode 100644 assets/stylesheets/main.26e3688c.min.css create mode 100644 assets/stylesheets/main.26e3688c.min.css.map delete mode 100644 assets/stylesheets/main.ded33207.min.css delete mode 100644 assets/stylesheets/main.ded33207.min.css.map delete mode 100644 assets/stylesheets/palette.a0c5b2b5.min.css delete mode 100644 assets/stylesheets/palette.a0c5b2b5.min.css.map create mode 100644 assets/stylesheets/palette.ecc896b0.min.css create mode 100644 assets/stylesheets/palette.ecc896b0.min.css.map diff --git a/404.html b/404.html index 20d591231..546eec90e 100644 --- a/404.html +++ b/404.html @@ -13,7 +13,7 @@ - + @@ -21,10 +21,10 @@ - + - + @@ -403,10 +403,10 @@

404 - Not found

- + - + diff --git a/api/langchain/index.html b/api/langchain/index.html index f2ac31579..b7f100610 100644 --- a/api/langchain/index.html +++ b/api/langchain/index.html @@ -15,7 +15,7 @@ - + @@ -23,10 +23,10 @@ - + - + @@ -473,10 +473,10 @@

🦜 Langchain - + - + diff --git a/api/python_client/index.html b/api/python_client/index.html index 1543746ea..a14db7a9c 100644 --- a/api/python_client/index.html +++ b/api/python_client/index.html @@ -17,7 +17,7 @@ - + @@ -25,10 +25,10 @@ - + - + @@ -1165,7 +1165,7 @@

Completion API. This API is used to generate text completions.

-
+
Example
from spellbook_serve_client import Completion
 
@@ -1178,7 +1178,7 @@ 

print(response.outputs[0].text)

-
+
Example
from spellbook_serve_client import Completion
 
@@ -1193,7 +1193,7 @@ 

print(response.output.text)

-
+
Example
from spellbook_serve_client import Completion
 
@@ -1237,17 +1237,7 @@ 

-
acreate(
-    model_name: str,
-    prompt: str,
-    max_new_tokens: int = 20,
-    temperature: float = 0.2,
-    timeout: int = 10,
-    stream: bool = False,
-) -> Union[
-    CompletionSyncV1Response,
-    AsyncIterable[CompletionStreamV1Response],
-]
+
acreate(model_name: str, prompt: str, max_new_tokens: int = 20, temperature: float = 0.2, timeout: int = 10, stream: bool = False) -> Union[CompletionSyncV1Response, AsyncIterable[CompletionStreamV1Response]]
 
@@ -1270,7 +1260,11 @@

+

Model name to use for inference

+

+ required @@ -1280,7 +1274,11 @@

+

Input text

+

+ required @@ -1290,7 +1288,11 @@

+

Maximum number of generated tokens

+

+ 20 @@ -1300,7 +1302,11 @@

+

The value used to module the logits distribution.

+ + 0.2 @@ -1310,7 +1316,11 @@

+

Timeout in seconds

+ + 10 @@ -1320,8 +1330,12 @@

+

Whether to stream the response. If true, the return type is an +Iterator[CompletionStreamV1Response].

+ + False @@ -1342,7 +1356,11 @@

CompletionStreamV1Response -

generated response or iterator of response chunks

+ +
+

generated response or iterator of response chunks

+
+ @@ -1364,17 +1382,7 @@

-
create(
-    model_name: str,
-    prompt: str,
-    max_new_tokens: int = 20,
-    temperature: float = 0.2,
-    timeout: int = 10,
-    stream: bool = False,
-) -> Union[
-    CompletionSyncV1Response,
-    Iterator[CompletionStreamV1Response],
-]
+
create(model_name: str, prompt: str, max_new_tokens: int = 20, temperature: float = 0.2, timeout: int = 10, stream: bool = False) -> Union[CompletionSyncV1Response, Iterator[CompletionStreamV1Response]]
 
@@ -1397,7 +1405,11 @@

+

Model name to use for inference

+

+ required @@ -1407,7 +1419,11 @@

+

Input text

+

+ required @@ -1417,7 +1433,11 @@

+

Maximum number of generated tokens

+ + 20 @@ -1427,7 +1447,11 @@

+

The value used to module the logits distribution.

+ + 0.2 @@ -1437,7 +1461,11 @@

+

Timeout in seconds

+ + 10 @@ -1447,7 +1475,11 @@

+

Whether to stream the response. If true, the return type is an Iterator.

+ + False @@ -1468,7 +1500,11 @@

CompletionStreamV1Response -

generated response or iterator of response chunks

+ +
+

generated response or iterator of response chunks

+
+ @@ -1553,7 +1589,11 @@

+

ID of the fine-tuning job

+ + required @@ -1574,7 +1614,11 @@

CancelFineTuneJobResponse -

whether the cancellation was successful

+ +
+

whether the cancellation was successful

+
+ @@ -1596,14 +1640,7 @@

-
create(
-    training_file: str,
-    validation_file: str,
-    model_name: str,
-    base_model: str,
-    fine_tuning_method: str,
-    hyperparameters: Dict[str, str],
-) -> CreateFineTuneJobResponse
+
create(training_file: str, validation_file: str, model_name: str, base_model: str, fine_tuning_method: str, hyperparameters: Dict[str, str]) -> CreateFineTuneJobResponse
 
@@ -1626,7 +1663,11 @@

+

Path to file of training dataset

+

+ required @@ -1636,7 +1677,11 @@

+

Path to file of validation dataset

+

+ required @@ -1646,7 +1691,11 @@

+

Name of the fine-tuned model

+ + required @@ -1656,7 +1705,11 @@

+

Base model to train from

+ + required @@ -1666,7 +1719,11 @@

+

Fine-tuning method

+ + required @@ -1676,7 +1733,11 @@

+

Hyperparameters

+ + required @@ -1697,7 +1758,11 @@

CreateFineTuneJobResponse -

ID of the created fine-tuning job

+ +
+

ID of the created fine-tuning job

+
+ @@ -1739,7 +1804,11 @@

ListFineTuneJobResponse -

list of all fine-tuning jobs and their statuses

+ +
+

list of all fine-tuning jobs and their statuses

+
+ @@ -1784,7 +1853,11 @@

+

ID of the fine-tuning job

+ + required @@ -1805,7 +1878,11 @@

GetFineTuneJobResponse -

ID and status of the requested job

+ +
+

ID and status of the requested job

+
+ @@ -1861,7 +1938,7 @@

- class-attribute + instance-attribute

@@ -1884,7 +1961,7 @@

- class-attribute + instance-attribute

@@ -1908,6 +1985,7 @@

class-attribute + instance-attribute

@@ -1971,6 +2049,7 @@

class-attribute + instance-attribute

@@ -1993,7 +2072,7 @@

- class-attribute + instance-attribute

@@ -2017,6 +2096,7 @@

class-attribute + instance-attribute

@@ -2077,7 +2157,7 @@

- class-attribute + instance-attribute

@@ -2100,7 +2180,7 @@

- class-attribute + instance-attribute

@@ -2123,7 +2203,7 @@

- class-attribute + instance-attribute

@@ -2184,7 +2264,7 @@

- class-attribute + instance-attribute

@@ -2208,6 +2288,7 @@

class-attribute + instance-attribute

@@ -2231,6 +2312,7 @@

class-attribute + instance-attribute

@@ -2253,7 +2335,7 @@

- class-attribute + instance-attribute

@@ -2352,7 +2434,7 @@

- class-attribute + instance-attribute

@@ -2375,7 +2457,7 @@

- class-attribute + instance-attribute

@@ -2398,7 +2480,7 @@

- class-attribute + instance-attribute

@@ -2421,7 +2503,7 @@

- class-attribute + instance-attribute

@@ -2444,7 +2526,7 @@

- class-attribute + instance-attribute

@@ -2467,7 +2549,7 @@

- class-attribute + instance-attribute

@@ -2528,7 +2610,7 @@

- class-attribute + instance-attribute

@@ -2589,7 +2671,7 @@

- class-attribute + instance-attribute

@@ -2612,7 +2694,7 @@

- class-attribute + instance-attribute

@@ -2673,7 +2755,7 @@

- class-attribute + instance-attribute

@@ -2734,7 +2816,7 @@

- class-attribute + instance-attribute

@@ -2838,10 +2920,10 @@

- + - + diff --git a/assets/_mkdocstrings.css b/assets/_mkdocstrings.css index a65078d02..049a254b9 100644 --- a/assets/_mkdocstrings.css +++ b/assets/_mkdocstrings.css @@ -1,18 +1,13 @@ -/* Don't capitalize names. */ -h5.doc-heading { - text-transform: none !important; -} - -/* Avoid breaking parameters name, etc. in table cells. */ +/* Avoid breaking parameter names, etc. in table cells. */ .doc-contents td code { word-break: normal !important; } -/* For pieces of Markdown rendered in table cells. */ -.doc-contents td p { - margin-top: 0 !important; - margin-bottom: 0 !important; +/* No line break before first paragraph of descriptions. */ +.doc-md-description, +.doc-md-description>p:first-child { + display: inline; } /* Max width for docstring sections tables. */ @@ -21,16 +16,49 @@ h5.doc-heading { display: table !important; width: 100%; } + .doc .md-typeset__table tr { display: table-row; } -/* Avoid line breaks in rendered fields. */ -.field-body p { - display: inline; -} - /* Defaults in Spacy table style. */ .doc-param-default { float: right; } + +/* Keep headings consistent. */ +h1.doc-heading, +h2.doc-heading, +h3.doc-heading, +h4.doc-heading, +h5.doc-heading, +h6.doc-heading { + font-weight: 400; + line-height: 1.5; + color: inherit; + text-transform: none; +} + +h1.doc-heading { + font-size: 1.6rem; +} + +h2.doc-heading { + font-size: 1.2rem; +} + +h3.doc-heading { + font-size: 1.15rem; +} + +h4.doc-heading { + font-size: 1.10rem; +} + +h5.doc-heading { + font-size: 1.05rem; +} + +h6.doc-heading { + font-size: 1rem; +} \ No newline at end of file diff --git a/assets/javascripts/bundle.220ee61c.min.js b/assets/javascripts/bundle.220ee61c.min.js new file mode 100644 index 000000000..116072a11 --- /dev/null +++ b/assets/javascripts/bundle.220ee61c.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(` + - + diff --git a/getting_started/index.html b/getting_started/index.html index 3c4085afc..0b6bee44e 100644 --- a/getting_started/index.html +++ b/getting_started/index.html @@ -17,7 +17,7 @@ - + @@ -25,10 +25,10 @@ - + - + @@ -455,31 +455,19 @@

🚀 Getting Startedhttps://spellbook.scale.com where you will get a Scale API key.

With the API key, you can now send requests to Spellbook Serve public inference -APIs using the CLI or Python client:

-
+APIs using Python client:

+
-
spellbook-serve generate flan-t5-xxl \
-    --prompt "Hello, my name is"
-    --temperature 0.5
-    --max-tokens 20
-
-# Expected output:
-#
-# Hello, my name is Flan.
-
-
-
-
from spellbook_serve_client import Client
-
-client = Client()
-response = client.generate(
-    model_name="flan-t5-xxl",
-    prompt="Hello, my name is",
-    temperature=0.5,
-    max_tokens=20,
-)
-print(response)
+
from spellbook_serve_client import Completion
+
+response = Completion.create(
+    model_name="llama-7b-text-generation-inference",
+    prompt="Hello, my name is",
+    max_new_tokens=10,
+    temperature=0.2,
+)
+print(response.outputs[0].text)
 
@@ -487,9 +475,9 @@

🚀 Getting Started💻 Installation on Kubernetes

To install Spellbook Serve on your infrastructure in Kubernetes, you can use the Helm chart:

-
helm repo add spellbook https://spellbook.github.io/helm-charts
-helm repo update
-helm install spellbook-serve spellbook/spellbook-serve
+
helm repo add spellbook https://spellbook.github.io/helm-charts
+helm repo update
+helm install spellbook-serve spellbook/spellbook-serve
 
@@ -572,10 +560,10 @@

💻 Installation on Kubernetes

- + - + diff --git a/index.html b/index.html index b9d910cff..513568949 100644 --- a/index.html +++ b/index.html @@ -15,7 +15,7 @@ - + @@ -23,10 +23,10 @@ - + - + @@ -593,10 +593,10 @@

🔥 Features Coming Soon

- + - + diff --git a/search/search_index.json b/search/search_index.json index c2c8c9a6f..c57580085 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"\u26a1 Spellbook Serve \u26a1","text":"

The fastest, cheapest, and easiest way to deploy and scale your custom foundation models.

"},{"location":"#quick-install","title":"\ud83d\udcbb Quick Install","text":"Install using pipInstall using conda
pip install spellbook-serve-client\n
conda install spellbook-serve-client -c conda-forge\n
"},{"location":"#about","title":"\ud83e\udd14 About","text":"

Foundation models are emerging as the building blocks of AI. However, deploying these models to the cloud still requires infrastructure expertise, and can be expensive.

Spellbook Serve is a Python library, CLI, and Helm chart that provides everything you need to deploy your foundation models to the cloud using Kubernetes. Key features include:

\ud83d\udc33 Deploying from any docker image: Turn any Docker image into an auto-scaling deployment with simple APIs.

\ud83c\udf99\ufe0fLanguage-Model Specific Features: Spellbook Serve provides APIs for streaming responses and dynamically batching inputs for higher throughput and lower latency.

\ud83e\udd17 Open-Source Integrations: Deploy any Huggingface model with a single command. Integrate seamlessly with Langchain chat applications.

"},{"location":"#features-coming-soon","title":"\ud83d\udd25 Features Coming Soon","text":"

\u2744 Fast Cold-Start Times: To prevent GPUs from idling, Spellbook Serve automatically scales your model to zero when it's not in use and scales up within seconds, even for large foundation models.

\ud83d\udcb8 Cost-Optimized: Deploy AI models an order of magnitude cheaper than OpenAI APIs, including cold-start and warm-down times.

"},{"location":"faq/","title":"Frequently Asked Questions","text":""},{"location":"getting_started/","title":"\ud83d\ude80 Getting Started","text":"

To start using Spellbook Serve with public inference APIs, simply run the following:

Install using pipInstall using conda
pip install spellbook-serve\n
conda install spellbook-serve -c conda-forge\n

Navigate to https://spellbook.scale.com where you will get a Scale API key.

With the API key, you can now send requests to Spellbook Serve public inference APIs using the CLI or Python client:

Using the CLIUsing the Python Client
spellbook-serve generate flan-t5-xxl \\\n    --prompt \"Hello, my name is\"\n    --temperature 0.5\n    --max-tokens 20\n\n# Expected output:\n#\n# Hello, my name is Flan.\n
from spellbook_serve_client import Client\nclient = Client()\nresponse = client.generate(\nmodel_name=\"flan-t5-xxl\",\nprompt=\"Hello, my name is\",\ntemperature=0.5,\nmax_tokens=20,\n)\nprint(response)\n
"},{"location":"getting_started/#installation-on-kubernetes","title":"\ud83d\udcbb Installation on Kubernetes","text":"

To install Spellbook Serve on your infrastructure in Kubernetes, you can use the Helm chart:

helm repo add spellbook https://spellbook.github.io/helm-charts\nhelm repo update\nhelm install spellbook-serve spellbook/spellbook-serve\n
"},{"location":"api/langchain/","title":"\ud83e\udd9c Langchain","text":"

Coming soon!

"},{"location":"api/python_client/","title":"Python Client API Reference","text":""},{"location":"api/python_client/#spellbook_serve_client.Completion","title":"Completion","text":"

Bases: APIEngine

Completion API. This API is used to generate text completions.

Example
from spellbook_serve_client import Completion\nresponse = Completion.create(\nmodel_name=\"llama-7b-text-generation-inference\",\nprompt=\"Hello, my name is\",\nmax_new_tokens=10,\ntemperature=0.2,\n)\nprint(response.outputs[0].text)\n
Example
from spellbook_serve_client import Completion\nresponse_stream = Completion.create(\nmodel_name=\"llama-7b-text-generation-inference\",\nprompt=\"Hello, my name is\",\nmax_new_tokens=10,\ntemperature=0.2,\nstream=True,\n)\nfor response in response_stream:\nprint(response.output.text)\n
Example
from spellbook_serve_client import Completion\nasync def main():\nresponse_stream = await Completion.acreate(\nmodel_name=\"llama-7b-text-generation-inference\",\nprompt=\"Hello, my name is\",\nmax_new_tokens=10,\ntemperature=0.2,\nstream=True,\n)\nasync for response in response_stream:\nprint(response.output.text)\n
"},{"location":"api/python_client/#spellbook_serve_client.completion.Completion.acreate","title":"acreate async classmethod","text":"
acreate(\nmodel_name: str,\nprompt: str,\nmax_new_tokens: int = 20,\ntemperature: float = 0.2,\ntimeout: int = 10,\nstream: bool = False,\n) -> Union[\nCompletionSyncV1Response,\nAsyncIterable[CompletionStreamV1Response],\n]\n

Create a completion task.

Parameters:

Name Type Description Default model_name str

Model name to use for inference

required prompt str

Input text

required max_new_tokens int

Maximum number of generated tokens

20 temperature float

The value used to module the logits distribution.

0.2 timeout int

Timeout in seconds

10 stream bool

Whether to stream the response. If true, the return type is an Iterator[CompletionStreamV1Response].

False

Returns:

Name Type Description response CompletionStreamV1Response

generated response or iterator of response chunks

"},{"location":"api/python_client/#spellbook_serve_client.completion.Completion.create","title":"create classmethod","text":"
create(\nmodel_name: str,\nprompt: str,\nmax_new_tokens: int = 20,\ntemperature: float = 0.2,\ntimeout: int = 10,\nstream: bool = False,\n) -> Union[\nCompletionSyncV1Response,\nIterator[CompletionStreamV1Response],\n]\n

Create a completion task.

Parameters:

Name Type Description Default model_name str

Model name to use for inference

required prompt str

Input text

required max_new_tokens int

Maximum number of generated tokens

20 temperature float

The value used to module the logits distribution.

0.2 timeout int

Timeout in seconds

10 stream bool

Whether to stream the response. If true, the return type is an Iterator.

False

Returns:

Name Type Description response CompletionStreamV1Response

generated response or iterator of response chunks

"},{"location":"api/python_client/#spellbook_serve_client.FineTune","title":"FineTune","text":"

Bases: APIEngine

FineTune API. This API is used to fine-tune models.

"},{"location":"api/python_client/#spellbook_serve_client.fine_tuning.FineTune.cancel","title":"cancel classmethod","text":"
cancel(fine_tune_id: str) -> CancelFineTuneJobResponse\n

Cancel a fine-tuning job

Parameters:

Name Type Description Default fine_tune_id `str`

ID of the fine-tuning job

required

Returns:

Name Type Description CancelFineTuneJobResponse CancelFineTuneJobResponse

whether the cancellation was successful

"},{"location":"api/python_client/#spellbook_serve_client.fine_tuning.FineTune.create","title":"create classmethod","text":"
create(\ntraining_file: str,\nvalidation_file: str,\nmodel_name: str,\nbase_model: str,\nfine_tuning_method: str,\nhyperparameters: Dict[str, str],\n) -> CreateFineTuneJobResponse\n

Create a fine-tuning job

Parameters:

Name Type Description Default training_file `str`

Path to file of training dataset

required validation_file `str`

Path to file of validation dataset

required model_name `str`

Name of the fine-tuned model

required base_model `str`

Base model to train from

required fine_tuning_method `str`

Fine-tuning method

required hyperparameters `str`

Hyperparameters

required

Returns:

Name Type Description CreateFineTuneJobResponse CreateFineTuneJobResponse

ID of the created fine-tuning job

"},{"location":"api/python_client/#spellbook_serve_client.fine_tuning.FineTune.list","title":"list classmethod","text":"
list() -> ListFineTuneJobResponse\n

List fine-tuning jobs

Returns:

Name Type Description ListFineTuneJobResponse ListFineTuneJobResponse

list of all fine-tuning jobs and their statuses

"},{"location":"api/python_client/#spellbook_serve_client.fine_tuning.FineTune.retrieve","title":"retrieve classmethod","text":"
retrieve(fine_tune_id: str) -> GetFineTuneJobResponse\n

Get status of a fine-tuning job

Parameters:

Name Type Description Default fine_tune_id `str`

ID of the fine-tuning job

required

Returns:

Name Type Description GetFineTuneJobResponse GetFineTuneJobResponse

ID and status of the requested job

"},{"location":"api/python_client/#spellbook_serve_client.CompletionSyncV1Response","title":"CompletionSyncV1Response","text":"

Bases: BaseModel

Response object for a synchronous prompt completion task.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionSyncV1Response.outputs","title":"outputs class-attribute","text":"
outputs: List[CompletionOutput]\n

List of completion outputs.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionSyncV1Response.status","title":"status class-attribute","text":"
status: TaskStatus\n

Task status.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionSyncV1Response.traceback","title":"traceback class-attribute","text":"
traceback: Optional[str] = None\n

Traceback if the task failed.

"},{"location":"api/python_client/#spellbook_serve_client.CompletionStreamV1Response","title":"CompletionStreamV1Response","text":"

Bases: BaseModel

Response object for a stream prompt completion task.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionStreamV1Response.output","title":"output class-attribute","text":"
output: Optional[CompletionStreamOutput] = None\n

Completion output.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionStreamV1Response.status","title":"status class-attribute","text":"
status: TaskStatus\n

Task status.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionStreamV1Response.traceback","title":"traceback class-attribute","text":"
traceback: Optional[str] = None\n

Traceback if the task failed.

"},{"location":"api/python_client/#spellbook_serve_client.CompletionOutput","title":"CompletionOutput","text":"

Bases: BaseModel

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionOutput.num_completion_tokens","title":"num_completion_tokens class-attribute","text":"
num_completion_tokens: int\n

Number of tokens in the completion.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionOutput.num_prompt_tokens","title":"num_prompt_tokens class-attribute","text":"
num_prompt_tokens: Optional[int]\n

Number of tokens in the prompt.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionOutput.text","title":"text class-attribute","text":"
text: str\n

Text

"},{"location":"api/python_client/#spellbook_serve_client.CompletionStreamOutput","title":"CompletionStreamOutput","text":"

Bases: BaseModel

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionStreamOutput.finished","title":"finished class-attribute","text":"
finished: bool\n

Whether the completion is finished.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionStreamOutput.num_completion_tokens","title":"num_completion_tokens class-attribute","text":"
num_completion_tokens: Optional[int] = None\n

Number of tokens in the completion.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionStreamOutput.num_prompt_tokens","title":"num_prompt_tokens class-attribute","text":"
num_prompt_tokens: Optional[int] = None\n

Number of tokens in the prompt.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionStreamOutput.text","title":"text class-attribute","text":"
text: str\n

Text

"},{"location":"api/python_client/#spellbook_serve_client.TaskStatus","title":"TaskStatus","text":"

Bases: str, Enum

"},{"location":"api/python_client/#spellbook_serve_client.CreateFineTuneJobRequest","title":"CreateFineTuneJobRequest","text":"

Bases: BaseModel

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CreateFineTuneJobRequest.base_model","title":"base_model class-attribute","text":"
base_model: str\n

Base model to train from

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CreateFineTuneJobRequest.fine_tuning_method","title":"fine_tuning_method class-attribute","text":"
fine_tuning_method: str\n

Fine-tuning method

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CreateFineTuneJobRequest.hyperparameters","title":"hyperparameters class-attribute","text":"
hyperparameters: Dict[str, str]\n

Hyperparameters

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CreateFineTuneJobRequest.model_name","title":"model_name class-attribute","text":"
model_name: str\n

Name of the fine-tuned model

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CreateFineTuneJobRequest.training_file","title":"training_file class-attribute","text":"
training_file: str\n

Path to file of training dataset

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CreateFineTuneJobRequest.validation_file","title":"validation_file class-attribute","text":"
validation_file: str\n

Path to file of validation dataset

"},{"location":"api/python_client/#spellbook_serve_client.CreateFineTuneJobResponse","title":"CreateFineTuneJobResponse","text":"

Bases: BaseModel

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CreateFineTuneJobResponse.fine_tune_id","title":"fine_tune_id class-attribute","text":"
fine_tune_id: str\n

ID of the created fine-tuning job

"},{"location":"api/python_client/#spellbook_serve_client.GetFineTuneJobResponse","title":"GetFineTuneJobResponse","text":"

Bases: BaseModel

"},{"location":"api/python_client/#spellbook_serve_client.data_types.GetFineTuneJobResponse.fine_tune_id","title":"fine_tune_id class-attribute","text":"
fine_tune_id: str\n

ID of the requested job

"},{"location":"api/python_client/#spellbook_serve_client.data_types.GetFineTuneJobResponse.status","title":"status class-attribute","text":"
status: BatchJobStatus\n

Status of the requested job

"},{"location":"api/python_client/#spellbook_serve_client.ListFineTuneJobResponse","title":"ListFineTuneJobResponse","text":"

Bases: BaseModel

"},{"location":"api/python_client/#spellbook_serve_client.data_types.ListFineTuneJobResponse.jobs","title":"jobs class-attribute","text":"
jobs: List[GetFineTuneJobResponse]\n

List of fine-tuning jobs and their statuses

"},{"location":"api/python_client/#spellbook_serve_client.CancelFineTuneJobResponse","title":"CancelFineTuneJobResponse","text":"

Bases: BaseModel

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CancelFineTuneJobResponse.success","title":"success class-attribute","text":"
success: bool\n

Whether cancellation was successful

"}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"\u26a1 Spellbook Serve \u26a1","text":"

The fastest, cheapest, and easiest way to deploy and scale your custom foundation models.

"},{"location":"#quick-install","title":"\ud83d\udcbb Quick Install","text":"Install using pipInstall using conda
pip install spellbook-serve-client\n
conda install spellbook-serve-client -c conda-forge\n
"},{"location":"#about","title":"\ud83e\udd14 About","text":"

Foundation models are emerging as the building blocks of AI. However, deploying these models to the cloud still requires infrastructure expertise, and can be expensive.

Spellbook Serve is a Python library, CLI, and Helm chart that provides everything you need to deploy your foundation models to the cloud using Kubernetes. Key features include:

\ud83d\udc33 Deploying from any docker image: Turn any Docker image into an auto-scaling deployment with simple APIs.

\ud83c\udf99\ufe0fLanguage-Model Specific Features: Spellbook Serve provides APIs for streaming responses and dynamically batching inputs for higher throughput and lower latency.

\ud83e\udd17 Open-Source Integrations: Deploy any Huggingface model with a single command. Integrate seamlessly with Langchain chat applications.

"},{"location":"#features-coming-soon","title":"\ud83d\udd25 Features Coming Soon","text":"

\u2744 Fast Cold-Start Times: To prevent GPUs from idling, Spellbook Serve automatically scales your model to zero when it's not in use and scales up within seconds, even for large foundation models.

\ud83d\udcb8 Cost-Optimized: Deploy AI models an order of magnitude cheaper than OpenAI APIs, including cold-start and warm-down times.

"},{"location":"faq/","title":"Frequently Asked Questions","text":""},{"location":"getting_started/","title":"\ud83d\ude80 Getting Started","text":"

To start using Spellbook Serve with public inference APIs, simply run the following:

Install using pipInstall using conda
pip install spellbook-serve\n
conda install spellbook-serve -c conda-forge\n

Navigate to https://spellbook.scale.com where you will get a Scale API key.

With the API key, you can now send requests to Spellbook Serve public inference APIs using Python client:

Using the Python Client
from spellbook_serve_client import Completion\nresponse = Completion.create(\nmodel_name=\"llama-7b-text-generation-inference\",\nprompt=\"Hello, my name is\",\nmax_new_tokens=10,\ntemperature=0.2,\n)\nprint(response.outputs[0].text)\n
"},{"location":"getting_started/#installation-on-kubernetes","title":"\ud83d\udcbb Installation on Kubernetes","text":"

To install Spellbook Serve on your infrastructure in Kubernetes, you can use the Helm chart:

helm repo add spellbook https://spellbook.github.io/helm-charts\nhelm repo update\nhelm install spellbook-serve spellbook/spellbook-serve\n
"},{"location":"api/langchain/","title":"\ud83e\udd9c Langchain","text":"

Coming soon!

"},{"location":"api/python_client/","title":"Python Client API Reference","text":""},{"location":"api/python_client/#spellbook_serve_client.Completion","title":"Completion","text":"

Bases: APIEngine

Completion API. This API is used to generate text completions.

Example
from spellbook_serve_client import Completion\nresponse = Completion.create(\nmodel_name=\"llama-7b-text-generation-inference\",\nprompt=\"Hello, my name is\",\nmax_new_tokens=10,\ntemperature=0.2,\n)\nprint(response.outputs[0].text)\n
Example
from spellbook_serve_client import Completion\nresponse_stream = Completion.create(\nmodel_name=\"llama-7b-text-generation-inference\",\nprompt=\"Hello, my name is\",\nmax_new_tokens=10,\ntemperature=0.2,\nstream=True,\n)\nfor response in response_stream:\nprint(response.output.text)\n
Example
from spellbook_serve_client import Completion\nasync def main():\nresponse_stream = await Completion.acreate(\nmodel_name=\"llama-7b-text-generation-inference\",\nprompt=\"Hello, my name is\",\nmax_new_tokens=10,\ntemperature=0.2,\nstream=True,\n)\nasync for response in response_stream:\nprint(response.output.text)\n
"},{"location":"api/python_client/#spellbook_serve_client.completion.Completion.acreate","title":"acreate async classmethod","text":"
acreate(model_name: str, prompt: str, max_new_tokens: int = 20, temperature: float = 0.2, timeout: int = 10, stream: bool = False) -> Union[CompletionSyncV1Response, AsyncIterable[CompletionStreamV1Response]]\n

Create a completion task.

Parameters:

Name Type Description Default model_name str

Model name to use for inference

required prompt str

Input text

required max_new_tokens int

Maximum number of generated tokens

20 temperature float

The value used to module the logits distribution.

0.2 timeout int

Timeout in seconds

10 stream bool

Whether to stream the response. If true, the return type is an Iterator[CompletionStreamV1Response].

False

Returns:

Name Type Description response CompletionStreamV1Response

generated response or iterator of response chunks

"},{"location":"api/python_client/#spellbook_serve_client.completion.Completion.create","title":"create classmethod","text":"
create(model_name: str, prompt: str, max_new_tokens: int = 20, temperature: float = 0.2, timeout: int = 10, stream: bool = False) -> Union[CompletionSyncV1Response, Iterator[CompletionStreamV1Response]]\n

Create a completion task.

Parameters:

Name Type Description Default model_name str

Model name to use for inference

required prompt str

Input text

required max_new_tokens int

Maximum number of generated tokens

20 temperature float

The value used to module the logits distribution.

0.2 timeout int

Timeout in seconds

10 stream bool

Whether to stream the response. If true, the return type is an Iterator.

False

Returns:

Name Type Description response CompletionStreamV1Response

generated response or iterator of response chunks

"},{"location":"api/python_client/#spellbook_serve_client.FineTune","title":"FineTune","text":"

Bases: APIEngine

FineTune API. This API is used to fine-tune models.

"},{"location":"api/python_client/#spellbook_serve_client.fine_tuning.FineTune.cancel","title":"cancel classmethod","text":"
cancel(fine_tune_id: str) -> CancelFineTuneJobResponse\n

Cancel a fine-tuning job

Parameters:

Name Type Description Default fine_tune_id `str`

ID of the fine-tuning job

required

Returns:

Name Type Description CancelFineTuneJobResponse CancelFineTuneJobResponse

whether the cancellation was successful

"},{"location":"api/python_client/#spellbook_serve_client.fine_tuning.FineTune.create","title":"create classmethod","text":"
create(training_file: str, validation_file: str, model_name: str, base_model: str, fine_tuning_method: str, hyperparameters: Dict[str, str]) -> CreateFineTuneJobResponse\n

Create a fine-tuning job

Parameters:

Name Type Description Default training_file `str`

Path to file of training dataset

required validation_file `str`

Path to file of validation dataset

required model_name `str`

Name of the fine-tuned model

required base_model `str`

Base model to train from

required fine_tuning_method `str`

Fine-tuning method

required hyperparameters `str`

Hyperparameters

required

Returns:

Name Type Description CreateFineTuneJobResponse CreateFineTuneJobResponse

ID of the created fine-tuning job

"},{"location":"api/python_client/#spellbook_serve_client.fine_tuning.FineTune.list","title":"list classmethod","text":"
list() -> ListFineTuneJobResponse\n

List fine-tuning jobs

Returns:

Name Type Description ListFineTuneJobResponse ListFineTuneJobResponse

list of all fine-tuning jobs and their statuses

"},{"location":"api/python_client/#spellbook_serve_client.fine_tuning.FineTune.retrieve","title":"retrieve classmethod","text":"
retrieve(fine_tune_id: str) -> GetFineTuneJobResponse\n

Get status of a fine-tuning job

Parameters:

Name Type Description Default fine_tune_id `str`

ID of the fine-tuning job

required

Returns:

Name Type Description GetFineTuneJobResponse GetFineTuneJobResponse

ID and status of the requested job

"},{"location":"api/python_client/#spellbook_serve_client.CompletionSyncV1Response","title":"CompletionSyncV1Response","text":"

Bases: BaseModel

Response object for a synchronous prompt completion task.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionSyncV1Response.outputs","title":"outputs instance-attribute","text":"
outputs: List[CompletionOutput]\n

List of completion outputs.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionSyncV1Response.status","title":"status instance-attribute","text":"
status: TaskStatus\n

Task status.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionSyncV1Response.traceback","title":"traceback class-attribute instance-attribute","text":"
traceback: Optional[str] = None\n

Traceback if the task failed.

"},{"location":"api/python_client/#spellbook_serve_client.CompletionStreamV1Response","title":"CompletionStreamV1Response","text":"

Bases: BaseModel

Response object for a stream prompt completion task.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionStreamV1Response.output","title":"output class-attribute instance-attribute","text":"
output: Optional[CompletionStreamOutput] = None\n

Completion output.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionStreamV1Response.status","title":"status instance-attribute","text":"
status: TaskStatus\n

Task status.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionStreamV1Response.traceback","title":"traceback class-attribute instance-attribute","text":"
traceback: Optional[str] = None\n

Traceback if the task failed.

"},{"location":"api/python_client/#spellbook_serve_client.CompletionOutput","title":"CompletionOutput","text":"

Bases: BaseModel

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionOutput.num_completion_tokens","title":"num_completion_tokens instance-attribute","text":"
num_completion_tokens: int\n

Number of tokens in the completion.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionOutput.num_prompt_tokens","title":"num_prompt_tokens instance-attribute","text":"
num_prompt_tokens: Optional[int]\n

Number of tokens in the prompt.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionOutput.text","title":"text instance-attribute","text":"
text: str\n

Text

"},{"location":"api/python_client/#spellbook_serve_client.CompletionStreamOutput","title":"CompletionStreamOutput","text":"

Bases: BaseModel

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionStreamOutput.finished","title":"finished instance-attribute","text":"
finished: bool\n

Whether the completion is finished.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionStreamOutput.num_completion_tokens","title":"num_completion_tokens class-attribute instance-attribute","text":"
num_completion_tokens: Optional[int] = None\n

Number of tokens in the completion.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionStreamOutput.num_prompt_tokens","title":"num_prompt_tokens class-attribute instance-attribute","text":"
num_prompt_tokens: Optional[int] = None\n

Number of tokens in the prompt.

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CompletionStreamOutput.text","title":"text instance-attribute","text":"
text: str\n

Text

"},{"location":"api/python_client/#spellbook_serve_client.TaskStatus","title":"TaskStatus","text":"

Bases: str, Enum

"},{"location":"api/python_client/#spellbook_serve_client.CreateFineTuneJobRequest","title":"CreateFineTuneJobRequest","text":"

Bases: BaseModel

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CreateFineTuneJobRequest.base_model","title":"base_model instance-attribute","text":"
base_model: str\n

Base model to train from

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CreateFineTuneJobRequest.fine_tuning_method","title":"fine_tuning_method instance-attribute","text":"
fine_tuning_method: str\n

Fine-tuning method

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CreateFineTuneJobRequest.hyperparameters","title":"hyperparameters instance-attribute","text":"
hyperparameters: Dict[str, str]\n

Hyperparameters

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CreateFineTuneJobRequest.model_name","title":"model_name instance-attribute","text":"
model_name: str\n

Name of the fine-tuned model

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CreateFineTuneJobRequest.training_file","title":"training_file instance-attribute","text":"
training_file: str\n

Path to file of training dataset

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CreateFineTuneJobRequest.validation_file","title":"validation_file instance-attribute","text":"
validation_file: str\n

Path to file of validation dataset

"},{"location":"api/python_client/#spellbook_serve_client.CreateFineTuneJobResponse","title":"CreateFineTuneJobResponse","text":"

Bases: BaseModel

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CreateFineTuneJobResponse.fine_tune_id","title":"fine_tune_id instance-attribute","text":"
fine_tune_id: str\n

ID of the created fine-tuning job

"},{"location":"api/python_client/#spellbook_serve_client.GetFineTuneJobResponse","title":"GetFineTuneJobResponse","text":"

Bases: BaseModel

"},{"location":"api/python_client/#spellbook_serve_client.data_types.GetFineTuneJobResponse.fine_tune_id","title":"fine_tune_id instance-attribute","text":"
fine_tune_id: str\n

ID of the requested job

"},{"location":"api/python_client/#spellbook_serve_client.data_types.GetFineTuneJobResponse.status","title":"status instance-attribute","text":"
status: BatchJobStatus\n

Status of the requested job

"},{"location":"api/python_client/#spellbook_serve_client.ListFineTuneJobResponse","title":"ListFineTuneJobResponse","text":"

Bases: BaseModel

"},{"location":"api/python_client/#spellbook_serve_client.data_types.ListFineTuneJobResponse.jobs","title":"jobs instance-attribute","text":"
jobs: List[GetFineTuneJobResponse]\n

List of fine-tuning jobs and their statuses

"},{"location":"api/python_client/#spellbook_serve_client.CancelFineTuneJobResponse","title":"CancelFineTuneJobResponse","text":"

Bases: BaseModel

"},{"location":"api/python_client/#spellbook_serve_client.data_types.CancelFineTuneJobResponse.success","title":"success instance-attribute","text":"
success: bool\n

Whether cancellation was successful

"}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 809ab0d7d..0f8724efd 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,28 +1,3 @@ - - None - 2023-07-13 - daily - - - None - 2023-07-13 - daily - - - None - 2023-07-13 - daily - - - None - 2023-07-13 - daily - - - None - 2023-07-13 - daily - \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index ac332c9da4bf8cdd8d6287841e723219b2a59ac5..4495a74ee2d374b2dbd8f70709507016e349c107 100644 GIT binary patch literal 127 zcmV-_0D%7=iwFpY<*;M||8r?{Wo=<_E_iKh04<9_3V)_WXo8&M?ytk3HC}0~zlG)VuNh4-F+BV)+h#(+Af3- zy{&mp^CG3YG%I3c^)@lt3e%{YQ+Hkq-MtxXoP`Kq