45 |
53 |
87 |
88 |
--------------------------------------------------------------------------------
/.vitepress/config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vitepress"
2 |
3 | // https://vitepress.dev/reference/site-config
4 | export default defineConfig({
5 | title: "ChatKit Docs",
6 | description: "Documentation for ChatKit",
7 | lastUpdated: true,
8 | themeConfig: {
9 | search: {
10 | provider: "local",
11 | },
12 | // https://vitepress.dev/reference/default-theme-config
13 | nav: [
14 | { text: "Home", link: "/" },
15 | { text: "ChatKit", link: "https://chatkit.app" },
16 | ],
17 |
18 | sidebar: [
19 | {
20 | text: "Guide",
21 | items: [
22 | {
23 | text: "Getting Started",
24 | link: "/getting-started",
25 | },
26 | {
27 | text: "Chat over External Documents",
28 | link: "/chat-external-documents",
29 | },
30 | {
31 | text: "Text to Speech",
32 | link: "/text-to-speech",
33 | },
34 | {
35 | text: "Prompt Templates",
36 | link: "/prompt-templates",
37 | },
38 | { text: "Launcher", link: "/launcher" },
39 | {
40 | text: "Shortcuts",
41 | link: "/shortcuts",
42 | },
43 | {
44 | text: "Credits",
45 | link: "/credits",
46 | },
47 | {
48 | text: "Log In",
49 | link: "/log-in",
50 | },
51 | {
52 | text: "Cloud Sync",
53 | link: "/cloud-sync",
54 | },
55 | { text: "Team Plan", link: "/team" },
56 | { text: "Web Access", link: "/web-access" },
57 | {
58 | text: "Azure OpenAI",
59 | link: "/azure-openai",
60 | },
61 | {
62 | text: "Google Gemini",
63 | link: "/gemini",
64 | },
65 | {
66 | text: "Perplexity Models",
67 | link: "/pplx",
68 | },
69 | {
70 | text: "OpenRouter Models",
71 | link: "/openrouter",
72 | },
73 | {
74 | text: "Ollama Models",
75 | link: "/ollama",
76 | },
77 | {
78 | text: "Custom Model",
79 | link: "/custom-model",
80 | },
81 | {
82 | text: "Math Formula",
83 | link: "/math-formula",
84 | },
85 | ],
86 | },
87 |
88 | {
89 | text: "Company",
90 | items: [
91 | {
92 | text: "Privacy policy",
93 | link: "/privacy-policy",
94 | },
95 | {
96 | text: "Refund policy",
97 | link: "/refund-policy",
98 | },
99 | {
100 | text: "Terms and Conditions",
101 | link: "/terms",
102 | },
103 | ],
104 | },
105 | ],
106 |
107 | socialLinks: [
108 | { icon: "github", link: "https://github.com/egoist/chatkit-docs" },
109 | ],
110 |
111 | editLink: {
112 | pattern: "https://github.com/egoist/chatkit-docs/blob/main/:path",
113 | },
114 | },
115 | })
116 |
--------------------------------------------------------------------------------
/.vitepress/theme/index.ts:
--------------------------------------------------------------------------------
1 | // https://vitepress.dev/guide/custom-theme
2 | import { defineComponent, h, nextTick, onMounted, watch } from "vue"
3 | import { useRoute } from "vitepress"
4 | import Theme from "vitepress/theme"
5 | import mediumZoom from "medium-zoom"
6 |
7 | import VideoPlayer from "../components/VideoPlayer.vue"
8 | import "./tailwind.css"
9 | import "./style.css"
10 |
11 | const initZoom = () => {
12 | mediumZoom(".content img")
13 | }
14 |
15 | export default {
16 | ...Theme,
17 |
18 | Layout: defineComponent({
19 | setup() {
20 | const route = useRoute()
21 | onMounted(() => {
22 | initZoom()
23 | })
24 |
25 | watch(
26 | () => route.path,
27 | () => {
28 | nextTick(() => initZoom())
29 | }
30 | )
31 |
32 | return () =>
33 | h(Theme.Layout, null, {
34 | // https://vitepress.dev/guide/extending-default-theme#layout-slots
35 | })
36 | },
37 | }),
38 | enhanceApp({ app, router, siteData }) {
39 | app.component("VideoPlayer", VideoPlayer)
40 | },
41 | }
42 |
--------------------------------------------------------------------------------
/.vitepress/theme/style.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Customize default theme styling by overriding CSS variables:
3 | * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css
4 | */
5 |
6 | /**
7 | * Colors
8 | * -------------------------------------------------------------------------- */
9 |
10 | :root {
11 | --vp-c-brand: #646cff;
12 | --vp-c-brand-light: #747bff;
13 | --vp-c-brand-lighter: #9499ff;
14 | --vp-c-brand-lightest: #bcc0ff;
15 | --vp-c-brand-dark: #535bf2;
16 | --vp-c-brand-darker: #454ce1;
17 | --vp-c-brand-dimm: rgba(100, 108, 255, 0.08);
18 | }
19 |
20 | /**
21 | * Component: Button
22 | * -------------------------------------------------------------------------- */
23 |
24 | :root {
25 | --vp-button-brand-border: var(--vp-c-brand-light);
26 | --vp-button-brand-text: var(--vp-c-white);
27 | --vp-button-brand-bg: var(--vp-c-brand);
28 | --vp-button-brand-hover-border: var(--vp-c-brand-light);
29 | --vp-button-brand-hover-text: var(--vp-c-white);
30 | --vp-button-brand-hover-bg: var(--vp-c-brand-light);
31 | --vp-button-brand-active-border: var(--vp-c-brand-light);
32 | --vp-button-brand-active-text: var(--vp-c-white);
33 | --vp-button-brand-active-bg: var(--vp-button-brand-bg);
34 | }
35 |
36 | /**
37 | * Component: Home
38 | * -------------------------------------------------------------------------- */
39 |
40 | :root {
41 | --vp-home-hero-name-color: transparent;
42 | --vp-home-hero-name-background: -webkit-linear-gradient(
43 | 120deg,
44 | #bd34fe 30%,
45 | #41d1ff
46 | );
47 |
48 | --vp-home-hero-image-background-image: linear-gradient(
49 | -45deg,
50 | #bd34fe 50%,
51 | #47caff 50%
52 | );
53 | --vp-home-hero-image-filter: blur(40px);
54 | }
55 |
56 | @media (min-width: 640px) {
57 | :root {
58 | --vp-home-hero-image-filter: blur(56px);
59 | }
60 | }
61 |
62 | @media (min-width: 960px) {
63 | :root {
64 | --vp-home-hero-image-filter: blur(72px);
65 | }
66 | }
67 |
68 | /**
69 | * Component: Custom Block
70 | * -------------------------------------------------------------------------- */
71 |
72 | :root {
73 | --vp-custom-block-tip-border: var(--vp-c-brand);
74 | --vp-custom-block-tip-text: var(--vp-c-brand-darker);
75 | --vp-custom-block-tip-bg: var(--vp-c-brand-dimm);
76 | }
77 |
78 | .dark {
79 | --vp-custom-block-tip-border: var(--vp-c-brand);
80 | --vp-custom-block-tip-text: var(--vp-c-brand-lightest);
81 | --vp-custom-block-tip-bg: var(--vp-c-brand-dimm);
82 | }
83 |
84 | /**
85 | * Component: Algolia
86 | * -------------------------------------------------------------------------- */
87 |
88 | .DocSearch {
89 | --docsearch-primary-color: var(--vp-c-brand) !important;
90 | }
91 |
92 | /**
93 | * VitePress: Custom fix
94 | * -------------------------------------------------------------------------- */
95 |
96 | /*
97 | Use lighter colors for links in dark mode for a11y.
98 | Also specify some classes twice to have higher specificity
99 | over scoped class data attribute.
100 | */
101 | .dark .vp-doc a,
102 | .dark .vp-doc a > code,
103 | .dark .VPNavBarMenuLink.VPNavBarMenuLink:hover,
104 | .dark .VPNavBarMenuLink.VPNavBarMenuLink.active,
105 | .dark .link.link:hover,
106 | .dark .link.link.active,
107 | .dark .edit-link-button.edit-link-button,
108 | .dark .pager-link .title {
109 | color: var(--vp-c-brand-lighter);
110 | }
111 |
112 | .dark .vp-doc a:hover,
113 | .dark .vp-doc a > code:hover {
114 | color: var(--vp-c-brand-lightest);
115 | opacity: 1;
116 | }
117 |
118 | /* Transition by color instead of opacity */
119 | .dark .vp-doc .custom-block a {
120 | transition: color 0.25s;
121 | }
122 |
123 |
--------------------------------------------------------------------------------
/.vitepress/theme/tailwind.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | kbd {
6 | @apply bg-zinc-100 rounded-lg border p-1 px-2 whitespace-nowrap text-xs text-zinc-600 border-zinc-300 dark:bg-zinc-800 dark:text-zinc-200 dark:border-zinc-600;
7 | }
8 |
9 | .medium-zoom-overlay {
10 | @apply z-[9998];
11 | }
12 |
13 | .medium-zoom-image--opened {
14 | @apply z-[9999];
15 | }
16 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 ChatKit
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ChatKit Docs
2 |
3 | https://docs.chatkit.app
4 |
5 | ## MIT
6 |
7 | © [ChatKit](https://chatkit.app)
8 |
--------------------------------------------------------------------------------
/anthropic.md:
--------------------------------------------------------------------------------
1 | # Anthropic
2 |
3 | [Claude by Anthropic](https://www.anthropic.com/claude) is available in ChatKit.
4 |
5 | By default we use a proxy of Anthropic's API because it doesn't allow cross-site access from browser (CORS). However if you worry about privacy (although we don't store your data), you can use your own API endpoint.
6 |
--------------------------------------------------------------------------------
/azure-openai.md:
--------------------------------------------------------------------------------
1 | # Azure OpenAI
2 |
3 | We support a set of OpenAI models deployed on Microsoft Azure. They are available in the model list:
4 |
5 | 
6 |
7 | ## Deploy a model on Azure OpenAI
8 |
9 | We map each model to a deployment on Azure OpenAI by their deployment name:
10 |
11 | | model | deployment name |
12 | | ------------------- | --------------- |
13 | | Azure GPT-3.5 Turbo | gpt-35-turbo |
14 | | Azure GPT-4 Turbo | gpt-4-turbo |
15 | | Azure GPT-4 Vision | gpt-4-vision |
16 |
17 | For instance, if you want to use `Azure GPT-3.5 Turbo` on ChatKit, you need to create a deployment with the name `gpt-35-turbo` on Azure OpenAI:
18 |
19 | 
20 |
21 | ## Setup
22 |
23 | To use Azure OpenAI, you need to configure your deployment endpoint and api key:
24 |
25 | 
26 |
27 | You can obtain them from [Azure portal > Azure OpenAI](https://portal.azure.com/), the endpoint looks like `https://resource-name.openai.azure.com`:
28 |
29 | 
30 |
--------------------------------------------------------------------------------
/chat-external-documents.md:
--------------------------------------------------------------------------------
1 | # Chat over External Documents
2 |
3 | ## Chat context
4 |
5 | ChatKit allows you to add URLs as chat context, it's useful for summarizing external documents or ask questions over them.
6 |
7 |