Merge pull request #13 from sijinhui/dev

Dev
This commit is contained in:
sijinhui 2024-02-05 17:54:40 +08:00 committed by GitHub
commit 4a8a151966
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 31 additions and 16 deletions

View File

@ -16,13 +16,13 @@ jobs:
uses: actions/checkout@v3
with:
ref: 'dev'
clean: true
clean: false
github-server-url: 'https://gh.siji.ci'
- name: build and deploy to Docker Hub
run: |
echo ${{ secrets.ALY_DOCKER_PASSWORD }} | docker login registry.cn-hangzhou.aliyuncs.com -u ${{ secrets.ALY_DOCKER_USERNAME }} --password-stdin
echo "${{ secrets.DOCKER_ENV }}" > .env
echo "COMPOSE_PROJECT_NAME=test-chatgpt-web" > .env
echo "COMPOSE_PROJECT_NAME=test-chatgpt-web" >> .env
bash ./start.sh
# 替换测试镜像
sed -i 's@image: registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web@image: registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web:test@g' docker-compose.yml
@ -63,11 +63,11 @@ jobs:
cd /data/test/ChatGPT-Next-Web
echo "${{ secrets.DOCKER_ENV }}" > .env
# 测试分支,
echo "COMPOSE_PROJECT_NAME=test-chatgpt-web" > .env
echo "COMPOSE_PROJECT_NAME=test-chatgpt-web" >> .env
sed -i 's@image: registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web@image: registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web:test@g' docker-compose.yml
echo ${{ secrets.ALY_DOCKER_PASSWORD }} | docker login registry.cn-hangzhou.aliyuncs.com -u ${{ secrets.ALY_DOCKER_USERNAME }} --password-stdin
sed -i 's|23000:|23001:|g' docker-compose.yml
docker-compose pull && docker-compose up -d
yes | docker image prune
rm -rf /www/server/nginx/proxy_cache_dir/*
rm -rf /www/server/nginx/proxy_temp_dir/*
rm -rf /www/server/nginx/proxy_temp_dir/*

View File

@ -23,7 +23,7 @@ jobs:
- name: Check out the repo
uses: actions/checkout@v3
with:
clean: true
clean: false
github-server-url: 'https://gh.siji.ci'
- name: build and deploy to Docker Hub
run: |

View File

@ -13,7 +13,7 @@ export function getEmojiUrl(unified: string, style: EmojiStyle) {
// Whoever owns this Content Delivery Network (CDN), I am using your CDN to serve emojis
// Old CDN broken, so I had to switch to this one
// Author: https://github.com/H0llyW00dzZ
return `https://cdn.jsdelivr.net/npm/emoji-datasource-apple/img/${style}/64/${unified}.png`;
return `https://fastly.jsdelivr.net/npm/emoji-datasource-apple/img/${style}/64/${unified}.png`;
}
export function AvatarPicker(props: {

View File

@ -268,7 +268,7 @@ function CheckButton() {
const syncStore = useSyncStore();
const couldCheck = useMemo(() => {
return syncStore.coundSync();
return syncStore.cloudSync();
}, [syncStore]);
const [checkState, setCheckState] = useState<
@ -472,7 +472,7 @@ function SyncItems() {
const promptStore = usePromptStore();
const maskStore = useMaskStore();
const couldSync = useMemo(() => {
return syncStore.coundSync();
return syncStore.cloudSync();
}, [syncStore]);
const [showSyncConfigModal, setShowSyncConfigModal] = useState(false);

View File

@ -99,7 +99,7 @@ export const Google = {
export const DEFAULT_INPUT_TEMPLATE = `{{input}}`; // input / time / model / lang
export const DEFAULT_SYSTEM_TEMPLATE = `
You are ChatGPT, a large language model trained by OpenAI.
You are ChatGPT, a large language model trained by {{ServiceProvider}}.
Knowledge cutoff: {{cutoff}}
Current model: {{model}}
Current time: {{time}}
@ -115,7 +115,9 @@ export const KnowledgeCutOffDate: Record<string, string> = {
"gpt-4-1106-preview": "2023-04",
"gpt-4-0125-preview": "2023-04",
"gpt-4-vision-preview": "2023-04",
"gemini-pro": "2021-04",
// After improvements,
// it's now easier to add "KnowledgeCutOffDate" instead of stupid hardcoding it, as was done previously.
"gemini-pro": "2023-12",
};
export const DEFAULT_MODELS = [

View File

@ -6,6 +6,7 @@ import { ModelConfig, ModelType, useAppConfig } from "./config";
import { createEmptyMask, Mask } from "./mask";
import {
DEFAULT_INPUT_TEMPLATE,
DEFAULT_MODELS,
DEFAULT_SYSTEM_TEMPLATE,
KnowledgeCutOffDate,
ModelProvider,
@ -99,10 +100,20 @@ function countMessages(msgs: ChatMessage[]) {
}
function fillTemplateWith(input: string, modelConfig: ModelConfig) {
let cutoff =
const cutoff =
KnowledgeCutOffDate[modelConfig.model] ?? KnowledgeCutOffDate.default;
// Find the model in the DEFAULT_MODELS array that matches the modelConfig.model
const modelInfo = DEFAULT_MODELS.find((m) => m.name === modelConfig.model);
if (!modelInfo) {
throw new Error(
`Model ${modelConfig.model} not found in DEFAULT_MODELS array.`,
);
}
// Directly use the providerName from the modelInfo
const serviceProvider = modelInfo.provider.providerName;
const vars = {
ServiceProvider: serviceProvider,
cutoff,
model: modelConfig.model,
time: new Date().toLocaleString(),
@ -119,7 +130,8 @@ function fillTemplateWith(input: string, modelConfig: ModelConfig) {
}
Object.entries(vars).forEach(([name, value]) => {
output = output.replaceAll(`{{${name}}}`, value);
const regex = new RegExp(`{{${name}}}`, "g");
output = output.replace(regex, value.toString()); // Ensure value is a string
});
return output;

View File

@ -48,7 +48,7 @@ const DEFAULT_SYNC_STATE = {
export const useSyncStore = createPersistStore(
DEFAULT_SYNC_STATE,
(set, get) => ({
coundSync() {
cloudSync() {
const config = get()[get().provider];
return Object.values(config).every((c) => c.toString().length > 0);
},

View File

@ -70,7 +70,7 @@ export const authOptions: NextAuthOptions = {
error: "/login", // Error code passed in query string as ?error=
},
adapter: PrismaAdapter(prisma),
session: { strategy: "jwt", maxAge: 7 * 24 * 60 * 60 },
session: { strategy: "jwt", maxAge: 3 * 24 * 60 * 60 },
cookies: {
sessionToken: {
name: `${SECURE_COOKIES ? "__Secure-" : ""}next-auth.session-token`,
@ -109,7 +109,7 @@ export const authOptions: NextAuthOptions = {
};
export function getSession() {
// console.log('in........',)
console.log('in........',)
return getServerSession(authOptions) as Promise<{
user: {
id: string;

View File

@ -1,7 +1,7 @@
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
import { getToken } from "next-auth/jwt";
import {DENY_LIST, isName} from "@/lib/auth_list";
import { DENY_LIST, isName } from "@/lib/auth_list";
export default async function middleware(req: NextRequest) {
const url = req.nextUrl;

View File

@ -56,6 +56,7 @@
"@tailwindcss/forms": "^0.5.7",
"@tailwindcss/typography": "^0.5.10",
"@tauri-apps/cli": "^1.5.8",
"@types/cookie": "^0.6.0",
"@types/node": "^20.11.10",
"@types/react": "^18.2.48",
"@types/react-dom": "^18.2.7",