mirror of
https://github.com/labring/FastGPT.git
synced 2025-10-19 10:07:24 +00:00
docs
This commit is contained in:
@@ -35,7 +35,7 @@ services:
|
|||||||
network_mode: host
|
network_mode: host
|
||||||
restart: always
|
restart: always
|
||||||
container_name: fastgpt
|
container_name: fastgpt
|
||||||
environment:
|
environment: # 可选的变量,不需要的话需要去掉
|
||||||
# proxy(可选)
|
# proxy(可选)
|
||||||
- AXIOS_PROXY_HOST=127.0.0.1
|
- AXIOS_PROXY_HOST=127.0.0.1
|
||||||
- AXIOS_PROXY_PORT=7890
|
- AXIOS_PROXY_PORT=7890
|
||||||
@@ -47,6 +47,9 @@ services:
|
|||||||
- aliAccessKeySecret=xxxx
|
- aliAccessKeySecret=xxxx
|
||||||
- aliSignName=xxxxx
|
- aliSignName=xxxxx
|
||||||
- aliTemplateCode=SMS_xxxx
|
- aliTemplateCode=SMS_xxxx
|
||||||
|
# google V3 安全校验(可选)
|
||||||
|
- CLIENT_GOOGLE_VER_TOKEN=6LcDlDUmAAAAAAbGrwhIZtt3G_Ulf5V-lPamB5qd
|
||||||
|
- SERVICE_GOOGLE_VER_TOKEN=6LcDlDUmAAAAANIOO1jLdSLDAiyQCnX9dVTr81nt
|
||||||
# QA和向量生成最大进程数
|
# QA和向量生成最大进程数
|
||||||
- QA_MAX_PROCESS=10
|
- QA_MAX_PROCESS=10
|
||||||
- VECTOR_MAX_PROCESS=10
|
- VECTOR_MAX_PROCESS=10
|
||||||
@@ -54,7 +57,7 @@ services:
|
|||||||
- TOKEN_KEY=xxxx
|
- TOKEN_KEY=xxxx
|
||||||
# root key, 最高权限,可以内部接口互相调用
|
# root key, 最高权限,可以内部接口互相调用
|
||||||
- ROOT_KEY=xxx
|
- ROOT_KEY=xxx
|
||||||
# 是否进行安全校验(1: 开启,0: 关闭)
|
# 是否进行内容安全校验(1: 开启,0: 关闭)
|
||||||
- SENSITIVE_CHECK=1
|
- SENSITIVE_CHECK=1
|
||||||
# 和上方mongo镜像的username,password对应
|
# 和上方mongo镜像的username,password对应
|
||||||
- MONGODB_URI=mongodb://username:password@0.0.0.0:27017/?authSource=admin
|
- MONGODB_URI=mongodb://username:password@0.0.0.0:27017/?authSource=admin
|
||||||
@@ -66,8 +69,8 @@ services:
|
|||||||
- PG_PASSWORD=1234 # POSTGRES_PASSWORD
|
- PG_PASSWORD=1234 # POSTGRES_PASSWORD
|
||||||
- PG_DB_NAME=fastgpt # POSTGRES_DB
|
- PG_DB_NAME=fastgpt # POSTGRES_DB
|
||||||
# openai
|
# openai
|
||||||
- OPENAIKEY=sk-xxxxx # 对话用的key
|
- OPENAIKEY=sk-xxxxx,sk-xxx # 对话用的key,多个key,逗号分开
|
||||||
- OPENAI_TRAINING_KEY=sk-xxx # 训练用的key
|
- OPENAI_TRAINING_KEY=sk-xxx,sk-xxxx # 训练用的key
|
||||||
- GPT4KEY=sk-xxx
|
- GPT4KEY=sk-xxx
|
||||||
- OPENAI_BASE_URL=https://api.openai.com/v1
|
- OPENAI_BASE_URL=https://api.openai.com/v1
|
||||||
- OPENAI_BASE_URL_AUTH=可选的安全凭证
|
- OPENAI_BASE_URL_AUTH=可选的安全凭证
|
||||||
|
@@ -7,12 +7,14 @@ CREATE TABLE IF NOT EXISTS modelData (
|
|||||||
id BIGSERIAL PRIMARY KEY,
|
id BIGSERIAL PRIMARY KEY,
|
||||||
vector VECTOR(1536) NOT NULL,
|
vector VECTOR(1536) NOT NULL,
|
||||||
user_id VARCHAR(50) NOT NULL,
|
user_id VARCHAR(50) NOT NULL,
|
||||||
kb_id VARCHAR(50),
|
kb_id VARCHAR(50) NOT NULL,
|
||||||
q TEXT NOT NULL,
|
q TEXT NOT NULL,
|
||||||
a TEXT NOT NULL
|
a TEXT NOT NULL
|
||||||
);
|
);
|
||||||
-- create index
|
-- 索引设置,按需取
|
||||||
CREATE INDEX IF NOT EXISTS modelData_userId_index ON modelData USING HASH (user_id);
|
-- CREATE INDEX IF NOT EXISTS modelData_userId_index ON modelData USING HASH (user_id);
|
||||||
CREATE INDEX IF NOT EXISTS modelData_kbId_index ON modelData USING HASH (kb_id);
|
-- CREATE INDEX IF NOT EXISTS modelData_kbId_index ON modelData USING HASH (kb_id);
|
||||||
|
-- CREATE INDEX IF NOT EXISTS idx_model_data_md5_q_a_user_id_kb_id ON modelData (md5(q), md5(a), user_id, kb_id);
|
||||||
|
-- CREATE INDEX IF NOT EXISTS vector_index ON modelData USING ivfflat (vector vector_cosine_ops) WITH (lists = 1000);
|
||||||
-- vector 索引,可以到 pg vector 去配置,根据数据量去配置
|
-- vector 索引,可以到 pg vector 去配置,根据数据量去配置
|
||||||
EOSQL
|
EOSQL
|
||||||
|
@@ -25,9 +25,9 @@ export const openaiError: Record<string, string> = {
|
|||||||
'Bad Gateway': '网关异常,请重试'
|
'Bad Gateway': '网关异常,请重试'
|
||||||
};
|
};
|
||||||
export const openaiAccountError: Record<string, string> = {
|
export const openaiAccountError: Record<string, string> = {
|
||||||
// insufficient_quota: 'API 余额不足',
|
insufficient_quota: 'API 余额不足',
|
||||||
invalid_api_key: 'openai 账号异常'
|
invalid_api_key: 'openai 账号异常',
|
||||||
// invalid_request_error: '无效的 openai 请求'
|
account_deactivated: '账号已停用'
|
||||||
};
|
};
|
||||||
export const proxyError: Record<string, boolean> = {
|
export const proxyError: Record<string, boolean> = {
|
||||||
ECONNABORTED: true,
|
ECONNABORTED: true,
|
||||||
|
@@ -162,7 +162,8 @@ A2:
|
|||||||
// message error or openai account error
|
// message error or openai account error
|
||||||
if (
|
if (
|
||||||
err?.message === 'invalid message format' ||
|
err?.message === 'invalid message format' ||
|
||||||
openaiAccountError[err?.response?.data?.error?.code]
|
err.response?.statusText === 'Unauthorized' ||
|
||||||
|
openaiAccountError[err?.response?.data?.error?.code || err?.response?.data?.error?.type]
|
||||||
) {
|
) {
|
||||||
await TrainingData.findByIdAndRemove(trainingId);
|
await TrainingData.findByIdAndRemove(trainingId);
|
||||||
}
|
}
|
||||||
|
@@ -110,11 +110,11 @@ export async function generateVector(): Promise<any> {
|
|||||||
} else {
|
} else {
|
||||||
console.log('生成向量错误:', err);
|
console.log('生成向量错误:', err);
|
||||||
}
|
}
|
||||||
|
|
||||||
// message error or openai account error
|
// message error or openai account error
|
||||||
if (
|
if (
|
||||||
err?.message === 'invalid message format' ||
|
err?.message === 'invalid message format' ||
|
||||||
openaiAccountError[err?.response?.data?.error?.code]
|
err.response?.statusText === 'Unauthorized' ||
|
||||||
|
openaiAccountError[err?.response?.data?.error?.code || err?.response?.data?.error?.type]
|
||||||
) {
|
) {
|
||||||
console.log('删除一个任务');
|
console.log('删除一个任务');
|
||||||
await TrainingData.findByIdAndRemove(trainingId);
|
await TrainingData.findByIdAndRemove(trainingId);
|
||||||
|
Reference in New Issue
Block a user