2024-02-15 14:29:57 +08:00
-- 需要先安装pgvector这个扩展( https://github.com/pgvector/pgvector)
-- CREATE EXTENSION vector;
SET client_encoding = ' UTF8 ' ;
CREATE SCHEMA public ;
CREATE TABLE public . adi_ai_image
(
id bigserial primary key ,
user_id bigint DEFAULT ' 0 ' : : bigint NOT NULL ,
uuid character varying ( 32 ) DEFAULT ' ' : : character varying NOT NULL ,
prompt character varying ( 1024 ) DEFAULT ' ' : : character varying NOT NULL ,
generate_size character varying ( 20 ) DEFAULT ' ' : : character varying NOT NULL ,
generate_number integer DEFAULT 1 NOT NULL ,
original_image character varying ( 1000 ) DEFAULT ' ' : : character varying NOT NULL ,
mask_image character varying ( 1000 ) DEFAULT ' ' : : character varying NOT NULL ,
resp_images_path character varying ( 2048 ) DEFAULT ' ' : : character varying NOT NULL ,
generated_images character varying ( 2048 ) DEFAULT ' ' : : character varying NOT NULL ,
interacting_method smallint DEFAULT ' 1 ' : : smallint NOT NULL ,
process_status smallint DEFAULT ' 1 ' : : smallint NOT NULL ,
create_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
update_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
is_deleted boolean DEFAULT false NOT NULL ,
CONSTRAINT adi_ai_image_generate_number_check CHECK ( ( ( generate_number > = 1 ) AND ( generate_number < = 10 ) ) ) ,
CONSTRAINT adi_ai_image_interacting_method_check CHECK ( ( interacting_method = ANY ( ARRAY [ 1 , 2 , 3 ] ) ) ) ,
CONSTRAINT adi_ai_image_process_status_check CHECK ( ( process_status = ANY ( ARRAY [ 1 , 2 , 3 ] ) ) ) ,
CONSTRAINT adi_ai_image_user_id_check CHECK ( ( user_id > = 0 ) )
) ;
ALTER TABLE ONLY public . adi_ai_image
ADD CONSTRAINT udx_uuid UNIQUE ( uuid ) ;
COMMENT ON TABLE public . adi_ai_image IS ' Images generated by ai ' ;
COMMENT ON COLUMN public . adi_ai_image . user_id IS ' The user who generated the image ' ;
COMMENT ON COLUMN public . adi_ai_image . uuid IS ' The uuid of the request of generated images ' ;
COMMENT ON COLUMN public . adi_ai_image . prompt IS ' The prompt for generating images ' ;
COMMENT ON COLUMN public . adi_ai_image . generate_size IS ' The size of the generated images. Must be one of "256x256", "512x512", or "1024x1024" ' ;
COMMENT ON COLUMN public . adi_ai_image . generate_number IS ' The number of images to generate. Must be between 1 and 10. Defaults to 1. ' ;
COMMENT ON COLUMN public . adi_ai_image . original_image IS ' The path of the original image (local path or http path), interacting_method must be 2/3 ' ;
COMMENT ON COLUMN public . adi_ai_image . mask_image IS ' The path of the mask image (local path or http path), interacting_method must be 2 ' ;
COMMENT ON COLUMN public . adi_ai_image . resp_images_path IS ' The url of the generated images which from openai response, separated by commas ' ;
COMMENT ON COLUMN public . adi_ai_image . generated_images IS ' The path of the generated images, separated by commas ' ;
COMMENT ON COLUMN public . adi_ai_image . interacting_method IS ' 1: Creating images from scratch based on a text prompt; 2: Creating edits of an existing image based on a new text prompt; 3: Creating variations of an existing image ' ;
COMMENT ON COLUMN public . adi_ai_image . process_status IS ' Generate image status, 1: doing, 2: fail, 3: success ' ;
COMMENT ON COLUMN public . adi_ai_image . create_time IS ' Timestamp of record creation ' ;
COMMENT ON COLUMN public . adi_ai_image . update_time IS ' Timestamp of record last update, automatically updated on each update ' ;
COMMENT ON COLUMN public . adi_ai_image . is_deleted IS ' Flag indicating whether the record is deleted (0: not deleted, 1: deleted) ' ;
CREATE TABLE public . adi_ai_model
(
2024-05-05 18:40:32 +08:00
id bigserial primary key ,
name varchar ( 45 ) default ' ' not null ,
type varchar ( 45 ) default ' llm ' not null ,
remark varchar ( 1000 ) default ' ' ,
platform varchar ( 45 ) default ' ' not null ,
max_tokens int default 0 not null ,
is_enable boolean default false NOT NULL ,
create_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
update_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
is_deleted boolean DEFAULT false NOT NULL
2024-02-15 14:29:57 +08:00
) ;
COMMENT ON TABLE public . adi_ai_model IS ' ai模型 ' ;
2024-05-05 18:40:32 +08:00
COMMENT ON COLUMN public . adi_ai_model . type IS ' The type of the AI model,eg: text,image,embedding,rerank ' ;
2024-02-15 14:29:57 +08:00
COMMENT ON COLUMN public . adi_ai_model . name IS ' The name of the AI model ' ;
COMMENT ON COLUMN public . adi_ai_model . remark IS ' Additional remarks about the AI model ' ;
2024-05-05 18:40:32 +08:00
COMMENT ON COLUMN public . adi_ai_model . platform IS ' eg: openai,dashscope,qianfan,ollama ' ;
COMMENT ON COLUMN public . adi_ai_model . max_tokens IS ' The maximum number of tokens that can be generated ' ;
COMMENT ON COLUMN public . adi_ai_model . is_enable IS ' 1: Normal usage, 0: Not available ' ;
2024-02-15 14:29:57 +08:00
COMMENT ON COLUMN public . adi_ai_model . create_time IS ' Timestamp of record creation ' ;
COMMENT ON COLUMN public . adi_ai_model . update_time IS ' Timestamp of record last update, automatically updated on each update ' ;
2024-05-05 18:40:32 +08:00
INSERT INTO adi_ai_model ( name , type , platform , max_tokens , is_enable )
VALUES ( ' gpt-3.5-turbo ' , ' text ' , ' openai ' , 2048 , false ) ;
INSERT INTO adi_ai_model ( name , type , platform , is_enable )
VALUES ( ' dall-e-2 ' , ' image ' , ' openai ' , false ) ;
INSERT INTO adi_ai_model ( name , type , platform , is_enable )
VALUES ( ' qwen-turbo ' , ' text ' , ' dashscope ' , false ) ;
INSERT INTO adi_ai_model ( name , type , platform , is_enable )
VALUES ( ' ernie-3.5-8k-0205 ' , ' text ' , ' qianfan ' , false ) ;
INSERT INTO adi_ai_model ( name , type , platform , is_enable )
VALUES ( ' tinydolphin ' , ' text ' , ' ollama ' , false ) ;
2024-02-15 14:29:57 +08:00
CREATE TABLE public . adi_conversation
(
id bigserial primary key ,
user_id bigint DEFAULT ' 0 ' : : bigint NOT NULL ,
uuid character varying ( 32 ) DEFAULT ' ' : : character varying NOT NULL ,
title character varying ( 45 ) DEFAULT ' ' : : character varying NOT NULL ,
openai_conversation_id character varying ( 32 ) DEFAULT ' ' : : character varying NOT NULL ,
tokens integer DEFAULT 0 NOT NULL ,
ai_system_message character varying ( 1000 ) DEFAULT ' ' : : character varying NOT NULL ,
ai_model character varying ( 45 ) DEFAULT ' ' : : character varying NOT NULL ,
understand_context_enable boolean DEFAULT false NOT NULL ,
create_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
update_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
is_deleted boolean DEFAULT false NOT NULL
) ;
COMMENT ON TABLE public . adi_conversation IS ' 对话表 ' ;
COMMENT ON COLUMN public . adi_conversation . user_id IS ' 用户id ' ;
COMMENT ON COLUMN public . adi_conversation . ai_model IS ' 模型名称 ' ;
COMMENT ON COLUMN public . adi_conversation . title IS ' 对话标题 ' ;
CREATE TABLE public . adi_conversation_message
(
id bigserial primary key ,
parent_message_id bigint DEFAULT ' 0 ' : : bigint NOT NULL ,
conversation_id bigint DEFAULT ' 0 ' : : bigint NOT NULL ,
conversation_uuid character varying ( 32 ) DEFAULT ' ' : : character varying NOT NULL ,
remark text NOT NULL ,
uuid character varying ( 32 ) DEFAULT ' ' : : character varying NOT NULL ,
message_role integer DEFAULT 1 NOT NULL ,
tokens integer DEFAULT 0 NOT NULL ,
user_id bigint DEFAULT ' 0 ' : : bigint NOT NULL ,
2024-05-05 18:40:32 +08:00
ai_model_id bigint default 0 not null ,
2024-02-15 14:29:57 +08:00
secret_key_type integer DEFAULT 1 NOT NULL ,
understand_context_msg_pair_num integer DEFAULT 0 NOT NULL ,
create_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
update_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
is_deleted boolean DEFAULT false NOT NULL
) ;
COMMENT ON TABLE public . adi_conversation_message IS ' 对话消息表 ' ;
COMMENT ON COLUMN public . adi_conversation_message . parent_message_id IS ' 父级消息id ' ;
COMMENT ON COLUMN public . adi_conversation_message . conversation_id IS ' 对话id ' ;
COMMENT ON COLUMN public . adi_conversation_message . conversation_uuid IS ' conversation '' s uuid ' ;
COMMENT ON COLUMN public . adi_conversation_message . remark IS ' ai回复的消息 ' ;
COMMENT ON COLUMN public . adi_conversation_message . uuid IS ' 唯一标识消息的UUID ' ;
COMMENT ON COLUMN public . adi_conversation_message . message_role IS ' 产生该消息的角色: 1: 用户, 2: 系统, 3: 助手 ' ;
COMMENT ON COLUMN public . adi_conversation_message . tokens IS ' 消耗的token数量 ' ;
COMMENT ON COLUMN public . adi_conversation_message . user_id IS ' 用户ID ' ;
2024-05-05 18:40:32 +08:00
COMMENT ON COLUMN public . adi_conversation_message . ai_model_id IS ' adi_ai_model id ' ;
2024-02-15 14:29:57 +08:00
COMMENT ON COLUMN public . adi_conversation_message . secret_key_type IS ' 加密密钥类型 ' ;
COMMENT ON COLUMN public . adi_conversation_message . understand_context_msg_pair_num IS ' 上下文消息对数量 ' ;
CREATE TABLE public . adi_file
(
id bigserial primary key ,
name character varying ( 36 ) DEFAULT ' ' : : character varying NOT NULL ,
uuid character varying ( 32 ) DEFAULT ' ' : : character varying NOT NULL ,
ext character varying ( 36 ) DEFAULT ' ' : : character varying NOT NULL ,
user_id bigint DEFAULT ' 0 ' : : bigint NOT NULL ,
path character varying ( 250 ) DEFAULT ' ' : : character varying NOT NULL ,
ref_count integer DEFAULT 0 NOT NULL ,
create_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
update_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
is_deleted boolean DEFAULT false NOT NULL ,
md5 character varying ( 128 ) DEFAULT ' ' : : character varying NOT NULL
) ;
COMMENT ON TABLE public . adi_file IS ' 文件 ' ;
COMMENT ON COLUMN public . adi_file . name IS ' File name ' ;
COMMENT ON COLUMN public . adi_file . uuid IS ' UUID of the file ' ;
COMMENT ON COLUMN public . adi_file . ext IS ' File extension ' ;
COMMENT ON COLUMN public . adi_file . user_id IS ' 0: System; Other: User ' ;
COMMENT ON COLUMN public . adi_file . path IS ' File path ' ;
COMMENT ON COLUMN public . adi_file . ref_count IS ' The number of references to this file ' ;
COMMENT ON COLUMN public . adi_file . create_time IS ' Timestamp of record creation ' ;
COMMENT ON COLUMN public . adi_file . update_time IS ' Timestamp of record last update, automatically updated on each update ' ;
COMMENT ON COLUMN public . adi_file . is_deleted IS ' 0: Normal; 1: Deleted ' ;
COMMENT ON COLUMN public . adi_file . md5 IS ' MD5 hash of the file ' ;
CREATE TABLE public . adi_prompt
(
id bigserial primary key ,
user_id bigint DEFAULT ' 0 ' : : bigint NOT NULL ,
act character varying ( 120 ) DEFAULT ' ' : : character varying NOT NULL ,
prompt text NOT NULL ,
create_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
update_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
is_deleted boolean DEFAULT false NOT NULL
) ;
COMMENT ON TABLE public . adi_prompt IS ' 提示词 ' ;
COMMENT ON COLUMN public . adi_prompt . user_id IS ' 所属用户(0: system) ' ;
COMMENT ON COLUMN public . adi_prompt . act IS ' 提示词标题 ' ;
COMMENT ON COLUMN public . adi_prompt . prompt IS ' 提示词内容 ' ;
COMMENT ON COLUMN public . adi_prompt . create_time IS ' Timestamp of record creation ' ;
COMMENT ON COLUMN public . adi_prompt . update_time IS ' Timestamp of record last update, automatically updated on each update ' ;
COMMENT ON COLUMN public . adi_prompt . is_deleted IS ' 0:未删除; 1: 已删除 ' ;
CREATE TABLE public . adi_sys_config
2023-08-09 20:35:59 +08:00
(
2024-02-15 14:29:57 +08:00
id bigserial primary key ,
2024-03-12 00:41:49 +08:00
name character varying ( 100 ) DEFAULT ' ' : : character varying NOT NULL ,
2024-02-27 23:55:53 +08:00
value character varying ( 1000 ) DEFAULT ' ' : : character varying NOT NULL ,
2024-03-12 00:41:49 +08:00
create_time timestamp DEFAULT localtimestamp NOT NULL ,
update_time timestamp DEFAULT localtimestamp NOT NULL ,
is_deleted boolean DEFAULT false NOT NULL
2024-02-15 14:29:57 +08:00
) ;
COMMENT ON TABLE public . adi_sys_config IS ' 系统配置表 ' ;
COMMENT ON COLUMN public . adi_sys_config . name IS ' 配置项名称 ' ;
COMMENT ON COLUMN public . adi_sys_config . value IS ' 配置项值 ' ;
COMMENT ON COLUMN public . adi_sys_config . create_time IS ' Timestamp of record creation ' ;
COMMENT ON COLUMN public . adi_sys_config . update_time IS ' Timestamp of record last update, automatically updated on each update ' ;
COMMENT ON COLUMN public . adi_sys_config . is_deleted IS ' 0: 未删除; 1: 已删除 ' ;
CREATE TABLE public . adi_user
2023-08-09 20:35:59 +08:00
(
2024-02-15 14:29:57 +08:00
id bigserial primary key ,
name character varying ( 45 ) DEFAULT ' ' : : character varying NOT NULL ,
password character varying ( 120 ) DEFAULT ' ' : : character varying NOT NULL ,
uuid character varying ( 32 ) DEFAULT ' ' : : character varying NOT NULL ,
email character varying ( 120 ) DEFAULT ' ' : : character varying NOT NULL ,
active_time timestamp ,
user_status smallint DEFAULT ' 1 ' : : smallint NOT NULL ,
is_admin boolean DEFAULT false NOT NULL ,
quota_by_token_daily integer DEFAULT 0 NOT NULL ,
quota_by_token_monthly integer DEFAULT 0 NOT NULL ,
quota_by_request_daily integer DEFAULT 0 NOT NULL ,
quota_by_request_monthly integer DEFAULT 0 NOT NULL ,
secret_key character varying ( 120 ) DEFAULT ' ' : : character varying NOT NULL ,
understand_context_enable smallint DEFAULT ' 0 ' : : smallint NOT NULL ,
2024-04-17 09:12:01 +08:00
understand_context_msg_pair_num integer DEFAULT 3 NOT NULL ,
2024-02-15 14:29:57 +08:00
quota_by_image_daily integer DEFAULT 0 NOT NULL ,
quota_by_image_monthly integer DEFAULT 0 NOT NULL ,
create_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
update_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
is_deleted boolean DEFAULT false NOT NULL
) ;
COMMENT ON TABLE public . adi_user IS ' 用户表 ' ;
COMMENT ON COLUMN public . adi_user . name IS ' 用户名 ' ;
COMMENT ON COLUMN public . adi_user . password IS ' 密码 ' ;
COMMENT ON COLUMN public . adi_user . uuid IS ' UUID of the user ' ;
COMMENT ON COLUMN public . adi_user . email IS ' 用户邮箱 ' ;
COMMENT ON COLUMN public . adi_user . active_time IS ' 激活时间 ' ;
COMMENT ON COLUMN public . adi_user . create_time IS ' Timestamp of record creation ' ;
COMMENT ON COLUMN public . adi_user . update_time IS ' Timestamp of record last update, automatically updated on each update ' ;
COMMENT ON COLUMN public . adi_user . user_status IS ' 用户状态, 1: 待验证; 2: 正常; 3: 冻结 ' ;
COMMENT ON COLUMN public . adi_user . is_admin IS ' 是否管理员, 0: 否; 1: 是 ' ;
COMMENT ON COLUMN public . adi_user . is_deleted IS ' 0: 未删除; 1: 已删除 ' ;
COMMENT ON COLUMN public . adi_user . quota_by_token_daily IS ' 每日token配额 ' ;
COMMENT ON COLUMN public . adi_user . quota_by_token_monthly IS ' 每月token配额 ' ;
COMMENT ON COLUMN public . adi_user . quota_by_request_daily IS ' 每日请求配额 ' ;
COMMENT ON COLUMN public . adi_user . quota_by_request_monthly IS ' 每月请求配额 ' ;
COMMENT ON COLUMN public . adi_user . secret_key IS ' 用户密钥 ' ;
COMMENT ON COLUMN public . adi_user . understand_context_enable IS ' 上下文理解开关 ' ;
COMMENT ON COLUMN public . adi_user . understand_context_msg_pair_num IS ' 上下文消息对数量 ' ;
COMMENT ON COLUMN public . adi_user . quota_by_image_daily IS ' 每日图片配额 ' ;
COMMENT ON COLUMN public . adi_user . quota_by_image_monthly IS ' 每月图片配额 ' ;
CREATE TABLE public . adi_user_day_cost
(
id bigserial primary key ,
user_id bigint DEFAULT ' 0 ' : : bigint NOT NULL ,
day integer DEFAULT 0 NOT NULL ,
requests integer DEFAULT 0 NOT NULL ,
tokens integer DEFAULT 0 NOT NULL ,
create_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
update_time timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL ,
secret_key_type integer DEFAULT 0 NOT NULL ,
images_number integer DEFAULT 0 NOT NULL ,
is_deleted boolean DEFAULT false NOT NULL
) ;
COMMENT ON TABLE public . adi_user_day_cost IS ' 用户每天消耗总量表 ' ;
COMMENT ON COLUMN public . adi_user_day_cost . user_id IS ' 用户ID ' ;
COMMENT ON COLUMN public . adi_user_day_cost . day IS ' 日期, 用7位整数表示, 如20230901 ' ;
COMMENT ON COLUMN public . adi_user_day_cost . requests IS ' 请求数量 ' ;
COMMENT ON COLUMN public . adi_user_day_cost . tokens IS ' 消耗的token数量 ' ;
COMMENT ON COLUMN public . adi_user_day_cost . create_time IS ' Timestamp of record creation ' ;
COMMENT ON COLUMN public . adi_user_day_cost . update_time IS ' Timestamp of record last update, automatically updated on each update ' ;
COMMENT ON COLUMN public . adi_user_day_cost . secret_key_type IS ' 加密密钥类型 ' ;
COMMENT ON COLUMN public . adi_user_day_cost . images_number IS ' 图片数量 ' ;
-- update_time trigger
CREATE OR REPLACE FUNCTION update_modified_column ( )
RETURNS TRIGGER AS
$ $
BEGIN
NEW . update_time = CURRENT_TIMESTAMP ;
RETURN NEW ;
END ;
$ $ language ' plpgsql ' ;
CREATE TRIGGER trigger_ai_image_update_time
BEFORE UPDATE
ON adi_ai_image
FOR EACH ROW
EXECUTE PROCEDURE update_modified_column ( ) ;
CREATE TRIGGER trigger_ai_model_update_time
BEFORE UPDATE
ON adi_ai_model
FOR EACH ROW
EXECUTE PROCEDURE update_modified_column ( ) ;
CREATE TRIGGER trigger_conv_update_time
BEFORE UPDATE
ON adi_conversation
FOR EACH ROW
EXECUTE PROCEDURE update_modified_column ( ) ;
CREATE TRIGGER trigger_conv_message_update_time
BEFORE UPDATE
ON adi_conversation_message
FOR EACH ROW
EXECUTE PROCEDURE update_modified_column ( ) ;
CREATE TRIGGER trigger_file_update_time
BEFORE UPDATE
ON adi_file
FOR EACH ROW
EXECUTE PROCEDURE update_modified_column ( ) ;
CREATE TRIGGER trigger_prompt_update_time
BEFORE UPDATE
ON adi_prompt
FOR EACH ROW
EXECUTE PROCEDURE update_modified_column ( ) ;
CREATE TRIGGER trigger_sys_config_update_time
BEFORE UPDATE
ON adi_sys_config
FOR EACH ROW
EXECUTE PROCEDURE update_modified_column ( ) ;
CREATE TRIGGER trigger_user_update_time
BEFORE UPDATE
ON adi_user
FOR EACH ROW
EXECUTE PROCEDURE update_modified_column ( ) ;
CREATE TRIGGER trigger_user_day_cost_update_time
BEFORE UPDATE
ON adi_user_day_cost
FOR EACH ROW
EXECUTE PROCEDURE update_modified_column ( ) ;
2024-05-05 18:40:32 +08:00
create trigger trigger_ai_model
before update
on adi_ai_model
for each row
execute procedure update_modified_column ( ) ;
2024-02-15 14:29:57 +08:00
INSERT INTO adi_sys_config ( name , value )
2024-03-14 20:19:53 +08:00
VALUES ( ' openai_setting ' , ' {"secret_key":"","models":[]} ' ) ;
2024-02-27 23:55:53 +08:00
INSERT INTO adi_sys_config ( name , value )
2024-03-14 20:19:53 +08:00
VALUES ( ' dashscope_setting ' , ' {"api_key":"","models":[]} ' ) ;
2024-02-15 14:29:57 +08:00
INSERT INTO adi_sys_config ( name , value )
2024-03-14 20:19:53 +08:00
VALUES ( ' qianfan_setting ' , ' {"api_key":"","secret_key":"","models":[]} ' ) ;
INSERT INTO adi_sys_config ( name , value )
VALUES ( ' ollama_setting ' , ' {"base_url":"","models":[]} ' ) ;
2024-03-05 00:20:04 +08:00
INSERT INTO adi_sys_config ( name , value )
2024-04-08 00:17:23 +08:00
VALUES ( ' google_setting ' ,
' {"url":"https://www.googleapis.com/customsearch/v1","key":"","cx":""} ' ) ;
INSERT INTO adi_sys_config ( name , value )
2023-08-09 20:35:59 +08:00
VALUES ( ' request_text_rate_limit ' , ' {"times":24,"minutes":3} ' ) ;
2024-02-15 14:29:57 +08:00
INSERT INTO adi_sys_config ( name , value )
2023-08-09 20:35:59 +08:00
VALUES ( ' request_image_rate_limit ' , ' {"times":6,"minutes":3} ' ) ;
2024-02-15 14:29:57 +08:00
INSERT INTO adi_sys_config ( name , value )
2023-08-09 20:35:59 +08:00
VALUES ( ' conversation_max_num ' , ' 50 ' ) ;
2024-02-15 14:29:57 +08:00
INSERT INTO adi_sys_config ( name , value )
2023-08-09 20:35:59 +08:00
VALUES ( ' quota_by_token_daily ' , ' 10000 ' ) ;
2024-02-15 14:29:57 +08:00
INSERT INTO adi_sys_config ( name , value )
2023-08-09 20:35:59 +08:00
VALUES ( ' quota_by_token_monthly ' , ' 200000 ' ) ;
2024-02-15 14:29:57 +08:00
INSERT INTO adi_sys_config ( name , value )
2023-08-09 20:35:59 +08:00
VALUES ( ' quota_by_request_daily ' , ' 150 ' ) ;
2024-02-15 14:29:57 +08:00
INSERT INTO adi_sys_config ( name , value )
2023-08-09 20:35:59 +08:00
VALUES ( ' quota_by_request_monthly ' , ' 3000 ' ) ;
2024-02-15 14:29:57 +08:00
INSERT INTO adi_sys_config ( name , value )
2023-08-09 20:35:59 +08:00
VALUES ( ' quota_by_image_daily ' , ' 30 ' ) ;
2024-02-15 14:29:57 +08:00
INSERT INTO adi_sys_config ( name , value )
2023-08-09 20:35:59 +08:00
VALUES ( ' quota_by_image_monthly ' , ' 300 ' ) ;
2024-02-15 14:29:57 +08:00
INSERT INTO adi_sys_config ( name , value )
VALUES ( ' quota_by_qa_ask_daily ' , ' 50 ' ) ;
INSERT INTO adi_sys_config ( name , value )
VALUES ( ' quota_by_qa_item_monthly ' , ' 100 ' ) ;
2023-08-09 20:35:59 +08:00
2024-02-15 14:29:57 +08:00
create table adi_knowledge_base
2023-08-09 20:35:59 +08:00
(
2024-05-21 19:09:30 +08:00
id bigserial primary key ,
uuid varchar ( 32 ) default ' ' : : character varying not null ,
title varchar ( 250 ) default ' ' : : character varying not null ,
remark text default ' ' : : character varying not null ,
is_public boolean default false not null ,
owner_id bigint default 0 not null ,
owner_uuid varchar ( 32 ) default ' ' : : character varying not null ,
owner_name varchar ( 45 ) default ' ' : : character varying not null ,
star_count int default 0 not null ,
item_count int default 0 not null ,
embedding_count int default 0 not null ,
create_time timestamp default CURRENT_TIMESTAMP not null ,
update_time timestamp default CURRENT_TIMESTAMP not null ,
is_deleted boolean default false not null
2024-02-15 14:29:57 +08:00
) ;
comment on table adi_knowledge_base is ' 知识库 ' ;
comment on column adi_knowledge_base . title is ' 知识库名称 ' ;
comment on column adi_knowledge_base . remark is ' 知识库描述 ' ;
comment on column adi_knowledge_base . is_public is ' 是否公开 ' ;
2024-03-18 00:36:03 +08:00
comment on column adi_knowledge_base . star_count is ' 点赞数 ' ;
2024-05-21 19:09:30 +08:00
comment on column adi_knowledge_base . item_count is ' 知识点数量 ' ;
comment on column adi_knowledge_base . embedding_count is ' 向量数 ' ;
2024-02-15 14:29:57 +08:00
comment on column adi_knowledge_base . owner_id is ' 所属人id ' ;
2024-04-17 09:12:01 +08:00
comment on column adi_knowledge_base . owner_uuid is ' 所属人uuid ' ;
2024-02-15 14:29:57 +08:00
comment on column adi_knowledge_base . owner_name is ' 所属人名称 ' ;
comment on column adi_knowledge_base . create_time is ' 创建时间 ' ;
comment on column adi_knowledge_base . update_time is ' 更新时间 ' ;
comment on column adi_knowledge_base . is_deleted is ' 0: 未删除; 1: 已删除 ' ;
create trigger trigger_kb_update_time
before update
on adi_knowledge_base
for each row
execute procedure update_modified_column ( ) ;
create table adi_knowledge_base_item
2023-08-09 20:35:59 +08:00
(
2024-02-15 14:29:57 +08:00
id bigserial primary key ,
uuid varchar ( 32 ) default ' ' : : character varying not null ,
kb_id bigint DEFAULT ' 0 ' : : bigint NOT NULL ,
kb_uuid varchar ( 32 ) default ' ' : : character varying not null ,
source_file_id bigint DEFAULT ' 0 ' : : bigint NOT NULL ,
title varchar ( 250 ) default ' ' : : character varying not null ,
brief varchar ( 250 ) default ' ' : : character varying not null ,
remark text default ' ' : : character varying not null ,
is_embedded boolean default false not null ,
create_time timestamp default CURRENT_TIMESTAMP not null ,
update_time timestamp default CURRENT_TIMESTAMP not null ,
is_deleted boolean default false not null
) ;
comment on table adi_knowledge_base_item is ' 知识库-条目 ' ;
comment on column adi_knowledge_base_item . kb_id is ' 所属知识库id ' ;
comment on column adi_knowledge_base_item . source_file_id is ' 来源文件id ' ;
comment on column adi_knowledge_base_item . title is ' 条目标题 ' ;
comment on column adi_knowledge_base_item . brief is ' 条目内容摘要 ' ;
comment on column adi_knowledge_base_item . remark is ' 条目内容 ' ;
comment on column adi_knowledge_base_item . is_embedded is ' 是否已向量化,0:否,1:是 ' ;
comment on column adi_knowledge_base_item . create_time is ' 创建时间 ' ;
comment on column adi_knowledge_base_item . update_time is ' 更新时间 ' ;
comment on column adi_knowledge_base_item . is_deleted is ' 0: 未删除; 1: 已删除 ' ;
create trigger trigger_kb_item_update_time
before update
on adi_knowledge_base_item
for each row
execute procedure update_modified_column ( ) ;
2024-04-17 09:12:01 +08:00
create table adi_knowledge_base_star_record
(
id bigserial primary key ,
kb_id bigint DEFAULT ' 0 ' : : bigint NOT NULL ,
kb_uuid varchar ( 32 ) default ' ' : : character varying not null ,
user_id bigint default ' 0 ' NOT NULL ,
user_uuid varchar ( 32 ) default ' ' : : character varying not null ,
create_time timestamp default CURRENT_TIMESTAMP not null ,
update_time timestamp default CURRENT_TIMESTAMP not null ,
is_deleted boolean default false not null ,
UNIQUE ( kb_id , user_id )
) ;
comment on table adi_knowledge_base_star_record is ' 知识库-点赞记录 ' ;
comment on column adi_knowledge_base_star_record . kb_id is ' adi_knowledge_base id ' ;
comment on column adi_knowledge_base_star_record . kb_uuid is ' adi_knowledge_base uuid ' ;
comment on column adi_knowledge_base_star_record . user_id is ' adi_user id ' ;
comment on column adi_knowledge_base_star_record . user_uuid is ' adi_user uuid ' ;
comment on column adi_knowledge_base_star_record . create_time is ' 创建时间 ' ;
comment on column adi_knowledge_base_star_record . update_time is ' 更新时间 ' ;
comment on column adi_knowledge_base_star_record . is_deleted is ' 0:normal; 1:deleted ' ;
create trigger trigger_kb_star_record_update_time
before update
on adi_knowledge_base_star_record
for each row
execute procedure update_modified_column ( ) ;
2024-02-15 14:29:57 +08:00
create table adi_knowledge_base_qa_record
2023-08-09 20:35:59 +08:00
(
2024-02-15 14:29:57 +08:00
id bigserial primary key ,
uuid varchar ( 32 ) default ' ' : : character varying not null ,
kb_id bigint DEFAULT ' 0 ' : : bigint NOT NULL ,
kb_uuid varchar ( 32 ) default ' ' : : character varying not null ,
question varchar ( 1000 ) default ' ' : : character varying not null ,
2024-03-12 00:41:49 +08:00
prompt text default ' ' : : character varying not null ,
prompt_tokens integer DEFAULT 0 NOT NULL ,
2024-02-15 14:29:57 +08:00
answer text default ' ' : : character varying not null ,
2024-03-12 00:41:49 +08:00
answer_tokens integer DEFAULT 0 NOT NULL ,
2024-02-15 14:29:57 +08:00
source_file_ids varchar ( 500 ) default ' ' : : character varying not null ,
user_id bigint default ' 0 ' NOT NULL ,
2024-05-05 18:40:32 +08:00
ai_model_id bigint default 0 not null ,
2024-02-15 14:29:57 +08:00
create_time timestamp default CURRENT_TIMESTAMP not null ,
update_time timestamp default CURRENT_TIMESTAMP not null ,
is_deleted boolean default false not null
) ;
comment on table adi_knowledge_base_qa_record is ' 知识库-提问记录 ' ;
comment on column adi_knowledge_base_qa_record . kb_id is ' 所属知识库id ' ;
comment on column adi_knowledge_base_qa_record . kb_uuid is ' 所属知识库uuid ' ;
2024-03-12 00:41:49 +08:00
comment on column adi_knowledge_base_qa_record . question is ' 用户的原始问题 ' ;
comment on column adi_knowledge_base_qa_record . prompt is ' 提供给LLM的提示词 ' ;
comment on column adi_knowledge_base_qa_record . prompt_tokens is ' 提示词消耗的token ' ;
2024-02-15 14:29:57 +08:00
comment on column adi_knowledge_base_qa_record . answer is ' 答案 ' ;
2024-03-12 00:41:49 +08:00
comment on column adi_knowledge_base_qa_record . answer_tokens is ' 答案消耗的token ' ;
2024-02-15 14:29:57 +08:00
comment on column adi_knowledge_base_qa_record . source_file_ids is ' 来源文档id,以逗号隔开 ' ;
comment on column adi_knowledge_base_qa_record . user_id is ' 提问用户id ' ;
comment on column adi_knowledge_base_qa_record . create_time is ' 创建时间 ' ;
comment on column adi_knowledge_base_qa_record . update_time is ' 更新时间 ' ;
comment on column adi_knowledge_base_qa_record . is_deleted is ' 0: 未删除; 1: 已删除 ' ;
create trigger trigger_kb_qa_record_update_time
before update
on adi_knowledge_base_qa_record
for each row
execute procedure update_modified_column ( ) ;
2024-04-08 00:17:23 +08:00
-- ai search
create table adi_ai_search_record
(
id bigserial primary key ,
uuid varchar ( 32 ) default ' ' : : character varying not null ,
question varchar ( 1000 ) default ' ' : : character varying not null ,
search_engine_response jsonb not null ,
prompt text default ' ' : : character varying not null ,
prompt_tokens integer DEFAULT 0 NOT NULL ,
answer text default ' ' : : character varying not null ,
answer_tokens integer DEFAULT 0 NOT NULL ,
user_id bigint default ' 0 ' NOT NULL ,
user_uuid varchar ( 32 ) default ' ' : : character varying not null ,
2024-05-11 09:02:42 +08:00
ai_model_id bigint default 0 not null ,
2024-04-08 00:17:23 +08:00
create_time timestamp default CURRENT_TIMESTAMP not null ,
update_time timestamp default CURRENT_TIMESTAMP not null ,
is_deleted boolean default false not null
) ;
comment on table adi_ai_search_record is ' Search record ' ;
comment on column adi_ai_search_record . question is ' User original question ' ;
comment on column adi_ai_search_record . search_engine_response is ' Search engine '' s response content ' ;
comment on column adi_ai_search_record . prompt is ' Prompt of LLM ' ;
comment on column adi_ai_search_record . prompt_tokens is ' prompt消耗的token数量 ' ;
comment on column adi_ai_search_record . answer is ' LLM response ' ;
comment on column adi_ai_search_record . answer_tokens is ' LLM响应消耗的token数量 ' ;
comment on column adi_ai_search_record . user_id is ' Id from adi_user ' ;
2024-05-11 09:02:42 +08:00
COMMENT ON COLUMN adi_ai_search_record . ai_model_id IS ' adi_ai_model id ' ;
2024-04-08 00:17:23 +08:00
comment on column adi_ai_search_record . create_time is ' 创建时间 ' ;
comment on column adi_ai_search_record . update_time is ' 更新时间 ' ;
comment on column adi_ai_search_record . is_deleted is ' 0: Normal; 1: Deleted ' ;
create trigger trigger_ai_search_record
before update
on adi_ai_search_record
for each row
execute procedure update_modified_column ( ) ;