perf: user openai

This commit is contained in:
archer
2023-08-05 12:26:26 +08:00
parent 37a6293f5e
commit bb824ab35e
6 changed files with 23 additions and 20 deletions

View File

@@ -17,12 +17,13 @@ aliTemplateCode=xxxx
TOKEN_KEY=dfdasfdas
# root key, 最高权限
ROOT_KEY=fdafasd
# 使用 oneapi
# ONEAPI_URL=https://xxxx.cloud.sealos.io/v1
# ONEAPI_KEY=sk-xxxx
# openai 的基本地址(国外的可以忽略,默认走 api.openai.com。不用 oneapi 的话需要下面 2 个参数,用户的 key 也会走下面的参数
OPENAI_BASE_URL=https://xxxx.cloud.sealos.io/openai/v1
OPENAIKEY=sk-xxxx
# openai 基本地址,可用作中转。
OPENAI_BASE_URL=https://api.openai.com/v1
# oneapi 地址,可以使用 oneapi 来实现多模型接入
ONEAPI_URL=https://xxxx.cloud.sealos.io/openai/v1
# 通用key。可以是 openai 的也可以是 oneapi 的。
# 此处填写逻辑:填了 ONEAPI_URLkey 就填 oneapi 的。没填 ONEAPI_URLkey 就填 OPENAI_BASE_URL 对应的。
CHAT_API_KEY=sk-xxxx
# db
MONGODB_URI=mongodb://username:password@0.0.0.0:27017/?authSource=admin
MONGODB_NAME=fastgpt

View File

@@ -3,7 +3,7 @@ import { jsonRes } from '@/service/response';
import { connectToDatabase, App } from '@/service/mongo';
import type { PagingData } from '@/types';
import type { ShareAppItem } from '@/types/app';
import { parseCookie } from '@/service/utils/auth';
import { authUser } from '@/service/utils/auth';
import { Types } from 'mongoose';
/* 获取模型列表 */
@@ -17,13 +17,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
await connectToDatabase();
let userId = '';
try {
userId = await parseCookie(req.headers.cookie);
} catch (error) {
error;
}
const { userId } = await authUser({ req, authToken: true });
const regex = new RegExp(searchText, 'i');

View File

@@ -1,10 +1,10 @@
import { UserModelSchema } from '@/types/mongoSchema';
import { Configuration, OpenAIApi } from 'openai';
export const openaiBaseUrl = 'https://api.openai.com/v1';
export const baseUrl = process.env.ONEAPI_URL || process.env.OPENAI_BASE_URL || openaiBaseUrl;
export const openaiBaseUrl = process.env.OPENAI_BASE_URL || 'https://api.openai.com/v1';
export const baseUrl = process.env.ONEAPI_URL || openaiBaseUrl;
export const systemAIChatKey = process.env.ONEAPI_KEY || process.env.OPENAIKEY || '';
export const systemAIChatKey = process.env.CHAT_API_KEY || '';
export const getAIChatApi = (props?: UserModelSchema['openaiAccount']) => {
return new OpenAIApi(

View File

@@ -24,7 +24,7 @@ const defaultChatData: InitChatResponse = {
chatId: '',
appId: '',
app: {
name: '',
name: 'FastAI',
avatar: '/icon/logo.png',
intro: '',
canUse: false

View File

@@ -30,7 +30,7 @@ export const defaultHistory: ShareChatHistoryItemType = {
const defaultShareChatData: ShareChatType = {
userAvatar: HUMAN_ICON,
app: {
name: '',
name: 'AI',
avatar: '/icon/logo.png',
intro: ''
},

View File

@@ -53,6 +53,7 @@ export const useUserStore = create<State>()(
});
},
async updateUserInfo(user: UserUpdateParams) {
const oldInfo = (get().userInfo ? { ...get().userInfo } : null) as UserType | null;
set((state) => {
if (!state.userInfo) return;
state.userInfo = {
@@ -60,7 +61,14 @@ export const useUserStore = create<State>()(
...user
};
});
await putUserInfo(user);
try {
await putUserInfo(user);
} catch (error) {
set((state) => {
state.userInfo = oldInfo;
});
return Promise.reject(error);
}
},
myApps: [],
myCollectionApps: [],