41 lines
21 KiB
HTML
41 lines
21 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en-US">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<meta name="generator" content="VuePress 2.0.0-beta.61">
|
|
<style>
|
|
:root {
|
|
--c-bg: #fff;
|
|
}
|
|
html.dark {
|
|
--c-bg: #22272e;
|
|
}
|
|
html, body {
|
|
background-color: var(--c-bg);
|
|
}
|
|
</style>
|
|
<script>
|
|
const userMode = localStorage.getItem('vuepress-color-scheme');
|
|
const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
|
|
document.documentElement.classList.toggle('dark', true);
|
|
}
|
|
</script>
|
|
<title>Development Guide | ChatGPT UI</title><meta name="description" content="A ChatGPT web client">
|
|
<link rel="preload" href="/chatgpt-ui/assets/style-ad6949cb.css" as="style"><link rel="stylesheet" href="/chatgpt-ui/assets/style-ad6949cb.css">
|
|
<link rel="modulepreload" href="/chatgpt-ui/assets/app-525ee8ad.js"><link rel="modulepreload" href="/chatgpt-ui/assets/framework-5866ffd3.js"><link rel="modulepreload" href="/chatgpt-ui/assets/development.html-df5e9336.js"><link rel="modulepreload" href="/chatgpt-ui/assets/development.html-117eb2b5.js"><link rel="prefetch" href="/chatgpt-ui/assets/index.html-f32af385.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/buymeacoffee.html-f20ec2fb.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/configuration.html-ed512da6.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/problems.html-3485ea96.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/quick-start.html-5d24620c.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/index.html-a9203641.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/buymeacoffee.html-22a781eb.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/configuration.html-0ef661b4.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/development.html-b8d21bb5.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/problems.html-f1039fc4.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/quick-start.html-91a3ce5d.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/404.html-60b35caa.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/index.html-18d42ac0.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/buymeacoffee.html-138309cb.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/configuration.html-a7684ba6.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/problems.html-84e6145b.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/quick-start.html-b336d0c1.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/index.html-d042d854.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/buymeacoffee.html-5158290f.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/configuration.html-99825d43.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/development.html-989a2b06.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/problems.html-dabd58d0.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/quick-start.html-fc1bc91c.js" as="script"><link rel="prefetch" href="/chatgpt-ui/assets/404.html-87d54bd8.js" as="script">
|
|
</head>
|
|
<body>
|
|
<div id="app"><!--[--><div class="theme-container"><!--[--><header class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/chatgpt-ui/" class=""><!----><span class="site-name">ChatGPT UI</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/chatgpt-ui/" class="" aria-label="Guide"><!--[--><!--]--> Guide <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="https://github.com/WongSaang/chatgpt-ui/releases" rel="noopener noreferrer" target="_blank" aria-label="Changelog"><!--[--><!--]--> Changelog <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Select language"><span class="title">Languages</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">Languages</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a aria-current="page" href="/chatgpt-ui/guide/development.html" class="router-link-active router-link-exact-active router-link-active" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/chatgpt-ui/zh/guide/development.html" class="" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><!--]--></ul></div></div><!--]--></nav><!--[--><!--]--><button class="toggle-color-mode-button" title="toggle color mode"><svg style="" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg style="display:none;" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><!----></div></header><!--]--><div class="sidebar-mask"></div><!--[--><aside class="sidebar"><nav class="navbar-items"><!--[--><div class="navbar-item"><a href="/chatgpt-ui/" class="" aria-label="Guide"><!--[--><!--]--> Guide <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="https://github.com/WongSaang/chatgpt-ui/releases" rel="noopener noreferrer" target="_blank" aria-label="Changelog"><!--[--><!--]--> Changelog <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Select language"><span class="title">Languages</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">Languages</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a aria-current="page" href="/chatgpt-ui/guide/development.html" class="router-link-active router-link-exact-active router-link-active" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/chatgpt-ui/zh/guide/development.html" class="" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><!--]--></ul></div></div><!--]--></nav><!--[--><!--]--><ul class="sidebar-items"><!--[--><li><p tabindex="0" class="sidebar-item sidebar-heading active">Guide <!----></p><ul style="" class="sidebar-item-children"><!--[--><li><a href="/chatgpt-ui/" class="sidebar-item" aria-label="Introduction"><!--[--><!--]--> Introduction <!--[--><!--]--></a><!----></li><li><a href="/chatgpt-ui/guide/quick-start.html" class="sidebar-item" aria-label="Quick Start"><!--[--><!--]--> Quick Start <!--[--><!--]--></a><!----></li><li><a href="/chatgpt-ui/guide/configuration.html" class="sidebar-item" aria-label="Configuration Reference"><!--[--><!--]--> Configuration Reference <!--[--><!--]--></a><!----></li><li><a href="/chatgpt-ui/guide/problems.html" class="sidebar-item" aria-label="Encountering Issues"><!--[--><!--]--> Encountering Issues <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/chatgpt-ui/guide/development.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="Development Guide"><!--[--><!--]--> Development Guide <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/chatgpt-ui/guide/development.html#front-end" class="router-link-active router-link-exact-active sidebar-item" aria-label="Front-end"><!--[--><!--]--> Front-end <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/chatgpt-ui/guide/development.html#environment-setup" class="router-link-active router-link-exact-active sidebar-item" aria-label="Environment Setup"><!--[--><!--]--> Environment Setup <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/chatgpt-ui/guide/development.html#install-dependencies" class="router-link-active router-link-exact-active sidebar-item" aria-label="Install dependencies"><!--[--><!--]--> Install dependencies <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/chatgpt-ui/guide/development.html#start-development-server" class="router-link-active router-link-exact-active sidebar-item" aria-label="Start development server"><!--[--><!--]--> Start development server <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/chatgpt-ui/guide/development.html#build" class="router-link-active router-link-exact-active sidebar-item" aria-label="Build"><!--[--><!--]--> Build <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/chatgpt-ui/guide/development.html#package-as-a-docker-image" class="router-link-active router-link-exact-active sidebar-item" aria-label="Package as a docker image"><!--[--><!--]--> Package as a docker image <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a aria-current="page" href="/chatgpt-ui/guide/development.html#back-end" class="router-link-active router-link-exact-active sidebar-item" aria-label="Back-end"><!--[--><!--]--> Back-end <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/chatgpt-ui/guide/development.html#environment-setup-1" class="router-link-active router-link-exact-active sidebar-item" aria-label="Environment Setup"><!--[--><!--]--> Environment Setup <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/chatgpt-ui/guide/development.html#install-dependencies-1" class="router-link-active router-link-exact-active sidebar-item" aria-label="Install dependencies"><!--[--><!--]--> Install dependencies <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/chatgpt-ui/guide/development.html#start-development-server-1" class="router-link-active router-link-exact-active sidebar-item" aria-label="Start development server"><!--[--><!--]--> Start development server <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/chatgpt-ui/guide/development.html#package-as-a-docker-image-1" class="router-link-active router-link-exact-active sidebar-item" aria-label="Package as a docker image"><!--[--><!--]--> Package as a docker image <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul></li><li><a href="/chatgpt-ui/guide/buymeacoffee.html" class="sidebar-item" aria-label="Donation"><!--[--><!--]--> Donation <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="page"><!--[--><!--]--><div class="theme-default-content"><!--[--><!--]--><div><h1 id="development-guide" tabindex="-1"><a class="header-anchor" href="#development-guide" aria-hidden="true">#</a> Development Guide</h1><h2 id="front-end" tabindex="-1"><a class="header-anchor" href="#front-end" aria-hidden="true">#</a> Front-end</h2><p>Required skills: <a href="https://vuejs.org/" target="_blank" rel="noopener noreferrer">Vue<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a>, <a href="https://nuxt.com/" target="_blank" rel="noopener noreferrer">Nuxt<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a></p><p>Project address: <a href="https://github.com/WongSaang/chatgpt-ui" target="_blank" rel="noopener noreferrer">https://github.com/WongSaang/chatgpt-ui<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a></p><h3 id="environment-setup" tabindex="-1"><a class="header-anchor" href="#environment-setup" aria-hidden="true">#</a> Environment Setup</h3><p>Install the latest stable version of node.js. If you need to package it as a docker image, you also need to install docker.</p><h3 id="install-dependencies" tabindex="-1"><a class="header-anchor" href="#install-dependencies" aria-hidden="true">#</a> Install dependencies</h3><div class="language-text line-numbers-mode" data-ext="text"><pre class="language-text"><code>yarn install
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="start-development-server" tabindex="-1"><a class="header-anchor" href="#start-development-server" aria-hidden="true">#</a> Start development server</h3><div class="language-text line-numbers-mode" data-ext="text"><pre class="language-text"><code>yarn dev
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="build" tabindex="-1"><a class="header-anchor" href="#build" aria-hidden="true">#</a> Build</h3><div class="language-text line-numbers-mode" data-ext="text"><pre class="language-text"><code>yarn build
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="package-as-a-docker-image" tabindex="-1"><a class="header-anchor" href="#package-as-a-docker-image" aria-hidden="true">#</a> Package as a docker image</h3><div class="language-text line-numbers-mode" data-ext="text"><pre class="language-text"><code>docker build -t image-name:latest .
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h2 id="back-end" tabindex="-1"><a class="header-anchor" href="#back-end" aria-hidden="true">#</a> Back-end</h2><p>Required skills: <a href="https://www.python.org/" target="_blank" rel="noopener noreferrer">Python<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a>, <a href="https://djangoproject.com/" target="_blank" rel="noopener noreferrer">Django<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a></p><p>Project address: <a href="https://github.com/WongSaang/chatgpt-ui-server" target="_blank" rel="noopener noreferrer">https://github.com/WongSaang/chatgpt-ui-server<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a></p><h3 id="environment-setup-1" tabindex="-1"><a class="header-anchor" href="#environment-setup-1" aria-hidden="true">#</a> Environment Setup</h3><p>Install Python, pip/pipenv. If you need to package it as a docker image, you also need to install docker.</p><h3 id="install-dependencies-1" tabindex="-1"><a class="header-anchor" href="#install-dependencies-1" aria-hidden="true">#</a> Install dependencies</h3><div class="language-text line-numbers-mode" data-ext="text"><pre class="language-text"><code>pip install -r requirements.txt
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="start-development-server-1" tabindex="-1"><a class="header-anchor" href="#start-development-server-1" aria-hidden="true">#</a> Start development server</h3><div class="language-text line-numbers-mode" data-ext="text"><pre class="language-text"><code>python manage.py runserver
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h3 id="package-as-a-docker-image-1" tabindex="-1"><a class="header-anchor" href="#package-as-a-docker-image-1" aria-hidden="true">#</a> Package as a docker image</h3><div class="language-text line-numbers-mode" data-ext="text"><pre class="language-text"><code>docker build -t image-name:latest .
|
|
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div></div><!--[--><!--]--></div><footer class="page-meta"><!----><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><div class="meta-item contributors"><span class="meta-item-label">Contributors: </span><span class="meta-item-info"><!--[--><!--[--><span class="contributor" title="email: rafiwx@gmail.com">Rafi</span><!----><!--]--><!--]--></span></div></footer><nav class="page-nav"><p class="inner"><span class="prev"><a href="/chatgpt-ui/guide/problems.html" class="" aria-label="Encountering Issues"><!--[--><!--]--> Encountering Issues <!--[--><!--]--></a></span><span class="next"><a href="/chatgpt-ui/guide/buymeacoffee.html" class="" aria-label="Donation"><!--[--><!--]--> Donation <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
|
|
<script type="module" src="/chatgpt-ui/assets/app-525ee8ad.js" defer></script>
|
|
</body>
|
|
</html>
|