Compare commits

..

13 Commits

Author SHA1 Message Date
GH Action - Upstream Sync
f6e7f49f40 Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 2025-07-18 02:02:11 +00:00
GH Action - Upstream Sync
60c718f275 Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 2025-07-15 02:03:12 +00:00
GH Action - Upstream Sync
b55bcb7d87 Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 2025-07-09 01:56:10 +00:00
GH Action - Upstream Sync
bcc4499004 Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 2025-07-01 02:05:18 +00:00
GH Action - Upstream Sync
dd016045e2 Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 2025-06-20 01:52:47 +00:00
GH Action - Upstream Sync
4461b16594 Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 2025-06-15 02:02:50 +00:00
GH Action - Upstream Sync
19e3615c65 Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 2025-06-13 01:53:01 +00:00
GH Action - Upstream Sync
2de9466088 Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 2025-06-12 01:52:09 +00:00
GH Action - Upstream Sync
bc403c0cd8 Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 2025-04-20 01:50:38 +00:00
GH Action - Upstream Sync
f2c03fc242 Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 2025-04-17 01:44:31 +00:00
GH Action - Upstream Sync
ea3ce4df35 Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 2025-03-21 01:41:53 +00:00
GH Action - Upstream Sync
a6c68cf480 Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 2025-03-15 01:38:07 +00:00
Xiansuo Huang
cbeda625bd fix: Fixed Locale.Error.Unauthorized text display issue 2025-03-09 21:28:36 +08:00
31 changed files with 131 additions and 926 deletions

View File

@@ -1,492 +0,0 @@
<div align="center">
<a href='https://nextchat.club'>
<img src="https://github.com/user-attachments/assets/83bdcc07-ae5e-4954-a53a-ac151ba6ccf3" width="1000" alt="icon"/>
</a>
<h1 align="center">NextChat</h1>
영어 / [简体中文](./README_CN.md)
<a href="https://trendshift.io/repositories/5973" target="_blank">
<img src="https://trendshift.io/api/badge/repositories/5973" alt="ChatGPTNextWeb%2FChatGPT-Next-Web | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/>
</a>
✨ 빠르고 가벼운 AI 어시스턴트, Claude, DeepSeek, GPT-4, Gemini Pro 지원
[![Saas][Saas-image]][saas-url]
[![Web][Web-image]][web-url]
[![Windows][Windows-image]][download-url]
[![MacOS][MacOS-image]][download-url]
[![Linux][Linux-image]][download-url]
[NextChatAI 웹사이트](https://nextchat.club?utm_source=readme) / [iOS 앱](https://apps.apple.com/us/app/nextchat-ai/id6743085599) / [웹 데모](https://app.nextchat.club) / [데스크톱 앱](https://github.com/Yidadaa/ChatGPT-Next-Web/releases) / [엔터프라이즈 버전](#enterprise-edition)
[saas-url]: https://nextchat.club?utm_source=readme
[saas-image]: https://img.shields.io/badge/NextChat-Saas-green?logo=microsoftedge
[web-url]: https://app.nextchat.club/
[download-url]: https://github.com/Yidadaa/ChatGPT-Next-Web/releases
[Web-image]: https://img.shields.io/badge/Web-PWA-orange?logo=microsoftedge
[Windows-image]: https://img.shields.io/badge/-Windows-blue?logo=windows
[MacOS-image]: https://img.shields.io/badge/-MacOS-black?logo=apple
[Linux-image]: https://img.shields.io/badge/-Linux-333?logo=ubuntu
[<img src="https://zeabur.com/button.svg" alt="Deploy on Zeabur" height="30">](https://zeabur.com/templates/ZBUEFA) [<img src="https://vercel.com/button" alt="Deploy on Vercel" height="30">](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FChatGPTNextWeb%2FChatGPT-Next-Web&env=OPENAI_API_KEY&env=CODE&project-name=nextchat&repository-name=NextChat) [<img src="https://gitpod.io/button/open-in-gitpod.svg" alt="Open in Gitpod" height="30">](https://gitpod.io/#https://github.com/ChatGPTNextWeb/NextChat)
[<img src="https://github.com/user-attachments/assets/903482d4-3e87-4134-9af1-f2588fa90659" height="50" width="" >](https://monica.im/?utm=nxcrp)
</div>
## ❤️ AI API 후원사
<a href='https://302.ai/'>
<img src="https://github.com/user-attachments/assets/a03edf82-2031-4f23-bdb8-bfc0bfd168a4" width="100%" alt="icon"/>
</a>
[302.AI](https://302.ai/)는 사용한 만큼만 비용을 지불하는 AI 애플리케이션 플랫폼으로, 다양한 AI API 및 온라인 애플리케이션을 제공합니다.
## 🥳 NextChat iOS 버전 출시!
> 👉 [지금 설치하기](https://apps.apple.com/us/app/nextchat-ai/id6743085599)
> ❤️ [소스 코드 곧 공개 예정](https://github.com/ChatGPTNextWeb/NextChat-iOS)
![Github iOS Image](https://github.com/user-attachments/assets/e0aa334f-4c13-4dc9-8310-e3b09fa4b9f3)
## 🫣 NextChat, MCP 지원!
> 빌드 전 환경 변수(env) `ENABLE_MCP=true` 설정 필요
<img src="https://github.com/user-attachments/assets/d8851f40-4e36-4335-b1a4-ec1e11488c7e" />
## 엔터프라이즈 버전
회사 내부 시스템에 맞춘 프라이빗 배포 및 맞춤형 커스터마이징 지원:
- **브랜드 커스터마이징**: 기업 이미지에 맞는 UI/UX 테마 적용
- **리소스 통합 관리**: 다양한 AI 모델을 통합하여 팀원이 손쉽게 사용 가능
- **권한 제어**: 관리자 패널을 통한 멤버·리소스·지식 베이스 권한 설정
- **지식 통합**: 사내 문서 및 데이터와 AI를 결합한 맞춤형 답변 제공
- **보안 감사**: 민감한 질문 차단 및 모든 기록 추적 가능
- **프라이빗 배포 지원**: 주요 클라우드 서비스에 맞춘 배포 옵션
- **지속적 업데이트**: 멀티모달 등 최신 AI 기능 지속 반영
엔터프라이즈 문의: **business@nextchat.dev**
## 🖼️ 스크린샷
![설정](./docs/images/settings.png)
![기타](./docs/images/more.png)
## 주요 기능 소개
- Vercel에서 원클릭 무료 배포 (1분 내 완성)
- 모든 OS(Linux/Windows/MacOS)에서 사용 가능한 클라이언트 (~5MB) [지금 다운 받기](https://github.com/Yidadaa/ChatGPT-Next-Web/releases)
- 자체 LLM 서버와 완벽 호환. [RWKV-Runner](https://github.com/josStorer/RWKV-Runner) 또는 [LocalAI](https://github.com/go-skynet/LocalAI)와 함께 사용하는 것을 추천
- 개인 정보 보호: 모든 대화 기록은 브라우저에만 저장
- Markdown 지원: LaTex, Mermaid, 코드 하이라이팅 등
- 반응형 디자인, 다크 모드, PWA 지원
- 빠른 초기 로딩 속도 (~100kb), 스트리밍 응답
- 프롬프트 템플릿 생성/공유/디버깅 지원 (v2)
- v2: 프롬프트 템플릿 기반 도구 생성, 공유, 디버깅 가능
- 고급 프롬프트 내장 [awesome-chatgpt-prompts-zh](https://github.com/PlexPt/awesome-chatgpt-prompts-zh) and [awesome-chatgpt-prompts](https://github.com/f/awesome-chatgpt-prompts)
- 긴 대화 내용 자동 압축 저장으로 토큰 절약
- I18n: English, 简体中文, 繁体中文, 日本語, Français, Español, Italiano, Türkçe, Deutsch, Tiếng Việt, Русский, Čeština, 한국어, Indonesia
<div align="center">
![主界面](./docs/images/cover.png)
</div>
## 개발 로드맵
- [x] 시스템 프롬프트: 사용자가 정의한 프롬프트를 시스템 프롬프트로 고정하기 [#138](https://github.com/Yidadaa/ChatGPT-Next-Web/issues/138)
- [x] 사용자 프롬프트: 사용자 정의 프롬프트를 편집 및 저장하여 리스트로 관리 가능
- [x] 프롬프트 템플릿: 사전 정의된 인컨텍스트 프롬프트로 새 채팅 생성 [#993](https://github.com/Yidadaa/ChatGPT-Next-Web/issues/993)
- [x] 이미지로 공유하거나 ShareGPT로 공유 [#1741](https://github.com/Yidadaa/ChatGPT-Next-Web/pull/1741)
- [x] Tauri 기반 데스크톱 앱
- [x] 자체 모델 호스팅: [RWKV-Runner](https://github.com/josStorer/RWKV-Runner), [LocalAI](https://github.com/go-skynet/LocalAI) 등 서버 배포 모델들과 완벽 호환 (llama, gpt4all, rwkv, vicuna, koala, gpt4all-j, cerebras, falcon, dolly 등)
- [x] 아티팩트: 생성된 콘텐츠 및 웹페이지를 별도 창으로 미리보기, 복사, 공유 가능 [#5092](https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web/pull/5092)
- [x] 플러그인: 웹 검색, 계산기, 기타 외부 API 기능 지원 [#165](https://github.com/Yidadaa/ChatGPT-Next-Web/issues/165) [#5353](https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web/issues/5353)
- [x] 실시간 채팅 지원 [#5672](https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web/issues/5672)
- [ ] 로컬 지식 베이스 지원 예정
## 🚀 최근 업데이트
- 🚀 v2.15.8 실시간 채팅 지원 [#5672](https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web/issues/5672)
- 🚀 v2.15.4 Tauri 기반 LLM API 호출 기능 추가 → 보안 강화 [#5379](https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web/issues/5379)
- 🚀 v2.15.0 플러그인 기능 추가 → [NextChat-Awesome-Plugins](https://github.com/ChatGPTNextWeb/NextChat-Awesome-Plugins)
- 🚀 v2.14.0 아티팩트 및 Stable Diffusion 기능 추가
- 🚀 v2.10.1 Google Gemini Pro 모델 지원
- 🚀 v2.9.11 Azure Endpoint 사용 가능
- 🚀 v2.8 모든 플랫폼에서 실행 가능한 클라이언트 출시
- 🚀 v2.7 대화 내용을 이미지로, 또는 ShareGPT로 공유 가능
- 🚀 v2.0 릴리즈: 프롬프트 템플릿 생성 및 아이디어 구현 가능! → [ChatGPT Prompt Engineering Tips](https://www.allabtai.com/prompt-engineering-tips-zero-one-and-few-shot-prompting/)
## 시작하기
1. [OpenAI API 키](https://platform.openai.com/account/api-keys)를 발급받습니다.
2.
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FYidadaa%2FChatGPT-Next-Web&env=OPENAI_API_KEY&env=CODE&project-name=chatgpt-next-web&repository-name=ChatGPT-Next-Web) 버튼을 클릭해 Vercel에 배포합니다. `CODE`는 페이지 비밀번호라는 점을 기억하세요.
3. Enjoy :)
## FAQ
[FAQ](./docs/faq-ko.md)
## 최신 상태 유지 (Keep Updated)
Vercel로 배포한 경우, "Updates Available" 메시지가 계속 나타날 수 있습니다. 이는 프로젝트를 포크하지 않고 새로 생성했기 때문입니다.
다음 절차에 따라 다시 배포를 권장합니다:
1. 기존 레포 삭제
2. 우측 상단 "Fork" 버튼 클릭 → 포크 생성
3. 포크된 프로젝트를 다시 Vercel에 배포
→ [자세한 튜토리얼 보기](./docs/vercel-ko.md)
### 자동 업데이트 활성화 (Enable Automatic Updates)
> Upstream Sync 오류 발생 시, [수동으로 코드 업데이트](./README_KO.md#manually-updating-code)하세요.
프로젝트 포크 후에는 GitHub의 제약으로 인해 Actions 페이지에서 아래 항목들을 수동으로 활성화해야 합니다:
- `Workflows`
- `Upstream Sync Action`
이후 매 시간 자동으로 업데이트됩니다:
![자동 업데이트 활성화](./docs/images/enable-actions.jpg)
![업스트림 동기화 활성화](./docs/images/enable-actions-sync.jpg)
### 수동 업데이트 방법 (Manually Updating Code)
즉시 업데이트가 필요한 경우, [깃헙 문서](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork)를 참고해 포크된 프로젝트를 upstream code와 동기화하세요.
릴리스 알림을 원하시면 star 또는 watch를 눌러주세요.
## 접근 비밀번호 설정 (Access Password)
이 프로젝트는 제한된 접근 제어를 제공합니다.
Vercel 환경 변수에 `CODE`를 다음 형식으로 추가하세요. value는 ,를 통해 구분된 비밀번호여야 합니다.:
```
code1,code2,code3
```
수정 후 반드시 다시 배포해야 적용됩니다.
## 환경 변수 (Environment Variables)
### `CODE` (선택 사항)
접속 비밀번호. 쉼표로 구분합니다.
### `OPENAI_API_KEY` (필수)
당신의 OpenAI API 키, 여러 개를 사용하려면 쉼표로 연결합니다.
### `BASE_URL` (선택 사항)
> 기본값: `https://api.openai.com`
> 예시: `http://your-openai-proxy.com`
OpenAI API 요청의 기본 URL을 재정의합니다.
### `OPENAI_ORG_ID` (선택 사항)
OpenAI organization ID를 지정합니다.
### `AZURE_URL` (선택 사항)
> 예시: https://{azure-resource-url}/openai
Azure 배포 URL입니다.
### `AZURE_API_KEY` (선택 사항)
Azure API 키입니다.
### `AZURE_API_VERSION` (선택 사항)
Azure API 버전입니다. [Azure 문서](https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#chat-completions)에서 확인할 수 있습니다.
### `GOOGLE_API_KEY` (선택 사항)
Google Gemini Pro API 키입니다.
### `GOOGLE_URL` (선택 사항)
Google Gemini Pro API URL입니다.
### `ANTHROPIC_API_KEY` (선택 사항)
Anthropic Claude API 키입니다.
### `ANTHROPIC_API_VERSION` (선택 사항)
Anthropic Claude API 버전입니다.
### `ANTHROPIC_URL` (선택 사항)
Anthropic Claude API URL입니다.
### `BAIDU_API_KEY` (선택 사항)
Baidu API 키입니다.
### `BAIDU_SECRET_KEY` (선택 사항)
Baidu Secret 키입니다.
### `BAIDU_URL` (선택 사항)
Baidu API URL입니다.
### `BYTEDANCE_API_KEY` (선택 사항)
ByteDance API 키입니다.
### `BYTEDANCE_URL` (선택 사항)
ByteDance API URL입니다.
### `ALIBABA_API_KEY` (선택 사항)
Alibaba Cloud API 키입니다.
### `ALIBABA_URL` (선택 사항)
Alibaba Cloud API URL입니다.
### `IFLYTEK_URL` (선택 사항)
iflytek API URL입니다.
### `IFLYTEK_API_KEY` (선택 사항)
iflytek API 키입니다.
### `IFLYTEK_API_SECRET` (선택 사항)
iflytek API 시크릿입니다.
### `CHATGLM_API_KEY` (선택 사항)
ChatGLM API 키입니다.
### `CHATGLM_URL` (선택 사항)
ChatGLM API URL입니다.
### `DEEPSEEK_API_KEY` (선택 사항)
DeepSeek API 키입니다.
### `DEEPSEEK_URL` (선택 사항)
DeepSeek API URL입니다.
### `HIDE_USER_API_KEY` (선택 사항)
> 기본값: 비어 있음
사용자가 자신의 API 키를 입력하지 못하게 하려면 이 값을 1로 설정하세요.
### `DISABLE_GPT4` (선택 사항)
> 기본값: 비어 있음
사용자가 GPT-4를 사용하지 못하게 하려면 이 값을 1로 설정하세요.
### `ENABLE_BALANCE_QUERY` (선택 사항)
> 기본값: 비어 있음
사용자가 쿼리 잔액을 조회할 수 있도록 하려면 이 값을 1로 설정하세요.
### `DISABLE_FAST_LINK` (선택 사항)
> 기본값: 비어 있음
URL에서 설정을 파싱하는 기능을 비활성화하려면 이 값을 1로 설정하세요.
### `CUSTOM_MODELS` (선택 사항)
> 기본값: 비어 있음
> 예시: `+llama,+claude-2,-gpt-3.5-turbo,gpt-4-1106-preview=gpt-4-turbo`
이는 `llama`, `claude-2`를 모델 리스트에 추가하고, `gpt-3.5-turbo`를 제거하며, `gpt-4-1106-preview``gpt-4-turbo`로 표시합니다.
사용자 지정 모델 제어 시 `+`는 추가, `-`는 제거, `이름=표시이름`은 모델명 커스터마이징을 의미합니다. 쉼표로 구분하세요.
- `-all`은 기본 모델을 모두 비활성화
- `+all`은 기본 모델을 모두 활성화
Azure 용법 예시: `modelName@Azure=deploymentName` → 배포 이름을 커스터마이징 가능
> 예시: `+gpt-3.5-turbo@Azure=gpt35` → 리스트에 `gpt35(Azure)` 표시됨
> Azure 모델만 사용할 경우: `-all,+gpt-3.5-turbo@Azure=gpt35`
ByteDance 용법 예시: `modelName@bytedance=deploymentName`
> 예시: `+Doubao-lite-4k@bytedance=ep-xxxxx-xxx` → `Doubao-lite-4k(ByteDance)`로 표시됨
### `DEFAULT_MODEL` (선택 사항)
기본 모델을 변경합니다.
### `VISION_MODELS` (선택 사항)
> 기본값: 비어 있음
> 예시: `gpt-4-vision,claude-3-opus,my-custom-model`
위의 모델들에 시각 기능을 부여합니다 (기본적으로 `"vision"`, `"claude-3"`, `"gemini-1.5"` 키워드를 포함한 모델은 자동 인식됨). 기본 모델 외에도 모델을 추가할 수 있습니다. 쉼표로 구분하세요.
### `WHITE_WEBDAV_ENDPOINTS` (선택 사항)
접속 허용할 WebDAV 서비스 주소를 늘리고자 할 때 사용합니다.
- 각 주소는 완전한 endpoint 여야 함: `https://xxxx/yyy`
- 여러 주소는 `,`로 구분
### `DEFAULT_INPUT_TEMPLATE` (선택 사항)
설정 메뉴의 사용자 입력 전처리 구성 항목 초기화 시 사용할 기본 템플릿을 설정합니다.
### `STABILITY_API_KEY` (선택 사항)
Stability API 키입니다.
### `STABILITY_URL` (선택 사항)
Stability API URL을 커스터마이징합니다.
### `ENABLE_MCP` (선택 사항)
MCP (Model Context Protocol) 기능을 활성화합니다.
### `SILICONFLOW_API_KEY` (선택 사항)
SiliconFlow API 키입니다.
### `SILICONFLOW_URL` (선택 사항)
SiliconFlow API URL입니다.
### `AI302_API_KEY` (선택 사항)
302.AI API 키입니다.
### `AI302_URL` (선택 사항)
302.AI API URL입니다.
## 요구 사항 (Requirements)
NodeJS >= 18, Docker >= 20
## 개발 (Development)
[![Gitpod에서 열기](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/Yidadaa/ChatGPT-Next-Web)
개발을 시작하기 전에 프로젝트 루트에 `.env.local` 파일을 만들고, 아래와 같이 API 키를 입력하세요:
```
OPENAI_API_KEY=<여기에 API 키 입력>
# OpenAI 서비스를 사용할 수 없는 경우 아래 BASE_URL 사용
BASE_URL=https://chatgpt1.nextweb.fun/api/proxy
```
### 로컬 개발 실행
```shell
# 1. Node.js와 Yarn을 먼저 설치
# 2. `.env.local` 파일에 환경 변수 설정
# 3. 실행
yarn install
yarn dev
```
## 배포 (Deployment)
### Docker (권장)
```shell
docker pull yidadaa/chatgpt-next-web
docker run -d -p 3000:3000 \
-e OPENAI_API_KEY=sk-xxxx \
-e CODE=your-password \
yidadaa/chatgpt-next-web
```
서비스에 프록시를 사용하려면:
```shell
docker run -d -p 3000:3000 \
-e OPENAI_API_KEY=sk-xxxx \
-e CODE=your-password \
-e PROXY_URL=http://localhost:7890 \
yidadaa/chatgpt-next-web
```
프록시에 인증이 필요한 경우:
```shell
-e PROXY_URL="http://127.0.0.1:7890 user pass"
```
MCP를 활성화하려면:
```
docker run -d -p 3000:3000 \
-e OPENAI_API_KEY=sk-xxxx \
-e CODE=your-password \
-e ENABLE_MCP=true \
yidadaa/chatgpt-next-web
```
### 로컬 배포
콘솔에서 다음 명령을 실행하세요.
```shell
bash <(curl -s https://raw.githubusercontent.com/Yidadaa/ChatGPT-Next-Web/main/scripts/setup.sh)
```
⚠️ 참고: 설치 중에 문제가 발생하면 Docker 배포를 사용하세요.
## 채팅 기록 동기화 (UpStash)
| [简体中文](./docs/synchronise-chat-logs-cn.md) | [English](./docs/synchronise-chat-logs-en.md) | [Italiano](./docs/synchronise-chat-logs-es.md) | [日本語](./docs/synchronise-chat-logs-ja.md) | [한국어](./docs/synchronise-chat-logs-ko.md)
## 문서 (Documentation)
> 더 많은 문서는 [docs](./docs) 디렉토리를 참고하세요.
- [Cloudflare 배포 가이드 (폐기됨)](./docs/cloudflare-pages-ko.md)
- [자주 묻는 질문](./docs/faq-ko.md)
- [새 번역 추가 방법](./docs/translation.md)
- [Vercel 사용법 (중문)](./docs/vercel-cn.md)
- [사용자 매뉴얼 (중문, 작성 중)](./docs/user-manual-cn.md)
## 번역 (Translation)
새로운 번역을 추가하고 싶다면, [이 문서](./docs/translation.md)를 읽어보세요.
## 후원 (Donation)
[Buy Me a Coffee](https://www.buymeacoffee.com/yidadaa)
## 특별 감사 (Special Thanks)
### 기여자 (Contributors)
<a href="https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web/graphs/contributors">
<img src="https://contrib.rocks/image?repo=ChatGPTNextWeb/ChatGPT-Next-Web" />
</a>
## 라이선스 (LICENSE)
[MIT](https://opensource.org/license/mit/)

View File

@@ -200,7 +200,6 @@ export class ChatGPTApi implements LLMApi {
options.config.model.startsWith("o1") ||
options.config.model.startsWith("o3") ||
options.config.model.startsWith("o4-mini");
const isGpt5 = options.config.model.startsWith("gpt-5");
if (isDalle3) {
const prompt = getMessageTextContent(
options.messages.slice(-1)?.pop() as any,
@@ -231,7 +230,7 @@ export class ChatGPTApi implements LLMApi {
messages,
stream: options.config.stream,
model: modelConfig.model,
temperature: (!isO1OrO3 && !isGpt5) ? modelConfig.temperature : 1,
temperature: !isO1OrO3 ? modelConfig.temperature : 1,
presence_penalty: !isO1OrO3 ? modelConfig.presence_penalty : 0,
frequency_penalty: !isO1OrO3 ? modelConfig.frequency_penalty : 0,
top_p: !isO1OrO3 ? modelConfig.top_p : 1,
@@ -239,13 +238,7 @@ export class ChatGPTApi implements LLMApi {
// Please do not ask me why not send max_tokens, no reason, this param is just shit, I dont want to explain anymore.
};
if (isGpt5) {
// Remove max_tokens if present
delete requestPayload.max_tokens;
// Add max_completion_tokens (or max_completion_tokens if that's what you meant)
requestPayload["max_completion_tokens"] = modelConfig.max_tokens;
} else if (isO1OrO3) {
if (isO1OrO3) {
// by default the o1/o3 models will not attempt to produce output that includes markdown formatting
// manually add "Formatting re-enabled" developer message to encourage markdown inclusion in model responses
// (https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/reasoning?tabs=python-secure#markdown-output)
@@ -258,9 +251,8 @@ export class ChatGPTApi implements LLMApi {
requestPayload["max_completion_tokens"] = modelConfig.max_tokens;
}
// add max_tokens to vision model
if (visionModel && !isO1OrO3 && ! isGpt5) {
if (visionModel && !isO1OrO3) {
requestPayload["max_tokens"] = Math.max(modelConfig.max_tokens, 4000);
}
}

View File

@@ -29,11 +29,11 @@ type HTMLPreviewProps = {
onLoad?: (title?: string) => void;
};
export type HTMLPreviewHandler = {
export type HTMLPreviewHander = {
reload: () => void;
};
export const HTMLPreview = forwardRef<HTMLPreviewHandler, HTMLPreviewProps>(
export const HTMLPreview = forwardRef<HTMLPreviewHander, HTMLPreviewProps>(
function HTMLPreview(props, ref) {
const iframeRef = useRef<HTMLIFrameElement>(null);
const [frameId, setFrameId] = useState<string>(nanoid());
@@ -207,7 +207,7 @@ export function Artifacts() {
const [code, setCode] = useState("");
const [loading, setLoading] = useState(true);
const [fileName, setFileName] = useState("");
const previewRef = useRef<HTMLPreviewHandler>(null);
const previewRef = useRef<HTMLPreviewHander>(null);
useEffect(() => {
if (id) {

View File

@@ -17,7 +17,7 @@ import { showImageModal, FullScreen } from "./ui-lib";
import {
ArtifactsShareButton,
HTMLPreview,
HTMLPreviewHandler,
HTMLPreviewHander,
} from "./artifacts";
import { useChatStore } from "../store";
import { IconButton } from "./button";
@@ -73,7 +73,7 @@ export function Mermaid(props: { code: string }) {
export function PreCode(props: { children: any }) {
const ref = useRef<HTMLPreElement>(null);
const previewRef = useRef<HTMLPreviewHandler>(null);
const previewRef = useRef<HTMLPreviewHander>(null);
const [mermaidCode, setMermaidCode] = useState("");
const [htmlCode, setHtmlCode] = useState("");
const { height } = useWindowSize();

View File

@@ -25,7 +25,7 @@ export const ALIBABA_BASE_URL = "https://dashscope.aliyuncs.com/api/";
export const TENCENT_BASE_URL = "https://hunyuan.tencentcloudapi.com";
export const MOONSHOT_BASE_URL = "https://api.moonshot.ai";
export const MOONSHOT_BASE_URL = "https://api.moonshot.cn";
export const IFLYTEK_BASE_URL = "https://spark-api-open.xf-yun.com";
export const DEEPSEEK_BASE_URL = "https://api.deepseek.com";
@@ -493,7 +493,6 @@ export const VISION_MODEL_REGEXES = [
/o3/,
/o4-mini/,
/grok-4/i,
/gpt-5/
];
export const EXCLUDE_VISION_MODEL_REGEXES = [/claude-3-5-haiku-20241022/];
@@ -518,11 +517,6 @@ const openaiModels = [
"gpt-4.1-nano-2025-04-14",
"gpt-4.5-preview",
"gpt-4.5-preview-2025-02-27",
"gpt-5-chat",
"gpt-5-mini",
"gpt-5-nano",
"gpt-5",
"gpt-5-chat-2025-01-01-preview",
"gpt-4o",
"gpt-4o-2024-05-13",
"gpt-4o-2024-08-06",
@@ -629,18 +623,7 @@ const tencentModels = [
"hunyuan-vision",
];
const moonshotModels = [
"moonshot-v1-auto",
"moonshot-v1-8k",
"moonshot-v1-32k",
"moonshot-v1-128k",
"moonshot-v1-8k-vision-preview",
"moonshot-v1-32k-vision-preview",
"moonshot-v1-128k-vision-preview",
"kimi-thinking-preview",
"kimi-k2-0711-preview",
"kimi-latest",
];
const moonshotModes = ["moonshot-v1-8k", "moonshot-v1-32k", "moonshot-v1-128k"];
const iflytekModels = [
"general",
@@ -827,7 +810,7 @@ export const DEFAULT_MODELS = [
sorted: 8,
},
})),
...moonshotModels.map((name) => ({
...moonshotModes.map((name) => ({
name,
available: true,
sorted: seq++,

View File

@@ -9,8 +9,8 @@ const ar: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 واجهت المحادثة بعض المشكلات، لا داعي للقلق:
\\ 1⃣ إذا كنت ترغب في تجربة دون إعداد، [انقر هنا لبدء المحادثة فورًا 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ إذا كنت تريد استخدام موارد OpenAI الخاصة بك، انقر [هنا](/#/settings) لتعديل الإعدادات ⚙️`
\ 1⃣ إذا كنت ترغب في تجربة دون إعداد، [انقر هنا لبدء المحادثة فورًا 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ إذا كنت تريد استخدام موارد OpenAI الخاصة بك، انقر [هنا](/#/settings) لتعديل الإعدادات ⚙️`
: `😆 واجهت المحادثة بعض المشكلات، لا داعي للقلق:
\ 1⃣ إذا كنت ترغب في تجربة دون إعداد، [انقر هنا لبدء المحادثة فورًا 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ إذا كنت تستخدم إصدار النشر الخاص، انقر [هنا](/#/auth) لإدخال مفتاح الوصول 🔑

View File

@@ -9,8 +9,8 @@ const bn: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 কথোপকথনে কিছু সমস্যা হয়েছে, চিন্তার কিছু নেই:
\\ 1⃣ যদি আপনি শূন্য কনফিগারেশনে শুরু করতে চান, তাহলে [এখানে ক্লিক করে অবিলম্বে কথোপকথন শুরু করুন 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ যদি আপনি আপনার নিজস্ব OpenAI সম্পদ ব্যবহার করতে চান, তাহলে [এখানে ক্লিক করুন](/#/settings) সেটিংস পরিবর্তন করতে ⚙️`
\ 1⃣ যদি আপনি শূন্য কনফিগারেশনে শুরু করতে চান, তাহলে [এখানে ক্লিক করে অবিলম্বে কথোপকথন শুরু করুন 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ যদি আপনি আপনার নিজস্ব OpenAI সম্পদ ব্যবহার করতে চান, তাহলে [এখানে ক্লিক করুন](/#/settings) সেটিংস পরিবর্তন করতে ⚙️`
: `😆 কথোপকথনে কিছু সমস্যা হয়েছে, চিন্তার কিছু নেই:
\ 1⃣ যদি আপনি শূন্য কনফিগারেশনে শুরু করতে চান, তাহলে [এখানে ক্লিক করে অবিলম্বে কথোপকথন শুরু করুন 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ যদি আপনি একটি প্রাইভেট ডেপ্লয়মেন্ট সংস্করণ ব্যবহার করেন, তাহলে [এখানে ক্লিক করুন](/#/auth) প্রবেশাধিকার কীগুলি প্রবেশ করতে 🔑

View File

@@ -9,8 +9,8 @@ const cn = {
Error: {
Unauthorized: isApp
? `😆 对话遇到了一些问题,不用慌:
\\ 1⃣ 想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️`
\ 1⃣ 想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ 如果你想消耗自己的 OpenAI 资源,点击[这里](/#/settings)修改设置 ⚙️`
: `😆 对话遇到了一些问题,不用慌:
\ 1⃣ 想要零配置开箱即用,[点击这里立刻开启对话 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ 如果你正在使用私有部署版本,点击[这里](/#/auth)输入访问秘钥 🔑

View File

@@ -9,8 +9,8 @@ const cs: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 Rozhovor narazil na nějaké problémy, nebojte se:
\\ 1⃣ Pokud chcete začít bez konfigurace, [klikněte sem pro okamžitý začátek chatu 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ Pokud chcete využít své vlastní zdroje OpenAI, klikněte [sem](/#/settings) a upravte nastavení ⚙️`
\ 1⃣ Pokud chcete začít bez konfigurace, [klikněte sem pro okamžitý začátek chatu 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Pokud chcete využít své vlastní zdroje OpenAI, klikněte [sem](/#/settings) a upravte nastavení ⚙️`
: `😆 Rozhovor narazil na nějaké problémy, nebojte se:
\ 1⃣ Pokud chcete začít bez konfigurace, [klikněte sem pro okamžitý začátek chatu 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Pokud používáte verzi soukromého nasazení, klikněte [sem](/#/auth) a zadejte přístupový klíč 🔑

View File

@@ -9,12 +9,12 @@ const da: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `Hov, der skete en fejl. Sådan kan du komme videre:
\\ 1⃣ Er du ny her? [Tryk for at starte nu 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ Vil du bruge dine egne OpenAI-nøgler? [Tryk her](/#/settings) for at ændre indstillinger ⚙️`
\ 1⃣ Er du ny her? [Tryk for at starte nu 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Vil du bruge dine egne OpenAI-nøgler? [Tryk her](/#/settings) for at ændre indstillinger ⚙️`
: `Hov, der skete en fejl. Lad os løse det:
\\ 1⃣ Er du ny her? [Tryk for at starte nu 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ Bruger du en privat opsætning? [Tryk her](/#/auth) for at taste din nøgle 🔑
\\ 3⃣ Vil du bruge dine egne OpenAI-nøgler? [Tryk her](/#/settings) for at ændre indstillinger ⚙️
\ 1⃣ Er du ny her? [Tryk for at starte nu 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Bruger du en privat opsætning? [Tryk her](/#/auth) for at taste din nøgle 🔑
\ 3⃣ Vil du bruge dine egne OpenAI-nøgler? [Tryk her](/#/settings) for at ændre indstillinger ⚙️
`,
},
Auth: {

View File

@@ -9,8 +9,8 @@ const de: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 Das Gespräch hatte einige Probleme, keine Sorge:
\\ 1⃣ Wenn du ohne Konfiguration sofort starten möchtest, [klicke hier, um sofort zu chatten 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ Wenn du deine eigenen OpenAI-Ressourcen verwenden möchtest, klicke [hier](/#/settings), um die Einstellungen zu ändern ⚙️`
\ 1⃣ Wenn du ohne Konfiguration sofort starten möchtest, [klicke hier, um sofort zu chatten 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Wenn du deine eigenen OpenAI-Ressourcen verwenden möchtest, klicke [hier](/#/settings), um die Einstellungen zu ändern ⚙️`
: `😆 Das Gespräch hatte einige Probleme, keine Sorge:
\ 1⃣ Wenn du ohne Konfiguration sofort starten möchtest, [klicke hier, um sofort zu chatten 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Wenn du eine private Bereitstellung verwendest, klicke [hier](/#/auth), um den Zugriffsschlüssel einzugeben 🔑

View File

@@ -10,8 +10,8 @@ const en: LocaleType = {
Error: {
Unauthorized: isApp
? `😆 Oops, there's an issue. No worries:
\\ 1⃣ New here? [Click to start chatting now 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ Want to use your own OpenAI resources? [Click here](/#/settings) to change settings ⚙️`
\ 1⃣ New here? [Click to start chatting now 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Want to use your own OpenAI resources? [Click here](/#/settings) to change settings ⚙️`
: `😆 Oops, there's an issue. Let's fix it:
\ 1⃣ New here? [Click to start chatting now 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Using a private setup? [Click here](/#/auth) to enter your key 🔑

View File

@@ -9,8 +9,8 @@ const es: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 La conversación encontró algunos problemas, no te preocupes:
\\ 1⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ Si deseas usar tus propios recursos de OpenAI, haz clic [aquí](/#/settings) para modificar la configuración ⚙️`
\ 1⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Si deseas usar tus propios recursos de OpenAI, haz clic [aquí](/#/settings) para modificar la configuración ⚙️`
: `😆 La conversación encontró algunos problemas, no te preocupes:
\ 1⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Si estás utilizando una versión de implementación privada, haz clic [aquí](/#/auth) para ingresar la clave de acceso 🔑

View File

@@ -9,8 +9,8 @@ const fr: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 La conversation a rencontré quelques problèmes, pas de panique :
\\ 1⃣ Si vous souhaitez commencer sans configuration, [cliquez ici pour démarrer la conversation immédiatement 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ Si vous souhaitez utiliser vos propres ressources OpenAI, cliquez [ici](/#/settings) pour modifier les paramètres ⚙️`
\ 1⃣ Si vous souhaitez commencer sans configuration, [cliquez ici pour démarrer la conversation immédiatement 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Si vous souhaitez utiliser vos propres ressources OpenAI, cliquez [ici](/#/settings) pour modifier les paramètres ⚙️`
: `😆 La conversation a rencontré quelques problèmes, pas de panique :
\ 1⃣ Si vous souhaitez commencer sans configuration, [cliquez ici pour démarrer la conversation immédiatement 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Si vous utilisez une version déployée privée, cliquez [ici](/#/auth) pour entrer la clé d'accès 🔑

View File

@@ -9,8 +9,8 @@ const id: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 Percakapan mengalami beberapa masalah, tidak perlu khawatir:
\\ 1⃣ Jika Anda ingin memulai tanpa konfigurasi, [klik di sini untuk mulai mengobrol segera 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ Jika Anda ingin menggunakan sumber daya OpenAI Anda sendiri, klik [di sini](/#/settings) untuk mengubah pengaturan ⚙️`
\ 1⃣ Jika Anda ingin memulai tanpa konfigurasi, [klik di sini untuk mulai mengobrol segera 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Jika Anda ingin menggunakan sumber daya OpenAI Anda sendiri, klik [di sini](/#/settings) untuk mengubah pengaturan ⚙️`
: `😆 Percakapan mengalami beberapa masalah, tidak perlu khawatir:
\ 1⃣ Jika Anda ingin memulai tanpa konfigurasi, [klik di sini untuk mulai mengobrol segera 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Jika Anda menggunakan versi penyebaran pribadi, klik [di sini](/#/auth) untuk memasukkan kunci akses 🔑

View File

@@ -9,8 +9,8 @@ const it: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 La conversazione ha incontrato alcuni problemi, non preoccuparti:
\\ 1⃣ Se vuoi iniziare senza configurazione, [clicca qui per iniziare a chattare immediatamente 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ Se vuoi utilizzare le tue risorse OpenAI, clicca [qui](/#/settings) per modificare le impostazioni ⚙️`
\ 1⃣ Se vuoi iniziare senza configurazione, [clicca qui per iniziare a chattare immediatamente 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Se vuoi utilizzare le tue risorse OpenAI, clicca [qui](/#/settings) per modificare le impostazioni ⚙️`
: `😆 La conversazione ha incontrato alcuni problemi, non preoccuparti:
\ 1⃣ Se vuoi iniziare senza configurazione, [clicca qui per iniziare a chattare immediatamente 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Se stai utilizzando una versione di distribuzione privata, clicca [qui](/#/auth) per inserire la chiave di accesso 🔑

View File

@@ -9,8 +9,8 @@ const jp: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 会話中に問題が発生しましたが、心配しないでください:
\\ 1⃣ 設定なしで始めたい場合は、[ここをクリックしてすぐにチャットを開始 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ 自分のOpenAIリソースを使用したい場合は、[ここをクリックして](/#/settings)設定を変更してください ⚙️`
\ 1⃣ 設定なしで始めたい場合は、[ここをクリックしてすぐにチャットを開始 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ 自分のOpenAIリソースを使用したい場合は、[ここをクリックして](/#/settings)設定を変更してください ⚙️`
: `😆 会話中に問題が発生しましたが、心配しないでください:
\ 1⃣ 設定なしで始めたい場合は、[ここをクリックしてすぐにチャットを開始 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ プライベートデプロイ版を使用している場合は、[ここをクリックして](/#/auth)アクセストークンを入力してください 🔑

View File

@@ -9,10 +9,10 @@ const ko: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 대화 중 문제가 발생했습니다, 걱정하지 마세요:
\\ 1세팅 없이 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ 자신의 OpenAI 리소스를 사용하고 싶다면, [여기를 클릭하여](/#/settings) 설정을 수정하세요 ⚙️`
\ 1제로 구성으로 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ 자신의 OpenAI 리소스를 사용하고 싶다면, [여기를 클릭하여](/#/settings) 설정을 수정하세요 ⚙️`
: `😆 대화 중 문제가 발생했습니다, 걱정하지 마세요:
\ 1세팅 없이 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${SAAS_CHAT_UTM_URL})
\ 1제로 구성으로 시작하고 싶다면, [여기를 클릭하여 즉시 대화를 시작하세요 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ 개인 배포 버전을 사용하고 있다면, [여기를 클릭하여](/#/auth) 접근 키를 입력하세요 🔑
\ 3⃣ 자신의 OpenAI 리소스를 사용하고 싶다면, [여기를 클릭하여](/#/settings) 설정을 수정하세요 ⚙️
`,
@@ -27,7 +27,7 @@ const ko: PartialLocaleType = {
Return: "돌아가기",
SaasTips: "설정이 너무 복잡합니다. 즉시 사용하고 싶습니다.",
TopTips:
"🥳 NextChat AI 출시 기념 할인: 지금 OpenAI o1, GPT-4o, Claude-3.5 및 최신 대형 모델을 사용해보세요!",
"🥳 NextChat AI 출시 기념 할인, 지금 OpenAI o1, GPT-4o, Claude-3.5 및 최신 대형 모델을 해제하세요",
},
ChatItem: {
ChatItemCount: (count: number) => `${count} 개의 대화`,
@@ -53,11 +53,8 @@ const ko: PartialLocaleType = {
PinToastAction: "보기",
Delete: "삭제",
Edit: "편집",
FullScreen: "전체 화면",
RefreshTitle: "제목 새로고침",
RefreshToast: "제목 새로고침 요청이 전송되었습니다",
Speech: "재생",
StopSpeech: "정지",
},
Commands: {
new: "새 채팅",
@@ -65,7 +62,6 @@ const ko: PartialLocaleType = {
next: "다음 채팅",
prev: "이전 채팅",
clear: "컨텍스트 지우기",
fork: "채팅 복사",
del: "채팅 삭제",
},
InputActions: {
@@ -92,22 +88,11 @@ const ko: PartialLocaleType = {
return inputHints + "/ 자동 완성,: 명령어 입력";
},
Send: "전송",
StartSpeak: "재생 시작",
StopSpeak: "재생 정지",
Config: {
Reset: "기억 지우기",
SaveAs: "마스크로 저장",
},
IsContext: "프롬프트 설정",
ShortcutKey: {
Title: "키보드 단축키",
newChat: "새 채팅 열기",
focusInput: "입력 필드 포커스",
copyLastMessage: "마지막 답변 복사",
copyLastCode: "마지막 코드 블록 복사",
showShortcutKey: "단축키 보기",
clearContext: "컨텍스트 지우기",
},
},
Export: {
Title: "채팅 기록 공유",
@@ -129,13 +114,9 @@ const ko: PartialLocaleType = {
Preview: "미리보기",
},
Image: {
Toast: "스크린샷 생성 중...",
Toast: "스크린샷 생성 중",
Modal: "길게 누르거나 오른쪽 클릭하여 이미지를 저장하십시오.",
},
Artifacts: {
Title: "공유 아티팩트",
Error: "공유 오류",
},
},
Select: {
Search: "메시지 검색",
@@ -160,7 +141,7 @@ const ko: PartialLocaleType = {
Settings: {
Title: "설정",
SubTitle: "모든 설정 옵션",
ShowPassword: "비밀번호 보기",
Danger: {
Reset: {
Title: "모든 설정 초기화",
@@ -206,10 +187,8 @@ const ko: PartialLocaleType = {
IsChecking: "업데이트 확인 중...",
FoundUpdate: (x: string) => `새 버전 발견: ${x}`,
GoToUpdate: "업데이트로 이동",
Success: "업데이트 성공",
Failed: "업데이트 실패",
},
SendKey: "전송",
SendKey: "전송",
Theme: "테마",
TightBorder: "테두리 없는 모드",
SendPreviewBubble: {
@@ -242,7 +221,7 @@ const ko: PartialLocaleType = {
},
ProxyUrl: {
Title: "프록시 주소",
SubTitle: "이 프로젝트에서 제공하는 CORS 프록시만 해당",
SubTitle: "이 프로젝트에서 제공하는 교차 출처 프록시만 해당",
},
WebDav: {
@@ -316,7 +295,7 @@ const ko: PartialLocaleType = {
Title: "NextChat AI 사용하기",
Label: "(가장 비용 효율적인 솔루션)",
SubTitle:
"NextChat에 의해 공식적으로 유지 관리되며, 설정 없이 즉시 사용할 수 있으며, OpenAI o1, GPT-4o, Claude-3.5와 같은 최신 대형 모델을 지원합니다",
"NextChat에 의해 공식적으로 유지 관리되며, 제로 구성으로 즉시 사용할 수 있으며, OpenAI o1, GPT-4o, Claude-3.5와 같은 최신 대형 모델을 지원합니다",
ChatNow: "지금 채팅하기",
},
@@ -416,22 +395,6 @@ const ko: PartialLocaleType = {
SubTitle: "커스터마이즈는 .env에서 설정",
},
},
Tencent: {
ApiKey: {
Title: "Tencent API 키",
SubTitle: "커스텀 Tencent API 키 사용",
Placeholder: "Tencent API 키",
},
SecretKey: {
Title: "Tencent Secret 키",
SubTitle: "커스텀 Tencent Secret 키 사용",
Placeholder: "Tencent Secret 키",
},
Endpoint: {
Title: "엔드포인트 주소",
SubTitle: "지원되지 않음, .env에서 설정",
},
},
ByteDance: {
ApiKey: {
Title: "엔드포인트 키",
@@ -454,88 +417,6 @@ const ko: PartialLocaleType = {
SubTitle: "예: ",
},
},
Moonshot: {
ApiKey: {
Title: "Moonshot API 키",
SubTitle: "커스텀 Moonshot API 키 사용",
Placeholder: "Moonshot API 키",
},
Endpoint: {
Title: "엔드포인트 주소",
SubTitle: "예: ",
},
},
DeepSeek: {
ApiKey: {
Title: "DeepSeek API 키",
SubTitle: "커스텀 DeepSeek API 키 사용",
Placeholder: "DeepSeek API 키",
},
Endpoint: {
Title: "엔드포인트 주소",
SubTitle: "예: ",
},
},
XAI: {
ApiKey: {
Title: "XAI API 키",
SubTitle: "커스텀 XAI API 키 사용",
Placeholder: "XAI API 키",
},
Endpoint: {
Title: "엔드포인트 주소",
SubTitle: "예: ",
},
},
ChatGLM: {
ApiKey: {
Title: "ChatGLM API 키",
SubTitle: "커스텀 ChatGLM API 키 사용",
Placeholder: "ChatGLM API 키",
},
Endpoint: {
Title: "엔드포인트 주소",
SubTitle: "예: ",
},
},
SiliconFlow: {
ApiKey: {
Title: "SiliconFlow API 키",
SubTitle: "커스텀 SiliconFlow API 키 사용",
Placeholder: "SiliconFlow API 키",
},
Endpoint: {
Title: "엔드포인트 주소",
SubTitle: "예: ",
},
},
Stability: {
ApiKey: {
Title: "Stability API 키",
SubTitle: "커스텀 Stability API 키 사용",
Placeholder: "Stability API 키",
},
Endpoint: {
Title: "엔드포인트 주소",
SubTitle: "예: ",
},
},
Iflytek: {
ApiKey: {
Title: "Iflytek API 키",
SubTitle: "커스텀 Iflytek API 키 사용",
Placeholder: "Iflytek API 키",
},
ApiSecret: {
Title: "Iflytek API Secret",
SubTitle: "커스텀 Iflytek API Secret 키 사용",
Placeholder: "Iflytek API Secret 키",
},
Endpoint: {
Title: "엔드포인트 주소",
SubTitle: "예: ",
},
},
CustomModel: {
Title: "커스텀 모델 이름",
SubTitle: "커스텀 모델 옵션 추가, 영어 쉼표로 구분",
@@ -578,67 +459,13 @@ const ko: PartialLocaleType = {
Title: "빈도 벌점 (frequency_penalty)",
SubTitle: "값이 클수록 중복 단어 감소 가능성 높음",
},
TTS: {
Enable: {
Title: "TTS 활성화",
SubTitle: "TTS 서비스 활성화",
},
Autoplay: {
Title: "자동 재생 활성화",
SubTitle:
"자동으로 음성을 생성하고 재생, 먼저 TTS 스위치를 활성화해야 함",
},
Model: "모델",
Voice: {
Title: "음성",
SubTitle: "음성을 생성할 때 사용할 음성",
},
Speed: {
Title: "속도",
SubTitle: "생성된 음성의 속도",
},
Engine: "TTS Engine",
},
Realtime: {
Enable: {
Title: "실시간 채팅",
SubTitle: "실시간 채팅 기능 활성화",
},
Provider: {
Title: "모델 제공업체",
SubTitle: "다른 제공업체 간 전환",
},
Model: {
Title: "모델",
SubTitle: "모델 선택",
},
ApiKey: {
Title: "API 키",
SubTitle: "API 키",
Placeholder: "API 키",
},
Azure: {
Endpoint: {
Title: "엔드포인트",
SubTitle: "엔드포인트",
},
Deployment: {
Title: "배포 이름",
SubTitle: "배포 이름",
},
},
Temperature: {
Title: "무작위성 (temperature)",
SubTitle: "값이 클수록 응답이 더 무작위적",
},
},
},
Store: {
DefaultTopic: "새 채팅",
BotHello: "무엇을 도와드릴까요?",
Error: "오류가 발생했습니다. 나중에 다시 시도해 주세요.",
Prompt: {
History: (content: string) => "이전 채팅 요약: " + content,
History: (content: string) => "이것은 이전 채팅 요약입니다: " + content,
Topic:
"네 글자에서 다섯 글자로 이 문장의 간략한 주제를 반환하세요. 설명이나 문장 부호, 어미, 불필요한 텍스트, 굵은 글씨는 필요 없습니다. 주제가 없다면 '잡담'이라고만 반환하세요.",
Summarize:
@@ -660,11 +487,8 @@ const ko: PartialLocaleType = {
Clear: "컨텍스트가 지워졌습니다.",
Revert: "컨텍스트 복원",
},
Discovery: {
Name: "디스커버리",
},
Mcp: {
Name: "MCP 플러그인",
Plugin: {
Name: "플러그인",
},
FineTuned: {
Sysmessage: "당신은 보조자입니다.",
@@ -676,7 +500,7 @@ const ko: PartialLocaleType = {
Search: "검색어 입력",
NoResult: "결과를 찾을 수 없습니다",
NoData: "데이터가 없습니다",
Loading: "로딩 중...",
Loading: "로딩 중",
SubTitle: (count: number) => `${count}개의 결과를 찾았습니다`,
},
@@ -684,47 +508,6 @@ const ko: PartialLocaleType = {
View: "보기",
},
},
Plugin: {
Name: "플러그인",
Page: {
Title: "플러그인",
SubTitle: (count: number) => `${count} 개의 플러그인`,
Search: "플러그인 검색",
Create: "새로 만들기",
Find: "github에서 멋진 플러그인을 찾을 수 있습니다: ",
},
Item: {
Info: (count: number) => `${count} 개의 메서드`,
View: "보기",
Edit: "편집",
Delete: "삭제",
DeleteConfirm: "삭제하시겠습니까?",
},
Auth: {
None: "없음",
Basic: "기본",
Bearer: "Bearer",
Custom: "커스텀",
CustomHeader: "파라미터 이름",
Token: "토큰",
Proxy: "프록시 사용",
ProxyDescription: "CORS 오류 해결을 위해 프록시 사용",
Location: "위치",
LocationHeader: "헤더",
LocationQuery: "쿼리",
LocationBody: "바디",
},
EditModal: {
Title: (readonly: boolean) =>
`플러그인 편집 ${readonly ? "(읽기 전용)" : ""}`,
Download: "다운로드",
Auth: "인증 유형",
Content: "OpenAPI Schema",
Load: "URL에서 로드",
Method: "메서드",
Error: "OpenAPI Schema 오류",
},
},
Mask: {
Name: "마스크",
Page: {
@@ -804,61 +587,6 @@ const ko: PartialLocaleType = {
Topic: "주제",
Time: "시간",
},
SdPanel: {
Prompt: "프롬프트",
NegativePrompt: "부정적 프롬프트",
PleaseInput: (name: string) => `${name}을 입력하세요`,
AspectRatio: "비율",
ImageStyle: "이미지 스타일",
OutFormat: "출력 형식",
AIModel: "AI 모델",
ModelVersion: "모델 버전",
Submit: "제출",
ParamIsRequired: (name: string) => `${name}은 필수 입력 항목입니다`,
Styles: {
D3Model: "3d-model",
AnalogFilm: "analog-film",
Anime: "anime",
Cinematic: "cinematic",
ComicBook: "comic-book",
DigitalArt: "digital-art",
Enhance: "enhance",
FantasyArt: "fantasy-art",
Isometric: "isometric",
LineArt: "line-art",
LowPoly: "low-poly",
ModelingCompound: "modeling-compound",
NeonPunk: "neon-punk",
Origami: "origami",
Photographic: "photographic",
PixelArt: "pixel-art",
TileTexture: "tile-texture",
},
},
Sd: {
SubTitle: (count: number) => `${count} 개의 이미지`,
Actions: {
Params: "파라미터 보기",
Copy: "프롬프트 복사",
Delete: "삭제",
Retry: "다시 시도",
ReturnHome: "홈으로 돌아가기",
History: "기록",
},
EmptyRecord: "아직 이미지가 없습니다",
Status: {
Name: "상태",
Success: "성공",
Error: "오류",
Wait: "대기",
Running: "실행 중",
},
Danger: {
Delete: "삭제하시겠습니까?",
},
GenerateParams: "파라미터 생성",
Detail: "상세",
},
};
export default ko;

View File

@@ -9,8 +9,8 @@ const no: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 Samtalen har støtt på noen problemer, ikke bekymre deg:
\\ 1⃣ Hvis du vil starte uten konfigurasjon, [klikk her for å begynne å chatte umiddelbart 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ Hvis du vil bruke dine egne OpenAI-ressurser, klikk [her](/#/settings) for å endre innstillingene ⚙️`
\ 1⃣ Hvis du vil starte uten konfigurasjon, [klikk her for å begynne å chatte umiddelbart 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Hvis du vil bruke dine egne OpenAI-ressurser, klikk [her](/#/settings) for å endre innstillingene ⚙️`
: `😆 Samtalen har støtt på noen problemer, ikke bekymre deg:
\ 1⃣ Hvis du vil starte uten konfigurasjon, [klikk her for å begynne å chatte umiddelbart 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Hvis du bruker en privat distribusjonsversjon, klikk [her](/#/auth) for å skrive inn tilgangsnøkkelen 🔑

View File

@@ -9,8 +9,8 @@ const pt: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 A conversa encontrou alguns problemas, não se preocupe:
\\ 1⃣ Se você quiser começar sem configuração, [clique aqui para começar a conversar imediatamente 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ Se você deseja usar seus próprios recursos OpenAI, clique [aqui](/#/settings) para modificar as configurações ⚙️`
\ 1⃣ Se você quiser começar sem configuração, [clique aqui para começar a conversar imediatamente 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Se você deseja usar seus próprios recursos OpenAI, clique [aqui](/#/settings) para modificar as configurações ⚙️`
: `😆 A conversa encontrou alguns problemas, não se preocupe:
\ 1⃣ Se você quiser começar sem configuração, [clique aqui para começar a conversar imediatamente 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Se você estiver usando uma versão de implantação privada, clique [aqui](/#/auth) para inserir a chave de acesso 🔑

View File

@@ -9,8 +9,8 @@ const ru: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 В разговоре возникли некоторые проблемы, не переживайте:
\\ 1⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ Если вы хотите использовать свои ресурсы OpenAI, нажмите [здесь](/#/settings), чтобы изменить настройки ⚙️`
\ 1⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Если вы хотите использовать свои ресурсы OpenAI, нажмите [здесь](/#/settings), чтобы изменить настройки ⚙️`
: `😆 В разговоре возникли некоторые проблемы, не переживайте:
\ 1⃣ Если вы хотите начать без настройки, [нажмите здесь, чтобы немедленно начать разговор 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Если вы используете частную версию развертывания, нажмите [здесь](/#/auth), чтобы ввести ключ доступа 🔑

View File

@@ -10,8 +10,8 @@ const sk: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 Rozhovor narazil na nejaké problémy, nebojte sa:
\\ 1⃣ Ak chcete začať bez konfigurácie, [kliknite sem, aby ste okamžite začali chatovať 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ Ak chcete používať svoje vlastné zdroje OpenAI, kliknite [sem](/#/settings), aby ste upravili nastavenia ⚙️`
\ 1⃣ Ak chcete začať bez konfigurácie, [kliknite sem, aby ste okamžite začali chatovať 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Ak chcete používať svoje vlastné zdroje OpenAI, kliknite [sem](/#/settings), aby ste upravili nastavenia ⚙️`
: `😆 Rozhovor narazil na nejaké problémy, nebojte sa:
\ 1⃣ Ak chcete začať bez konfigurácie, [kliknite sem, aby ste okamžite začali chatovať 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Ak používate verziu súkromného nasadenia, kliknite [sem](/#/auth), aby ste zadali prístupový kľúč 🔑

View File

@@ -9,8 +9,8 @@ const tr: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 Sohbet bazı sorunlarla karşılaştı, endişelenmeyin:
\\ 1⃣ Eğer sıfır yapılandırma ile başlamak istiyorsanız, [buraya tıklayarak hemen sohbete başlayın 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ Kendi OpenAI kaynaklarınızı kullanmak istiyorsanız, [buraya tıklayarak](/#/settings) ayarları değiştirin ⚙️`
\ 1⃣ Eğer sıfır yapılandırma ile başlamak istiyorsanız, [buraya tıklayarak hemen sohbete başlayın 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Kendi OpenAI kaynaklarınızı kullanmak istiyorsanız, [buraya tıklayarak](/#/settings) ayarları değiştirin ⚙️`
: `😆 Sohbet bazı sorunlarla karşılaştı, endişelenmeyin:
\ 1⃣ Eğer sıfır yapılandırma ile başlamak istiyorsanız, [buraya tıklayarak hemen sohbete başlayın 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Eğer özel dağıtım sürümü kullanıyorsanız, [buraya tıklayarak](/#/auth) erişim anahtarını girin 🔑

View File

@@ -8,8 +8,8 @@ const tw = {
Error: {
Unauthorized: isApp
? `😆 對話遇到了一些問題,不用慌:
\\ 1⃣ 想要無須設定開箱即用,[點選這裡立刻開啟對話 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ 如果你想消耗自己的 OpenAI 資源,點選[這裡](/#/settings)修改設定 ⚙️`
\ 1⃣ 想要無須設定開箱即用,[點選這裡立刻開啟對話 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ 如果你想消耗自己的 OpenAI 資源,點選[這裡](/#/settings)修改設定 ⚙️`
: `😆 對話遇到了一些問題,不用慌:
\ 1⃣ 想要無須設定開箱即用,[點選這裡立刻開啟對話 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ 如果你正在使用私有部署版本,點選[這裡](/#/auth)輸入存取金鑰 🔑

View File

@@ -9,8 +9,8 @@ const vi: PartialLocaleType = {
Error: {
Unauthorized: isApp
? `😆 Cuộc trò chuyện gặp một số vấn đề, đừng lo lắng:
\\ 1⃣ Nếu bạn muốn bắt đầu mà không cần cấu hình, [nhấp vào đây để bắt đầu trò chuyện ngay lập tức 🚀](${SAAS_CHAT_UTM_URL})
\\ 2⃣ Nếu bạn muốn sử dụng tài nguyên OpenAI của riêng mình, hãy nhấp [vào đây](/#/settings) để thay đổi cài đặt ⚙️`
\ 1⃣ Nếu bạn muốn bắt đầu mà không cần cấu hình, [nhấp vào đây để bắt đầu trò chuyện ngay lập tức 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Nếu bạn muốn sử dụng tài nguyên OpenAI của riêng mình, hãy nhấp [vào đây](/#/settings) để thay đổi cài đặt ⚙️`
: `😆 Cuộc trò chuyện gặp một số vấn đề, đừng lo lắng:
\ 1⃣ Nếu bạn muốn bắt đầu mà không cần cấu hình, [nhấp vào đây để bắt đầu trò chuyện ngay lập tức 🚀](${SAAS_CHAT_UTM_URL})
\ 2⃣ Nếu bạn đang sử dụng phiên bản triển khai riêng, hãy nhấp [vào đây](/#/auth) để nhập khóa truy cập 🔑

View File

@@ -34,6 +34,6 @@
12. "저장 후 배포"를 클릭합니다.
13. 호환성 플래그를 입력해야 하므로 "배포 취소"를 클릭합니다.
14. "빌드 설정", "기능"으로 이동하여 "호환성 플래그"를 찾습니다.
15. "프로덕션 호환성 플래그 구성" 및 "프리뷰 호환성 플래그 구성"에서 "nodejs_compat"를 입력합니다.
"프로덕션 호환성 플래그 구성" 및 "프리뷰 호환성 플래그 구성"에서 "nodejs_compat"를 입력합니다.
16. "배포"로 이동하여 "배포 다시 시도"를 클릭합니다.
17. 즐기세요!

View File

@@ -9,7 +9,7 @@
3. 프로젝트를 선택합니다.
![vercel-create-2](./images/vercel/vercel-create-2.jpg)
1. Git 리포지토리 가져오기에서 chatgpt-next-web을 검색합니다.
1. Git 리포지토리 가져오기에서 chatgpt-next-web을 검색합니다. 2. 새 포크를 선택합니다;
2. 새로 포크된 프로젝트를 선택하고 가져오기를 클릭합니다.
![vercel-create-3](./images/vercel/vercel-create-3.jpg)

View File

@@ -39,7 +39,7 @@
"markdown-to-txt": "^2.0.1",
"mermaid": "^10.6.1",
"nanoid": "^5.0.3",
"next": "^14.2.32",
"next": "^14.1.1",
"node-fetch": "^3.3.1",
"openapi-client-axios": "^7.5.5",
"react": "^18.2.0",

View File

@@ -398,7 +398,7 @@
],
[
"担任高级前端开发人员",
"我希望你担任高级前端开发人员。我将描述您将使用以下工具编写项目代码的项目详细信息:Vite、yarn、Ant Design、List、Redux Toolkit、createSlice、thunk、axios。您应该将文件合并到单个 index.js 文件中,别无其他。不要写解释。我的第一个请求是“创建 Pokemon 应用程序,列出带有来自 PokeAPI 精灵端点的图像的宠物小精灵”\n"
"我希望你担任高级前端开发人员。我将描述您将使用以下工具编写项目代码的项目详细信息:Create React App、yarn、Ant Design、List、Redux Toolkit、createSlice、thunk、axios。您应该将文件合并到单个 index.js 文件中,别无其他。不要写解释。我的第一个请求是“创建 Pokemon 应用程序,列出带有来自 PokeAPI 精灵端点的图像的宠物小精灵”\n"
],
[
"充当 Solr 搜索引擎",
@@ -884,7 +884,7 @@
],
[
"擔任資深前端開發人員",
"我希望你擔任資深前端開發人員。我將介紹你將使用以下工具撰寫專案程式碼的專案細節:Vite、yarn、Ant Design、List、Redux Toolkit、createSlice、thunk、axios。你應該將檔案整合到單一 index.js 檔案中,別無其他。不需撰寫解釋。我的第一個請求是「建立 Pokemon 應用程式,列出帶有來自 PokeAPI 精靈端點的圖片的寶可夢」\n"
"我希望你擔任資深前端開發人員。我將介紹你將使用以下工具撰寫專案程式碼的專案細節:Create React App、yarn、Ant Design、List、Redux Toolkit、createSlice、thunk、axios。你應該將檔案整合到單一 index.js 檔案中,別無其他。不需撰寫解釋。我的第一個請求是「建立 Pokemon 應用程式,列出帶有來自 PokeAPI 精靈端點的圖片的寶可夢」\n"
],
[
"模擬 Solr 搜尋引擎",
@@ -1502,7 +1502,7 @@
],
[
"Senior Frontend Developer",
"I want you to act as a Senior Frontend developer. I will describe a project details you will code project with this tools: Vite, yarn, Ant Design, List, Redux Toolkit, createSlice, thunk, axios. You should merge files in single index.js file and nothing else. Do not write explanations. My first request is Create Pokemon App that lists pokemons with images that come from PokeAPI sprites endpoint"
"I want you to act as a Senior Frontend developer. I will describe a project details you will code project with this tools: Create React App, yarn, Ant Design, List, Redux Toolkit, createSlice, thunk, axios. You should merge files in single index.js file and nothing else. Do not write explanations. My first request is Create Pokemon App that lists pokemons with images that come from PokeAPI sprites endpoint"
],
[
"Solr Search Engine",

View File

@@ -9,7 +9,7 @@
},
"package": {
"productName": "NextChat",
"version": "2.16.1"
"version": "2.15.8"
},
"tauri": {
"allowlist": {

124
yarn.lock
View File

@@ -1806,10 +1806,10 @@
raw-body "^3.0.0"
zod "^3.23.8"
"@next/env@14.2.32":
version "14.2.32"
resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.32.tgz#6d1107e2b7cc8649ff3730b8b46deb4e8a6d38fa"
integrity sha512-n9mQdigI6iZ/DF6pCTwMKeWgF2e8lg7qgt5M7HXMLtyhZYMnf/u905M18sSpPmHL9MKp9JHo56C6jrD2EvWxng==
"@next/env@14.1.1":
version "14.1.1"
resolved "https://registry.yarnpkg.com/@next/env/-/env-14.1.1.tgz#80150a8440eb0022a73ba353c6088d419b908bac"
integrity sha512-7CnQyD5G8shHxQIIg3c7/pSeYFeMhsNbpU/bmvH7ZnDql7mNRgg8O2JZrhrc/soFnfBnKP4/xXNiiSIPn2w8gA==
"@next/eslint-plugin-next@13.4.19":
version "13.4.19"
@@ -1818,50 +1818,50 @@
dependencies:
glob "7.1.7"
"@next/swc-darwin-arm64@14.2.32":
version "14.2.32"
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.32.tgz#83482a7282df899b73d916e02b02a189771e706c"
integrity sha512-osHXveM70zC+ilfuFa/2W6a1XQxJTvEhzEycnjUaVE8kpUS09lDpiDDX2YLdyFCzoUbvbo5r0X1Kp4MllIOShw==
"@next/swc-darwin-arm64@14.1.1":
version "14.1.1"
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.1.tgz#b74ba7c14af7d05fa2848bdeb8ee87716c939b64"
integrity sha512-yDjSFKQKTIjyT7cFv+DqQfW5jsD+tVxXTckSe1KIouKk75t1qZmj/mV3wzdmFb0XHVGtyRjDMulfVG8uCKemOQ==
"@next/swc-darwin-x64@14.2.32":
version "14.2.32"
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.32.tgz#1a9eb676a014e1fc999251f10288c25a0f81d6d1"
integrity sha512-P9NpCAJuOiaHHpqtrCNncjqtSBi1f6QUdHK/+dNabBIXB2RUFWL19TY1Hkhu74OvyNQEYEzzMJCMQk5agjw1Qg==
"@next/swc-darwin-x64@14.1.1":
version "14.1.1"
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.1.tgz#82c3e67775e40094c66e76845d1a36cc29c9e78b"
integrity sha512-KCQmBL0CmFmN8D64FHIZVD9I4ugQsDBBEJKiblXGgwn7wBCSe8N4Dx47sdzl4JAg39IkSN5NNrr8AniXLMb3aw==
"@next/swc-linux-arm64-gnu@14.2.32":
version "14.2.32"
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.32.tgz#7713a49abd555d6f698e766b1631b67d881b4ee4"
integrity sha512-v7JaO0oXXt6d+cFjrrKqYnR2ubrD+JYP7nQVRZgeo5uNE5hkCpWnHmXm9vy3g6foMO8SPwL0P3MPw1c+BjbAzA==
"@next/swc-linux-arm64-gnu@14.1.1":
version "14.1.1"
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.1.tgz#4f4134457b90adc5c3d167d07dfb713c632c0caa"
integrity sha512-YDQfbWyW0JMKhJf/T4eyFr4b3tceTorQ5w2n7I0mNVTFOvu6CGEzfwT3RSAQGTi/FFMTFcuspPec/7dFHuP7Eg==
"@next/swc-linux-arm64-musl@14.2.32":
version "14.2.32"
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.32.tgz#327efdffe97e56f5389a7889cdedbd676fdbb519"
integrity sha512-tA6sIKShXtSJBTH88i0DRd6I9n3ZTirmwpwAqH5zdJoQF7/wlJXR8DkPmKwYl5mFWhEKr5IIa3LfpMW9RRwKmQ==
"@next/swc-linux-arm64-musl@14.1.1":
version "14.1.1"
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.1.tgz#594bedafaeba4a56db23a48ffed2cef7cd09c31a"
integrity sha512-fiuN/OG6sNGRN/bRFxRvV5LyzLB8gaL8cbDH5o3mEiVwfcMzyE5T//ilMmaTrnA8HLMS6hoz4cHOu6Qcp9vxgQ==
"@next/swc-linux-x64-gnu@14.2.32":
version "14.2.32"
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.32.tgz#a3e7444613d0fe5c8ea4ead08d6a9c818246758c"
integrity sha512-7S1GY4TdnlGVIdeXXKQdDkfDysoIVFMD0lJuVVMeb3eoVjrknQ0JNN7wFlhCvea0hEk0Sd4D1hedVChDKfV2jw==
"@next/swc-linux-x64-gnu@14.1.1":
version "14.1.1"
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.1.tgz#cb4e75f1ff2b9bcadf2a50684605928ddfc58528"
integrity sha512-rv6AAdEXoezjbdfp3ouMuVqeLjE1Bin0AuE6qxE6V9g3Giz5/R3xpocHoAi7CufRR+lnkuUjRBn05SYJ83oKNQ==
"@next/swc-linux-x64-musl@14.2.32":
version "14.2.32"
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.32.tgz#a2ec5b0a06c740d6740c938b1d4a614f1a13f018"
integrity sha512-OHHC81P4tirVa6Awk6eCQ6RBfWl8HpFsZtfEkMpJ5GjPsJ3nhPe6wKAJUZ/piC8sszUkAgv3fLflgzPStIwfWg==
"@next/swc-linux-x64-musl@14.1.1":
version "14.1.1"
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.1.tgz#15f26800df941b94d06327f674819ab64b272e25"
integrity sha512-YAZLGsaNeChSrpz/G7MxO3TIBLaMN8QWMr3X8bt6rCvKovwU7GqQlDu99WdvF33kI8ZahvcdbFsy4jAFzFX7og==
"@next/swc-win32-arm64-msvc@14.2.32":
version "14.2.32"
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.32.tgz#b4d3e47c6b276fc4711deb978d04015d029d198d"
integrity sha512-rORQjXsAFeX6TLYJrCG5yoIDj+NKq31Rqwn8Wpn/bkPNy5rTHvOXkW8mLFonItS7QC6M+1JIIcLe+vOCTOYpvg==
"@next/swc-win32-arm64-msvc@14.1.1":
version "14.1.1"
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.1.tgz#060c134fa7fa843666e3e8574972b2b723773dd9"
integrity sha512-1L4mUYPBMvVDMZg1inUYyPvFSduot0g73hgfD9CODgbr4xiTYe0VOMTZzaRqYJYBA9mana0x4eaAaypmWo1r5A==
"@next/swc-win32-ia32-msvc@14.2.32":
version "14.2.32"
resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.32.tgz#d1f1f854a1fbbaeefa8f81271437448653f33494"
integrity sha512-jHUeDPVHrgFltqoAqDB6g6OStNnFxnc7Aks3p0KE0FbwAvRg6qWKYF5mSTdCTxA3axoSAUwxYdILzXJfUwlHhA==
"@next/swc-win32-ia32-msvc@14.1.1":
version "14.1.1"
resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.1.tgz#5c06889352b1f77e3807834a0d0afd7e2d2d1da2"
integrity sha512-jvIE9tsuj9vpbbXlR5YxrghRfMuG0Qm/nZ/1KDHc+y6FpnZ/apsgh+G6t15vefU0zp3WSpTMIdXRUsNl/7RSuw==
"@next/swc-win32-x64-msvc@14.2.32":
version "14.2.32"
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.32.tgz#8212d681cf6858a9e3204728f8f2b161000683ed"
integrity sha512-2N0lSoU4GjfLSO50wvKpMQgKd4HdI2UHEhQPPPnlgfBJlOgJxkjpkYBqzk08f1gItBB6xF/n+ykso2hgxuydsA==
"@next/swc-win32-x64-msvc@14.1.1":
version "14.1.1"
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.1.tgz#d38c63a8f9b7f36c1470872797d3735b4a9c5c52"
integrity sha512-S6K6EHDU5+1KrBDLko7/c1MNy/Ya73pIAmvKeFwsF4RmBFJSO7/7YeD4FnZ4iBdzE69PpQ4sOMU9ORKeNuxe8A==
"@next/third-parties@^14.1.0":
version "14.1.0"
@@ -2031,17 +2031,11 @@
"@svgr/plugin-jsx" "^6.5.1"
"@svgr/plugin-svgo" "^6.5.1"
"@swc/counter@^0.1.3":
version "0.1.3"
resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9"
integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==
"@swc/helpers@0.5.5":
version "0.5.5"
resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.5.tgz#12689df71bfc9b21c4f4ca00ae55f2f16c8b77c0"
integrity sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==
"@swc/helpers@0.5.2":
version "0.5.2"
resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.2.tgz#85ea0c76450b61ad7d10a37050289eded783c27d"
integrity sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==
dependencies:
"@swc/counter" "^0.1.3"
tslib "^2.4.0"
"@tauri-apps/api@^2.1.1":
@@ -6727,28 +6721,28 @@ neo-async@^2.6.2:
resolved "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
next@^14.2.32:
version "14.2.32"
resolved "https://registry.yarnpkg.com/next/-/next-14.2.32.tgz#279b544f0c8ed023c33454ce4d563d3e05c2f3fb"
integrity sha512-fg5g0GZ7/nFc09X8wLe6pNSU8cLWbLRG3TZzPJ1BJvi2s9m7eF991se67wliM9kR5yLHRkyGKU49MMx58s3LJg==
next@^14.1.1:
version "14.1.1"
resolved "https://registry.yarnpkg.com/next/-/next-14.1.1.tgz#92bd603996c050422a738e90362dff758459a171"
integrity sha512-McrGJqlGSHeaz2yTRPkEucxQKe5Zq7uPwyeHNmJaZNY4wx9E9QdxmTp310agFRoMuIYgQrCrT3petg13fSVOww==
dependencies:
"@next/env" "14.2.32"
"@swc/helpers" "0.5.5"
"@next/env" "14.1.1"
"@swc/helpers" "0.5.2"
busboy "1.6.0"
caniuse-lite "^1.0.30001579"
graceful-fs "^4.2.11"
postcss "8.4.31"
styled-jsx "5.1.1"
optionalDependencies:
"@next/swc-darwin-arm64" "14.2.32"
"@next/swc-darwin-x64" "14.2.32"
"@next/swc-linux-arm64-gnu" "14.2.32"
"@next/swc-linux-arm64-musl" "14.2.32"
"@next/swc-linux-x64-gnu" "14.2.32"
"@next/swc-linux-x64-musl" "14.2.32"
"@next/swc-win32-arm64-msvc" "14.2.32"
"@next/swc-win32-ia32-msvc" "14.2.32"
"@next/swc-win32-x64-msvc" "14.2.32"
"@next/swc-darwin-arm64" "14.1.1"
"@next/swc-darwin-x64" "14.1.1"
"@next/swc-linux-arm64-gnu" "14.1.1"
"@next/swc-linux-arm64-musl" "14.1.1"
"@next/swc-linux-x64-gnu" "14.1.1"
"@next/swc-linux-x64-musl" "14.1.1"
"@next/swc-win32-arm64-msvc" "14.1.1"
"@next/swc-win32-ia32-msvc" "14.1.1"
"@next/swc-win32-x64-msvc" "14.1.1"
node-domexception@^1.0.0:
version "1.0.0"