diff --git a/404.html b/404.html index ceb615fd7..826622b09 100644 --- a/404.html +++ b/404.html @@ -13,7 +13,7 @@ - + diff --git a/assets/js/5812764a.265043c5.js b/assets/js/5812764a.265043c5.js new file mode 100644 index 000000000..563cdf5ca --- /dev/null +++ b/assets/js/5812764a.265043c5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8223],{44172:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>f,contentTitle:()=>j,default:()=>y,frontMatter:()=>x,metadata:()=>m,toc:()=>g});var t=s(74848),i=s(28453),r=s(85215),o=s(82496),a=s(24033),c=s(50363);s(96540);const l={tools:[{type:"function",function:{name:"get_current_weather",description:"Get the current weather in a given location",parameters:{type:"object",properties:{location:{type:"string",description:"The city and state, e.g. San Francisco, CA"},unit:{type:"string",enum:["celsius","fahrenheit"]}},required:["location"]}}}],function_handler:e=>e.map((e=>{return{response:(n=e.arguments,(n=n.toLowerCase()).includes("tokyo")?JSON.stringify({location:n,temperature:"10",unit:"celsius"}):n.includes("san francisco")?JSON.stringify({location:n,temperature:"72",unit:"fahrenheit"}):JSON.stringify({location:n,temperature:"22",unit:"celsius"}))};var n}))};function d(){return(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},introMessage:{text:"Try asking about the weather in a certain location."},textInput:{placeholder:{text:"Weather in Tokyo today"}},directConnection:{openAI:{key:"placeholder key",chat:l}}})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},introMessage:{text:"Try asking about the weather in a certain location."},textInput:{placeholder:{text:"Weather in Tokyo today"}},directConnection:{openAI:{chat:l}}})})]})}var A=s(15781),h=s(78478),u=s(19365),p=s(11470);const x={sidebar_position:1},j="OpenAI",m={id:"docs/directConnection/OpenAI",title:"OpenAI",description:"Properties used to connect to OpenAI.",source:"@site/docs/docs/directConnection/OpenAI.mdx",sourceDirName:"docs/directConnection",slug:"/docs/directConnection/OpenAI",permalink:"/docs/directConnection/OpenAI",draft:!1,unlisted:!1,editUrl:"https://github.com/OvidijusParsiunas/deep-chat/tree/main/website/docs/docs/directConnection/OpenAI.mdx",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"docs",previous:{title:"Direct Connection",permalink:"/docs/directConnection/"},next:{title:"HuggingFace",permalink:"/docs/directConnection/HuggingFace"}},f={},g=[{value:"openAI",id:"openAI",level:3},{value:"Service Types",id:"service-types",level:2},{value:"Chat",id:"Chat",level:3},{value:"Basic Example",id:"basic-example",level:4},{value:"Vision Example",id:"vision-example",level:4},{value:"Assistant",id:"Assistant",level:3},{value:"NewAssistant",id:"NewAssistant",level:4},{value:"Images",id:"Images",level:3},{value:"Example",id:"example",level:4},{value:"TextToSpeech",id:"TextToSpeech",level:3},{value:"Example",id:"example-1",level:4},{value:"SpeechToText",id:"SpeechToText",level:3},{value:"Example",id:"example-2",level:4},{value:"Functions",id:"Functions",level:2},{value:"Chat Functions",id:"chat-functions",level:3},{value:"Tools",id:"Tools",level:4},{value:"FunctionHandler",id:"FunctionHandler",level:4},{value:"Assistant Functions",id:"assistant-functions",level:3},{value:"Shared Types",id:"shared-types",level:2},{value:"FunctionsDetails",id:"FunctionsDetails",level:3}];function b(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{}),"\n","\n",(0,t.jsxs)(n.h1,{id:"openai",children:[(0,t.jsx)("img",{src:r.A,className:"adaptive-logo-filter",width:"40",style:{float:"left",marginRight:"10px",marginTop:"9px"}}),(0,t.jsx)("span",{className:"direct-service-title",children:"OpenAI"})]}),"\n",(0,t.jsxs)(n.p,{children:["Properties used to connect to ",(0,t.jsx)(n.a,{href:"https://openai.com/blog/openai-api",children:"OpenAI"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"openAI",children:(0,t.jsx)(n.code,{children:"openAI"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: {",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#Chat",children:(0,t.jsx)(n.code,{children:"chat?: Chat"})}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#Assistant",children:(0,t.jsx)(n.code,{children:"assistant?: Assistant"})}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#Images",children:(0,t.jsx)(n.code,{children:"images?: Images"})}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#TextToSpeech",children:(0,t.jsx)(n.code,{children:"textToSpeech?: TextToSpeech"})}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#SpeechToText",children:(0,t.jsx)(n.code,{children:"speechToText?: SpeechToText"})})," ",(0,t.jsx)("br",{}),"\n}"]}),"\n",(0,t.jsxs)(n.li,{children:["Default: ",(0,t.jsx)(n.em,{children:"{chat: true}"})]}),"\n"]}),"\n","\n","\n",(0,t.jsx)(h.A,{children:()=>s(61886).readdAutoNavShadowToggle()}),"\n",(0,t.jsx)(n.h2,{id:"service-types",children:"Service Types"}),"\n",(0,t.jsx)(n.h3,{id:"Chat",children:(0,t.jsx)(n.code,{children:"Chat"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: ",(0,t.jsx)(n.code,{children:"true"})," | {",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"system_prompt?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"model?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"max_tokens?: number"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"temperature?: number"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"top_p?: number"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#chat-functions",children:(0,t.jsx)(n.code,{children:"ChatFunctions"})})," ",(0,t.jsx)("br",{}),"\n}"]}),"\n",(0,t.jsxs)(n.li,{children:["Default: ",(0,t.jsx)(n.em,{children:'{system_prompt: "You are a helpful assistant.", model: "gpt-3.5-turbo"}'})]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Connect to Open AI's ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/chat",children:(0,t.jsx)(n.code,{children:"chat"})})," API. You can set this property to ",(0,t.jsx)(n.em,{children:"true"})," or configure it using an object: ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"system_prompt"})," is used to set the ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/chat/create",children:(0,t.jsx)(n.em,{children:'"system"'})})," message for the conversation context. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"model"})," is the name of the model to be used by the API. Check ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/models/model-endpoint-compatibility",children:"/v1/chat/completions"})," for more. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"max_tokens"})," the maximum number of tokens to generate in the chat. Check ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/tokenizer",children:"tokenizer"})," for more info. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"temperature"})," is used for sampling; between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"top_p"})," is an alternative to sampling with temperature, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens\ncomprising the top 10% probability mass are considered. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.a,{href:"#chat-functions",children:(0,t.jsx)(n.code,{children:"ChatFunctions"})})," encompasses properties used for ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/guides/function-calling",children:"function calling"}),". ",(0,t.jsx)("br",{})]}),"\n",(0,t.jsx)(n.h4,{id:"basic-example",children:"Basic Example"}),"\n",(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{key:"placeholder key",chat:{max_tokens:2e3,system_prompt:"Assist me with anything you can"}}}})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{chat:{max_tokens:2e3,system_prompt:"Assist me with anything you can"}}}})})]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\n'})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\x3c!-- This example is for Vanilla JS and should be tailored to your framework (see Examples) --\x3e\n\n\n'})})})]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h4,{id:"vision-example",children:"Vision Example"}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"max_tokens"})," is not set, the component sets it to ",(0,t.jsx)(n.em,{children:"300"})," as otherwise the API does not send a full response."]}),"\n",(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{key:"placeholder key",chat:{model:"gpt-4-vision-preview"}}},images:!0,camera:!0,textInput:{styles:{container:{width:"77%"}}}})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{chat:{model:"gpt-4-vision-preview"}}},images:!0,camera:!0,textInput:{styles:{container:{width:"77%"}}}})})]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\n'})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\x3c!-- This example is for Vanilla JS and should be tailored to your framework (see Examples) --\x3e\n\n\n'})})})]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h3,{id:"Assistant",children:(0,t.jsx)(n.code,{children:"Assistant"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: ",(0,t.jsx)(n.code,{children:"true"})," | {",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"assistant_id?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"thread_id?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"load_thread_history?: boolean"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#NewAssistant",children:(0,t.jsx)(n.code,{children:"new_assistant?: NewAssistant"})}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#assistant-functions",children:(0,t.jsx)(n.code,{children:"function_handler?: AssistantFunctionHandler"})})," ",(0,t.jsx)("br",{}),"\n}"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Connect to your Open AI ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/assistants/overview",children:(0,t.jsx)(n.code,{children:"assistant"})}),".\nWhen set to ",(0,t.jsx)(n.code,{children:"true"})," or the ",(0,t.jsx)(n.code,{children:"assistant_id"})," is not defined, Deep Chat will automatically create a new assistant when the user sends the first message. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"assistant_id"})," is the id of your assistant. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"thread_id"})," allows you to communicate in the context of an already existing conversation/",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/threads",children:"thread"}),". ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"load_thread_history"})," toggles a preload of the previous conversation/",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/threads",children:"thread"})," messages on chat initialisation. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"new_assistant"})," defines the details for the newly created assistant. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"function_handler"})," is the actual function used to handle the model's function response. Please navigate to ",(0,t.jsx)(n.a,{href:"#assistant-functions",children:"Assistant Functions"})," for more info. ",(0,t.jsx)("br",{})]}),"\n",(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{key:"placeholder key",assistant:{}}}})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{assistant:{}}}})})]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\n'})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\x3c!-- This example is for Vanilla JS and should be tailored to your framework (see Examples) --\x3e\n\n\n'})})})]}),"\n",(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsxs)(n.p,{children:["Returned ",(0,t.jsx)(n.a,{href:"/docs/messages#MessageContent",children:"MessageContent"})," contains a hidden property called ",(0,t.jsx)(n.code,{children:"_sessionId"})," which\nstores the thread id and allows conversation to continue on a new session."]})}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h4,{id:"NewAssistant",children:(0,t.jsx)(n.code,{children:"NewAssistant"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Type: {",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"model?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"name?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"description?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"instructions?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"fileIds?: string[]"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"tools?"}),": { ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"type?"}),": ",(0,t.jsx)(n.code,{children:'"code_interpreter"'})," | ",(0,t.jsx)(n.code,{children:'"retrieval"'})," | ",(0,t.jsx)(n.code,{children:'"function"'}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"function?"}),": {",(0,t.jsx)(n.code,{children:"name: string"}),", ",(0,t.jsx)(n.code,{children:"description?: string"}),", ",(0,t.jsx)(n.code,{children:"parameters?: object"}),"} ",(0,t.jsx)("br",{}),"\n}}"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.em,{children:'{model: "gpt-4"}'})]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["When ",(0,t.jsx)(n.code,{children:"assistant_id"})," is not used, this object is used to define the details of the new assistant that will be created by Deep Chat when\nthe user sends a new message. This object follows the ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/assistants/createAssistant",children:"Open AI Create Asssistant API"}),". ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"model"})," is the name of the model to be used by the API. Check the ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/models/overview",children:"model overview"})," for more. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"name"})," and ",(0,t.jsx)(n.code,{children:"description"})," are used to describe the new assistant. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"instructions"})," direct the assistant's behaviour. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"fileIds"})," is an array of file ids that the new assistant has access to. Log into OpenAI and check ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/files",children:"files"}),". ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"tools"})," is an array of objects that describe the tools the assistant will have access to.\nWhen using the ",(0,t.jsx)(n.code,{children:'"function"'})," tool, you will need to also define the ",(0,t.jsx)(n.code,{children:"function"})," object. ",(0,t.jsx)("br",{})]}),"\n",(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{key:"placeholder key",assistant:{new_assistant:{name:"test model",tools:[{type:"code_interpreter"}]}}}},mixedFiles:!0})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{assistant:{new_assistant:{name:"test model",tools:[{type:"code_interpreter"}]}}}},mixedFiles:!0})})]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\n'})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\x3c!-- This example is for Vanilla JS and should be tailored to your framework (see Examples) --\x3e\n\n\n'})})})]}),"\n",(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsxs)(n.p,{children:["Access the newly created ",(0,t.jsx)(n.code,{children:"assistant_id"})," via ",(0,t.jsx)(n.code,{children:"chatElementRef._activeService.rawBody.assistant_id"}),"."]})}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h3,{id:"Images",children:(0,t.jsx)(n.code,{children:"Images"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: ",(0,t.jsx)(n.code,{children:"true"})," | {",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"model?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"n?: number"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"size?:"})," ",(0,t.jsx)(n.code,{children:'"256x256"'})," | ",(0,t.jsx)(n.code,{children:'"512x512"'})," | ",(0,t.jsx)(n.code,{children:'"1024x1024"'}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"response_format?:"})," ",(0,t.jsx)(n.code,{children:'"url"'})," | ",(0,t.jsx)(n.code,{children:'"b64_json"'}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"user?: number"})," ",(0,t.jsx)("br",{}),"\n}"]}),"\n",(0,t.jsxs)(n.li,{children:["Default: ",(0,t.jsx)(n.em,{children:'{size: "1024x1024"}'})]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Connect to Open AI's ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/images",children:(0,t.jsx)(n.code,{children:"Images"})})," API. You can set this property to ",(0,t.jsx)(n.em,{children:"true"})," or configure it using an object: ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"model"})," is the name of the specific model to be used by the API. Check ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/models/model-endpoint-compatibility",children:"/v1/images/generations"})," for more. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"n"})," is the number of images to generate. Ranges between 1 and 10. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"size"})," is the pixel dimensions of the generated images. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"response_format"})," is the format in which the generated images are returned. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"user"})," is a unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. More info can be found ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/guides/safety-best-practices/end-user-ids",children:(0,t.jsx)(n.code,{children:"here"})}),". ",(0,t.jsx)("br",{})]}),"\n",(0,t.jsx)(n.p,{children:"You can automatically call any of the following three APIs by combining different inputs:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/images/create",children:"Create Image"})," - Send text."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/images/create-variation",children:"Create Image Variation"})," - Upload and send an image with no text."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/images/create-edit",children:"Create Image Edit"})," - Upload an image and add text. You can also upload a second image to be used as a ",(0,t.jsx)(n.em,{children:"mask"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h4,{id:"example",children:"Example"}),"\n",(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{key:"placeholder key",images:{n:1,size:"1024x1024",response_format:"url"}}}})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{images:{n:1,size:"1024x1024",response_format:"url"}}}})})]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\n'})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\x3c!-- This example is for Vanilla JS and should be tailored to your framework (see Examples) --\x3e\n\n\n'})})})]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h3,{id:"TextToSpeech",children:(0,t.jsx)(n.code,{children:"TextToSpeech"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: ",(0,t.jsx)(n.code,{children:"true"})," | { ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"model?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"voice?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"speed?: number"})," ",(0,t.jsx)("br",{}),"\n}"]}),"\n",(0,t.jsxs)(n.li,{children:["Default: ",(0,t.jsx)(n.em,{children:'{model: "tts-1", voice: "alloy", speed: 1}'})]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Connect to Open AI's ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/guides/text-to-speech",children:(0,t.jsx)(n.code,{children:"Text To Speech"})})," API.\nYou can set this property to ",(0,t.jsx)(n.em,{children:"true"})," or ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/audio/createSpeech",children:"configure"})," it using an object: ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"model"})," defines the target model used by the API. Check ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/models/model-endpoint-compatibility",children:"/v1/audio/speech"})," for more. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"voice"})," is the name of the voice used in the generated audio. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"speed"})," defines speed of the generated audio. It accepts a value between 0.25 and 4.0."]}),"\n",(0,t.jsx)(n.h4,{id:"example-1",children:"Example"}),"\n",(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{key:"placeholder key",textToSpeech:{voice:"echo"}}}})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{textToSpeech:{voice:"echo"}}}})})]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\n'})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\x3c!-- This example is for Vanilla JS and should be tailored to your framework (see Examples) --\x3e\n\n\n'})})})]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h3,{id:"SpeechToText",children:(0,t.jsx)(n.code,{children:"SpeechToText"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: ",(0,t.jsx)(n.code,{children:"true"})," | { ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:'model?: "whisper-1"'}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"temperature?: number"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"language?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"type?:"})," ",(0,t.jsx)(n.code,{children:'"transcription" | "translation"'})," ",(0,t.jsx)("br",{}),"\n}"]}),"\n",(0,t.jsxs)(n.li,{children:["Default: ",(0,t.jsx)(n.em,{children:'{model: "whisper-1", type: "transcription"}'})]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Connect to Open AI's ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/guides/speech-to-text",children:(0,t.jsx)(n.code,{children:"Speech To Text"})})," API.\nYou can set this property to ",(0,t.jsx)(n.em,{children:"true"})," or ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/audio/createTranscription",children:"configure"})," it using an object: ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"model"})," is the name of the model to use. ",(0,t.jsx)(n.em,{children:'"whisper-1"'})," is currently the only one available. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"temperature"})," is used for sampling; between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"language"})," is the language used the input audio. Supplying the input language in ",(0,t.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes",children:(0,t.jsx)(n.em,{children:"ISO-639-1"})})," format will improve accuracy and latency. (Only used for ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/audio/create",children:(0,t.jsx)(n.em,{children:"transcription"})})," based API). ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"type"})," is used to toggle between the ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/audio/create",children:(0,t.jsx)(n.em,{children:"transcription"})})," and the ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/audio/create",children:(0,t.jsx)(n.em,{children:"translation"})})," APIs.\nNote that ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/audio/create",children:(0,t.jsx)(n.em,{children:"translation"})})," can only attempt to translate audio into ",(0,t.jsx)(n.em,{children:"English"}),"."]}),"\n",(0,t.jsx)(n.h4,{id:"example-2",children:"Example"}),"\n",(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{key:"placeholder key",speechToText:{model:"whisper-1",temperature:.3,language:"en",type:"transcription"}}}})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{speechToText:{model:"whisper-1",temperature:.3,language:"en",type:"transcription"}}}})})]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\n'})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\x3c!-- This example is for Vanilla JS and should be tailored to your framework (see Examples) --\x3e\n\n\n'})})})]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h2,{id:"Functions",children:"Functions"}),"\n",(0,t.jsxs)(n.p,{children:["Examples for OpenAI's ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/guides/function-calling",children:"Function Calling"})," features:"]}),"\n",(0,t.jsx)(n.h3,{id:"chat-functions",children:(0,t.jsx)(n.code,{children:"Chat Functions"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: {",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#Tools",children:(0,t.jsx)(n.code,{children:"tools: Tools"})}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"tool_choice?:"})," ",(0,t.jsx)(n.code,{children:'"auto"'})," | ",(0,t.jsx)(n.code,{children:'{type: "function", function: {name: string}}'}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#FunctionHandler",children:(0,t.jsx)(n.code,{children:"function_handler: FunctionHandler"})})," ",(0,t.jsx)("br",{}),"\n}"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Configure the chat to call your functions via the ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/guides/function-calling",children:"OpenAI Function calling API"}),". ",(0,t.jsx)("br",{}),"\nThis is particularly useful if you want the model to analyze user's requests, check whether a function should be called, extract the relevant information\nfrom their text and return it all in a standardized response for you to act on. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"tools"})," defines the functions that the model can signal to call based on the user's text. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"tool_choice"})," controls which (if any) function should be called. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"function_handler"})," is the actual function that is called with the model's instructions."]}),"\n",(0,t.jsx)(d,{}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:"// using JavaScript for a simplified example\n\nchatElementRef.directConnection = {\n openAI: {\n chat: {\n tools: [\n {\n type: 'function',\n function: {\n name: 'get_current_weather',\n description: 'Get the current weather in a given location',\n parameters: {\n type: 'object',\n properties: {\n location: {\n type: 'string',\n description: 'The city and state, e.g. San Francisco, CA',\n },\n unit: {type: 'string', enum: ['celsius', 'fahrenheit']},\n },\n required: ['location'],\n },\n },\n },\n ],\n function_handler: (functionsDetails) => {\n return functionsDetails.map((functionDetails) => {\n return {\n response: getCurrentWeather(functionDetails.arguments),\n };\n });\n },\n },\n key: 'placeholder-key',\n },\n};\n"})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:'// using JavaScript for a simplified example\n\nchatElementRef.directConnection = {\n openAI: {\n chat: {\n tools: [{\n type: "function",\n function: {\n name: "get_current_weather",\n description: "Get the current weather in a given location",\n parameters: {\n type: "object",\n properties: {\n location: {\n type: "string",\n description: "The city and state, e.g. San Francisco, CA",\n },\n unit: {type: "string", enum: ["celsius", "fahrenheit"]},\n },\n required: ["location"],\n }}}],\n function_handler: (functionsDetails) => {\n return functionsDetails.map((functionDetails) => {\n return {\n response: getCurrentWeather(functionDetails.arguments),\n };});}\n },\n key: "placeholder-key",\n },\n };\n}\n\nfunction getCurrentWeather(location) {\n location = location.toLowerCase();\n if (location.includes(\'tokyo\')) {\n return JSON.stringify({location, temperature: \'10\', unit: \'celsius\'});\n } else if (location.includes(\'san francisco\')) {\n return JSON.stringify({location, temperature: \'72\', unit: \'fahrenheit\'});\n } else {\n return JSON.stringify({location, temperature: \'22\', unit: \'celsius\'});\n }\n}\n'})})})]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h4,{id:"Tools",children:(0,t.jsx)(n.code,{children:"Tools"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: {",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:'type: "function" | "object"'}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"function:"})," {",(0,t.jsx)(n.code,{children:"name: string"}),", ",(0,t.jsx)(n.code,{children:"description?: string"}),", ",(0,t.jsx)(n.a,{href:"https://json-schema.org/learn/miscellaneous-examples",children:(0,t.jsx)(n.code,{children:"parameters: JSONSchema"})}),"} ",(0,t.jsx)("br",{}),"\n}[]"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["An array describing tools that the model may call. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"name"})," is the name of a function. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"description"})," is used by the model to understand what the function does and when it should be called. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"parameters"})," are arguments that the function accepts defined in a ",(0,t.jsx)(n.a,{href:"https://json-schema.org/learn/miscellaneous-examples",children:"JSON Schema"})," (see example above). ",(0,t.jsx)("br",{}),"\nCheckout the following ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/guides/function-calling",children:"guide"})," for more about function calling."]}),"\n",(0,t.jsx)(n.admonition,{type:"tip",children:(0,t.jsxs)(n.p,{children:["If your function accepts arguments - the ",(0,t.jsx)(n.code,{children:"type"})," property should be set to ",(0,t.jsx)(n.em,{children:'"function"'}),", otherwise use the following object ",(0,t.jsx)(n.code,{children:'{"type": "object", "properties": {}}'}),"."]})}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h4,{id:"FunctionHandler",children:(0,t.jsx)(n.code,{children:"FunctionHandler"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: (",(0,t.jsx)(n.a,{href:"#FunctionsDetails",children:(0,t.jsx)(n.code,{children:"functionsDetails: FunctionsDetails"})}),") => ",(0,t.jsx)(n.code,{children:"{response: string}[]"})," | ",(0,t.jsx)(n.code,{children:"{text: string}"})]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["The actual function that the component will call if the model wants a response from ",(0,t.jsx)(n.a,{href:"#Tools",children:"tools"})," functions. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.a,{href:"#FunctionsDetails",children:(0,t.jsx)(n.code,{children:"functionsDetails"})})," contains information about what ",(0,t.jsx)(n.a,{href:"#Tools",children:"tool"})," functions should be called. ",(0,t.jsx)("br",{}),"\nThis function should either return an array of JSONs containing a ",(0,t.jsx)(n.code,{children:"response"})," property for each ",(0,t.jsx)(n.a,{href:"#Tools",children:"tool"})," function (in the same order as in ",(0,t.jsx)(n.code,{children:"functionsDetails"}),")\nwhich will feed it back into the model to finalise a response, or return a JSON containing ",(0,t.jsx)(n.code,{children:"text"})," which will immediately display it in the chat\nand not send any details to the model."]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h3,{id:"assistant-functions",children:(0,t.jsx)(n.code,{children:"Assistant Functions"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: (",(0,t.jsx)(n.a,{href:"#FunctionsDetails",children:(0,t.jsx)(n.code,{children:"functionsDetails: FunctionsDetails"})}),") => ",(0,t.jsx)(n.code,{children:"string[]"})]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.a,{href:"#Assistant",children:(0,t.jsx)(n.code,{children:"function_handler"})})," property can be assigned with the actual function that the component will call if the model wants a response from your preconfigured assistant's functions\ninside the ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/assistants",children:"OpneAI assistants platform"}),". ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.a,{href:"#FunctionsDetails",children:(0,t.jsx)(n.code,{children:"functionsDetails"})})," contains information about what functions should be called. ",(0,t.jsx)("br",{}),"\nThis function should return an array of strings defining the response for each function described in ",(0,t.jsx)(n.code,{children:"functionDetails"})," (in the same order)\nwhich will feed it back into the assistant to finalise a response."]}),"\n",(0,t.jsxs)(n.p,{children:["Try it out live in the Deep Chat ",(0,t.jsx)(n.a,{href:"/playground",children:"Playground"}),"."]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:"// using JavaScript for a simplified example\n\nchatElementRef.directConnection = {\n openAI: {\n assistant: {\n assistant_id: 'placeholder-id',\n function_handler: (functionsDetails) => {\n return functionsDetails.map((functionDetails) => this.getCurrentWeather(functionDetails.arguments));\n },\n },\n key: 'placeholder-key',\n },\n};\n"})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:"// using JavaScript for a simplified example\n\nchatElementRef.directConnection = {\n openAI: {\n assistant: {\n assistant_id: 'placeholder-id',\n function_handler: (functionsDetails) => {\n return functionsDetails.map((functionDetails) => this.getCurrentWeather(functionDetails.arguments));\n },\n },\n key: 'placeholder-key',\n },\n};\n\nfunction getCurrentWeather(location) {\n location = location.toLowerCase();\n if (location.includes('tokyo')) {\n return 'Good';\n } else if (location.includes('san francisco')) {\n return 'Mild';\n } else {\n return 'Very Hot';\n }\n}\n"})})})]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h2,{id:"shared-types",children:"Shared Types"}),"\n",(0,t.jsxs)(n.p,{children:["Types used in ",(0,t.jsx)(n.a,{href:"#Functions",children:(0,t.jsx)(n.code,{children:"Functions"})})," properties:"]}),"\n",(0,t.jsx)(n.h3,{id:"FunctionsDetails",children:(0,t.jsx)(n.code,{children:"FunctionsDetails"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: {",(0,t.jsx)(n.code,{children:"name: string"}),", ",(0,t.jsx)(n.code,{children:"arguments: string"}),"}[]"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Array of objects containing information about the functions that the model wants to call. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"name"})," is the name of the target function. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"arguments"})," is a stringified JSON containing properties based on the ",(0,t.jsx)(n.a,{href:"#Tools",children:(0,t.jsx)(n.code,{children:"parameters"})})," defined for the function."]})]})}function y(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(b,{...e})}):b(e)}},19365:(e,n,s)=>{s.d(n,{A:()=>o});s(96540);var t=s(34164);const i={tabItem:"tabItem_Ymn6"};var r=s(74848);function o(e){let{children:n,hidden:s,className:o}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,t.A)(i.tabItem,o),hidden:s,children:n})}},11470:(e,n,s)=>{s.d(n,{A:()=>v});var t=s(96540),i=s(34164),r=s(23104),o=s(56347),a=s(205),c=s(57485),l=s(31682),d=s(89466);function A(e){return t.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,t.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:s}=e;return(0,t.useMemo)((()=>{const e=n??function(e){return A(e).map((e=>{let{props:{value:n,label:s,attributes:t,default:i}}=e;return{value:n,label:s,attributes:t,default:i}}))}(s);return function(e){const n=(0,l.X)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,s])}function u(e){let{value:n,tabValues:s}=e;return s.some((e=>e.value===n))}function p(e){let{queryString:n=!1,groupId:s}=e;const i=(0,o.W6)(),r=function(e){let{queryString:n=!1,groupId:s}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!s)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return s??null}({queryString:n,groupId:s});return[(0,c.aZ)(r),(0,t.useCallback)((e=>{if(!r)return;const n=new URLSearchParams(i.location.search);n.set(r,e),i.replace({...i.location,search:n.toString()})}),[r,i])]}function x(e){const{defaultValue:n,queryString:s=!1,groupId:i}=e,r=h(e),[o,c]=(0,t.useState)((()=>function(e){let{defaultValue:n,tabValues:s}=e;if(0===s.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!u({value:n,tabValues:s}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${s.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const t=s.find((e=>e.default))??s[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:r}))),[l,A]=p({queryString:s,groupId:i}),[x,j]=function(e){let{groupId:n}=e;const s=function(e){return e?`docusaurus.tab.${e}`:null}(n),[i,r]=(0,d.Dv)(s);return[i,(0,t.useCallback)((e=>{s&&r.set(e)}),[s,r])]}({groupId:i}),m=(()=>{const e=l??x;return u({value:e,tabValues:r})?e:null})();(0,a.A)((()=>{m&&c(m)}),[m]);return{selectedValue:o,selectValue:(0,t.useCallback)((e=>{if(!u({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);c(e),A(e),j(e)}),[A,j,r]),tabValues:r}}var j=s(92303);const m={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var f=s(74848);function g(e){let{className:n,block:s,selectedValue:t,selectValue:o,tabValues:a}=e;const c=[],{blockElementScrollPositionUntilNextRender:l}=(0,r.a_)(),d=e=>{const n=e.currentTarget,s=c.indexOf(n),i=a[s].value;i!==t&&(l(n),o(i))},A=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const s=c.indexOf(e.currentTarget)+1;n=c[s]??c[0];break}case"ArrowLeft":{const s=c.indexOf(e.currentTarget)-1;n=c[s]??c[c.length-1];break}}n?.focus()};return(0,f.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.A)("tabs",{"tabs--block":s},n),children:a.map((e=>{let{value:n,label:s,attributes:r}=e;return(0,f.jsx)("li",{role:"tab",tabIndex:t===n?0:-1,"aria-selected":t===n,ref:e=>c.push(e),onKeyDown:A,onClick:d,...r,className:(0,i.A)("tabs__item",m.tabItem,r?.className,{"tabs__item--active":t===n}),children:s??n},n)}))})}function b(e){let{lazy:n,children:s,selectedValue:i}=e;const r=(Array.isArray(s)?s:[s]).filter(Boolean);if(n){const e=r.find((e=>e.props.value===i));return e?(0,t.cloneElement)(e,{className:"margin-top--md"}):null}return(0,f.jsx)("div",{className:"margin-top--md",children:r.map(((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==i})))})}function y(e){const n=x(e);return(0,f.jsxs)("div",{className:(0,i.A)("tabs-container",m.tabList),children:[(0,f.jsx)(g,{...e,...n}),(0,f.jsx)(b,{...e,...n})]})}function v(e){const n=(0,j.A)();return(0,f.jsx)(y,{...e,children:A(e.children)},String(n))}},15781:(e,n,s)=>{s.d(n,{A:()=>i});s(96540);var t=s(74848);function i(){return(0,t.jsx)("div",{style:{height:"1px"}})}},61886:(e,n,s)=>{function t(e){window.scrollY>0?e.style.boxShadow="0 1px 2px 0 rgb(0 0 0 / 10%)":e.style.boxShadow="unset"}function i(){setTimeout((()=>{window.removeEventListener("scroll",window.toggleNavOnScroll);const e=document.getElementsByClassName("navbar--fixed-top");if(e[0]){const n=e[0];t(n),window.toggleNavOnScroll=t.bind(this,n),window.addEventListener("scroll",window.toggleNavOnScroll)}}),2)}function r(){setTimeout((()=>{const e=document.querySelectorAll(".homepage > body > #__docusaurus > nav")?.[0];try{e.classList.add("fade-in")}catch(n){console.error(n),console.log("element was not rendered in time - use MutationObserver")}}),2)}s.r(n),s.d(n,{fadeIn:()=>r,readdAutoNavShadowToggle:()=>i})},24033:(e,n,s)=>{s.d(n,{A:()=>r,q:()=>i});s(96540);var t=s(74848);function i(e){return e?.children[0]?.children[0]}function r(e){let{children:n,minHeight:s,innerDisplay:i}=e;return(0,t.jsx)("div",{className:"documentation-example-container",style:{minHeight:`${s||400}px`},children:(0,t.jsx)("div",{style:{display:i||"block"},children:n})})}},82496:(e,n,s)=>{s.d(n,{A:()=>r});var t=s(96540),i=s(74848);function r(e){let{children:n}=e;const[s,r]=t.useState(!0);return(0,i.jsxs)("div",{children:[s&&n[0],!s&&n[1],(0,i.jsx)("div",{className:"component-key-toggle-button-container",children:(0,i.jsxs)("button",{className:"documentation-button component-key-toggle-button",onClick:()=>r(!s),children:[s&&"Insert test key",!s&&"Use placeholder key"]})})]})}},50363:(e,n,s)=>{s.d(n,{A:()=>r});var t=s(78478),i=(s(96540),s(74848));function r(e){return(0,i.jsx)(t.A,{children:()=>{const n=s(55096).DeepChat;return(0,i.jsx)(n,{...e,children:e.children})}})}},85215:(e,n,s)=>{s.d(n,{A:()=>t});const t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASgAAAEsCAMAAABHSN49AAAC/VBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwPeu4AAAA/3RSTlMADRs2TWNyiJafuri1mX9uW0cvFQgHIoGkx+n5//bcmHA9Aythns3rv5FPHgpBjMr6uzEFQNf7yHgmfNH0EKXx3YQnAlK5nVbE9zBGvfWTICijeQ4Je+9LPByF3sWU7DJavoc02KgLSMAYV/j85sOiimpUQzl1kKzO8M9plWYTAT79rQTBLSoMJCxCU2BiRCUaVeTyN17V5+qqc5Lo2u5nNWsf1qYSLmy2sF+JZA+L4o+yRbEjGUp3F3rQ01BloTizzB2rM0yA4H23cWiO1O2nm7Rvg1yu31i8FBZ2IVE/xtsp44bSO5p+wssGdKBdydnhOq+XbVnlEamN805JnIIq7cN5AAAbSElEQVR4AezQA2JkUQAEwI5tJx3btm3btm2ba/Oma2M8wftTRyjcGD19A0MjYxNTM3MLC3NLK1NrG1s7ewdH6Pzg5Gzo4urm7sG/eXqZe/v46kPHzz8gMMiTsgWHhIaFQ8IiIqOiY6iY4FjjOEhSfEJoIpWSlJziD6lJTUunCjIsbTMhIQlZ2VRVTm4epCG/oJBqyS6KgwQUl1BtpYFlEFx5BTWisqoaAquppca419VDUA2NTdSk9GYIqSWZmhbYCuFEtMVQ89oLIBj7DmpHZz1EEtBFbQnqhjAcq6hFXT0QRGsvtasPQugfoLYNDuHuGw6m9o2M4q4bG6diJianpmdm5+bLUj9bKO9ZXFpeWaWC1lJxt60nUQGVKxub3Vvb+JPT6I7xtNcuFZBTg7vMhvJ17W3W7OP/IloaDyopV/tdnjKiPJ6WAa2Q7zBtTf7UEb45Hj05nT87D7i4PI+8sr93Xw+33INSyvZwpgwK8rtyfUTZEvXR+viJyeDI02ce/CnpeeLBixmjlmrcVvPjlGng5SiUUfPqNWV60+HO/3ubPP3ufQNun4/t3XdAltX///EX2tSvDYGGvLCPuBUTQ3HhRDNSXBhFjjLMiXtiJRIpmnvjnrj3VtxWVCaa5cyWe4u5zT6/1e4657rOue/rvm6x3+Pv5lOB2zPeJ28qzTSdGQ1dsyaPoXtmzylUE/cW39k0EfN0Glwx9226K6HMvHupVfJ8mlgwAK4qUZluGzN/YT/cIxZRruNiuGHJUtpg2fI43AtGUW7FILhnZSvaIGxVm0R42+pUyoQ0htvWTKQtOg3xcqrE2pTpuBZ2mBRJW7RcCW9aR5kiBWGHWb0iaZO3C8Jr5kZRIvd62CBlQwvaZ8zDafCOiJaU6O0DG4zaSHulb4JXbKbEliC4b+t82q/wejjPtyPFtiXDbbHNA+gJU1+F4yZTrOUSuMvv8dH0kKQaQXDW3EgKpfvCXQ9spwf9zw44aiKFpgyEm+bupGflLwUHfRRAkfiP4Z52S8PpaYHD4Jy3KfQJ3BL0Tgad8Km3f0N9FgR3rPyAGiKnFNn26POvf/7OzF3rXv+iUe3dmWFU1RwO6UyRFiPghoJ7qCqk+oLH2g9ekoy/8vfNWej1eh2pZG8onDAonCLT4boqT2dSTb4v9+X0h0yV4ZU+GENrC5rAAV9RJFciXBUxdCqVxLz/dSysDNxXLIxW9ifC46IzKBA+GK7q35JK0iuMgJqPlh6ghb2eL3WQIs/DRavzhFDFofZNoO7wvMo01wueto0CHY/AJT6vZFJFmbXQ1OTBvjT1DTzraBQFesIldTZSRflv4QL/XU1p5gkvHMk4UAUu6PEZVXR8PBmuWVM8nnJjxsJjfF7e1YoClaBvR/MOVNChfkm47rvvKffDGnjEj7vmlKNQi3bQ1WTfMarYFge3BB+Pp9QK2C4x7pNmAZR5BLo29aWKE3XgtrXVKVUB9hpcqQ9NJM2Anrm9qWLCNz6wQWxuynQ4Cfv4dVsVTlPNEqGj3fIoKog/VRL2CK1Pmd3RsEm7z0/QyuN6iykHqKJeWUf2ICfblOn0MVoKHwR1T56hinJPwFaF4ikW1h/uS6t0jAoOQdmPe6gi5pM02GycrNRZf7jpXNepVHJefTElhgriL9SE/S7GK/3n66t7iWri41QXU36gig8+hEcspFhqSbhhzXPxVHQ5GCq+a0kVTXclw0O+odheuK79ASqbCAWD8iiFH3O8HzynOYVCPoKLfPdSwyRYWvJpJlXszAtPCq1t759kvttNHWVh5eAJqnh2LTxsTRZFkgrAFQ9FUse0ozDXYz5VZM08B49bGUaRbdDX5EXqGR8KM7HvBlBB4OQccMJxiiRdga5ZbampNkwkPn6MKn56A844V4Qie6Ap7jJ1XYVc64mqiymOORlGgcia0NK9qK07+aErqKDjQ629f7JrEXSMSqC+9yD1Ka2FXC0JbUGhEXCV7wQKHFsCdQcD6IJukGkwhpbKnISu1ZP2j884sXPeUbjmGkWe0L9BrakuZGrQyu7r0LXm+Wn8VYu3DsMVTS679wlhZSStdCocRoPvIJHYh+amPbYEmkK7ZvBPUwslwgW7KFCtAdScjKG58M7D8YLOB/McmTQT/+II6HqgPP+ubSnoC25Fgf9AScPRNBVTfDCA73RCvRxJE8U+hK6Bc0QL67Ns2sOtBxVpfWgmsvkIQDdU3kBK5X8wCJqOvJVAkXzfpEBT2g0aJRyFtYgFapuQNoVKqHETmhKHVadMnxLQVJ8CF2HtLZoodx2wNdStAdD1YUua2fkGtMQF0KgRLHWjiau+sDVUpzbQVbMzLQR28YWOZ11aqW2Qj1LLhgB2hsrqGgRN0UqrfvmHRUDdPhqFvQxzEbkolfso7AwVdTsHNCVe3E01Z4ZDWcMONHrH5V1U9joHO0PtfwG6TtamsvgXn4Kq8jS6AFN571AibCZgY6jKtaCrwSMdqCO1QjTU1KDRs0EwEXSGEuG1YGOoaeeDoan1uqLUdaIblNSl0bSRMNGVEkVLwc5Q+6FrSF+64qc4KLiZSqOTkBuZj2KpJ2FrqInQk3MBXRR5ez2stdRbWkMeit35DvaG6g0dOYp3oOvyL46Alef1ljlzBlAoYBO8GMpvXgbd81JdWBhKo7ch9RnF3oMXQ/28nTLhb3W/QCWPDoKpKzQ6EwGJuxR7GN4LNeAWJX77IFa3E1WkVvKBiRx3aFCuNSTaUmgbvBbqyMN3KLNxCP6f5HeaUkX6QcgFl6NBiyN6v6GarvdWqIj35AlGf94Ev/NVvHu8IA4yicVoEHIUYsUokvQkvBSqezHKhF2dhb/6aD9VBPQaqXPRfgaECiRRZBG8E6rgHErN74F/+vgSVWTtClL/YHRF5655ZT+vhKryWCZl0ttDwP+hCVTxbBvlD1KbIDIiiiIfwhuhxrWiTKZ0V6vk5EiqaFQRRhuUN3OfpsgpeCFU/zKUif9lNeTGfkkVRSsZW79CoyEQaDKVAq2qOB/q6NUQ148IPzGbKmYfdDnUqxR5Ak6Hiq7UgjJTH4yAlZR1U6jiyxkuhnqUAn3POR2q20bKVPvqJlSsfpQqAurHWn2PGgWjI1Mkv6EcDdXjfyg1MS9Ula1HFcfmBZn/1HsVRrUoUM7P0VA7TBZTmtWFjqGXqaL8XfzuFI16qH7lnYeDofyuHaPU09DU73g1qnhmIH51iwZJL8OgdX7J1WDHQtXqQxN9xyVDU8M5VJH5SRUAQD0aBOyAwWtJNHoRjoUa0JsWin0HXWu/p4rLFyWrBxMOq30u5UqnQq354g4thZ1arX/O7ABV5M6J6DE0SPdTmxuS38+ZUEHvHaCS1HUp0HTkdiAVBCzaFKJ0Q/PmDRpNhiOhnuxEZX1rQVfcKqoISFLaKt5KgeFOhBpclVq2zYCuWtvpmqfVTnOMjvZ8qCWPTaOmwC+OQFNwz3x0RXsY7KXR+/B0qMRhlymTL4MyGV1DoamBS0N0X4bBGRqd93SoAmUok/RoycMPh1Om2ZP2H4Mx6ngY/9RkNI1e82ioqrF7TRZTugPAG/vlIWUX1/UXYORawmBWGA0yj3g01LJllLk8LBG/KnFJfSnB/tHxk2HwGo06JXoylFzCf9Pwh9CZxygz+7qHH+F+U+2dkgvwSqg9c/E3sZMDKFO7AHR92JaqAmvCYCaNKjkbSn6YIm4BZUKax0JTxOLqVNM3GQYP0+i686GWzTsHkVF9KTP6oSbQtH5RNaqYDKOqNCrgdKg7D7eDROueHSnTZxN0/TiHCh6AUW4aJFV0ONT7L8PESJNJgRMHQNcDZ2ll9GEYFaHBtB2Ohjq7CRZOzqdM+KIj0HTu8SyaexsC1WmQddjBUKP/EwprddJNbmdB10iL044HBsNoKg3Sgx0LFaI6WTN6Q1HK1OsOXWNX0czsdjBoSoPdrZ0KtWIslK3+JYwyj1aErlonaKKMH/4pyXuhNg6Bliu5KFO0cWtourk0hHL18U8TvBVqSuNo6Bp3mTK7D0JX9z6UG4p/uOyd71FhV0vCBVU+nUaZbR9Bk08eSlWbi7/LT4MMz//Uc32yZsPOlIlcHgtNi6tRZrs//mY2DVrk8HCo2W/CDcPbUmb04+eg50p+yizF3xyiQcgIz4b6fgnc8wilmrWBngblKRFWCn/1Po2ueDbUHrhpHk3cKggtN3NRIt0Hf1GcRnXg6TVz90yimYRPlkBH8NuUqIG/OE+jntk6FHm5UAQ0hO6kWORc/OkijfJk81Bkrtegockhis3Hn4bTqEy2D8WQPEehrt92in2LPzSkUccq2T4UmdozGMpWL6NQn3P43ZIEGs3IhqGMipSAsrKBVn+SiehDo67ZKFRYrkzKLHgDqmZSaLc/freHRp2zUaikKwN3UiZ86REoeoZChfC70zSq3iT7hGJdoMR2ylRXnfV9Mz9F0kPxm7UUuJKNQj1psVfTaSWUrIw3/8FXshqN/pvNQgGxjwTo3b42es78GYnk8jTqGwELZXX2A+d6PhRwpQxlpp2+CWv9sigQNsNsWHx8Tljor/M7qn+SA6GA6+mU2d0e1gpR5F38ZhMFvoCFgXdoUPpDiD1JR0KhyulplPmfK7AS9CwFOqbhV7HTaJTlA3PBB4SHvFZDpK5DoYAfOydRImBpKCw8aX4f7zOXBgduoUhqYx+vhgLKtqXMZ9GwkIsCC8zOBbMTLBSgWLk3vRsKQdObUmJnIsytNB2JWzGcRknDYaEzJT7r4dVQQL+3qlFsMSy8RIFxptMhyrg+AjbgagNHQxnN3UmhH3xg7gmanSafTpHusFCyGWWmfNPa0VBGJc5SpBvMpWTQ6EY//CpHDAXaRsBCismYmT5DvBsK54SXJd+FhUUUaGN27I5sD0t5b1FqW05HQxk9QKO2sPBCAI2O4zelKDI1GtZe/Z4ygb3aeTXUSRpdgpVnzc7nR5SmyFtQ4LfvBmWy9jXxYqiyNHoWVhrTKHM9fvMgRSLjoGLk7SjKbP85u4V6IZ5GpfAbn/wUOXsOSuK2UWrPgOwVKvSE6av05ynUBYpG9aFM1O2bObNRKDSn0Rb8zrcjhWpBkf/5jpQZ/2JYNgr1hPnf9hCFWtSEqqN5wiiTlI1CjQihQb7W+J1PUwptT4OyK/Mpl21C+Y+nQdII/GEYxVYkQ93XrbJ/KOw3H84WUZ5ieaDh5qep2T7UcYt7VKXibXlj/KnCSdk8VCEa7cNfnKItpdD9TPYO1d9qD8E3ixK9dJ+4mUoTt+Cmxz0balCI1QvM1ynzqB+0HH79DqVyw02vezbUmnyWy5iNKFN7DfTMnUOZ+Hql4IajpwI9Gyq6FQ3S8Tf9qlOm1RVoevJ7kzFHR+Gi1j0nkJ4N5V+EBtXxd8PjKVPtPWjyn7eMMvk2LIGR+sU9T4ZCPRpMNU7dkus8EprWPx9OmfEHoe2FBaQDoVrSIMNkZLVRRnvo+mgBpb7MCS07igfSW6HC8E9V+tLEMzWha8h2Km9rmfE3bhY4GCoLBhVv0MS0SinQ5G+yVtxxUhOoebU86VSoQzSYCqNSqTRz4jp0NTAZldxnFBTk7U06EEp+Yqy6fIlPLlcP6Bo7n25cSEyrUY0Ohmq9mwbjFfbfjTq8uwO63txNmagv2sFE0PT8pJOhDi+jQS4YFQykpQk9U6Ap+pVUk2c5/CAz/APS2VBHBQF2wmgeVfQdAl1H98ZTpvTHEKpZmHQ61AzFE4jv6z/KpqpUW0rtfAEGN/+bQOdDtafR5zCokkVFAZNjoetiK8pELm2Hv3tiN+mFUK+ojSjrQXVZXZOh6fDrCZSpPj0If3qtDOmVUI3UHjS5Rh2XfoauglUp9exd/Oboc2GUifFoqKDSNBoBg6pU5+Lj1XXPUGpOQQBI6TmFMhlfV/BoqJF3aJCagn8614eaqj3sC03JXTMok1AjDaPSKVPt+BHs82ioV9X+ttgYamu6ORSafE0O683+jFK9B3h8c+G42uPqJ+mKtmVdX1vSULoE4PFQLWm0DgaL6ZKkRgWha1Npasl6PBSeD1XyjtoPvYfpopjT0dDk/59jVBZQPAfgQKjFiu87V6VBUu8TVDF+HHTtaN6Ban6aATgSahuNiiWqfYW+cfOLcKoo0x+6ZqyigspDAGdCxVZTe5DR7wQNOjQAXv6JKkLylISug+NpYUpjHzgVaqbih/9+N2iQtQQAvu1LFVMaL4Gm6G/yx1Mu4JEdgGOhvqfRFF8YjAykQelkAECw4rfeE92gq84YhTErjoQqkKT4ssKPYTT4DL+JrR9AFSu2QsfI29Mok34dcDLUHAoMhdEV86An51NFmMYCTOKuLMq0+DQajoZqGEWjzBwwGkujvfiLUSeoYtnjoVBy9yVKNWoIOBtqLwVWqd4feQR/tcTw/qTyrGSjgc9Qql5ZwOFQDQMp8DUEhtDoquGcdAhV7J8Lc2lPx1Cm6YOJcDxUVQp07AeBn+Wh5G/kyhdg2pmey8tPmZinDwOOhzoZT4H6ENmqdhkwsVArqsh4LxkSBUxi7ykIOB8q8QMKxMcph9oCgSWfTKOKM8Mhstpk6+r7u4A3Qu2iyCEoh1oAocF7qKSq8bdH63VFKdN0ZhC8EuqpohQZon4RpB4kuhejioSvquBv6vSlTKRhe92xUF9SZGMyhEZG0WCjPyQSNx+ginILE9UePd/5BuClUJ/rTUpIO0aDCWlmL62MoQnje6ftvgikzNmfAW+FuhJJkXJNIOa/kQZhDWFi7k6qCDh1VHJs7nc3JgXDa6HaXabQgzqnzbgWpn4+SxVFG4+8W54yHYqPBLwW6lxt2RxOrSE+n1uek86gigmU+mwr4MVQeyn2M6SeptEvsLKmeADdsLEb4M1Qb1HsS8iNo9GlRI2XVvTlq5ACLQ/ZHGoSxcIHQG4rjcbEQkGtynRF2C+rvXy76iFKHIeJkZk02gQVPutSqS13AeiaUdrWUI0pUS4FJiKa0WgR1My62oFapi6ErnZLw2ljqIgvKJFUF6Yu0KhIIhSdzE11LT69CU3nro0mbQy1ZCdlJsPcOzQKGABlX++momcqQteTzUg7Qw28RJmNKTD3RjyNGkNd61daUMGZupCTr1fYGqp9PspE5YSF6Pw0etbup25/eC8RmnyPV6OtoW42p9w1WKpKo4A4aCl7iGbCHz4CTRGFfiBtDXU3nXKFYW0oBepDT8SD+U0nJela2Ym0NVTsczTxUjCsVYyi0Y00aPKtkUCh8muha/WjSbQ1VMpDx2iiaQMoSGxLga7QVnAPjZbt84Omm48VpYk22qFaTx9PM9W2QklPClQOhb5XL/Hvop5fD11PlKOZ+JM6ob4HfGem01SHV2GkvAHPN+GC0F1N+RcrZkDXa7lprugRrVADFh2juYD2UNWSAn384Yr1z/+R/VIJ6HrqVBIt5NZ67SAyilbegbLNFHkPrpl7/NKEzMysiddDocn/mym0dB0yT9IVj0Pd4XwUaFoFruo3a0draOvWh9a+l+evQ30hF6HjKkWOw0lxK6gg4QVIdaW2aqOgJS6MAoEvwDGxvaKoIOZjyL1OXaO/g6bclMyjdobfvglUUTonTDxDTWcbQtddCvWEIz6+RBVZ8/xg5lnq2dkP+l6iSPgMeF7eW1TRoX4sTFU5QC2n4Yo6FEqvAg/z7RJOFV/2gIXBgdQwdS1cEnSGQnvgUcmbf7BtI7AONezJARfVpdgGeNDd76mi6CvRsHabyjouhOtWUSj+a3hKzc5UEfLcUajoRFUvloQb8nagUGAbeMTNGjFUceg7KNkRQzVFPoZ7llIsYSs8YGErqih3MRFqvqWSjHl+cFPaAYrdmAG7FThEFZkar3//QgWpp33hvvaUmLASthpROIkq5gyEMp+mtHSsxlOwxX5KjBkC+7SukEoVxT6Ehja0cmJSO9ikZD5KhFyDXa6foIqMXUHQ8QtNha8a5Qf7tKdUfT/YYeuXVDGmy3po8U2lXNL2VwbDXnko1bIi9BkvqXto/ss7lIls9klcIuzm04dS+b6Ge4InTaGK7SWgK7EIhcrN2VwTHjE4hnJzZsEND2ynimPXzkHbWgqMHjbABx7TniaOLYarPtqvuJiyAy74gALL4VGf0kzLlXBFji+iqGJFTrjiLkW+g2ftpamdcdCV1vMYVWwcAtd8QIHK5+BZ/itoKnJiWeiIrdCUKlI3pMA1QyjyKTwt+iVaqLcwDYq2Np+iOLxkFlwUPJsCUTXhcb7NaOXA5O7+sFTx2pkkKjnU3+7vqr3hgCMv0Vq54rXaQS507KTcCVQzfmEiXDZXfoLR+d9TEqnFjh8cKBgwuL7741umhlDRNPWRXeqr/aWT4QjfMlQUeKxt4eP7rv/8WtyMGXFtai1+ZfL+EzHUUHUg3FGJQl/DIcG3qCnp/6C2tqXglrIdKNKqCZyS2IWelzE9GW5pl59C78BBm6NoM8EwUvcE5aZQejCcVOoHetKtAXBXc4q1h7Nif6LHnC0Bt22gWKcIOK1nFD3i2LxQuG0XxcJeg/O2dqL9AurvgPsuhlBsL7zB/3QgbbZiBmwwNIRiN9bAO/Kuop36DoEdzlNmKLzmejrtUr1CCuywiDI/wYuiKxygLUKGwQ5L5lBmwix41eHGTWmHafPgvgGXKFUH3tbvfDnaofMRuKlQJqWW4x6QMq4ebTC7LtwR24hynfxxb+hf/xjdV9wXLnuzKeVGH8U9I21Uo9F019RCEXBJ3CqaCKiLe8qRb6+eiKd72j4JfbNuh9PMO7jnhH70YKOzY2hmTDWaml8Xep7qkkpTNXBvCho0fFLhXLOn8Z+qtSrTufHdQT2K0lyu9ilQFvdIJs2dwj0tJXbwyutdK1Wqf/Xq1XdPV5r5RJu8s6Lx/1xpQQuXa+SFCt+FtQNoYQuyr7tRtBJ46D8DgmCqXZ3CHWlpgR+ysU13aC3y7O1RO/wgdLhAhVUtqGBnMLK1UqlUEl656lcHtz7lG4xf+VUpOffVSVfb5qOaUxHI5k5mUV3kshOdytSrV+9Qsb4/JFDD84nI9n7cSI87j/uB75f0rMz2uD8kF6cn7Y7DfaNQJj2m6mHcR/KWp2eE78P9JeU2PeH7ONx37paj3SKfDsZ9qN/zkbRVy7G4T/XIRfsc6BqK+1bixRO0R+br/XBfC545m+4LP/Uj7ns+82bTPTF55uJfwWdoJ7oua9Eg/HsM35JKVwTUW9wP/y6z5rXsQE27v/oI/0Z5J+VKoKqwS136++Nfa/XBPKU70FKrt2cOTsS/XOigbx/ePzucYgEHahd/cEA0fvX/hR5++YFdnzSqnT41hv9X1NTZ9eY8fK3b1hxN4B3/G75qNnu+AKpoAAAAAElFTkSuQmCC"},28453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>a});var t=s(96540);const i={},r=t.createContext(i);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5812764a.d1fca166.js b/assets/js/5812764a.d1fca166.js deleted file mode 100644 index 6b69cf810..000000000 --- a/assets/js/5812764a.d1fca166.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8223],{44172:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>f,contentTitle:()=>j,default:()=>y,frontMatter:()=>x,metadata:()=>m,toc:()=>g});var t=s(74848),i=s(28453),r=s(85215),o=s(82496),a=s(24033),c=s(50363);s(96540);const l={tools:[{type:"function",function:{name:"get_current_weather",description:"Get the current weather in a given location",parameters:{type:"object",properties:{location:{type:"string",description:"The city and state, e.g. San Francisco, CA"},unit:{type:"string",enum:["celsius","fahrenheit"]}},required:["location"]}}}],function_handler:e=>e.map((e=>{return{response:(n=e.arguments,(n=n.toLowerCase()).includes("tokyo")?JSON.stringify({location:n,temperature:"10",unit:"celsius"}):n.includes("san francisco")?JSON.stringify({location:n,temperature:"72",unit:"fahrenheit"}):JSON.stringify({location:n,temperature:"22",unit:"celsius"}))};var n}))};function d(){return(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},introMessage:{text:"Try asking about the weather in a certain location."},textInput:{placeholder:{text:"Weather in Tokyo today"}},directConnection:{openAI:{key:"placeholder key",chat:l}}})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},introMessage:{text:"Try asking about the weather in a certain location."},textInput:{placeholder:{text:"Weather in Tokyo today"}},directConnection:{openAI:{chat:l}}})})]})}var A=s(15781),h=s(78478),u=s(19365),p=s(11470);const x={sidebar_position:1},j="OpenAI",m={id:"docs/directConnection/OpenAI",title:"OpenAI",description:"Properties used to connect to OpenAI.",source:"@site/docs/docs/directConnection/OpenAI.mdx",sourceDirName:"docs/directConnection",slug:"/docs/directConnection/OpenAI",permalink:"/docs/directConnection/OpenAI",draft:!1,unlisted:!1,editUrl:"https://github.com/OvidijusParsiunas/deep-chat/tree/main/website/docs/docs/directConnection/OpenAI.mdx",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"docs",previous:{title:"Direct Connection",permalink:"/docs/directConnection/"},next:{title:"HuggingFace",permalink:"/docs/directConnection/HuggingFace"}},f={},g=[{value:"openAI",id:"openAI",level:3},{value:"Service Types",id:"service-types",level:2},{value:"Chat",id:"Chat",level:3},{value:"Basic Example",id:"basic-example",level:4},{value:"Vision Example",id:"vision-example",level:4},{value:"Assistant",id:"Assistant",level:3},{value:"NewAssistant",id:"NewAssistant",level:4},{value:"Images",id:"Images",level:3},{value:"Example",id:"example",level:4},{value:"TextToSpeech",id:"TextToSpeech",level:3},{value:"Example",id:"example-1",level:4},{value:"SpeechToText",id:"SpeechToText",level:3},{value:"Example",id:"example-2",level:4},{value:"Functions",id:"Functions",level:2},{value:"Chat Functions",id:"chat-functions",level:3},{value:"Tools",id:"Tools",level:4},{value:"FunctionHandler",id:"FunctionHandler",level:4},{value:"Assistant Functions",id:"assistant-functions",level:3},{value:"Shared Types",id:"shared-types",level:2},{value:"FunctionsDetails",id:"FunctionsDetails",level:3}];function b(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{}),"\n","\n",(0,t.jsxs)(n.h1,{id:"openai",children:[(0,t.jsx)("img",{src:r.A,className:"adaptive-logo-filter",width:"40",style:{float:"left",marginRight:"10px",marginTop:"9px"}}),(0,t.jsx)("span",{className:"direct-service-title",children:"OpenAI"})]}),"\n",(0,t.jsxs)(n.p,{children:["Properties used to connect to ",(0,t.jsx)(n.a,{href:"https://openai.com/blog/openai-api",children:"OpenAI"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"openAI",children:(0,t.jsx)(n.code,{children:"openAI"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: {",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#Chat",children:(0,t.jsx)(n.code,{children:"chat?: Chat"})}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#Assistant",children:(0,t.jsx)(n.code,{children:"assistant?: Assistant"})}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#Images",children:(0,t.jsx)(n.code,{children:"images?: Images"})}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#TextToSpeech",children:(0,t.jsx)(n.code,{children:"textToSpeech?: TextToSpeech"})}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#SpeechToText",children:(0,t.jsx)(n.code,{children:"speechToText?: SpeechToText"})})," ",(0,t.jsx)("br",{}),"\n}"]}),"\n",(0,t.jsxs)(n.li,{children:["Default: ",(0,t.jsx)(n.em,{children:"{chat: true}"})]}),"\n"]}),"\n","\n","\n",(0,t.jsx)(h.A,{children:()=>s(61886).readdAutoNavShadowToggle()}),"\n",(0,t.jsx)(n.h2,{id:"service-types",children:"Service Types"}),"\n",(0,t.jsx)(n.h3,{id:"Chat",children:(0,t.jsx)(n.code,{children:"Chat"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: ",(0,t.jsx)(n.code,{children:"true"})," | {",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"system_prompt?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"model?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"max_tokens?: number"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"temperature?: number"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"top_p?: number"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#chat-functions",children:(0,t.jsx)(n.code,{children:"ChatFunctions"})})," ",(0,t.jsx)("br",{}),"\n}"]}),"\n",(0,t.jsxs)(n.li,{children:["Default: ",(0,t.jsx)(n.em,{children:'{system_prompt: "You are a helpful assistant.", model: "gpt-3.5-turbo"}'})]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Connect to Open AI's ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/chat",children:(0,t.jsx)(n.code,{children:"chat"})})," API. You can set this property to ",(0,t.jsx)(n.em,{children:"true"})," or configure it using an object: ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"system_prompt"})," is used to set the ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/chat/create",children:(0,t.jsx)(n.em,{children:'"system"'})})," message for the conversation context. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"model"})," is the name of the model to be used by the API. Check ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/models/model-endpoint-compatibility",children:"/v1/chat/completions"})," for more. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"max_tokens"})," the maximum number of tokens to generate in the chat. Check ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/tokenizer",children:"tokenizer"})," for more info. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"temperature"})," is used for sampling; between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"top_p"})," is an alternative to sampling with temperature, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens\ncomprising the top 10% probability mass are considered. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.a,{href:"#chat-functions",children:(0,t.jsx)(n.code,{children:"ChatFunctions"})})," encompasses properties used for ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/guides/function-calling",children:"function calling"}),". ",(0,t.jsx)("br",{})]}),"\n",(0,t.jsx)(n.h4,{id:"basic-example",children:"Basic Example"}),"\n",(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{key:"placeholder key",chat:{max_tokens:2e3,system_prompt:"Assist me with anything you can"}}}})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{chat:{max_tokens:2e3,system_prompt:"Assist me with anything you can"}}}})})]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\n'})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\x3c!-- This example is for Vanilla JS and should be tailored to your framework (see Examples) --\x3e\n\n\n'})})})]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h4,{id:"vision-example",children:"Vision Example"}),"\n",(0,t.jsxs)(n.p,{children:["If ",(0,t.jsx)(n.code,{children:"max_tokens"})," is not set, the component sets it to ",(0,t.jsx)(n.em,{children:"300"})," as otherwise the API does not send a full response."]}),"\n",(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{key:"placeholder key",chat:{model:"gpt-4-vision-preview"}}},images:!0,camera:!0,textInput:{styles:{container:{width:"77%"}}}})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{chat:{model:"gpt-4-vision-preview"}}},images:!0,camera:!0,textInput:{styles:{container:{width:"77%"}}}})})]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\n'})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\x3c!-- This example is for Vanilla JS and should be tailored to your framework (see Examples) --\x3e\n\n\n'})})})]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h3,{id:"Assistant",children:(0,t.jsx)(n.code,{children:"Assistant"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: ",(0,t.jsx)(n.code,{children:"true"})," | {",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"assistant_id?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"thread_id?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"load_thread_history?: boolean"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#NewAssistant",children:(0,t.jsx)(n.code,{children:"new_assistant?: NewAssistant"})}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#assistant-functions",children:(0,t.jsx)(n.code,{children:"function_handler?: AssistantFunctionHandler"})})," ",(0,t.jsx)("br",{}),"\n}"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Connect to your Open AI ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/assistants/overview",children:(0,t.jsx)(n.code,{children:"assistant"})}),".\nWhen set to ",(0,t.jsx)(n.code,{children:"true"})," or the ",(0,t.jsx)(n.code,{children:"assistant_id"})," is not defined, Deep Chat will automatically create a new assistant when the user sends the first message. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"assistant_id"})," is the id of your assistant. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"thread_id"})," allows you to communicate in the context of an already existing conversation/",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/threads",children:"thread"}),". ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"load_thread_history"})," toggles a preload of the previous conversation/",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/threads",children:"thread"})," messages on chat is initialisation. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"new_assistant"})," defines the details for the newly created assistant. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"function_handler"})," is the actual function used to handle the model's function response. Please navigate to ",(0,t.jsx)(n.a,{href:"#assistant-functions",children:"Assistant Functions"})," for more info. ",(0,t.jsx)("br",{})]}),"\n",(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{key:"placeholder key",assistant:{}}}})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{assistant:{}}}})})]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\n'})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\x3c!-- This example is for Vanilla JS and should be tailored to your framework (see Examples) --\x3e\n\n\n'})})})]}),"\n",(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsxs)(n.p,{children:["Returned ",(0,t.jsx)(n.a,{href:"/docs/messages#MessageContent",children:"MessageContent"})," contains a hidden property called ",(0,t.jsx)(n.code,{children:"_sessionId"})," which\nstores the thread id and allows conversation to continue on a new session."]})}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h4,{id:"NewAssistant",children:(0,t.jsx)(n.code,{children:"NewAssistant"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Type: {",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"model?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"name?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"description?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"instructions?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"fileIds?: string[]"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"tools?"}),": { ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"type?"}),": ",(0,t.jsx)(n.code,{children:'"code_interpreter"'})," | ",(0,t.jsx)(n.code,{children:'"retrieval"'})," | ",(0,t.jsx)(n.code,{children:'"function"'}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"function?"}),": {",(0,t.jsx)(n.code,{children:"name: string"}),", ",(0,t.jsx)(n.code,{children:"description?: string"}),", ",(0,t.jsx)(n.code,{children:"parameters?: object"}),"} ",(0,t.jsx)("br",{}),"\n}}"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Default: ",(0,t.jsx)(n.em,{children:'{model: "gpt-4"}'})]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["When ",(0,t.jsx)(n.code,{children:"assistant_id"})," is not used, this object is used to define the details of the new assistant that will be created by Deep Chat when\nthe user sends a new message. This object follows the ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/assistants/createAssistant",children:"Open AI Create Asssistant API"}),". ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"model"})," is the name of the model to be used by the API. Check the ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/models/overview",children:"model overview"})," for more. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"name"})," and ",(0,t.jsx)(n.code,{children:"description"})," are used to describe the new assistant. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"instructions"})," direct the assistant's behaviour. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"fileIds"})," is an array of file ids that the new assistant has access to. Log into OpenAI and check ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/files",children:"files"}),". ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"tools"})," is an array of objects that describe the tools the assistant will have access to.\nWhen using the ",(0,t.jsx)(n.code,{children:'"function"'})," tool, you will need to also define the ",(0,t.jsx)(n.code,{children:"function"})," object. ",(0,t.jsx)("br",{})]}),"\n",(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{key:"placeholder key",assistant:{new_assistant:{name:"test model",tools:[{type:"code_interpreter"}]}}}},mixedFiles:!0})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{assistant:{new_assistant:{name:"test model",tools:[{type:"code_interpreter"}]}}}},mixedFiles:!0})})]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\n'})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\x3c!-- This example is for Vanilla JS and should be tailored to your framework (see Examples) --\x3e\n\n\n'})})})]}),"\n",(0,t.jsx)(n.admonition,{type:"info",children:(0,t.jsxs)(n.p,{children:["Access the newly created ",(0,t.jsx)(n.code,{children:"assistant_id"})," via ",(0,t.jsx)(n.code,{children:"chatElementRef._activeService.rawBody.assistant_id"}),"."]})}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h3,{id:"Images",children:(0,t.jsx)(n.code,{children:"Images"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: ",(0,t.jsx)(n.code,{children:"true"})," | {",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"model?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"n?: number"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"size?:"})," ",(0,t.jsx)(n.code,{children:'"256x256"'})," | ",(0,t.jsx)(n.code,{children:'"512x512"'})," | ",(0,t.jsx)(n.code,{children:'"1024x1024"'}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"response_format?:"})," ",(0,t.jsx)(n.code,{children:'"url"'})," | ",(0,t.jsx)(n.code,{children:'"b64_json"'}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"user?: number"})," ",(0,t.jsx)("br",{}),"\n}"]}),"\n",(0,t.jsxs)(n.li,{children:["Default: ",(0,t.jsx)(n.em,{children:'{size: "1024x1024"}'})]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Connect to Open AI's ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/images",children:(0,t.jsx)(n.code,{children:"Images"})})," API. You can set this property to ",(0,t.jsx)(n.em,{children:"true"})," or configure it using an object: ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"model"})," is the name of the specific model to be used by the API. Check ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/models/model-endpoint-compatibility",children:"/v1/images/generations"})," for more. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"n"})," is the number of images to generate. Ranges between 1 and 10. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"size"})," is the pixel dimensions of the generated images. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"response_format"})," is the format in which the generated images are returned. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"user"})," is a unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. More info can be found ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/guides/safety-best-practices/end-user-ids",children:(0,t.jsx)(n.code,{children:"here"})}),". ",(0,t.jsx)("br",{})]}),"\n",(0,t.jsx)(n.p,{children:"You can automatically call any of the following three APIs by combining different inputs:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/images/create",children:"Create Image"})," - Send text."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/images/create-variation",children:"Create Image Variation"})," - Upload and send an image with no text."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/images/create-edit",children:"Create Image Edit"})," - Upload an image and add text. You can also upload a second image to be used as a ",(0,t.jsx)(n.em,{children:"mask"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h4,{id:"example",children:"Example"}),"\n",(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{key:"placeholder key",images:{n:1,size:"1024x1024",response_format:"url"}}}})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{images:{n:1,size:"1024x1024",response_format:"url"}}}})})]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\n'})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\x3c!-- This example is for Vanilla JS and should be tailored to your framework (see Examples) --\x3e\n\n\n'})})})]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h3,{id:"TextToSpeech",children:(0,t.jsx)(n.code,{children:"TextToSpeech"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: ",(0,t.jsx)(n.code,{children:"true"})," | { ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"model?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"voice?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"speed?: number"})," ",(0,t.jsx)("br",{}),"\n}"]}),"\n",(0,t.jsxs)(n.li,{children:["Default: ",(0,t.jsx)(n.em,{children:'{model: "tts-1", voice: "alloy", speed: 1}'})]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Connect to Open AI's ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/guides/text-to-speech",children:(0,t.jsx)(n.code,{children:"Text To Speech"})})," API.\nYou can set this property to ",(0,t.jsx)(n.em,{children:"true"})," or ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/audio/createSpeech",children:"configure"})," it using an object: ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"model"})," defines the target model used by the API. Check ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/models/model-endpoint-compatibility",children:"/v1/audio/speech"})," for more. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"voice"})," is the name of the voice used in the generated audio. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"speed"})," defines speed of the generated audio. It accepts a value between 0.25 and 4.0."]}),"\n",(0,t.jsx)(n.h4,{id:"example-1",children:"Example"}),"\n",(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{key:"placeholder key",textToSpeech:{voice:"echo"}}}})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{textToSpeech:{voice:"echo"}}}})})]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\n'})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\x3c!-- This example is for Vanilla JS and should be tailored to your framework (see Examples) --\x3e\n\n\n'})})})]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h3,{id:"SpeechToText",children:(0,t.jsx)(n.code,{children:"SpeechToText"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: ",(0,t.jsx)(n.code,{children:"true"})," | { ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:'model?: "whisper-1"'}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"temperature?: number"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"language?: string"}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"type?:"})," ",(0,t.jsx)(n.code,{children:'"transcription" | "translation"'})," ",(0,t.jsx)("br",{}),"\n}"]}),"\n",(0,t.jsxs)(n.li,{children:["Default: ",(0,t.jsx)(n.em,{children:'{model: "whisper-1", type: "transcription"}'})]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Connect to Open AI's ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/guides/speech-to-text",children:(0,t.jsx)(n.code,{children:"Speech To Text"})})," API.\nYou can set this property to ",(0,t.jsx)(n.em,{children:"true"})," or ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/audio/createTranscription",children:"configure"})," it using an object: ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"model"})," is the name of the model to use. ",(0,t.jsx)(n.em,{children:'"whisper-1"'})," is currently the only one available. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"temperature"})," is used for sampling; between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"language"})," is the language used the input audio. Supplying the input language in ",(0,t.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes",children:(0,t.jsx)(n.em,{children:"ISO-639-1"})})," format will improve accuracy and latency. (Only used for ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/audio/create",children:(0,t.jsx)(n.em,{children:"transcription"})})," based API). ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"type"})," is used to toggle between the ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/audio/create",children:(0,t.jsx)(n.em,{children:"transcription"})})," and the ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/audio/create",children:(0,t.jsx)(n.em,{children:"translation"})})," APIs.\nNote that ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/api-reference/audio/create",children:(0,t.jsx)(n.em,{children:"translation"})})," can only attempt to translate audio into ",(0,t.jsx)(n.em,{children:"English"}),"."]}),"\n",(0,t.jsx)(n.h4,{id:"example-2",children:"Example"}),"\n",(0,t.jsxs)(o.A,{children:[(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{key:"placeholder key",speechToText:{model:"whisper-1",temperature:.3,language:"en",type:"transcription"}}}})}),(0,t.jsx)(a.A,{children:(0,t.jsx)(c.A,{style:{borderRadius:"8px"},directConnection:{openAI:{speechToText:{model:"whisper-1",temperature:.3,language:"en",type:"transcription"}}}})})]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\n'})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-html",children:'\x3c!-- This example is for Vanilla JS and should be tailored to your framework (see Examples) --\x3e\n\n\n'})})})]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h2,{id:"Functions",children:"Functions"}),"\n",(0,t.jsxs)(n.p,{children:["Examples for OpenAI's ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/guides/function-calling",children:"Function Calling"})," features:"]}),"\n",(0,t.jsx)(n.h3,{id:"chat-functions",children:(0,t.jsx)(n.code,{children:"Chat Functions"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: {",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#Tools",children:(0,t.jsx)(n.code,{children:"tools: Tools"})}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"tool_choice?:"})," ",(0,t.jsx)(n.code,{children:'"auto"'})," | ",(0,t.jsx)(n.code,{children:'{type: "function", function: {name: string}}'}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.a,{href:"#FunctionHandler",children:(0,t.jsx)(n.code,{children:"function_handler: FunctionHandler"})})," ",(0,t.jsx)("br",{}),"\n}"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Configure the chat to call your functions via the ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/guides/function-calling",children:"OpenAI Function calling API"}),". ",(0,t.jsx)("br",{}),"\nThis is particularly useful if you want the model to analyze user's requests, check whether a function should be called, extract the relevant information\nfrom their text and return it all in a standardized response for you to act on. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"tools"})," defines the functions that the model can signal to call based on the user's text. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"tool_choice"})," controls which (if any) function should be called. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"function_handler"})," is the actual function that is called with the model's instructions."]}),"\n",(0,t.jsx)(d,{}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:"// using JavaScript for a simplified example\n\nchatElementRef.directConnection = {\n openAI: {\n chat: {\n tools: [\n {\n type: 'function',\n function: {\n name: 'get_current_weather',\n description: 'Get the current weather in a given location',\n parameters: {\n type: 'object',\n properties: {\n location: {\n type: 'string',\n description: 'The city and state, e.g. San Francisco, CA',\n },\n unit: {type: 'string', enum: ['celsius', 'fahrenheit']},\n },\n required: ['location'],\n },\n },\n },\n ],\n function_handler: (functionsDetails) => {\n return functionsDetails.map((functionDetails) => {\n return {\n response: getCurrentWeather(functionDetails.arguments),\n };\n });\n },\n },\n key: 'placeholder-key',\n },\n};\n"})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:'// using JavaScript for a simplified example\n\nchatElementRef.directConnection = {\n openAI: {\n chat: {\n tools: [{\n type: "function",\n function: {\n name: "get_current_weather",\n description: "Get the current weather in a given location",\n parameters: {\n type: "object",\n properties: {\n location: {\n type: "string",\n description: "The city and state, e.g. San Francisco, CA",\n },\n unit: {type: "string", enum: ["celsius", "fahrenheit"]},\n },\n required: ["location"],\n }}}],\n function_handler: (functionsDetails) => {\n return functionsDetails.map((functionDetails) => {\n return {\n response: getCurrentWeather(functionDetails.arguments),\n };});}\n },\n key: "placeholder-key",\n },\n };\n}\n\nfunction getCurrentWeather(location) {\n location = location.toLowerCase();\n if (location.includes(\'tokyo\')) {\n return JSON.stringify({location, temperature: \'10\', unit: \'celsius\'});\n } else if (location.includes(\'san francisco\')) {\n return JSON.stringify({location, temperature: \'72\', unit: \'fahrenheit\'});\n } else {\n return JSON.stringify({location, temperature: \'22\', unit: \'celsius\'});\n }\n}\n'})})})]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h4,{id:"Tools",children:(0,t.jsx)(n.code,{children:"Tools"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: {",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:'type: "function" | "object"'}),", ",(0,t.jsx)("br",{}),"\n\xa0\xa0\xa0\xa0 ",(0,t.jsx)(n.code,{children:"function:"})," {",(0,t.jsx)(n.code,{children:"name: string"}),", ",(0,t.jsx)(n.code,{children:"description?: string"}),", ",(0,t.jsx)(n.a,{href:"https://json-schema.org/learn/miscellaneous-examples",children:(0,t.jsx)(n.code,{children:"parameters: JSONSchema"})}),"} ",(0,t.jsx)("br",{}),"\n}[]"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["An array describing tools that the model may call. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"name"})," is the name of a function. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"description"})," is used by the model to understand what the function does and when it should be called. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"parameters"})," are arguments that the function accepts defined in a ",(0,t.jsx)(n.a,{href:"https://json-schema.org/learn/miscellaneous-examples",children:"JSON Schema"})," (see example above). ",(0,t.jsx)("br",{}),"\nCheckout the following ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/docs/guides/function-calling",children:"guide"})," for more about function calling."]}),"\n",(0,t.jsx)(n.admonition,{type:"tip",children:(0,t.jsxs)(n.p,{children:["If your function accepts arguments - the ",(0,t.jsx)(n.code,{children:"type"})," property should be set to ",(0,t.jsx)(n.em,{children:'"function"'}),", otherwise use the following object ",(0,t.jsx)(n.code,{children:'{"type": "object", "properties": {}}'}),"."]})}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h4,{id:"FunctionHandler",children:(0,t.jsx)(n.code,{children:"FunctionHandler"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: (",(0,t.jsx)(n.a,{href:"#FunctionsDetails",children:(0,t.jsx)(n.code,{children:"functionsDetails: FunctionsDetails"})}),") => ",(0,t.jsx)(n.code,{children:"{response: string}[]"})," | ",(0,t.jsx)(n.code,{children:"{text: string}"})]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["The actual function that the component will call if the model wants a response from ",(0,t.jsx)(n.a,{href:"#Tools",children:"tools"})," functions. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.a,{href:"#FunctionsDetails",children:(0,t.jsx)(n.code,{children:"functionsDetails"})})," contains information about what ",(0,t.jsx)(n.a,{href:"#Tools",children:"tool"})," functions should be called. ",(0,t.jsx)("br",{}),"\nThis function should either return an array of JSONs containing a ",(0,t.jsx)(n.code,{children:"response"})," property for each ",(0,t.jsx)(n.a,{href:"#Tools",children:"tool"})," function (in the same order as in ",(0,t.jsx)(n.code,{children:"functionsDetails"}),")\nwhich will feed it back into the model to finalise a response, or return a JSON containing ",(0,t.jsx)(n.code,{children:"text"})," which will immediately display it in the chat\nand not send any details to the model."]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h3,{id:"assistant-functions",children:(0,t.jsx)(n.code,{children:"Assistant Functions"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: (",(0,t.jsx)(n.a,{href:"#FunctionsDetails",children:(0,t.jsx)(n.code,{children:"functionsDetails: FunctionsDetails"})}),") => ",(0,t.jsx)(n.code,{children:"string[]"})]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.a,{href:"#Assistant",children:(0,t.jsx)(n.code,{children:"function_handler"})})," property can be assigned with the actual function that the component will call if the model wants a response from your preconfigured assistant's functions\ninside the ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/assistants",children:"OpneAI assistants platform"}),". ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.a,{href:"#FunctionsDetails",children:(0,t.jsx)(n.code,{children:"functionsDetails"})})," contains information about what functions should be called. ",(0,t.jsx)("br",{}),"\nThis function should return an array of strings defining the response for each function described in ",(0,t.jsx)(n.code,{children:"functionDetails"})," (in the same order)\nwhich will feed it back into the assistant to finalise a response."]}),"\n",(0,t.jsxs)(n.p,{children:["Try it out live in the Deep Chat ",(0,t.jsx)(n.a,{href:"/playground",children:"Playground"}),"."]}),"\n",(0,t.jsxs)(p.A,{children:[(0,t.jsx)(u.A,{value:"js",label:"Sample code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:"// using JavaScript for a simplified example\n\nchatElementRef.directConnection = {\n openAI: {\n assistant: {\n assistant_id: 'placeholder-id',\n function_handler: (functionsDetails) => {\n return functionsDetails.map((functionDetails) => this.getCurrentWeather(functionDetails.arguments));\n },\n },\n key: 'placeholder-key',\n },\n};\n"})})}),(0,t.jsx)(u.A,{value:"py",label:"Full code",children:(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-js",children:"// using JavaScript for a simplified example\n\nchatElementRef.directConnection = {\n openAI: {\n assistant: {\n assistant_id: 'placeholder-id',\n function_handler: (functionsDetails) => {\n return functionsDetails.map((functionDetails) => this.getCurrentWeather(functionDetails.arguments));\n },\n },\n key: 'placeholder-key',\n },\n};\n\nfunction getCurrentWeather(location) {\n location = location.toLowerCase();\n if (location.includes('tokyo')) {\n return 'Good';\n } else if (location.includes('san francisco')) {\n return 'Mild';\n } else {\n return 'Very Hot';\n }\n}\n"})})})]}),"\n",(0,t.jsx)(A.A,{}),"\n",(0,t.jsx)(n.h2,{id:"shared-types",children:"Shared Types"}),"\n",(0,t.jsxs)(n.p,{children:["Types used in ",(0,t.jsx)(n.a,{href:"#Functions",children:(0,t.jsx)(n.code,{children:"Functions"})})," properties:"]}),"\n",(0,t.jsx)(n.h3,{id:"FunctionsDetails",children:(0,t.jsx)(n.code,{children:"FunctionsDetails"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Type: {",(0,t.jsx)(n.code,{children:"name: string"}),", ",(0,t.jsx)(n.code,{children:"arguments: string"}),"}[]"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Array of objects containing information about the functions that the model wants to call. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"name"})," is the name of the target function. ",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(n.code,{children:"arguments"})," is a stringified JSON containing properties based on the ",(0,t.jsx)(n.a,{href:"#Tools",children:(0,t.jsx)(n.code,{children:"parameters"})})," defined for the function."]})]})}function y(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(b,{...e})}):b(e)}},19365:(e,n,s)=>{s.d(n,{A:()=>o});s(96540);var t=s(34164);const i={tabItem:"tabItem_Ymn6"};var r=s(74848);function o(e){let{children:n,hidden:s,className:o}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,t.A)(i.tabItem,o),hidden:s,children:n})}},11470:(e,n,s)=>{s.d(n,{A:()=>v});var t=s(96540),i=s(34164),r=s(23104),o=s(56347),a=s(205),c=s(57485),l=s(31682),d=s(89466);function A(e){return t.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,t.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:s}=e;return(0,t.useMemo)((()=>{const e=n??function(e){return A(e).map((e=>{let{props:{value:n,label:s,attributes:t,default:i}}=e;return{value:n,label:s,attributes:t,default:i}}))}(s);return function(e){const n=(0,l.X)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,s])}function u(e){let{value:n,tabValues:s}=e;return s.some((e=>e.value===n))}function p(e){let{queryString:n=!1,groupId:s}=e;const i=(0,o.W6)(),r=function(e){let{queryString:n=!1,groupId:s}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!s)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return s??null}({queryString:n,groupId:s});return[(0,c.aZ)(r),(0,t.useCallback)((e=>{if(!r)return;const n=new URLSearchParams(i.location.search);n.set(r,e),i.replace({...i.location,search:n.toString()})}),[r,i])]}function x(e){const{defaultValue:n,queryString:s=!1,groupId:i}=e,r=h(e),[o,c]=(0,t.useState)((()=>function(e){let{defaultValue:n,tabValues:s}=e;if(0===s.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!u({value:n,tabValues:s}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${s.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const t=s.find((e=>e.default))??s[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:n,tabValues:r}))),[l,A]=p({queryString:s,groupId:i}),[x,j]=function(e){let{groupId:n}=e;const s=function(e){return e?`docusaurus.tab.${e}`:null}(n),[i,r]=(0,d.Dv)(s);return[i,(0,t.useCallback)((e=>{s&&r.set(e)}),[s,r])]}({groupId:i}),m=(()=>{const e=l??x;return u({value:e,tabValues:r})?e:null})();(0,a.A)((()=>{m&&c(m)}),[m]);return{selectedValue:o,selectValue:(0,t.useCallback)((e=>{if(!u({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);c(e),A(e),j(e)}),[A,j,r]),tabValues:r}}var j=s(92303);const m={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var f=s(74848);function g(e){let{className:n,block:s,selectedValue:t,selectValue:o,tabValues:a}=e;const c=[],{blockElementScrollPositionUntilNextRender:l}=(0,r.a_)(),d=e=>{const n=e.currentTarget,s=c.indexOf(n),i=a[s].value;i!==t&&(l(n),o(i))},A=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const s=c.indexOf(e.currentTarget)+1;n=c[s]??c[0];break}case"ArrowLeft":{const s=c.indexOf(e.currentTarget)-1;n=c[s]??c[c.length-1];break}}n?.focus()};return(0,f.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.A)("tabs",{"tabs--block":s},n),children:a.map((e=>{let{value:n,label:s,attributes:r}=e;return(0,f.jsx)("li",{role:"tab",tabIndex:t===n?0:-1,"aria-selected":t===n,ref:e=>c.push(e),onKeyDown:A,onClick:d,...r,className:(0,i.A)("tabs__item",m.tabItem,r?.className,{"tabs__item--active":t===n}),children:s??n},n)}))})}function b(e){let{lazy:n,children:s,selectedValue:i}=e;const r=(Array.isArray(s)?s:[s]).filter(Boolean);if(n){const e=r.find((e=>e.props.value===i));return e?(0,t.cloneElement)(e,{className:"margin-top--md"}):null}return(0,f.jsx)("div",{className:"margin-top--md",children:r.map(((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==i})))})}function y(e){const n=x(e);return(0,f.jsxs)("div",{className:(0,i.A)("tabs-container",m.tabList),children:[(0,f.jsx)(g,{...e,...n}),(0,f.jsx)(b,{...e,...n})]})}function v(e){const n=(0,j.A)();return(0,f.jsx)(y,{...e,children:A(e.children)},String(n))}},15781:(e,n,s)=>{s.d(n,{A:()=>i});s(96540);var t=s(74848);function i(){return(0,t.jsx)("div",{style:{height:"1px"}})}},61886:(e,n,s)=>{function t(e){window.scrollY>0?e.style.boxShadow="0 1px 2px 0 rgb(0 0 0 / 10%)":e.style.boxShadow="unset"}function i(){setTimeout((()=>{window.removeEventListener("scroll",window.toggleNavOnScroll);const e=document.getElementsByClassName("navbar--fixed-top");if(e[0]){const n=e[0];t(n),window.toggleNavOnScroll=t.bind(this,n),window.addEventListener("scroll",window.toggleNavOnScroll)}}),2)}function r(){setTimeout((()=>{const e=document.querySelectorAll(".homepage > body > #__docusaurus > nav")?.[0];try{e.classList.add("fade-in")}catch(n){console.error(n),console.log("element was not rendered in time - use MutationObserver")}}),2)}s.r(n),s.d(n,{fadeIn:()=>r,readdAutoNavShadowToggle:()=>i})},24033:(e,n,s)=>{s.d(n,{A:()=>r,q:()=>i});s(96540);var t=s(74848);function i(e){return e?.children[0]?.children[0]}function r(e){let{children:n,minHeight:s,innerDisplay:i}=e;return(0,t.jsx)("div",{className:"documentation-example-container",style:{minHeight:`${s||400}px`},children:(0,t.jsx)("div",{style:{display:i||"block"},children:n})})}},82496:(e,n,s)=>{s.d(n,{A:()=>r});var t=s(96540),i=s(74848);function r(e){let{children:n}=e;const[s,r]=t.useState(!0);return(0,i.jsxs)("div",{children:[s&&n[0],!s&&n[1],(0,i.jsx)("div",{className:"component-key-toggle-button-container",children:(0,i.jsxs)("button",{className:"documentation-button component-key-toggle-button",onClick:()=>r(!s),children:[s&&"Insert test key",!s&&"Use placeholder key"]})})]})}},50363:(e,n,s)=>{s.d(n,{A:()=>r});var t=s(78478),i=(s(96540),s(74848));function r(e){return(0,i.jsx)(t.A,{children:()=>{const n=s(55096).DeepChat;return(0,i.jsx)(n,{...e,children:e.children})}})}},85215:(e,n,s)=>{s.d(n,{A:()=>t});const t="data:image/png;base64,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"},28453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>a});var t=s(96540);const i={},r=t.createContext(i);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.d5f7f76a.js b/assets/js/runtime~main.f428e4a0.js similarity index 76% rename from assets/js/runtime~main.d5f7f76a.js rename to assets/js/runtime~main.f428e4a0.js index 053d37348..37e00bf83 100644 --- a/assets/js/runtime~main.d5f7f76a.js +++ b/assets/js/runtime~main.f428e4a0.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,d,f,c,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=b,r.c=t,e=[],r.O=(a,d,f,c)=>{if(!d){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[d,f,c]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};a=a||[null,d({}),d([]),d(d)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(c,b),c},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,d)=>(r.f[d](e,a),a)),[])),r.u=e=>"assets/js/"+({69:"62f3de64",187:"c03611c9",221:"14c42b22",242:"f4a41cc5",281:"53a90a4e",286:"f80390e0",350:"8a751f9f",542:"ad7a1ef6",637:"ff031c7d",813:"7cb2479d",821:"960803bf",956:"71f93b87",958:"09bef922",1285:"2609d35c",1351:"cab71165",1445:"2fd6e700",1537:"5efdef18",1552:"7cd620da",1584:"796155b4",1738:"15033d09",1848:"50fc3c0c",1946:"2e8e5295",2138:"1a4e3797",2170:"3d7ef9b9",2244:"8e6cc846",2538:"cf9b7507",2634:"c4f5d8e4",2778:"bc7c935a",2827:"2e0dce54",3054:"70adbe13",3153:"4a70a78f",3190:"95881879",3338:"71a4181b",3555:"c214479d",3710:"394b1633",3732:"0cfca6dd",4091:"7ea5518d",4135:"fe82bda8",4172:"b8a67d89",4318:"2b486e95",4444:"c374aadb",4474:"ab90bf36",4568:"df0688a0",4636:"a59ec873",4747:"83d494d4",4871:"f17f53dd",4890:"d929016d",4982:"b0d8ca7b",5197:"ab123836",5351:"50b9661c",5571:"943f163d",5713:"ab8b4d1f",5762:"a40ae8f2",5790:"fbd5181d",6267:"3c83ca7d",6324:"22f048b3",6387:"a19404f3",6581:"78c33b59",6664:"3f2a55e2",6731:"b9afe2a8",6754:"3c0c6a7f",6974:"981a04d0",6982:"288adf4d",6984:"a188041f",7024:"47058687",7048:"b467856c",7058:"e39666b6",7098:"a7bd4aaa",7289:"cf7ccda1",7647:"60e67547",7744:"707d70df",7757:"ec3987b3",7769:"fa7d1dcf",8045:"87712f4e",8223:"5812764a",8339:"0a24f6e4",8392:"08854dbd",8401:"17896441",8437:"dbc3e690",8537:"e0aabcf0",8581:"935f2afb",8750:"91b8d63b",8770:"08c9246a",8910:"1e0b4360",8911:"0c5b3199",9048:"a94703ab",9240:"43744cfd",9353:"91c39c3c",9505:"945fd7ad",9647:"5e95c892",9738:"ef02564c",9837:"38776a5e"}[e]||e)+"."+{69:"8e652eda",187:"21200de1",221:"7ff81296",242:"79acf302",281:"c24d8cdf",286:"087d9f57",350:"55b45cca",416:"05118c27",542:"df7d93f2",637:"59fd98e7",813:"e3880a4c",821:"1713b054",956:"9a93a477",958:"dce9bfff",1285:"79948cd1",1351:"b7861d8b",1445:"69037c6f",1537:"8815a65a",1552:"bfc2863d",1584:"7b9be923",1738:"5130b5b8",1848:"5c40051e",1946:"8541d555",2138:"d3678f5d",2170:"f001fb46",2237:"26fc4a8d",2244:"04cc3e5f",2538:"4b0f9c39",2634:"7dfad3cd",2778:"d20b9719",2827:"6c7d9b69",3054:"9ae3ef92",3090:"651bfb6d",3153:"4fb245b6",3190:"edcfa2b1",3338:"8658df68",3459:"8aae783e",3555:"31668d75",3710:"cdd7402f",3732:"301d437e",4091:"3840e0aa",4135:"dbfe0770",4172:"2c131242",4318:"abca477d",4444:"8548dd6b",4474:"e1de453e",4529:"62f495f3",4568:"28f0b12c",4636:"86aa7fd2",4747:"2f018d12",4871:"892286ed",4890:"3c86f61c",4982:"49440341",5197:"a51273a2",5351:"6fc66ed0",5571:"752f4367",5713:"d542ae9a",5762:"116b28ed",5790:"011d304d",6267:"ffe3bcc1",6324:"306b8c0f",6387:"23fdd2bb",6581:"d914ebf0",6664:"0dc055d9",6731:"9970659c",6754:"9e360407",6974:"77e433bd",6982:"a88a209a",6984:"1ec35fb4",7024:"a2aa286d",7048:"d0f72ae0",7058:"9dcc6798",7098:"adebb236",7289:"0c97e1e1",7647:"f9f77251",7683:"c6233d23",7744:"01500d13",7757:"5ebee5f4",7769:"df5e6983",8045:"92bbd667",8223:"d1fca166",8339:"b2aa5670",8350:"71c057a0",8392:"d03a54ca",8401:"9ee7b950",8437:"9cc6e582",8537:"57dae700",8581:"748d85de",8750:"035c6a14",8756:"fb5c8e1d",8770:"e483d6d4",8910:"46ee8ed5",8911:"e0629e63",8913:"3eea0e0d",9048:"f6619e21",9145:"3b6c384f",9240:"ddad95af",9353:"e914143c",9462:"71ea02ab",9505:"7703827a",9647:"37c1e015",9668:"934287a3",9738:"1d236030",9837:"0a23df20",9878:"82182cbc"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},c="website:",r.l=(e,a,d,b)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(d))),a)return a(d)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",47058687:"7024",95881879:"3190","62f3de64":"69",c03611c9:"187","14c42b22":"221",f4a41cc5:"242","53a90a4e":"281",f80390e0:"286","8a751f9f":"350",ad7a1ef6:"542",ff031c7d:"637","7cb2479d":"813","960803bf":"821","71f93b87":"956","09bef922":"958","2609d35c":"1285",cab71165:"1351","2fd6e700":"1445","5efdef18":"1537","7cd620da":"1552","796155b4":"1584","15033d09":"1738","50fc3c0c":"1848","2e8e5295":"1946","1a4e3797":"2138","3d7ef9b9":"2170","8e6cc846":"2244",cf9b7507:"2538",c4f5d8e4:"2634",bc7c935a:"2778","2e0dce54":"2827","70adbe13":"3054","4a70a78f":"3153","71a4181b":"3338",c214479d:"3555","394b1633":"3710","0cfca6dd":"3732","7ea5518d":"4091",fe82bda8:"4135",b8a67d89:"4172","2b486e95":"4318",c374aadb:"4444",ab90bf36:"4474",df0688a0:"4568",a59ec873:"4636","83d494d4":"4747",f17f53dd:"4871",d929016d:"4890",b0d8ca7b:"4982",ab123836:"5197","50b9661c":"5351","943f163d":"5571",ab8b4d1f:"5713",a40ae8f2:"5762",fbd5181d:"5790","3c83ca7d":"6267","22f048b3":"6324",a19404f3:"6387","78c33b59":"6581","3f2a55e2":"6664",b9afe2a8:"6731","3c0c6a7f":"6754","981a04d0":"6974","288adf4d":"6982",a188041f:"6984",b467856c:"7048",e39666b6:"7058",a7bd4aaa:"7098",cf7ccda1:"7289","60e67547":"7647","707d70df":"7744",ec3987b3:"7757",fa7d1dcf:"7769","87712f4e":"8045","5812764a":"8223","0a24f6e4":"8339","08854dbd":"8392",dbc3e690:"8437",e0aabcf0:"8537","935f2afb":"8581","91b8d63b":"8750","08c9246a":"8770","1e0b4360":"8910","0c5b3199":"8911",a94703ab:"9048","43744cfd":"9240","91c39c3c":"9353","945fd7ad":"9505","5e95c892":"9647",ef02564c:"9738","38776a5e":"9837"}[e]||e,r.p+r.u(e)},(()=>{r.b=document.baseURI||self.location.href;var e={5354:0,1869:0};r.f.j=(a,d)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var c=new Promise(((d,c)=>f=e[a]=[d,c]));d.push(f[2]=c);var b=r.p+r.u(a),t=new Error;r.l(b,(d=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var c=d&&("load"===d.type?"missing":d.type),b=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var f,c,b=d[0],t=d[1],o=d[2],n=0;if(b.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(d);n{"use strict";var e,a,d,c,f,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=b,r.c=t,e=[],r.O=(a,d,c,f)=>{if(!d){var b=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[d,c,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var b={};a=a||[null,d({}),d([]),d(d)];for(var t=2&c&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(f,b),f},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,d)=>(r.f[d](e,a),a)),[])),r.u=e=>"assets/js/"+({69:"62f3de64",187:"c03611c9",221:"14c42b22",242:"f4a41cc5",281:"53a90a4e",286:"f80390e0",350:"8a751f9f",542:"ad7a1ef6",637:"ff031c7d",813:"7cb2479d",821:"960803bf",956:"71f93b87",958:"09bef922",1285:"2609d35c",1351:"cab71165",1445:"2fd6e700",1537:"5efdef18",1552:"7cd620da",1584:"796155b4",1738:"15033d09",1848:"50fc3c0c",1946:"2e8e5295",2138:"1a4e3797",2170:"3d7ef9b9",2244:"8e6cc846",2538:"cf9b7507",2634:"c4f5d8e4",2778:"bc7c935a",2827:"2e0dce54",3054:"70adbe13",3153:"4a70a78f",3190:"95881879",3338:"71a4181b",3555:"c214479d",3710:"394b1633",3732:"0cfca6dd",4091:"7ea5518d",4135:"fe82bda8",4172:"b8a67d89",4318:"2b486e95",4444:"c374aadb",4474:"ab90bf36",4568:"df0688a0",4636:"a59ec873",4747:"83d494d4",4871:"f17f53dd",4890:"d929016d",4982:"b0d8ca7b",5197:"ab123836",5351:"50b9661c",5571:"943f163d",5713:"ab8b4d1f",5762:"a40ae8f2",5790:"fbd5181d",6267:"3c83ca7d",6324:"22f048b3",6387:"a19404f3",6581:"78c33b59",6664:"3f2a55e2",6731:"b9afe2a8",6754:"3c0c6a7f",6974:"981a04d0",6982:"288adf4d",6984:"a188041f",7024:"47058687",7048:"b467856c",7058:"e39666b6",7098:"a7bd4aaa",7289:"cf7ccda1",7647:"60e67547",7744:"707d70df",7757:"ec3987b3",7769:"fa7d1dcf",8045:"87712f4e",8223:"5812764a",8339:"0a24f6e4",8392:"08854dbd",8401:"17896441",8437:"dbc3e690",8537:"e0aabcf0",8581:"935f2afb",8750:"91b8d63b",8770:"08c9246a",8910:"1e0b4360",8911:"0c5b3199",9048:"a94703ab",9240:"43744cfd",9353:"91c39c3c",9505:"945fd7ad",9647:"5e95c892",9738:"ef02564c",9837:"38776a5e"}[e]||e)+"."+{69:"8e652eda",187:"21200de1",221:"7ff81296",242:"79acf302",281:"c24d8cdf",286:"087d9f57",350:"55b45cca",416:"05118c27",542:"df7d93f2",637:"59fd98e7",813:"e3880a4c",821:"1713b054",956:"9a93a477",958:"dce9bfff",1285:"79948cd1",1351:"b7861d8b",1445:"69037c6f",1537:"8815a65a",1552:"bfc2863d",1584:"7b9be923",1738:"5130b5b8",1848:"5c40051e",1946:"8541d555",2138:"d3678f5d",2170:"f001fb46",2237:"26fc4a8d",2244:"04cc3e5f",2538:"4b0f9c39",2634:"7dfad3cd",2778:"d20b9719",2827:"6c7d9b69",3054:"9ae3ef92",3090:"651bfb6d",3153:"4fb245b6",3190:"edcfa2b1",3338:"8658df68",3459:"8aae783e",3555:"31668d75",3710:"cdd7402f",3732:"301d437e",4091:"3840e0aa",4135:"dbfe0770",4172:"2c131242",4318:"abca477d",4444:"8548dd6b",4474:"e1de453e",4529:"62f495f3",4568:"28f0b12c",4636:"86aa7fd2",4747:"2f018d12",4871:"892286ed",4890:"3c86f61c",4982:"49440341",5197:"a51273a2",5351:"6fc66ed0",5571:"752f4367",5713:"d542ae9a",5762:"116b28ed",5790:"011d304d",6267:"ffe3bcc1",6324:"306b8c0f",6387:"23fdd2bb",6581:"d914ebf0",6664:"0dc055d9",6731:"9970659c",6754:"9e360407",6974:"77e433bd",6982:"a88a209a",6984:"1ec35fb4",7024:"a2aa286d",7048:"d0f72ae0",7058:"9dcc6798",7098:"adebb236",7289:"0c97e1e1",7647:"f9f77251",7683:"c6233d23",7744:"01500d13",7757:"5ebee5f4",7769:"df5e6983",8045:"92bbd667",8223:"265043c5",8339:"b2aa5670",8350:"71c057a0",8392:"d03a54ca",8401:"9ee7b950",8437:"9cc6e582",8537:"57dae700",8581:"748d85de",8750:"035c6a14",8756:"fb5c8e1d",8770:"e483d6d4",8910:"46ee8ed5",8911:"e0629e63",8913:"3eea0e0d",9048:"f6619e21",9145:"3b6c384f",9240:"ddad95af",9353:"e914143c",9462:"71ea02ab",9505:"7703827a",9647:"37c1e015",9668:"934287a3",9738:"1d236030",9837:"0a23df20",9878:"82182cbc"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},f="website:",r.l=(e,a,d,b)=>{if(c[e])c[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(d))),a)return a(d)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",47058687:"7024",95881879:"3190","62f3de64":"69",c03611c9:"187","14c42b22":"221",f4a41cc5:"242","53a90a4e":"281",f80390e0:"286","8a751f9f":"350",ad7a1ef6:"542",ff031c7d:"637","7cb2479d":"813","960803bf":"821","71f93b87":"956","09bef922":"958","2609d35c":"1285",cab71165:"1351","2fd6e700":"1445","5efdef18":"1537","7cd620da":"1552","796155b4":"1584","15033d09":"1738","50fc3c0c":"1848","2e8e5295":"1946","1a4e3797":"2138","3d7ef9b9":"2170","8e6cc846":"2244",cf9b7507:"2538",c4f5d8e4:"2634",bc7c935a:"2778","2e0dce54":"2827","70adbe13":"3054","4a70a78f":"3153","71a4181b":"3338",c214479d:"3555","394b1633":"3710","0cfca6dd":"3732","7ea5518d":"4091",fe82bda8:"4135",b8a67d89:"4172","2b486e95":"4318",c374aadb:"4444",ab90bf36:"4474",df0688a0:"4568",a59ec873:"4636","83d494d4":"4747",f17f53dd:"4871",d929016d:"4890",b0d8ca7b:"4982",ab123836:"5197","50b9661c":"5351","943f163d":"5571",ab8b4d1f:"5713",a40ae8f2:"5762",fbd5181d:"5790","3c83ca7d":"6267","22f048b3":"6324",a19404f3:"6387","78c33b59":"6581","3f2a55e2":"6664",b9afe2a8:"6731","3c0c6a7f":"6754","981a04d0":"6974","288adf4d":"6982",a188041f:"6984",b467856c:"7048",e39666b6:"7058",a7bd4aaa:"7098",cf7ccda1:"7289","60e67547":"7647","707d70df":"7744",ec3987b3:"7757",fa7d1dcf:"7769","87712f4e":"8045","5812764a":"8223","0a24f6e4":"8339","08854dbd":"8392",dbc3e690:"8437",e0aabcf0:"8537","935f2afb":"8581","91b8d63b":"8750","08c9246a":"8770","1e0b4360":"8910","0c5b3199":"8911",a94703ab:"9048","43744cfd":"9240","91c39c3c":"9353","945fd7ad":"9505","5e95c892":"9647",ef02564c:"9738","38776a5e":"9837"}[e]||e,r.p+r.u(e)},(()=>{r.b=document.baseURI||self.location.href;var e={5354:0,1869:0};r.f.j=(a,d)=>{var c=r.o(e,a)?e[a]:void 0;if(0!==c)if(c)d.push(c[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var f=new Promise(((d,f)=>c=e[a]=[d,f]));d.push(c[2]=f);var b=r.p+r.u(a),t=new Error;r.l(b,(d=>{if(r.o(e,a)&&(0!==(c=e[a])&&(e[a]=void 0),c)){var f=d&&("load"===d.type?"missing":d.type),b=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+f+": "+b+")",t.name="ChunkLoadError",t.type=f,t.request=b,c[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var c,f,b=d[0],t=d[1],o=d[2],n=0;if(b.some((a=>0!==e[a]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(a&&a(d);n - + diff --git a/docs/demo/index.html b/docs/demo/index.html index e267cd606..981d26a4f 100644 --- a/docs/demo/index.html +++ b/docs/demo/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/directConnection/AssemblyAI/index.html b/docs/directConnection/AssemblyAI/index.html index 916268c2f..14b0aa1bc 100644 --- a/docs/directConnection/AssemblyAI/index.html +++ b/docs/directConnection/AssemblyAI/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/directConnection/Azure/index.html b/docs/directConnection/Azure/index.html index 3ade4efd9..b888f16a0 100644 --- a/docs/directConnection/Azure/index.html +++ b/docs/directConnection/Azure/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/directConnection/Cohere/index.html b/docs/directConnection/Cohere/index.html index af9767505..5c353de0e 100644 --- a/docs/directConnection/Cohere/index.html +++ b/docs/directConnection/Cohere/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/directConnection/HuggingFace/index.html b/docs/directConnection/HuggingFace/index.html index 566da15bf..7105c1c29 100644 --- a/docs/directConnection/HuggingFace/index.html +++ b/docs/directConnection/HuggingFace/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/directConnection/OpenAI/index.html b/docs/directConnection/OpenAI/index.html index 5b6b250c0..64046de3c 100644 --- a/docs/directConnection/OpenAI/index.html +++ b/docs/directConnection/OpenAI/index.html @@ -13,7 +13,7 @@ - + @@ -79,7 +79,7 @@

Assistanttrue or the assistant_id is not defined, Deep Chat will automatically create a new assistant when the user sends the first message.
assistant_id is the id of your assistant.
thread_id allows you to communicate in the context of an already existing conversation/thread.
-load_thread_history toggles a preload of the previous conversation/thread messages on chat is initialisation.
+load_thread_history toggles a preload of the previous conversation/thread messages on chat initialisation.
new_assistant defines the details for the newly created assistant.
function_handler is the actual function used to handle the model's function response. Please navigate to Assistant Functions for more info.

diff --git a/docs/directConnection/StabilityAI/index.html b/docs/directConnection/StabilityAI/index.html index 678716027..188474ee2 100644 --- a/docs/directConnection/StabilityAI/index.html +++ b/docs/directConnection/StabilityAI/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/directConnection/index.html b/docs/directConnection/index.html index 6c88bb273..96864a2e7 100644 --- a/docs/directConnection/index.html +++ b/docs/directConnection/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/events/index.html b/docs/events/index.html index d8befcad1..5526dc628 100644 --- a/docs/events/index.html +++ b/docs/events/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/files/index.html b/docs/files/index.html index 989392bd5..cd2b025f4 100644 --- a/docs/files/index.html +++ b/docs/files/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/installation/index.html b/docs/installation/index.html index d9524a012..04abe4ec2 100644 --- a/docs/installation/index.html +++ b/docs/installation/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/interceptors/index.html b/docs/interceptors/index.html index c47269ca4..fb980858a 100644 --- a/docs/interceptors/index.html +++ b/docs/interceptors/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/introPanel/index.html b/docs/introPanel/index.html index 00ff3ecf0..32c3e93d1 100644 --- a/docs/introPanel/index.html +++ b/docs/introPanel/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/introduction/index.html b/docs/introduction/index.html index 179d78058..58a949859 100644 --- a/docs/introduction/index.html +++ b/docs/introduction/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/messages/HTML/index.html b/docs/messages/HTML/index.html index 66785b13e..b3677d749 100644 --- a/docs/messages/HTML/index.html +++ b/docs/messages/HTML/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/messages/index.html b/docs/messages/index.html index 7c883ad67..68833e306 100644 --- a/docs/messages/index.html +++ b/docs/messages/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/messages/styles/index.html b/docs/messages/styles/index.html index 17d236ce6..f08998f63 100644 --- a/docs/messages/styles/index.html +++ b/docs/messages/styles/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/methods/index.html b/docs/methods/index.html index 1d23993a8..5b719e1e2 100644 --- a/docs/methods/index.html +++ b/docs/methods/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/speech/index.html b/docs/speech/index.html index 8f0ff30ed..03d1d0d22 100644 --- a/docs/speech/index.html +++ b/docs/speech/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/styles/index.html b/docs/styles/index.html index 986d1a878..59a7333e3 100644 --- a/docs/styles/index.html +++ b/docs/styles/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/webModel/index.html b/docs/webModel/index.html index 5215e44f3..6300278c7 100644 --- a/docs/webModel/index.html +++ b/docs/webModel/index.html @@ -13,7 +13,7 @@ - + diff --git a/examples/Layout/fullScreen/index.html b/examples/Layout/fullScreen/index.html index b73f43935..eb91e6c68 100644 --- a/examples/Layout/fullScreen/index.html +++ b/examples/Layout/fullScreen/index.html @@ -13,7 +13,7 @@ - + diff --git a/examples/Layout/sticky/index.html b/examples/Layout/sticky/index.html index f15a5b707..bb55c1476 100644 --- a/examples/Layout/sticky/index.html +++ b/examples/Layout/sticky/index.html @@ -13,7 +13,7 @@ - + diff --git a/examples/design/index.html b/examples/design/index.html index 0a8321c03..6d7f0a5e0 100644 --- a/examples/design/index.html +++ b/examples/design/index.html @@ -13,7 +13,7 @@ - + diff --git a/examples/externalModules/index.html b/examples/externalModules/index.html index f933a859b..7c893cdce 100644 --- a/examples/externalModules/index.html +++ b/examples/externalModules/index.html @@ -13,7 +13,7 @@ - + diff --git a/examples/frameworks/index.html b/examples/frameworks/index.html index 3bbd4f0d0..6bcf8355b 100644 --- a/examples/frameworks/index.html +++ b/examples/frameworks/index.html @@ -13,7 +13,7 @@ - + diff --git a/examples/servers/index.html b/examples/servers/index.html index 6e15e7f44..9e37d3bb1 100644 --- a/examples/servers/index.html +++ b/examples/servers/index.html @@ -13,7 +13,7 @@ - + diff --git a/exploreButton/exploreButton/index.html b/exploreButton/exploreButton/index.html index 470e7d648..ae857538e 100644 --- a/exploreButton/exploreButton/index.html +++ b/exploreButton/exploreButton/index.html @@ -13,7 +13,7 @@ - + diff --git a/features/captureFiles/captureFiles/index.html b/features/captureFiles/captureFiles/index.html index 65877ba1b..7922c5b83 100644 --- a/features/captureFiles/captureFiles/index.html +++ b/features/captureFiles/captureFiles/index.html @@ -13,7 +13,7 @@ - + diff --git a/features/connect/connect/index.html b/features/connect/connect/index.html index 119c67d23..585469eb5 100644 --- a/features/connect/connect/index.html +++ b/features/connect/connect/index.html @@ -13,7 +13,7 @@ - + diff --git a/features/customize/customize/index.html b/features/customize/customize/index.html index 8d2435d06..31ca76462 100644 --- a/features/customize/customize/index.html +++ b/features/customize/customize/index.html @@ -13,7 +13,7 @@ - + diff --git a/features/features/index.html b/features/features/index.html index 2233c13b4..0d0610ab3 100644 --- a/features/features/index.html +++ b/features/features/index.html @@ -13,7 +13,7 @@ - + diff --git a/features/media/media/index.html b/features/media/media/index.html index 244837f0d..220efbb4f 100644 --- a/features/media/media/index.html +++ b/features/media/media/index.html @@ -13,7 +13,7 @@ - + diff --git a/features/speech/speech/index.html b/features/speech/speech/index.html index 72cbd9626..485a207e3 100644 --- a/features/speech/speech/index.html +++ b/features/speech/speech/index.html @@ -13,7 +13,7 @@ - + diff --git a/footer/footer/index.html b/footer/footer/index.html index 87286c96a..b84b4da22 100644 --- a/footer/footer/index.html +++ b/footer/footer/index.html @@ -13,7 +13,7 @@ - + diff --git a/index.html b/index.html index c41611c67..072d1a2c4 100644 --- a/index.html +++ b/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/chat/manipulate/playgroundAddButton/index.html b/playground/chat/manipulate/playgroundAddButton/index.html index 04376524f..f83840d42 100644 --- a/playground/chat/manipulate/playgroundAddButton/index.html +++ b/playground/chat/manipulate/playgroundAddButton/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/chat/playgroundChatComponent/index.html b/playground/chat/playgroundChatComponent/index.html index d198c0b77..6863516ff 100644 --- a/playground/chat/playgroundChatComponent/index.html +++ b/playground/chat/playgroundChatComponent/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/chat/playgroundChatWrapper/index.html b/playground/chat/playgroundChatWrapper/index.html index 519c58d66..c857b69c6 100644 --- a/playground/chat/playgroundChatWrapper/index.html +++ b/playground/chat/playgroundChatWrapper/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/chat/playgroundChatWrapperConfig/index.html b/playground/chat/playgroundChatWrapperConfig/index.html index 781734832..b76909b29 100644 --- a/playground/chat/playgroundChatWrapperConfig/index.html +++ b/playground/chat/playgroundChatWrapperConfig/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/chat/playgroundChatWrapperLogo/index.html b/playground/chat/playgroundChatWrapperLogo/index.html index aec359757..67344d96e 100644 --- a/playground/chat/playgroundChatWrapperLogo/index.html +++ b/playground/chat/playgroundChatWrapperLogo/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/chat/playgroundChatWrapperText/index.html b/playground/chat/playgroundChatWrapperText/index.html index ab14a455a..c65876bcd 100644 --- a/playground/chat/playgroundChatWrapperText/index.html +++ b/playground/chat/playgroundChatWrapperText/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/header/export/modal/playgroundExportModal/index.html b/playground/header/export/modal/playgroundExportModal/index.html index 17b14dede..21f7ff6a9 100644 --- a/playground/header/export/modal/playgroundExportModal/index.html +++ b/playground/header/export/modal/playgroundExportModal/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/header/export/playgroundExportButton/index.html b/playground/header/export/playgroundExportButton/index.html index d4667af51..173277d60 100644 --- a/playground/header/export/playgroundExportButton/index.html +++ b/playground/header/export/playgroundExportButton/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/header/information/modal/playgroundInformationModal/index.html b/playground/header/information/modal/playgroundInformationModal/index.html index ae7a83b8c..c65d38535 100644 --- a/playground/header/information/modal/playgroundInformationModal/index.html +++ b/playground/header/information/modal/playgroundInformationModal/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/header/information/playgroundInformationButton/index.html b/playground/header/information/playgroundInformationButton/index.html index 26ba0a5c5..41492d4e2 100644 --- a/playground/header/information/playgroundInformationButton/index.html +++ b/playground/header/information/playgroundInformationButton/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/header/layout/playgroundLayoutButton/index.html b/playground/header/layout/playgroundLayoutButton/index.html index 7448ca036..3407dbe19 100644 --- a/playground/header/layout/playgroundLayoutButton/index.html +++ b/playground/header/layout/playgroundLayoutButton/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/header/playgroundCog/index.html b/playground/header/playgroundCog/index.html index 5be9e7d3c..ce4d86274 100644 --- a/playground/header/playgroundCog/index.html +++ b/playground/header/playgroundCog/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/header/playgroundHeaderButtons/index.html b/playground/header/playgroundHeaderButtons/index.html index be53d44f7..fcd053fb3 100644 --- a/playground/header/playgroundHeaderButtons/index.html +++ b/playground/header/playgroundHeaderButtons/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/header/playgroundShield/index.html b/playground/header/playgroundShield/index.html index 26abe1e13..77b087969 100644 --- a/playground/header/playgroundShield/index.html +++ b/playground/header/playgroundShield/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/header/upload/modal/playgroundUploadModal/index.html b/playground/header/upload/modal/playgroundUploadModal/index.html index af456c14c..c6f3959bc 100644 --- a/playground/header/upload/modal/playgroundUploadModal/index.html +++ b/playground/header/upload/modal/playgroundUploadModal/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/header/upload/playgroundUploadButton/index.html b/playground/header/upload/playgroundUploadButton/index.html index f4d0b1913..38869802a 100644 --- a/playground/header/upload/playgroundUploadButton/index.html +++ b/playground/header/upload/playgroundUploadButton/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/index.html b/playground/index.html index 30cea9a7f..ef9e763c2 100644 --- a/playground/index.html +++ b/playground/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/playgroundSelect/index.html b/playground/playgroundSelect/index.html index 74eef005b..32ea9ad01 100644 --- a/playground/playgroundSelect/index.html +++ b/playground/playgroundSelect/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/serviceModal/close/serviceModalCloseButtons/index.html b/playground/serviceModal/close/serviceModalCloseButtons/index.html index 3d6792d54..78b11fd3d 100644 --- a/playground/serviceModal/close/serviceModalCloseButtons/index.html +++ b/playground/serviceModal/close/serviceModalCloseButtons/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/serviceModal/code/serviceCode/index.html b/playground/serviceModal/code/serviceCode/index.html index a2bc3427a..3f5db79c8 100644 --- a/playground/serviceModal/code/serviceCode/index.html +++ b/playground/serviceModal/code/serviceCode/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/serviceModal/fields/serviceConstructableObject/index.html b/playground/serviceModal/fields/serviceConstructableObject/index.html index 7520e80f4..dbbf9336d 100644 --- a/playground/serviceModal/fields/serviceConstructableObject/index.html +++ b/playground/serviceModal/fields/serviceConstructableObject/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/serviceModal/fields/serviceField/index.html b/playground/serviceModal/fields/serviceField/index.html index d6ada7dc4..5e35f893e 100644 --- a/playground/serviceModal/fields/serviceField/index.html +++ b/playground/serviceModal/fields/serviceField/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/serviceModal/fields/serviceOptionalParametersFields/index.html b/playground/serviceModal/fields/serviceOptionalParametersFields/index.html index f00a8c8c3..1305665aa 100644 --- a/playground/serviceModal/fields/serviceOptionalParametersFields/index.html +++ b/playground/serviceModal/fields/serviceOptionalParametersFields/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/serviceModal/fields/serviceRequiredField/index.html b/playground/serviceModal/fields/serviceRequiredField/index.html index 9a1949a44..ba31abec4 100644 --- a/playground/serviceModal/fields/serviceRequiredField/index.html +++ b/playground/serviceModal/fields/serviceRequiredField/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/serviceModal/fields/serviceTypeField/index.html b/playground/serviceModal/fields/serviceTypeField/index.html index 0122ecdcb..46f5341d7 100644 --- a/playground/serviceModal/fields/serviceTypeField/index.html +++ b/playground/serviceModal/fields/serviceTypeField/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/serviceModal/serviceModal/index.html b/playground/serviceModal/serviceModal/index.html index a984f9304..f3976d80a 100644 --- a/playground/serviceModal/serviceModal/index.html +++ b/playground/serviceModal/serviceModal/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/serviceModal/wrappers/collapsableSection/index.html b/playground/serviceModal/wrappers/collapsableSection/index.html index 5bcbce0d6..4ebafa063 100644 --- a/playground/serviceModal/wrappers/collapsableSection/index.html +++ b/playground/serviceModal/wrappers/collapsableSection/index.html @@ -13,7 +13,7 @@ - + diff --git a/playground/tooltip/playgroundTooltipWrapper/index.html b/playground/tooltip/playgroundTooltipWrapper/index.html index ec4d9666c..e2710d892 100644 --- a/playground/tooltip/playgroundTooltipWrapper/index.html +++ b/playground/tooltip/playgroundTooltipWrapper/index.html @@ -13,7 +13,7 @@ - + diff --git a/preload/preloadImages/index.html b/preload/preloadImages/index.html index 68fcd74bd..37035e189 100644 --- a/preload/preloadImages/index.html +++ b/preload/preloadImages/index.html @@ -13,7 +13,7 @@ - + diff --git a/preload/preloadPlaygroundImages/index.html b/preload/preloadPlaygroundImages/index.html index 0c8698dba..c7ac30761 100644 --- a/preload/preloadPlaygroundImages/index.html +++ b/preload/preloadPlaygroundImages/index.html @@ -13,7 +13,7 @@ - + diff --git a/preload/preloadStartImages/index.html b/preload/preloadStartImages/index.html index 7f5d12a61..87bbb3bd8 100644 --- a/preload/preloadStartImages/index.html +++ b/preload/preloadStartImages/index.html @@ -13,7 +13,7 @@ - + diff --git a/search/index.html b/search/index.html index a8fd6e04e..74cc2e722 100644 --- a/search/index.html +++ b/search/index.html @@ -13,7 +13,7 @@ - + diff --git a/smallScreen/deepChatLogo/index.html b/smallScreen/deepChatLogo/index.html index beb54d004..a301972ea 100644 --- a/smallScreen/deepChatLogo/index.html +++ b/smallScreen/deepChatLogo/index.html @@ -13,7 +13,7 @@ - + diff --git a/smallScreen/smallScreen/index.html b/smallScreen/smallScreen/index.html index ce0c49936..77ce013ae 100644 --- a/smallScreen/smallScreen/index.html +++ b/smallScreen/smallScreen/index.html @@ -13,7 +13,7 @@ - + diff --git a/start/aiInYourBrowser/index.html b/start/aiInYourBrowser/index.html index 30903e023..0c4d587fd 100644 --- a/start/aiInYourBrowser/index.html +++ b/start/aiInYourBrowser/index.html @@ -13,7 +13,7 @@ - + diff --git a/start/connectToCustomAPI/index.html b/start/connectToCustomAPI/index.html index 55e469e42..3c9db7ba8 100644 --- a/start/connectToCustomAPI/index.html +++ b/start/connectToCustomAPI/index.html @@ -13,7 +13,7 @@ - + diff --git a/start/connectToPopularAPI/index.html b/start/connectToPopularAPI/index.html index 3a1160702..87cd4f17c 100644 --- a/start/connectToPopularAPI/index.html +++ b/start/connectToPopularAPI/index.html @@ -13,7 +13,7 @@ - + diff --git a/start/createComponent/index.html b/start/createComponent/index.html index 92e889875..e8d343291 100644 --- a/start/createComponent/index.html +++ b/start/createComponent/index.html @@ -13,7 +13,7 @@ - + diff --git a/start/index.html b/start/index.html index 90f8dd8e7..a65aa642c 100644 --- a/start/index.html +++ b/start/index.html @@ -13,7 +13,7 @@ - + diff --git a/start/options/index.html b/start/options/index.html index 142f9ca6e..027aee569 100644 --- a/start/options/index.html +++ b/start/options/index.html @@ -13,7 +13,7 @@ - + diff --git a/start/startParticles/index.html b/start/startParticles/index.html index 11f3f3877..08fbd170e 100644 --- a/start/startParticles/index.html +++ b/start/startParticles/index.html @@ -13,7 +13,7 @@ - + diff --git a/start/startSmallScreen/index.html b/start/startSmallScreen/index.html index 7a0fecc2e..6f58f0e56 100644 --- a/start/startSmallScreen/index.html +++ b/start/startSmallScreen/index.html @@ -13,7 +13,7 @@ - + diff --git a/startPanel/startPanel/index.html b/startPanel/startPanel/index.html index e3c428d8f..e2ee4df9a 100644 --- a/startPanel/startPanel/index.html +++ b/startPanel/startPanel/index.html @@ -13,7 +13,7 @@ - + diff --git a/startPanel/startPanelParticles/index.html b/startPanel/startPanelParticles/index.html index ac2e338b4..e25b63640 100644 --- a/startPanel/startPanelParticles/index.html +++ b/startPanel/startPanelParticles/index.html @@ -13,7 +13,7 @@ - + diff --git a/utils/fadeInContent/index.html b/utils/fadeInContent/index.html index 376ce169a..0cd74e4e4 100644 --- a/utils/fadeInContent/index.html +++ b/utils/fadeInContent/index.html @@ -13,7 +13,7 @@ - + diff --git a/utils/fadeInNav/index.html b/utils/fadeInNav/index.html index acba533b5..92d7b1433 100644 --- a/utils/fadeInNav/index.html +++ b/utils/fadeInNav/index.html @@ -13,7 +13,7 @@ - + diff --git a/utils/onVisibleAnimation/index.html b/utils/onVisibleAnimation/index.html index e95b271ae..c7318d215 100644 --- a/utils/onVisibleAnimation/index.html +++ b/utils/onVisibleAnimation/index.html @@ -13,7 +13,7 @@ - +