From 8116a110f810a084eab79e57d8459ef377750605 Mon Sep 17 00:00:00 2001 From: ai-dial-actions <149404362+ai-dial-actions@users.noreply.github.com> Date: Fri, 20 Sep 2024 16:42:29 +0000 Subject: [PATCH] deploy: 360a5dd30ed0751b9c13592129a70ce06b3a9ddf --- 404.html | 2 +- Auth/Web/IDPs/auth0.html | 2 +- Auth/Web/IDPs/cognito.html | 2 +- Auth/Web/IDPs/entraID.html | 2 +- Auth/Web/IDPs/google.html | 2 +- Auth/Web/IDPs/keycloak.html | 2 +- Auth/Web/IDPs/okta.html | 2 +- Auth/Web/overview.html | 2 +- Auth/overview.html | 2 +- Auth/programmatic-auth.html | 2 +- ...ow_to_call_image_to_text_applications.html | 2 +- ...ow_to_call_text_to_image_applications.html | 2 +- ...how_to_call_text_to_text_applications.html | 2 +- Deployment/Bedrock Model Deployment.html | 2 +- Deployment/OpenAI Model Deployment.html | 2 +- Deployment/Vertex Model Deployment.html | 2 +- Deployment/configuration.html | 2 +- Roles and Access Control/API Keys.html | 2 +- Roles and Access Control/chat-users.html | 2 +- Roles and Access Control/overview.html | 2 +- architecture.html | 2 +- assets/js/e8322e98.89d02aec.js | 1 - assets/js/e8322e98.c5f5c85c.js | 1 + ...n.a10bef4b.js => runtime~main.6a1cd384.js} | 2 +- chat-design.html | 2 +- index.html | 2 +- quick-start.html | 2 +- search.html | 2 +- supported-models.html | 2 +- tutorials/adapter-dial.html | 2 +- tutorials/azure-ad-configuration.html | 2 +- tutorials/chat-objects.html | 2 +- tutorials/data-visualization.html | 2 +- tutorials/enable-publications.html | 2 +- tutorials/high-load-performance.html | 2 +- tutorials/interceptors.html | 2 +- tutorials/load-balancer.html | 2 +- tutorials/localization.html | 2 +- tutorials/multimodality.html | 2 +- tutorials/quick-start-model.html | 2 +- tutorials/quick-start-with-addon.html | 2 +- tutorials/quick-start-with-application.html | 2 +- .../quick-start-with-self-hosted-model.html | 20 +++++++++++-------- tutorials/rate-limits-users.html | 2 +- tutorials/realtime-analytics.html | 2 +- user-guide.html | 2 +- .../dial-aws-deployment.html | 2 +- .../demos-for-developers/dial-continue.html | 2 +- .../demos-for-developers/dial-data-viz.html | 2 +- .../dial-develop-and-deploy.html | 2 +- .../dial-gcp-deployment.html | 2 +- .../dial-guided-conversation.html | 2 +- .../demos-for-developers/dial-rag-eval.html | 2 +- .../dial-unified-api.html | 2 +- video demos/demos/animated-scatterplot.html | 2 +- video demos/demos/dial-chathub.html | 2 +- video demos/demos/dial-collaboration.html | 2 +- video demos/demos/dial-excel-plugin.html | 2 +- video demos/demos/dial-omics-assistant.html | 2 +- .../demos/dial-parameterized-replay.html | 2 +- video demos/demos/dial-product-overview.html | 2 +- video demos/demos/dial-rag.html | 2 +- .../demos/dial-roles-and-rate-limits.html | 2 +- video demos/demos/dial-statgpt.html | 2 +- video demos/demos/dial-ui-basics.html | 2 +- video demos/demos/dial-web-rag.html | 2 +- video demos/demos/interceptors.html | 2 +- video demos/demos/profile-generator.html | 2 +- 68 files changed, 78 insertions(+), 74 deletions(-) delete mode 100644 assets/js/e8322e98.89d02aec.js create mode 100644 assets/js/e8322e98.c5f5c85c.js rename assets/js/{runtime~main.a10bef4b.js => runtime~main.6a1cd384.js} (77%) diff --git a/404.html b/404.html index 1cf9d746..b7fed08a 100644 --- a/404.html +++ b/404.html @@ -10,7 +10,7 @@ - + diff --git a/Auth/Web/IDPs/auth0.html b/Auth/Web/IDPs/auth0.html index 8a2161b3..d8f2c66b 100644 --- a/Auth/Web/IDPs/auth0.html +++ b/Auth/Web/IDPs/auth0.html @@ -10,7 +10,7 @@ - + diff --git a/Auth/Web/IDPs/cognito.html b/Auth/Web/IDPs/cognito.html index a713c8d0..10bb3876 100644 --- a/Auth/Web/IDPs/cognito.html +++ b/Auth/Web/IDPs/cognito.html @@ -10,7 +10,7 @@ - + diff --git a/Auth/Web/IDPs/entraID.html b/Auth/Web/IDPs/entraID.html index e8fdbacf..0a3eeb98 100644 --- a/Auth/Web/IDPs/entraID.html +++ b/Auth/Web/IDPs/entraID.html @@ -10,7 +10,7 @@ - + diff --git a/Auth/Web/IDPs/google.html b/Auth/Web/IDPs/google.html index c9731fc2..e187d69d 100644 --- a/Auth/Web/IDPs/google.html +++ b/Auth/Web/IDPs/google.html @@ -10,7 +10,7 @@ - + diff --git a/Auth/Web/IDPs/keycloak.html b/Auth/Web/IDPs/keycloak.html index 38184204..55c5f967 100644 --- a/Auth/Web/IDPs/keycloak.html +++ b/Auth/Web/IDPs/keycloak.html @@ -10,7 +10,7 @@ - + diff --git a/Auth/Web/IDPs/okta.html b/Auth/Web/IDPs/okta.html index 6fb75e08..a02286e8 100644 --- a/Auth/Web/IDPs/okta.html +++ b/Auth/Web/IDPs/okta.html @@ -10,7 +10,7 @@ - + diff --git a/Auth/Web/overview.html b/Auth/Web/overview.html index 039360c4..220d4667 100644 --- a/Auth/Web/overview.html +++ b/Auth/Web/overview.html @@ -10,7 +10,7 @@ - + diff --git a/Auth/overview.html b/Auth/overview.html index 785f85bb..5eaaf30d 100644 --- a/Auth/overview.html +++ b/Auth/overview.html @@ -10,7 +10,7 @@ - + diff --git a/Auth/programmatic-auth.html b/Auth/programmatic-auth.html index a02f20ca..5ac23916 100644 --- a/Auth/programmatic-auth.html +++ b/Auth/programmatic-auth.html @@ -10,7 +10,7 @@ - + diff --git a/Cookbook/dial-cookbook/examples/how_to_call_image_to_text_applications.html b/Cookbook/dial-cookbook/examples/how_to_call_image_to_text_applications.html index 3e87216d..d21e6663 100644 --- a/Cookbook/dial-cookbook/examples/how_to_call_image_to_text_applications.html +++ b/Cookbook/dial-cookbook/examples/how_to_call_image_to_text_applications.html @@ -10,7 +10,7 @@ - + diff --git a/Cookbook/dial-cookbook/examples/how_to_call_text_to_image_applications.html b/Cookbook/dial-cookbook/examples/how_to_call_text_to_image_applications.html index 6f3368b9..af076d9b 100644 --- a/Cookbook/dial-cookbook/examples/how_to_call_text_to_image_applications.html +++ b/Cookbook/dial-cookbook/examples/how_to_call_text_to_image_applications.html @@ -10,7 +10,7 @@ - + diff --git a/Cookbook/dial-cookbook/examples/how_to_call_text_to_text_applications.html b/Cookbook/dial-cookbook/examples/how_to_call_text_to_text_applications.html index d5b57b76..7e4749e0 100644 --- a/Cookbook/dial-cookbook/examples/how_to_call_text_to_text_applications.html +++ b/Cookbook/dial-cookbook/examples/how_to_call_text_to_text_applications.html @@ -10,7 +10,7 @@ - + diff --git a/Deployment/Bedrock Model Deployment.html b/Deployment/Bedrock Model Deployment.html index 0a033f17..913023df 100644 --- a/Deployment/Bedrock Model Deployment.html +++ b/Deployment/Bedrock Model Deployment.html @@ -10,7 +10,7 @@ - + diff --git a/Deployment/OpenAI Model Deployment.html b/Deployment/OpenAI Model Deployment.html index d0cf90fb..1cd3db5b 100644 --- a/Deployment/OpenAI Model Deployment.html +++ b/Deployment/OpenAI Model Deployment.html @@ -10,7 +10,7 @@ - + diff --git a/Deployment/Vertex Model Deployment.html b/Deployment/Vertex Model Deployment.html index 4280d925..64f95c05 100644 --- a/Deployment/Vertex Model Deployment.html +++ b/Deployment/Vertex Model Deployment.html @@ -10,7 +10,7 @@ - + diff --git a/Deployment/configuration.html b/Deployment/configuration.html index 5cf2e1c8..f42968be 100644 --- a/Deployment/configuration.html +++ b/Deployment/configuration.html @@ -10,7 +10,7 @@ - + diff --git a/Roles and Access Control/API Keys.html b/Roles and Access Control/API Keys.html index b6095dc7..64512363 100644 --- a/Roles and Access Control/API Keys.html +++ b/Roles and Access Control/API Keys.html @@ -10,7 +10,7 @@ - + diff --git a/Roles and Access Control/chat-users.html b/Roles and Access Control/chat-users.html index 2734215c..c5e132c6 100644 --- a/Roles and Access Control/chat-users.html +++ b/Roles and Access Control/chat-users.html @@ -10,7 +10,7 @@ - + diff --git a/Roles and Access Control/overview.html b/Roles and Access Control/overview.html index 742336aa..acc62d38 100644 --- a/Roles and Access Control/overview.html +++ b/Roles and Access Control/overview.html @@ -10,7 +10,7 @@ - + diff --git a/architecture.html b/architecture.html index d7e0c8d3..afdd9b3e 100644 --- a/architecture.html +++ b/architecture.html @@ -10,7 +10,7 @@ - + diff --git a/assets/js/e8322e98.89d02aec.js b/assets/js/e8322e98.89d02aec.js deleted file mode 100644 index 01d75654..00000000 --- a/assets/js/e8322e98.89d02aec.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdial=self.webpackChunkdial||[]).push([[7739],{8467:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>s,default:()=>c,frontMatter:()=>o,metadata:()=>d,toc:()=>a});var l=n(5893),i=n(1151);const o={},s="Launch AI DIAL Chat with a Self-Hosted Model",d={id:"tutorials/quick-start-with-self-hosted-model",title:"Launch AI DIAL Chat with a Self-Hosted Model",description:"Introduction",source:"@site/docs/tutorials/quick-start-with-self-hosted-model.md",sourceDirName:"tutorials",slug:"/tutorials/quick-start-with-self-hosted-model",permalink:"/tutorials/quick-start-with-self-hosted-model",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"CustomSideBar",previous:{title:"Launch AI DIAL Chat with Azure Model",permalink:"/tutorials/quick-start-model"},next:{title:"Launch AI DIAL Chat with a Sample Addon",permalink:"/tutorials/quick-start-with-addon"}},r={},a=[{value:"Introduction",id:"introduction",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Step 1: Get AI DIAL",id:"step-1-get-ai-dial",level:2},{value:"Step 2: Choose a model to run",id:"step-2-choose-a-model-to-run",level:2},{value:"Chat models",id:"chat-models",level:3},{value:"Vision models",id:"vision-models",level:3},{value:"Embedding models",id:"embedding-models",level:3},{value:"Step 3: Launch AI DIAL Chat",id:"step-3-launch-ai-dial-chat",level:2}];function h(e){const t={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.h1,{id:"launch-ai-dial-chat-with-a-self-hosted-model",children:"Launch AI DIAL Chat with a Self-Hosted Model"}),"\n",(0,l.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,l.jsxs)(t.p,{children:["In this tutorial, you will learn how to quickly launch AI DIAL Chat with a self-hosted model powered by ",(0,l.jsx)(t.a,{href:"https://ollama.com/",children:"Ollama"}),"."]}),"\n",(0,l.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,l.jsx)(t.p,{children:"Docker engine installed on your machine (Docker Compose Version 2.20.0 +)."}),"\n",(0,l.jsxs)(t.blockquote,{children:["\n",(0,l.jsxs)(t.p,{children:["Refer to ",(0,l.jsx)(t.a,{href:"https://docs.docker.com/desktop/",children:"Docker"})," documentation."]}),"\n"]}),"\n",(0,l.jsx)(t.h2,{id:"step-1-get-ai-dial",children:"Step 1: Get AI DIAL"}),"\n",(0,l.jsxs)(t.p,{children:["Clone ",(0,l.jsx)(t.a,{href:"https://github.com/epam/ai-dial/",children:"the repository"})," with the tutorials and change directory to the following folder:"]}),"\n",(0,l.jsx)(t.pre,{children:(0,l.jsx)(t.code,{className:"language-sh",children:"cd dial-docker-compose/ollama\n"})}),"\n",(0,l.jsx)(t.h2,{id:"step-2-choose-a-model-to-run",children:"Step 2: Choose a model to run"}),"\n",(0,l.jsx)(t.p,{children:"Ollama supports a wide range of popular open-source models."}),"\n",(0,l.jsx)(t.p,{children:"Consider first the modality your are interested in - is it a regular text-to-text chat model, a multi-modal vision model or an embedding model?"}),"\n",(0,l.jsxs)(t.p,{children:["Follow the feature tags ",(0,l.jsxs)(t.em,{children:["(",(0,l.jsx)(t.code,{children:"Embeddings"}),", ",(0,l.jsx)(t.code,{children:"Code"}),", ",(0,l.jsx)(t.code,{children:"Tools"}),", ",(0,l.jsx)(t.code,{children:"Vision"}),")"]})," at ",(0,l.jsx)(t.a,{href:"https://ollama.com/search",children:"Ollama Search"})," to find the appropriate model."]}),"\n",(0,l.jsx)(t.p,{children:"We recommend choosing one of the following models which have been tested."}),"\n",(0,l.jsx)(t.h3,{id:"chat-models",children:"Chat models"}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{children:"Model"}),(0,l.jsx)(t.th,{children:"Tools"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{children:(0,l.jsx)(t.a,{href:"https://ollama.com/library/llama3.1:8b-instruct-q4_0",children:"llama3.1:8b-instruct-q4_0"})}),(0,l.jsxs)(t.td,{children:["\u2705 ",(0,l.jsx)(t.em,{children:"(only in non-streaming mode)"})]})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{children:(0,l.jsx)(t.a,{href:"https://ollama.com/library/mistral:7b-instruct-q4_0",children:"mistral:7b-instruct-q4_0"})}),(0,l.jsx)(t.td,{children:"\u274c"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{children:(0,l.jsx)(t.a,{href:"https://ollama.com/library/phi3.5:3.8b-mini-instruct-q4_0",children:"phi3.5:3.8b-mini-instruct-q4_0"})}),(0,l.jsx)(t.td,{children:"\u274c"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{children:(0,l.jsx)(t.a,{href:"https://ollama.com/library/gemma2:2b-instruct-q4_0",children:"gemma2:2b-instruct-q4_0"})}),(0,l.jsx)(t.td,{children:"\u274c"})]})]})]}),"\n",(0,l.jsx)(t.p,{children:"All the models support streaming."}),"\n",(0,l.jsx)(t.h3,{id:"vision-models",children:"Vision models"}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://ollama.com/library/llava:7b-v1.6-mistral-q4_0",children:"llava:7b-v1.6-mistral-q4_0"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://ollama.com/library/llava-phi3:3.8b-mini-q4_0",children:"llava-phi3:3.8b-mini-q4_0"})}),"\n"]}),"\n",(0,l.jsx)(t.h3,{id:"embedding-models",children:"Embedding models"}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://ollama.com/library/nomic-embed-text:137m-v1.5-fp16",children:"nomic-embed-text:137m-v1.5-fp16"})}),"\n",(0,l.jsx)(t.li,{children:(0,l.jsx)(t.a,{href:"https://ollama.com/library/bge-m3:567m-fp16",children:"bge-m3:567m-fp16"})}),"\n"]}),"\n",(0,l.jsx)(t.h2,{id:"step-3-launch-ai-dial-chat",children:"Step 3: Launch AI DIAL Chat"}),"\n",(0,l.jsxs)(t.ol,{children:["\n",(0,l.jsxs)(t.li,{children:["\n",(0,l.jsxs)(t.p,{children:["Configure ",(0,l.jsx)(t.code,{children:".env"})," file in the current directory according to the type of model you've chosen:"]}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsxs)(t.li,{children:["Set ",(0,l.jsx)(t.code,{children:"OLLAMA_CHAT_MODEL"})," for the name of a text model."]}),"\n",(0,l.jsxs)(t.li,{children:["Set ",(0,l.jsx)(t.code,{children:"OLLAMA_VISION_MODEL"})," for the name of a vision model."]}),"\n",(0,l.jsxs)(t.li,{children:["Set ",(0,l.jsx)(t.code,{children:"OLLAMA_EMBEDDING_MODEL"})," for the name of an embedding model."]}),"\n"]}),"\n",(0,l.jsxs)(t.p,{children:[(0,l.jsx)(t.strong,{children:"Note"}),": It's not necessary to configure all the models. If a model isn't set, then it won't be downloaded."]}),"\n"]}),"\n",(0,l.jsxs)(t.li,{children:["\n",(0,l.jsx)(t.p,{children:"Then run the following command to pull and load into the memory of the Ollama server the specified models:"}),"\n",(0,l.jsx)(t.pre,{children:(0,l.jsx)(t.code,{className:"language-sh",children:"docker compose up --abort-on-container-exit\n"})}),"\n",(0,l.jsxs)(t.blockquote,{children:["\n",(0,l.jsxs)(t.p,{children:["Keep in mind that a typical size of a lightweight Ollama model is around a few gigabytes. So it may take a few minutes ",(0,l.jsx)(t.em,{children:"(or dozens of minutes)"})," to download them on the first run depending on your Internet bandwidth."]}),"\n",(0,l.jsxs)(t.p,{children:["The model is fully loaded once ",(0,l.jsx)(t.code,{children:"ollama-setup"})," service prints ",(0,l.jsx)(t.code,{children:"The Ollama server is up and running."})]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(t.li,{children:["\n",(0,l.jsxs)(t.p,{children:["Finally, open ",(0,l.jsx)(t.a,{href:"http://localhost:3000/",children:"http://localhost:3000/"})," in your browser to launch the AI DIAL Chat application and select an appropriate AI DIAL deployments to converse with:"]}),"\n",(0,l.jsxs)(t.ul,{children:["\n",(0,l.jsxs)(t.li,{children:[(0,l.jsx)(t.code,{children:"Self-hosted chat model"})," deployment for the ",(0,l.jsx)(t.code,{children:"OLLAMA_CHAT_MODEL"})]}),"\n",(0,l.jsxs)(t.li,{children:[(0,l.jsx)(t.code,{children:"Self-hosted vision model"})," deployment for the ",(0,l.jsx)(t.code,{children:"OLLAMA_VISION_MODEL"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(t.blockquote,{children:["\n",(0,l.jsx)(t.p,{children:"Note, that the vision models we tested, do not support streaming of response. Moreover, they are typically more computationally expensive than the chat models. So it may take minutes for a vision model to respond."}),"\n"]}),"\n",(0,l.jsxs)(t.p,{children:["The embedding model will become available in AI DIAL under the deployment name ",(0,l.jsx)(t.code,{children:"embedding-model"})," and could be called via the endpoint: ",(0,l.jsx)(t.code,{children:"localhost:8080/openai/deployments/embedding-model/embeddings"}),"."]})]})}function c(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(h,{...e})}):h(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>d,a:()=>s});var l=n(7294);const i={},o=l.createContext(i);function s(e){const t=l.useContext(o);return l.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),l.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e8322e98.c5f5c85c.js b/assets/js/e8322e98.c5f5c85c.js new file mode 100644 index 00000000..2bf7dc52 --- /dev/null +++ b/assets/js/e8322e98.c5f5c85c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdial=self.webpackChunkdial||[]).push([[7739],{8467:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>s,default:()=>c,frontMatter:()=>o,metadata:()=>d,toc:()=>a});var l=t(5893),i=t(1151);const o={},s="Launch AI DIAL Chat with a Self-Hosted Model",d={id:"tutorials/quick-start-with-self-hosted-model",title:"Launch AI DIAL Chat with a Self-Hosted Model",description:"Introduction",source:"@site/docs/tutorials/quick-start-with-self-hosted-model.md",sourceDirName:"tutorials",slug:"/tutorials/quick-start-with-self-hosted-model",permalink:"/tutorials/quick-start-with-self-hosted-model",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"CustomSideBar",previous:{title:"Launch AI DIAL Chat with Azure Model",permalink:"/tutorials/quick-start-model"},next:{title:"Launch AI DIAL Chat with a Sample Addon",permalink:"/tutorials/quick-start-with-addon"}},r={},a=[{value:"Introduction",id:"introduction",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Step 1: Get AI DIAL",id:"step-1-get-ai-dial",level:2},{value:"Step 2: Choose a model to run",id:"step-2-choose-a-model-to-run",level:2},{value:"Chat models",id:"chat-models",level:3},{value:"Vision models",id:"vision-models",level:3},{value:"Embedding models",id:"embedding-models",level:3},{value:"Step 3: Launch AI DIAL Chat",id:"step-3-launch-ai-dial-chat",level:2}];function h(e){const n={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.h1,{id:"launch-ai-dial-chat-with-a-self-hosted-model",children:"Launch AI DIAL Chat with a Self-Hosted Model"}),"\n",(0,l.jsx)(n.h2,{id:"introduction",children:"Introduction"}),"\n",(0,l.jsxs)(n.p,{children:["In this tutorial, you will learn how to quickly launch AI DIAL Chat with a self-hosted model powered by ",(0,l.jsx)(n.a,{href:"https://ollama.com/",children:"Ollama"}),"."]}),"\n",(0,l.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,l.jsx)(n.p,{children:"Docker engine installed on your machine (Docker Compose Version 2.20.0 +)."}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:["Refer to ",(0,l.jsx)(n.a,{href:"https://docs.docker.com/desktop/",children:"Docker"})," documentation."]}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"step-1-get-ai-dial",children:"Step 1: Get AI DIAL"}),"\n",(0,l.jsxs)(n.p,{children:["Clone ",(0,l.jsx)(n.a,{href:"https://github.com/epam/ai-dial/",children:"the repository"})," with the tutorials and change directory to the following folder:"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sh",children:"cd dial-docker-compose/ollama\n"})}),"\n",(0,l.jsx)(n.h2,{id:"step-2-choose-a-model-to-run",children:"Step 2: Choose a model to run"}),"\n",(0,l.jsx)(n.p,{children:"Ollama supports a wide range of popular open-source models."}),"\n",(0,l.jsx)(n.p,{children:"Consider first the modality your are interested in - is it a regular text-to-text chat model, a multi-modal vision model or an embedding model?"}),"\n",(0,l.jsxs)(n.p,{children:["Follow the feature tags ",(0,l.jsxs)(n.em,{children:["(",(0,l.jsx)(n.code,{children:"Embeddings"}),", ",(0,l.jsx)(n.code,{children:"Code"}),", ",(0,l.jsx)(n.code,{children:"Tools"}),", ",(0,l.jsx)(n.code,{children:"Vision"}),")"]})," at ",(0,l.jsx)(n.a,{href:"https://ollama.com/search",children:"Ollama Search"})," to find the appropriate model."]}),"\n",(0,l.jsx)(n.p,{children:"We recommend choosing one of the following models which have been tested."}),"\n",(0,l.jsx)(n.h3,{id:"chat-models",children:"Chat models"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Model"}),(0,l.jsx)(n.th,{children:"Tools"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.a,{href:"https://ollama.com/library/llama3.1:8b-instruct-q4_0",children:"llama3.1:8b-instruct-q4_0"})}),(0,l.jsxs)(n.td,{children:["\u2705 ",(0,l.jsx)(n.em,{children:"(only in non-streaming mode)"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.a,{href:"https://ollama.com/library/mistral:7b-instruct-q4_0",children:"mistral:7b-instruct-q4_0"})}),(0,l.jsx)(n.td,{children:"\u274c"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.a,{href:"https://ollama.com/library/phi3.5:3.8b-mini-instruct-q4_0",children:"phi3.5:3.8b-mini-instruct-q4_0"})}),(0,l.jsx)(n.td,{children:"\u274c"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.a,{href:"https://ollama.com/library/gemma2:2b-instruct-q4_0",children:"gemma2:2b-instruct-q4_0"})}),(0,l.jsx)(n.td,{children:"\u274c"})]})]})]}),"\n",(0,l.jsx)(n.p,{children:"All the models support streaming."}),"\n",(0,l.jsx)(n.h3,{id:"vision-models",children:"Vision models"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://ollama.com/library/llava:7b-v1.6-mistral-q4_0",children:"llava:7b-v1.6-mistral-q4_0"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://ollama.com/library/llava-phi3:3.8b-mini-q4_0",children:"llava-phi3:3.8b-mini-q4_0"})}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"embedding-models",children:"Embedding models"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://ollama.com/library/nomic-embed-text:137m-v1.5-fp16",children:"nomic-embed-text:137m-v1.5-fp16"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.a,{href:"https://ollama.com/library/bge-m3:567m-fp16",children:"bge-m3:567m-fp16"})}),"\n"]}),"\n",(0,l.jsx)(n.h2,{id:"step-3-launch-ai-dial-chat",children:"Step 3: Launch AI DIAL Chat"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:["Configure ",(0,l.jsx)(n.code,{children:".env"})," file in the current directory according to the type of model you've chosen:"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["Set ",(0,l.jsx)(n.code,{children:"OLLAMA_CHAT_MODEL"})," for the name of a text model."]}),"\n",(0,l.jsxs)(n.li,{children:["Set ",(0,l.jsx)(n.code,{children:"OLLAMA_VISION_MODEL"})," for the name of a vision model."]}),"\n",(0,l.jsxs)(n.li,{children:["Set ",(0,l.jsx)(n.code,{children:"OLLAMA_EMBEDDING_MODEL"})," for the name of an embedding model."]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Note"}),": It's not necessary to configure all the models. If a model isn't set, then it won't be downloaded."]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsx)(n.p,{children:"Then run the following command to pull and load into the memory of the Ollama server the specified models:"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-sh",children:"docker compose up --abort-on-container-exit\n"})}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsxs)(n.p,{children:["Keep in mind that a typical size of a lightweight Ollama model is around a few gigabytes. So it may take a few minutes ",(0,l.jsx)(n.em,{children:"(or more)"})," to download it on the first run, depending on your internet bandwidth and the size of the model you choose."]}),"\n",(0,l.jsxs)(n.p,{children:["The models are fully loaded once ",(0,l.jsx)(n.code,{children:"ollama-setup"})," service prints ",(0,l.jsx)(n.code,{children:"The Ollama server is up and running."})]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:["Finally, open ",(0,l.jsx)(n.a,{href:"http://localhost:3000/",children:"http://localhost:3000/"})," in your browser to launch the AI DIAL Chat application and select an appropriate AI DIAL deployments to converse with:"]}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"Self-hosted chat model"})," deployment for the ",(0,l.jsx)(n.code,{children:"OLLAMA_CHAT_MODEL"})]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"Self-hosted vision model"})," deployment for the ",(0,l.jsx)(n.code,{children:"OLLAMA_VISION_MODEL"})]}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(n.blockquote,{children:["\n",(0,l.jsx)(n.p,{children:"Note, that the vision models we tested, do not support streaming of response. Moreover, they are typically more computationally expensive than the chat models. So it may take minutes for a vision model to respond."}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["The embedding model will become available in AI DIAL under the deployment name ",(0,l.jsx)(n.code,{children:"embedding-model"})," and could be called via the endpoint: ",(0,l.jsx)(n.code,{children:"localhost:8080/openai/deployments/embedding-model/embeddings"}),"."]}),"\n"]}),"\n"]})]})}function c(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(h,{...e})}):h(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>d,a:()=>s});var l=t(7294);const i={},o=l.createContext(i);function s(e){const n=l.useContext(o);return l.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),l.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.a10bef4b.js b/assets/js/runtime~main.6a1cd384.js similarity index 77% rename from assets/js/runtime~main.a10bef4b.js rename to assets/js/runtime~main.6a1cd384.js index 412293a7..8bc4983a 100644 --- a/assets/js/runtime~main.a10bef4b.js +++ b/assets/js/runtime~main.6a1cd384.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,d,f,b,c={},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 c[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=c,r.c=t,e=[],r.O=(a,d,f,b)=>{if(!d){var c=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[d,f,b]},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 b=Object.create(null);r.r(b);var c={};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=>c[a]=()=>e[a]));return c.default=()=>e,r.d(b,c),b},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/"+({53:"935f2afb",208:"a4ea95f2",435:"f80efcc6",647:"e86fab3a",703:"70306081",708:"fb55f148",718:"db8b564c",918:"2dd9ec16",1285:"b7a7188f",1319:"2212c95d",1362:"7a319521",1543:"f8eabc72",1656:"083d8161",2044:"f746b51e",2104:"404040dd",2384:"f1b08e57",2467:"b040799b",2551:"c8b71c12",2659:"1db65d89",2982:"9d1d0fcb",3193:"90895fd8",3255:"0eef0f8a",3407:"cbcbafba",3494:"dec4ff82",3659:"94956052",3716:"bcef5d26",3740:"0ea2a8b4",3998:"5f6ee5c4",4122:"02f45931",4368:"a94703ab",4433:"df554ab0",5154:"8a489d04",5387:"71b56cd1",5467:"8b91756d",5544:"a412962b",5567:"5f33b24b",5741:"d0b3a573",5767:"a0d26522",5927:"5281b7a2",6122:"3cda4e15",6436:"e5bd20d9",6477:"2b5b29c2",6478:"465f3a2a",6513:"66a42a75",6668:"7d0ffb52",6687:"99f76a89",6712:"5e2346dc",7239:"72e14192",7441:"d48d0a00",7602:"942a3cbc",7739:"e8322e98",7833:"b232fa30",7918:"17896441",7920:"1a4e3797",8128:"221d3fb8",8421:"23374ca6",8457:"32f50ce0",8518:"a7bd4aaa",8924:"46ba9cd8",8941:"ed886c21",9114:"6c15c11a",9150:"05815697",9310:"0a0492db",9356:"8322a3d3",9397:"92110c27",9412:"1d7da6f3",9565:"f1067f2e",9661:"5e95c892",9674:"c2d99fa8",9832:"83a82092",9975:"0dd6e5c9"}[e]||e)+"."+{53:"7a35e2ff",208:"bd3a80b0",435:"89c391f3",647:"c954d728",703:"2fbb27d6",708:"1241276b",718:"3b55b4a5",918:"49f800b5",1285:"862f2f83",1319:"b43d5bc1",1362:"962a0f90",1426:"2dba7354",1543:"61611289",1656:"a7ae8da6",1772:"3c46d6f9",2044:"83859b7a",2104:"2aef3d58",2384:"271e7bc6",2467:"16a7de17",2551:"a9e5680f",2659:"4a250c69",2982:"2b0bef6c",3193:"22bdc318",3255:"c4da40fa",3407:"39934041",3494:"9b0103ea",3659:"8d86afde",3716:"95b99166",3740:"ad086965",3998:"be07cff0",4122:"c9ab7607",4368:"d3df2f63",4433:"b704df60",5154:"5b929863",5387:"0e6eba21",5467:"ee4712bf",5544:"9355128b",5567:"afd6339f",5741:"a5dcb43c",5767:"e39e558c",5927:"841fb69c",6122:"364c8bcd",6436:"af366f33",6477:"0aa52a19",6478:"8be4376f",6513:"09cdb6ec",6668:"e42ea373",6687:"20bfd259",6712:"1bc9fcd9",6945:"382c92f1",7239:"4a974f55",7441:"d780948e",7602:"9a3f1df4",7739:"89d02aec",7833:"949a97dc",7918:"bd6b13c3",7920:"7e4784e5",8128:"fcaf5344",8421:"eebf9bf8",8457:"84de1ac5",8518:"61ee2c8a",8894:"37fea395",8924:"f65c7163",8941:"2dd4b499",9114:"64814bfd",9150:"2355c51b",9310:"c456496b",9356:"926d418d",9397:"5958cceb",9412:"cbbe1c12",9565:"1969fd3f",9661:"106d3119",9674:"2b6885e7",9832:"69191090",9975:"5968411e"}[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={},b="dial:",r.l=(e,a,d,c)=>{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 b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(d))),a)return a(d)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.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:"7918",70306081:"703",94956052:"3659","935f2afb":"53",a4ea95f2:"208",f80efcc6:"435",e86fab3a:"647",fb55f148:"708",db8b564c:"718","2dd9ec16":"918",b7a7188f:"1285","2212c95d":"1319","7a319521":"1362",f8eabc72:"1543","083d8161":"1656",f746b51e:"2044","404040dd":"2104",f1b08e57:"2384",b040799b:"2467",c8b71c12:"2551","1db65d89":"2659","9d1d0fcb":"2982","90895fd8":"3193","0eef0f8a":"3255",cbcbafba:"3407",dec4ff82:"3494",bcef5d26:"3716","0ea2a8b4":"3740","5f6ee5c4":"3998","02f45931":"4122",a94703ab:"4368",df554ab0:"4433","8a489d04":"5154","71b56cd1":"5387","8b91756d":"5467",a412962b:"5544","5f33b24b":"5567",d0b3a573:"5741",a0d26522:"5767","5281b7a2":"5927","3cda4e15":"6122",e5bd20d9:"6436","2b5b29c2":"6477","465f3a2a":"6478","66a42a75":"6513","7d0ffb52":"6668","99f76a89":"6687","5e2346dc":"6712","72e14192":"7239",d48d0a00:"7441","942a3cbc":"7602",e8322e98:"7739",b232fa30:"7833","1a4e3797":"7920","221d3fb8":"8128","23374ca6":"8421","32f50ce0":"8457",a7bd4aaa:"8518","46ba9cd8":"8924",ed886c21:"8941","6c15c11a":"9114","05815697":"9150","0a0492db":"9310","8322a3d3":"9356","92110c27":"9397","1d7da6f3":"9412",f1067f2e:"9565","5e95c892":"9661",c2d99fa8:"9674","83a82092":"9832","0dd6e5c9":"9975"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532: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(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((d,b)=>f=e[a]=[d,b]));d.push(f[2]=b);var c=r.p+r.u(a),t=new Error;r.l(c,(d=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=d&&("load"===d.type?"missing":d.type),c=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var f,b,c=d[0],t=d[1],o=d[2],n=0;if(c.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,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/"+({53:"935f2afb",208:"a4ea95f2",435:"f80efcc6",647:"e86fab3a",703:"70306081",708:"fb55f148",718:"db8b564c",918:"2dd9ec16",1285:"b7a7188f",1319:"2212c95d",1362:"7a319521",1543:"f8eabc72",1656:"083d8161",2044:"f746b51e",2104:"404040dd",2384:"f1b08e57",2467:"b040799b",2551:"c8b71c12",2659:"1db65d89",2982:"9d1d0fcb",3193:"90895fd8",3255:"0eef0f8a",3407:"cbcbafba",3494:"dec4ff82",3659:"94956052",3716:"bcef5d26",3740:"0ea2a8b4",3998:"5f6ee5c4",4122:"02f45931",4368:"a94703ab",4433:"df554ab0",5154:"8a489d04",5387:"71b56cd1",5467:"8b91756d",5544:"a412962b",5567:"5f33b24b",5741:"d0b3a573",5767:"a0d26522",5927:"5281b7a2",6122:"3cda4e15",6436:"e5bd20d9",6477:"2b5b29c2",6478:"465f3a2a",6513:"66a42a75",6668:"7d0ffb52",6687:"99f76a89",6712:"5e2346dc",7239:"72e14192",7441:"d48d0a00",7602:"942a3cbc",7739:"e8322e98",7833:"b232fa30",7918:"17896441",7920:"1a4e3797",8128:"221d3fb8",8421:"23374ca6",8457:"32f50ce0",8518:"a7bd4aaa",8924:"46ba9cd8",8941:"ed886c21",9114:"6c15c11a",9150:"05815697",9310:"0a0492db",9356:"8322a3d3",9397:"92110c27",9412:"1d7da6f3",9565:"f1067f2e",9661:"5e95c892",9674:"c2d99fa8",9832:"83a82092",9975:"0dd6e5c9"}[e]||e)+"."+{53:"7a35e2ff",208:"bd3a80b0",435:"89c391f3",647:"c954d728",703:"2fbb27d6",708:"1241276b",718:"3b55b4a5",918:"49f800b5",1285:"862f2f83",1319:"b43d5bc1",1362:"962a0f90",1426:"2dba7354",1543:"61611289",1656:"a7ae8da6",1772:"3c46d6f9",2044:"83859b7a",2104:"2aef3d58",2384:"271e7bc6",2467:"16a7de17",2551:"a9e5680f",2659:"4a250c69",2982:"2b0bef6c",3193:"22bdc318",3255:"c4da40fa",3407:"39934041",3494:"9b0103ea",3659:"8d86afde",3716:"95b99166",3740:"ad086965",3998:"be07cff0",4122:"c9ab7607",4368:"d3df2f63",4433:"b704df60",5154:"5b929863",5387:"0e6eba21",5467:"ee4712bf",5544:"9355128b",5567:"afd6339f",5741:"a5dcb43c",5767:"e39e558c",5927:"841fb69c",6122:"364c8bcd",6436:"af366f33",6477:"0aa52a19",6478:"8be4376f",6513:"09cdb6ec",6668:"e42ea373",6687:"20bfd259",6712:"1bc9fcd9",6945:"382c92f1",7239:"4a974f55",7441:"d780948e",7602:"9a3f1df4",7739:"c5f5c85c",7833:"949a97dc",7918:"bd6b13c3",7920:"7e4784e5",8128:"fcaf5344",8421:"eebf9bf8",8457:"84de1ac5",8518:"61ee2c8a",8894:"37fea395",8924:"f65c7163",8941:"2dd4b499",9114:"64814bfd",9150:"2355c51b",9310:"c456496b",9356:"926d418d",9397:"5958cceb",9412:"cbbe1c12",9565:"1969fd3f",9661:"106d3119",9674:"2b6885e7",9832:"69191090",9975:"5968411e"}[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="dial:",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(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.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:"7918",70306081:"703",94956052:"3659","935f2afb":"53",a4ea95f2:"208",f80efcc6:"435",e86fab3a:"647",fb55f148:"708",db8b564c:"718","2dd9ec16":"918",b7a7188f:"1285","2212c95d":"1319","7a319521":"1362",f8eabc72:"1543","083d8161":"1656",f746b51e:"2044","404040dd":"2104",f1b08e57:"2384",b040799b:"2467",c8b71c12:"2551","1db65d89":"2659","9d1d0fcb":"2982","90895fd8":"3193","0eef0f8a":"3255",cbcbafba:"3407",dec4ff82:"3494",bcef5d26:"3716","0ea2a8b4":"3740","5f6ee5c4":"3998","02f45931":"4122",a94703ab:"4368",df554ab0:"4433","8a489d04":"5154","71b56cd1":"5387","8b91756d":"5467",a412962b:"5544","5f33b24b":"5567",d0b3a573:"5741",a0d26522:"5767","5281b7a2":"5927","3cda4e15":"6122",e5bd20d9:"6436","2b5b29c2":"6477","465f3a2a":"6478","66a42a75":"6513","7d0ffb52":"6668","99f76a89":"6687","5e2346dc":"6712","72e14192":"7239",d48d0a00:"7441","942a3cbc":"7602",e8322e98:"7739",b232fa30:"7833","1a4e3797":"7920","221d3fb8":"8128","23374ca6":"8421","32f50ce0":"8457",a7bd4aaa:"8518","46ba9cd8":"8924",ed886c21:"8941","6c15c11a":"9114","05815697":"9150","0a0492db":"9310","8322a3d3":"9356","92110c27":"9397","1d7da6f3":"9412",f1067f2e:"9565","5e95c892":"9661",c2d99fa8:"9674","83a82092":"9832","0dd6e5c9":"9975"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532: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(/^(1303|532)$/.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