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