From 29037f5bbb5c78f80860e9f8b398c9283772897a Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期三, 25 十二月 2024 18:07:24 +0800
Subject: [PATCH] 部署优化
---
app/config/env_conf/default_agent_conf.json | 0
/dev/null | 34 -----------------
app/config/config.py | 22 ++++++-----
app/config/env_conf/api_key_conf.json | 0
app/config/const.py | 2
app/config/env_conf/config.yaml | 2 +
main.py | 11 +++--
app/config/env_conf/app_register_conf.json | 0
app/models/base_model.py | 3 -
app/service/v2/initialize_data.py | 11 +++--
app/config/env_conf/menu_conf.json | 0
11 files changed, 28 insertions(+), 57 deletions(-)
diff --git a/alembic/versions/0366cf835bba_dialog_agent_id_add.py b/alembic/versions/0366cf835bba_dialog_agent_id_add.py
deleted file mode 100644
index c7afc62..0000000
--- a/alembic/versions/0366cf835bba_dialog_agent_id_add.py
+++ /dev/null
@@ -1,30 +0,0 @@
-"""dialog agent id add 銆�
-
-Revision ID: 0366cf835bba
-Revises:
-Create Date: 2024-12-12 18:50:43.195483
-
-"""
-from typing import Sequence, Union
-
-from alembic import op
-import sqlalchemy as sa
-
-
-# revision identifiers, used by Alembic.
-revision: str = '0366cf835bba'
-down_revision: Union[str, None] = None
-branch_labels: Union[str, Sequence[str], None] = None
-depends_on: Union[str, Sequence[str], None] = None
-
-
-def upgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.add_column('dialogs', sa.Column('agent_id', sa.String(length=32), nullable=True))
- # ### end Alembic commands ###
-
-
-def downgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.drop_column('dialogs', 'agent_id')
- # ### end Alembic commands ###
diff --git a/alembic/versions/16efd20cce44_dialog_type_update_12_16.py b/alembic/versions/16efd20cce44_dialog_type_update_12_16.py
deleted file mode 100644
index 2d6facd..0000000
--- a/alembic/versions/16efd20cce44_dialog_type_update_12_16.py
+++ /dev/null
@@ -1,38 +0,0 @@
-"""dialog type update 12-16
-
-Revision ID: 16efd20cce44
-Revises: 5a1f335449b9
-Create Date: 2024-12-16 16:53:25.633589
-
-"""
-from typing import Sequence, Union
-
-from alembic import op
-import sqlalchemy as sa
-from sqlalchemy.dialects import mysql
-
-# revision identifiers, used by Alembic.
-revision: str = '16efd20cce44'
-down_revision: Union[str, None] = '5a1f335449b9'
-branch_labels: Union[str, Sequence[str], None] = None
-depends_on: Union[str, Sequence[str], None] = None
-
-
-def upgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.alter_column('dialogs', 'tenant_id',
- existing_type=mysql.VARCHAR(length=32),
- type_=sa.String(length=36),
- existing_nullable=True)
- op.drop_column('dialogs', 'agent_id')
- # ### end Alembic commands ###
-
-
-def downgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.add_column('dialogs', sa.Column('agent_id', mysql.VARCHAR(length=36), nullable=True))
- op.alter_column('dialogs', 'tenant_id',
- existing_type=sa.String(length=36),
- type_=mysql.VARCHAR(length=32),
- existing_nullable=True)
- # ### end Alembic commands ###
diff --git a/alembic/versions/1c4af61d72a5_dialog_id_to_36.py b/alembic/versions/1c4af61d72a5_dialog_id_to_36.py
deleted file mode 100644
index 8362b50..0000000
--- a/alembic/versions/1c4af61d72a5_dialog_id_to_36.py
+++ /dev/null
@@ -1,52 +0,0 @@
-"""dialog id to 36
-
-Revision ID: 1c4af61d72a5
-Revises: 0366cf835bba
-Create Date: 2024-12-13 11:24:57.138214
-
-"""
-from typing import Sequence, Union
-
-from alembic import op
-import sqlalchemy as sa
-from sqlalchemy.dialects import mysql
-
-# revision identifiers, used by Alembic.
-revision: str = '1c4af61d72a5'
-down_revision: Union[str, None] = '0366cf835bba'
-branch_labels: Union[str, Sequence[str], None] = None
-depends_on: Union[str, Sequence[str], None] = None
-
-
-def upgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.alter_column('dialogs', 'id',
- existing_type=mysql.VARCHAR(length=32),
- type_=sa.String(length=36),
- existing_nullable=False)
- op.alter_column('dialogs', 'agent_id',
- existing_type=mysql.VARCHAR(length=32),
- type_=sa.String(length=36),
- existing_nullable=True)
- op.alter_column('knowledgebase', 'id',
- existing_type=mysql.VARCHAR(length=32),
- type_=sa.String(length=36),
- existing_nullable=False)
- # ### end Alembic commands ###
-
-
-def downgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.alter_column('knowledgebase', 'id',
- existing_type=sa.String(length=36),
- type_=mysql.VARCHAR(length=32),
- existing_nullable=False)
- op.alter_column('dialogs', 'agent_id',
- existing_type=sa.String(length=36),
- type_=mysql.VARCHAR(length=32),
- existing_nullable=True)
- op.alter_column('dialogs', 'id',
- existing_type=sa.String(length=36),
- type_=mysql.VARCHAR(length=32),
- existing_nullable=False)
- # ### end Alembic commands ###
diff --git a/alembic/versions/5a1f335449b9_knowledge_add_permission.py b/alembic/versions/5a1f335449b9_knowledge_add_permission.py
deleted file mode 100644
index 16ed7fd..0000000
--- a/alembic/versions/5a1f335449b9_knowledge_add_permission.py
+++ /dev/null
@@ -1,30 +0,0 @@
-"""knowledge add permission
-
-Revision ID: 5a1f335449b9
-Revises: ba24e02a6610
-Create Date: 2024-12-16 09:51:41.915994
-
-"""
-from typing import Sequence, Union
-
-from alembic import op
-import sqlalchemy as sa
-
-
-# revision identifiers, used by Alembic.
-revision: str = '5a1f335449b9'
-down_revision: Union[str, None] = 'ba24e02a6610'
-branch_labels: Union[str, Sequence[str], None] = None
-depends_on: Union[str, Sequence[str], None] = None
-
-
-def upgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.add_column('knowledgebase', sa.Column('permission', sa.String(length=32), nullable=True))
- # ### end Alembic commands ###
-
-
-def downgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.drop_column('knowledgebase', 'permission')
- # ### end Alembic commands ###
diff --git a/alembic/versions/75d247bc0248_knowledgebases_tables_add.py b/alembic/versions/75d247bc0248_knowledgebases_tables_add.py
deleted file mode 100644
index fa55f09..0000000
--- a/alembic/versions/75d247bc0248_knowledgebases_tables_add.py
+++ /dev/null
@@ -1,65 +0,0 @@
-"""knowledgebases tables add
-
-Revision ID: 75d247bc0248
-Revises: 16efd20cce44
-Create Date: 2024-12-17 19:38:44.939447
-
-"""
-from typing import Sequence, Union
-
-from alembic import op
-import sqlalchemy as sa
-from sqlalchemy.dialects import mysql
-
-# revision identifiers, used by Alembic.
-revision: str = '75d247bc0248'
-down_revision: Union[str, None] = '16efd20cce44'
-branch_labels: Union[str, Sequence[str], None] = None
-depends_on: Union[str, Sequence[str], None] = None
-
-
-def upgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.create_table('knowledgebases',
- sa.Column('id', sa.String(length=36), nullable=False),
- sa.Column('name', sa.String(length=128), nullable=True),
- sa.Column('create_date', sa.DateTime(), nullable=True),
- sa.Column('update_date', sa.DateTime(), nullable=True),
- sa.Column('permission', sa.String(length=32), nullable=True),
- sa.Column('tenant_id', sa.String(length=32), nullable=True),
- sa.Column('description', sa.Text(), nullable=True),
- sa.Column('status', sa.String(length=1), nullable=True),
- sa.Column('documents', sa.Integer(), nullable=True),
- sa.Column('icon', sa.String(length=128), nullable=True),
- sa.Column('knowledge_type', sa.String(length=1), nullable=True),
- sa.PrimaryKeyConstraint('id')
- )
- op.drop_table('knowledgebase')
- op.drop_constraint('group_Knowledge_ibfk_2', 'group_Knowledge', type_='foreignkey')
- op.create_foreign_key(None, 'group_Knowledge', 'knowledgebases', ['knowledge_id'], ['id'], ondelete='CASCADE')
- # ### end Alembic commands ###
-
-
-def downgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.drop_constraint(None, 'group_Knowledge', type_='foreignkey')
- op.create_foreign_key('group_Knowledge_ibfk_2', 'group_Knowledge', 'knowledgebase', ['knowledge_id'], ['id'], ondelete='CASCADE')
- op.create_table('knowledgebase',
- sa.Column('id', mysql.VARCHAR(length=36), nullable=False),
- sa.Column('name', mysql.VARCHAR(length=128), nullable=True),
- sa.Column('create_date', mysql.DATETIME(), nullable=True),
- sa.Column('update_date', mysql.DATETIME(), nullable=True),
- sa.Column('tenant_id', mysql.VARCHAR(length=32), nullable=True),
- sa.Column('description', mysql.TEXT(), nullable=True),
- sa.Column('status', mysql.VARCHAR(length=1), nullable=True),
- sa.Column('documents', mysql.INTEGER(), autoincrement=False, nullable=True),
- sa.Column('icon', mysql.VARCHAR(length=128), nullable=True),
- sa.Column('knowledge_type', mysql.VARCHAR(length=1), nullable=True),
- sa.Column('permission', mysql.VARCHAR(length=32), nullable=True),
- sa.PrimaryKeyConstraint('id'),
- mysql_collate='utf8mb4_0900_ai_ci',
- mysql_default_charset='utf8mb4',
- mysql_engine='InnoDB'
- )
- op.drop_table('knowledgebases')
- # ### end Alembic commands ###
diff --git a/alembic/versions/ba24e02a6610_menu_table_update.py b/alembic/versions/ba24e02a6610_menu_table_update.py
deleted file mode 100644
index 6990720..0000000
--- a/alembic/versions/ba24e02a6610_menu_table_update.py
+++ /dev/null
@@ -1,32 +0,0 @@
-"""menu table update
-
-Revision ID: ba24e02a6610
-Revises: ef06c24632a7
-Create Date: 2024-12-13 17:19:35.020328
-
-"""
-from typing import Sequence, Union
-
-from alembic import op
-import sqlalchemy as sa
-
-
-# revision identifiers, used by Alembic.
-revision: str = 'ba24e02a6610'
-down_revision: Union[str, None] = 'ef06c24632a7'
-branch_labels: Union[str, Sequence[str], None] = None
-depends_on: Union[str, Sequence[str], None] = None
-
-
-def upgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.add_column('menu_capacity', sa.Column('chat_id', sa.String(length=36), nullable=True))
- op.add_column('menu_capacity', sa.Column('chat_type', sa.String(length=36), nullable=True))
- # ### end Alembic commands ###
-
-
-def downgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.drop_column('menu_capacity', 'chat_type')
- op.drop_column('menu_capacity', 'chat_id')
- # ### end Alembic commands ###
diff --git a/alembic/versions/ef06c24632a7_dialog_id_to_update.py b/alembic/versions/ef06c24632a7_dialog_id_to_update.py
deleted file mode 100644
index 1912f2c..0000000
--- a/alembic/versions/ef06c24632a7_dialog_id_to_update.py
+++ /dev/null
@@ -1,34 +0,0 @@
-"""dialog id to update
-
-Revision ID: ef06c24632a7
-Revises: 1c4af61d72a5
-Create Date: 2024-12-13 16:18:18.486282
-
-"""
-from typing import Sequence, Union
-
-from alembic import op
-import sqlalchemy as sa
-
-
-# revision identifiers, used by Alembic.
-revision: str = 'ef06c24632a7'
-down_revision: Union[str, None] = '1c4af61d72a5'
-branch_labels: Union[str, Sequence[str], None] = None
-depends_on: Union[str, Sequence[str], None] = None
-
-
-def upgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.add_column('dialogs', sa.Column('mode', sa.String(length=36), nullable=True))
- op.add_column('user', sa.Column('sync_flag', sa.String(length=36), nullable=True))
- op.add_column('web_menu', sa.Column('rank', sa.Integer(), nullable=True))
- # ### end Alembic commands ###
-
-
-def downgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.drop_column('web_menu', 'rank')
- op.drop_column('user', 'sync_flag')
- op.drop_column('dialogs', 'mode')
- # ### end Alembic commands ###
diff --git a/app/config/config.py b/app/config/config.py
index dfc55b8..6e29333 100644
--- a/app/config/config.py
+++ b/app/config/config.py
@@ -26,15 +26,15 @@
dify_database_url: str = ''
def __init__(self, **kwargs):
# 鏇挎崲閰嶇疆涓殑IP鍦板潃
- host_ip = os.getenv('HOST_IP', '127.0.0.1')
- kwargs['sgb_base_url'] = kwargs.get('sgb_base_url', '').replace('127.0.0.1', host_ip)
- kwargs['sgb_websocket_url'] = kwargs.get('sgb_websocket_url', '').replace('127.0.0.1', host_ip)
- kwargs['fwr_base_url'] = kwargs.get('fwr_base_url', '').replace('127.0.0.1', host_ip)
- kwargs['sgb_db_url'] = kwargs.get('sgb_db_url', '').replace('127.0.0.1', host_ip)
- kwargs['fwr_db_url'] = kwargs.get('fwr_db_url', '').replace('127.0.0.1', host_ip)
- kwargs['dify_base_url'] = kwargs.get('dify_base_url', '').replace('127.0.0.1', host_ip)
- kwargs['basic_base_url'] = kwargs.get('basic_base_url', '').replace('127.0.0.1', host_ip)
- kwargs['dify_database_url'] = kwargs.get('dify_database_url', '').replace('127.0.0.1', host_ip)
+ # host_ip = os.getenv('HOST_IP', '127.0.0.1')
+ # kwargs['sgb_base_url'] = kwargs.get('sgb_base_url', '').replace('127.0.0.1', host_ip)
+ # kwargs['sgb_websocket_url'] = kwargs.get('sgb_websocket_url', '').replace('127.0.0.1', host_ip)
+ # kwargs['fwr_base_url'] = kwargs.get('fwr_base_url', '').replace('127.0.0.1', host_ip)
+ # kwargs['sgb_db_url'] = kwargs.get('sgb_db_url', '').replace('127.0.0.1', host_ip)
+ # kwargs['fwr_db_url'] = kwargs.get('fwr_db_url', '').replace('127.0.0.1', host_ip)
+ # kwargs['dify_base_url'] = kwargs.get('dify_base_url', '').replace('127.0.0.1', host_ip)
+ # kwargs['basic_base_url'] = kwargs.get('basic_base_url', '').replace('127.0.0.1', host_ip)
+ # kwargs['dify_database_url'] = kwargs.get('dify_database_url', '').replace('127.0.0.1', host_ip)
# Check if all required fields are provided and set them
for field in self.__annotations__.keys():
if field not in kwargs:
@@ -61,7 +61,9 @@
# Use pathlib to handle file paths
-config_yaml_path = Path(__file__).parent / 'config.yaml'
+# config_yaml_path = os.path.join(os.path.join(Path(__file__).parent, "env_conf"), "config.yaml")
+config_yaml_path = Path(__file__).parent.joinpath("env_conf") / 'config.yaml'
+print(config_yaml_path)
settings_data = load_yaml(config_yaml_path)
# Initialize settings object
diff --git a/app/config/const.py b/app/config/const.py
index 7a0a328..c971418 100644
--- a/app/config/const.py
+++ b/app/config/const.py
@@ -4,7 +4,7 @@
DOCUMENT_TO_REPORT = "document_to_report"
IMAGE_TO_TEXT = "image_and_text_conversion"
DOCUMENT_IA_QUESTIONS = "document_ia_questions"
-
+ENV_CONF_PATH = "app/config/env_conf"
### -----------app register --------------
RAGFLOW = "ragflow_app"
diff --git a/env_conf/api_key_conf.json b/app/config/env_conf/api_key_conf.json
similarity index 100%
rename from env_conf/api_key_conf.json
rename to app/config/env_conf/api_key_conf.json
diff --git a/env_conf/app_register_conf.json b/app/config/env_conf/app_register_conf.json
similarity index 100%
rename from env_conf/app_register_conf.json
rename to app/config/env_conf/app_register_conf.json
diff --git a/app/config/config.yaml b/app/config/env_conf/config.yaml
similarity index 99%
rename from app/config/config.yaml
rename to app/config/env_conf/config.yaml
index fa12766..b3a8273 100644
--- a/app/config/config.yaml
+++ b/app/config/env_conf/config.yaml
@@ -21,3 +21,5 @@
dify_workflow_clean: app-OpF0drPu0XcgqcekQpT4FA8a
dify_workflow_report: app-0MAkdFWqh9zxwmU69O0BFU1s
dify_database_url: postgresql+psycopg2://postgres:difyai123456@192.168.20.116:15432/dify
+
+
diff --git a/env_conf/default_agent_conf.json b/app/config/env_conf/default_agent_conf.json
similarity index 100%
rename from env_conf/default_agent_conf.json
rename to app/config/env_conf/default_agent_conf.json
diff --git a/env_conf/menu_conf.json b/app/config/env_conf/menu_conf.json
similarity index 100%
rename from env_conf/menu_conf.json
rename to app/config/env_conf/menu_conf.json
diff --git a/app/models/base_model.py b/app/models/base_model.py
index 580f262..4f66ee2 100644
--- a/app/models/base_model.py
+++ b/app/models/base_model.py
@@ -6,8 +6,7 @@
from app.config.config import settings
-DATABASE_URL = os.getenv('DATABASE_URL') or settings.database_url
-
+DATABASE_URL = settings.database_url
engine = create_engine(DATABASE_URL, pool_size=20, max_overflow=50)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
diff --git a/app/service/v2/initialize_data.py b/app/service/v2/initialize_data.py
index f681c56..5d2043a 100644
--- a/app/service/v2/initialize_data.py
+++ b/app/service/v2/initialize_data.py
@@ -2,7 +2,7 @@
import time
import os
from Log import logger
-from app.config.const import DIFY
+from app.config.const import DIFY, ENV_CONF_PATH
from app.models import MenuCapacityModel, WebMenuModel, GroupModel, RoleModel, DialogModel, UserModel, UserAppModel, \
cipher_suite
from app.service.auth import UserAppDao
@@ -17,7 +17,7 @@
async def dialog_menu_sync(db):
menu_list = []
- with open("env_conf/menu_conf.json", 'r', encoding='utf-8') as file:
+ with open(os.path.join(ENV_CONF_PATH, "menu_conf.json") , 'r', encoding='utf-8') as file:
# 鍔犺浇JSON鏁版嵁
data = json.load(file)
menu_list = data.get("data", [])
@@ -40,7 +40,8 @@
async def create_menu_sync(db):
- json_file_path = "env_conf/menu_conf.json.template"
+ # json_file_path = "env_conf/menu_conf.json.template"
+ json_file_path = os.path.join(ENV_CONF_PATH, "menu_conf.json.template")
with open(json_file_path, 'r', encoding='utf-8') as file:
json_data = json.load(file).get("data", [])
# for menu in json_data:
@@ -107,7 +108,7 @@
async def app_register_sync(db):
app_dict = {}
- with open("env_conf/app_register_conf.json", 'r', encoding='utf-8') as file:
+ with open(os.path.join(ENV_CONF_PATH, "app_register_conf.json"), 'r', encoding='utf-8') as file:
# 鍔犺浇JSON鏁版嵁
app_dict = json.load(file)
try:
@@ -119,7 +120,7 @@
async def basic_agent_sync(db):
agent_list = []
- with open("env_conf/default_agent_conf.json", 'r', encoding='utf-8') as file:
+ with open(os.path.join(ENV_CONF_PATH, "default_agent_conf.json"), 'r', encoding='utf-8') as file:
# 鍔犺浇JSON鏁版嵁
agent_dict = json.load(file)
agent_list = agent_dict.get("basic", [])
diff --git a/main.py b/main.py
index 3a45216..86cb9f0 100644
--- a/main.py
+++ b/main.py
@@ -22,18 +22,19 @@
from app.api.user import user_router
from app.api.group import group_router
from app.api.role import role_router
+from app.models.base_model import init_db
# from app.models.base_model import init_db
from app.task.fetch_agent import sync_agents, initialize_agents, sync_agents_v2, sync_knowledge
from app.init_config.init_run_data import sync_default_data
-
+init_db()
# 浣跨敤 Lifespan 浜嬩欢澶勭悊绋嬪簭
@asynccontextmanager
async def lifespan(app: FastAPI):
# 鍒濆鍖栦唬鐞�
- initialize_agents()
- # 鍦ㄥ簲鐢ㄥ惎鍔ㄦ椂鍚屾浠g悊
- sync_agents()
+ # initialize_agents()
+ # # 鍦ㄥ簲鐢ㄥ惎鍔ㄦ椂鍚屾浠g悊
+ # sync_agents()
await sync_default_data()
sync_agents_v2()
@@ -42,7 +43,7 @@
# 鍦ㄥ簲鐢ㄥ叧闂椂鎵ц娓呯悊鎿嶄綔锛堝鏋滈渶瑕侊級
pass
-# init_db()
+
app = FastAPI(
title="basic_rag_gateway",
version="0.1",
--
Gitblit v1.8.0