From 9f116ea7e8f7d53a22b4dce10de942d564818a01 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期三, 15 一月 2025 14:01:22 +0800
Subject: [PATCH] tmp

---
 app/config/env_conf/default_agent_conf.json             |   88 ++++++++-
 alembic/versions/019bbe8d4833_dialogs_add_parameters.py |   92 ++++++++++
 alembic/versions/37606c5a9b9e_account_token.py          |  136 +++++++++++++++
 app/config/env_conf/config.yaml                         |   13 
 app/service/user.py                                     |   13 +
 app/utils/password_handle.py                            |   22 ++
 app/api/v2/chat.py                                      |    3 
 app/api/auth.py                                         |   13 +
 app/service/auth.py                                     |   12 
 app/service/v2/app_driver/chat_data.py                  |    2 
 app/models/__init__.py                                  |    1 
 app/service/v2/chat.py                                  |   31 +-
 app/config/env_conf/config116.yaml                      |   13 
 app/init_config/init_run_data.py                        |    1 
 app/models/user_model.py                                |    9 
 app/task/fetch_agent.py                                 |   29 ++-
 app/task/sync_account_token.py                          |    1 
 main.py                                                 |    8 
 app/models/dialog_model.py                              |    1 
 app/service/v2/initialize_data.py                       |    3 
 app/models/token_model.py                               |    4 
 21 files changed, 412 insertions(+), 83 deletions(-)

diff --git a/alembic/versions/019bbe8d4833_dialogs_add_parameters.py b/alembic/versions/019bbe8d4833_dialogs_add_parameters.py
new file mode 100644
index 0000000..d8b2a14
--- /dev/null
+++ b/alembic/versions/019bbe8d4833_dialogs_add_parameters.py
@@ -0,0 +1,92 @@
+"""dialogs add parameters
+
+Revision ID: 019bbe8d4833
+Revises: 37606c5a9b9e
+Create Date: 2025-01-15 11:26:21.253007
+
+"""
+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 = '019bbe8d4833'
+down_revision: Union[str, None] = '37606c5a9b9e'
+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.drop_table('user_tenant')
+    op.drop_table('knowledgebase')
+    op.drop_table('apps')
+    op.drop_table('dialog')
+    op.drop_table('flow')
+    op.add_column('dialogs', sa.Column('parameters', sa.Text(), nullable=True))
+    # ### end Alembic commands ###
+
+
+def downgrade() -> None:
+    # ### commands auto generated by Alembic - please adjust! ###
+    op.drop_column('dialogs', 'parameters')
+    op.create_table('flow',
+    sa.Column('id', mysql.VARCHAR(length=255), nullable=False),
+    sa.Column('name', mysql.VARCHAR(length=255), nullable=False),
+    sa.Column('status', mysql.INTEGER(), autoincrement=False, nullable=False),
+    sa.Column('description', mysql.VARCHAR(length=255), nullable=False),
+    sa.Column('user_id', mysql.INTEGER(), autoincrement=False, nullable=False),
+    sa.PrimaryKeyConstraint('id'),
+    mysql_collate='utf8mb4_0900_ai_ci',
+    mysql_default_charset='utf8mb4',
+    mysql_engine='InnoDB'
+    )
+    op.create_table('dialog',
+    sa.Column('id', mysql.VARCHAR(length=255), nullable=False),
+    sa.Column('name', mysql.VARCHAR(length=255), nullable=False),
+    sa.Column('status', mysql.VARCHAR(length=1), nullable=False),
+    sa.Column('description', mysql.VARCHAR(length=255), nullable=False),
+    sa.Column('tenant_id', mysql.VARCHAR(length=36), nullable=False),
+    sa.PrimaryKeyConstraint('id'),
+    mysql_collate='utf8mb4_0900_ai_ci',
+    mysql_default_charset='utf8mb4',
+    mysql_engine='InnoDB'
+    )
+    op.create_table('apps',
+    sa.Column('id', mysql.VARCHAR(length=36), nullable=False),
+    sa.Column('name', mysql.VARCHAR(length=255), nullable=False),
+    sa.Column('status', mysql.VARCHAR(length=16), nullable=False),
+    sa.Column('description', mysql.TEXT(), nullable=False),
+    sa.Column('tenant_id', mysql.VARCHAR(length=36), nullable=False),
+    sa.Column('mode', mysql.VARCHAR(length=36), nullable=False),
+    sa.PrimaryKeyConstraint('id'),
+    mysql_collate='utf8mb4_0900_ai_ci',
+    mysql_default_charset='utf8mb4',
+    mysql_engine='InnoDB'
+    )
+    op.create_table('knowledgebase',
+    sa.Column('id', mysql.VARCHAR(length=36), nullable=False),
+    sa.Column('name', mysql.VARCHAR(length=128), nullable=True),
+    sa.Column('permission', mysql.VARCHAR(length=32), 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('doc_num', mysql.INTEGER(), autoincrement=False, nullable=True),
+    sa.PrimaryKeyConstraint('id'),
+    mysql_collate='utf8mb4_0900_ai_ci',
+    mysql_default_charset='utf8mb4',
+    mysql_engine='InnoDB'
+    )
+    op.create_table('user_tenant',
+    sa.Column('id', mysql.VARCHAR(length=36), nullable=False),
+    sa.Column('tenant_id', mysql.VARCHAR(length=32), nullable=True),
+    sa.Column('user_id', mysql.VARCHAR(length=32), nullable=True),
+    sa.Column('role', mysql.VARCHAR(length=32), nullable=True),
+    sa.PrimaryKeyConstraint('id'),
+    mysql_collate='utf8mb4_0900_ai_ci',
+    mysql_default_charset='utf8mb4',
+    mysql_engine='InnoDB'
+    )
+    # ### end Alembic commands ###
diff --git a/alembic/versions/37606c5a9b9e_account_token.py b/alembic/versions/37606c5a9b9e_account_token.py
new file mode 100644
index 0000000..830dc1d
--- /dev/null
+++ b/alembic/versions/37606c5a9b9e_account_token.py
@@ -0,0 +1,136 @@
+"""account token
+
+Revision ID: 37606c5a9b9e
+Revises: 
+Create Date: 2025-01-15 09:57:58.619279
+
+"""
+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 = '37606c5a9b9e'
+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.drop_table('flow')
+    op.drop_table('dialog')
+    op.drop_table('apps')
+    op.drop_table('user_tenant')
+    op.drop_table('knowledgebase')
+    op.drop_index('session_id_ix', table_name='chat_sessions')
+    op.drop_index('tenant_id_ix', table_name='chat_sessions')
+    op.drop_index('update_tine_ix', table_name='chat_sessions')
+    op.drop_table('chat_sessions')
+    op.alter_column('chat_api_tokens', 'app_id',
+               existing_type=mysql.VARCHAR(charset='utf8mb3', collation='utf8mb3_general_ci', length=36),
+               nullable=True)
+    op.alter_column('chat_api_tokens', 'type',
+               existing_type=mysql.VARCHAR(charset='utf8mb3', collation='utf8mb3_general_ci', length=16),
+               nullable=True)
+    op.drop_index('app_id_ix', table_name='chat_api_tokens')
+    op.create_index(op.f('ix_chat_api_tokens_app_id'), 'chat_api_tokens', ['app_id'], unique=False)
+    op.drop_index('update_ix_index', table_name='conversation')
+    # ### end Alembic commands ###
+
+
+def downgrade() -> None:
+    # ### commands auto generated by Alembic - please adjust! ###
+    op.create_index('update_ix_index', 'conversation', ['update_time'], unique=False)
+    op.drop_index(op.f('ix_chat_api_tokens_app_id'), table_name='chat_api_tokens')
+    op.create_index('app_id_ix', 'chat_api_tokens', ['app_id'], unique=False)
+    op.alter_column('chat_api_tokens', 'type',
+               existing_type=mysql.VARCHAR(charset='utf8mb3', collation='utf8mb3_general_ci', length=16),
+               nullable=False)
+    op.alter_column('chat_api_tokens', 'app_id',
+               existing_type=mysql.VARCHAR(charset='utf8mb3', collation='utf8mb3_general_ci', length=36),
+               nullable=False)
+    op.create_table('chat_sessions',
+    sa.Column('id', mysql.VARCHAR(charset='utf8mb3', collation='utf8mb3_general_ci', length=36), nullable=False),
+    sa.Column('name', mysql.VARCHAR(charset='utf8mb3', collation='utf8mb3_general_ci', length=255), nullable=True),
+    sa.Column('agent_id', mysql.VARCHAR(charset='utf8mb3', collation='utf8mb3_general_ci', length=255), nullable=True),
+    sa.Column('agent_type', mysql.INTEGER(), autoincrement=False, nullable=True),
+    sa.Column('create_date', mysql.DATETIME(), nullable=True),
+    sa.Column('update_date', mysql.DATETIME(), nullable=True),
+    sa.Column('tenant_id', mysql.INTEGER(), autoincrement=False, nullable=True),
+    sa.Column('message', mysql.LONGTEXT(charset='utf8mb3', collation='utf8mb3_general_ci'), nullable=True),
+    sa.Column('reference', mysql.LONGTEXT(charset='utf8mb3', collation='utf8mb3_general_ci'), nullable=True),
+    sa.Column('conversation_id', mysql.VARCHAR(charset='utf8mb3', collation='utf8mb3_general_ci', length=36), nullable=True),
+    sa.Column('event_type', mysql.VARCHAR(charset='utf8mb3', collation='utf8mb3_general_ci', length=16), nullable=True),
+    sa.Column('session_type', mysql.VARCHAR(charset='utf8mb3', collation='utf8mb3_general_ci', length=16), nullable=True),
+    sa.PrimaryKeyConstraint('id'),
+    mysql_default_charset='utf8mb3',
+    mysql_engine='InnoDB',
+    mysql_row_format='DYNAMIC'
+    )
+    op.create_index('update_tine_ix', 'chat_sessions', ['update_date'], unique=False)
+    op.create_index('tenant_id_ix', 'chat_sessions', ['tenant_id'], unique=False)
+    op.create_index('session_id_ix', 'chat_sessions', ['conversation_id'], unique=False)
+    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.create_table('user_tenant',
+    sa.Column('id', mysql.VARCHAR(length=36), nullable=False),
+    sa.Column('tenant_id', mysql.VARCHAR(length=32), nullable=True),
+    sa.Column('user_id', mysql.VARCHAR(length=32), nullable=True),
+    sa.Column('role', mysql.VARCHAR(length=32), nullable=True),
+    sa.PrimaryKeyConstraint('id'),
+    mysql_collate='utf8mb4_0900_ai_ci',
+    mysql_default_charset='utf8mb4',
+    mysql_engine='InnoDB'
+    )
+    op.create_table('apps',
+    sa.Column('id', mysql.VARCHAR(length=36), nullable=False),
+    sa.Column('name', mysql.VARCHAR(length=255), nullable=False),
+    sa.Column('status', mysql.VARCHAR(length=16), nullable=False),
+    sa.Column('description', mysql.TEXT(), nullable=False),
+    sa.Column('tenant_id', mysql.VARCHAR(length=36), nullable=False),
+    sa.PrimaryKeyConstraint('id'),
+    mysql_collate='utf8mb4_0900_ai_ci',
+    mysql_default_charset='utf8mb4',
+    mysql_engine='InnoDB'
+    )
+    op.create_table('dialog',
+    sa.Column('id', mysql.VARCHAR(length=255), nullable=False),
+    sa.Column('name', mysql.VARCHAR(length=255), nullable=False),
+    sa.Column('status', mysql.VARCHAR(length=1), nullable=False),
+    sa.Column('description', mysql.VARCHAR(length=255), nullable=False),
+    sa.Column('tenant_id', mysql.VARCHAR(length=36), nullable=False),
+    sa.PrimaryKeyConstraint('id'),
+    mysql_collate='utf8mb4_0900_ai_ci',
+    mysql_default_charset='utf8mb4',
+    mysql_engine='InnoDB'
+    )
+    op.create_table('flow',
+    sa.Column('id', mysql.VARCHAR(length=255), nullable=False),
+    sa.Column('name', mysql.VARCHAR(length=255), nullable=False),
+    sa.Column('status', mysql.INTEGER(), autoincrement=False, nullable=False),
+    sa.Column('description', mysql.VARCHAR(length=255), nullable=False),
+    sa.Column('user_id', mysql.INTEGER(), autoincrement=False, nullable=False),
+    sa.PrimaryKeyConstraint('id'),
+    mysql_collate='utf8mb4_0900_ai_ci',
+    mysql_default_charset='utf8mb4',
+    mysql_engine='InnoDB'
+    )
+    # ### end Alembic commands ###
diff --git a/app/api/auth.py b/app/api/auth.py
index c028ad1..3637cda 100644
--- a/app/api/auth.py
+++ b/app/api/auth.py
@@ -111,6 +111,7 @@
     user = authenticate_user(db, login_data.username, password)
     if not user:
         return Response(code=400, msg="Incorrect username or password")
+    """
     app_register = AppRegisterDao(db).get_apps()
     token_dict = {}
     for app in app_register:
@@ -136,12 +137,13 @@
             token_dict[app["id"]] = token
         except Exception as e:
             return Response(code=500, msg=f"Failed to login with {app['id']}: {str(e)}")
-
+    """
     # 鍒涘缓鏈湴token
     access_token = create_access_token(data={"sub": user.username, "user_id": user.id})
 
-    await update_token(db, user.id, access_token, token_dict)
-    await update_user_token(db, user.id, token_dict)
+    # await update_token(db, user.id, access_token, token_dict)
+    # await update_user_token(db, user.id, token_dict)
+    '''
     result = await pdb.execute(select(AppToken).where(AppToken.id == user.id))
     db_app_token = result.scalars().first()
     if isinstance(access_token, bytes):
@@ -158,6 +160,7 @@
         db_app_token.app_token = json.dumps(token_dict)
         await pdb.commit()
         await pdb.refresh(db_app_token)
+    '''
     return Response(code=200, msg="Login successful", data={
         "access_token": access_token,
         "token_type": "bearer",
@@ -176,6 +179,7 @@
     db_user = db.query(UserModel).filter(UserModel.username == user.username).first()
     if db_user:
         return Response(code=200, msg="Username already registered")
+    """
     app_register = AppRegisterDao(db).get_apps()
     register_dict = {}
     token = ""
@@ -202,7 +206,8 @@
             register_dict[app['id']] = {"id":register_info.get("id"), "name": name, "email": register_info.get("email")}
         except Exception as e:
             return Response(code=500, msg=f"Failed to register with {app['id']}: {str(e)}")
-    user_id = await save_register_user(db, user.username, password, user.email, app_password, register_dict)
+    """
+    user_id = await save_register_user(db, user.username, password, user.email, "", {})
     if not user_id:
         return Response(code=500, msg=f"Failed to register with app")
     return Response(code=200, msg="User registered successfully",data={"userFlag": user_id})
diff --git a/app/api/v2/chat.py b/app/api/v2/chat.py
index b8ec8c7..0d6b9a5 100644
--- a/app/api/v2/chat.py
+++ b/app/api/v2/chat.py
@@ -58,7 +58,8 @@
     data = await service_chat_parameters(db, chatId, 1)
     if not data:
         status_code = http_400
-    return Response(json.dumps(data), media_type="application/json", status_code=status_code)
+        data = "{}"
+    return Response(data, media_type="application/json", status_code=status_code)
 
 # @chat_router_v2.get("/{chatId}/parameters")
 # async def api_chat_parameters(chatId:str, db: Session = Depends(get_db)): #  current_user: UserModel = Depends(get_current_user)
diff --git a/app/config/env_conf/config.yaml b/app/config/env_conf/config.yaml
index 5bdca69..b3a8273 100644
--- a/app/config/env_conf/config.yaml
+++ b/app/config/env_conf/config.yaml
@@ -1,10 +1,10 @@
 secret_key: your-secret-key
-sgb_base_url: http://192.168.20.116:13001
-sgb_websocket_url: ws://192.168.20.116:13001
-fwr_base_url: http://192.168.20.116:11080
-database_url: mysql+pymysql://root:rag_gateway@192.168.20.116:23306/rag_gateway
+sgb_base_url: http://192.168.20.119:13001
+sgb_websocket_url: ws://192.168.20.119:13001
+fwr_base_url: http://192.168.20.119:11080
+database_url: mysql+pymysql://root:infini_rag_flow@192.168.20.119:5455/rag_basic
 sgb_db_url: mysql+pymysql://root:1234@192.168.20.119:13306/bisheng
-fwr_db_url: mysql+pymysql://root:infini_rag_flow@192.168.20.116:15455/rag_flow
+fwr_db_url: mysql+pymysql://root:infini_rag_flow@192.168.20.119:15455/rag_flow
 PUBLIC_KEY: |
   -----BEGIN PUBLIC KEY-----
   MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArq9XTUSeYr2+N1h3Afl/z8Dse/2yD0ZGrKwx+EEEcdsBLca9Ynmx3nIB5obmLlSfmskLpBo0UACBmB5rEjBp2Q2f3AG3Hjd4B+gNCG6BDaawuDlgANIhGnaTLrIqWrrcm4EMzJOnAOI1fgzJRsOOUEfaS318Eq9OVO3apEyCCt0lOQK6PuksduOjVxtltDav+guVAA068NrPYmRNabVKRNLJpL8w4D44sfth5RvZ3q9t+6RTArpEtc5sh5ChzvqPOzKGMXW83C95TxmXqpbK6olN4RevSfVjEAgCydH6HN6OhtOQEcnrU97r9H0iZOWwbw3pVrZiUkuRD1R56Wzs2wIDAQAB
@@ -17,10 +17,9 @@
 basic_paper_url: http://192.168.20.231:8000
 dify_base_url: http://192.168.20.116
 dify_api_token: app-YmOAMDsPpDDlqryMHnc9TzTO
-postgresql_database_url: postgresql+asyncpg://kong:kongpass@192.168.20.116:15433/kong
+postgresql_database_url: postgresql+asyncpg://kong:kongpass@192.168.20.119:5432/kong
 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/app/config/env_conf/config1.yaml b/app/config/env_conf/config116.yaml
similarity index 79%
rename from app/config/env_conf/config1.yaml
rename to app/config/env_conf/config116.yaml
index b3a8273..5bdca69 100644
--- a/app/config/env_conf/config1.yaml
+++ b/app/config/env_conf/config116.yaml
@@ -1,10 +1,10 @@
 secret_key: your-secret-key
-sgb_base_url: http://192.168.20.119:13001
-sgb_websocket_url: ws://192.168.20.119:13001
-fwr_base_url: http://192.168.20.119:11080
-database_url: mysql+pymysql://root:infini_rag_flow@192.168.20.119:5455/rag_basic
+sgb_base_url: http://192.168.20.116:13001
+sgb_websocket_url: ws://192.168.20.116:13001
+fwr_base_url: http://192.168.20.116:11080
+database_url: mysql+pymysql://root:rag_gateway@192.168.20.116:23306/rag_gateway
 sgb_db_url: mysql+pymysql://root:1234@192.168.20.119:13306/bisheng
-fwr_db_url: mysql+pymysql://root:infini_rag_flow@192.168.20.119:15455/rag_flow
+fwr_db_url: mysql+pymysql://root:infini_rag_flow@192.168.20.116:15455/rag_flow
 PUBLIC_KEY: |
   -----BEGIN PUBLIC KEY-----
   MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArq9XTUSeYr2+N1h3Afl/z8Dse/2yD0ZGrKwx+EEEcdsBLca9Ynmx3nIB5obmLlSfmskLpBo0UACBmB5rEjBp2Q2f3AG3Hjd4B+gNCG6BDaawuDlgANIhGnaTLrIqWrrcm4EMzJOnAOI1fgzJRsOOUEfaS318Eq9OVO3apEyCCt0lOQK6PuksduOjVxtltDav+guVAA068NrPYmRNabVKRNLJpL8w4D44sfth5RvZ3q9t+6RTArpEtc5sh5ChzvqPOzKGMXW83C95TxmXqpbK6olN4RevSfVjEAgCydH6HN6OhtOQEcnrU97r9H0iZOWwbw3pVrZiUkuRD1R56Wzs2wIDAQAB
@@ -17,9 +17,10 @@
 basic_paper_url: http://192.168.20.231:8000
 dify_base_url: http://192.168.20.116
 dify_api_token: app-YmOAMDsPpDDlqryMHnc9TzTO
-postgresql_database_url: postgresql+asyncpg://kong:kongpass@192.168.20.119:5432/kong
+postgresql_database_url: postgresql+asyncpg://kong:kongpass@192.168.20.116:15433/kong
 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/app/config/env_conf/default_agent_conf.json b/app/config/env_conf/default_agent_conf.json
index 70c35f7..396fbb9 100644
--- a/app/config/env_conf/default_agent_conf.json
+++ b/app/config/env_conf/default_agent_conf.json
@@ -5,28 +5,96 @@
       "name": "鎶ヨ〃鍚堝苟",
       "description": "鎶ヨ〃鍚堝苟",
       "icon": "intellFrame4",
-      "agentType": "excelMerge"
+      "agentType": "excelMerge",
+      "parameters": {
+        "retriever_resource": {
+          "enabled": false
+        },
+        "user_input_form": [
+         {
+          "file-list": {
+            "allowed_file_extensions": [
+              "xlsx"
+            ],
+            "allowed_file_types": [
+              "document"
+            ],
+            "allowed_file_upload_methods": [
+              "local_file"
+            ],
+            "label": "鏂囨。瑙f瀽绔�",
+            "max_length": 30,
+            "options": [],
+            "required": true,
+            "type": "file-list",
+            "variable": "file_list"
+          }
+        }
+        ],
+        "file_upload":{
+          "enabled": false
+        }
+      }
     },
     {
       "id": "basic_excel_talk",
       "name": "鏅鸿兘鏁版嵁",
       "description": "鏅鸿兘鏁版嵁",
       "icon": "intellFrame4",
-      "agentType": "excelTalk"
+      "agentType": "excelTalk",
+      "parameters": {
+        "retriever_resource": {
+          "enabled": true
+        },
+        "user_input_form": [
+          {
+          "file-list": {
+            "allowed_file_extensions": [
+              "xlsx", "xls","csv","db"
+            ],
+            "allowed_file_types": [
+              "document"
+            ],
+            "allowed_file_upload_methods": [
+              "local_file"
+            ],
+            "label": "涓婁紶鏂囨。",
+            "max_length": 30,
+            "options": [],
+            "required": true,
+            "type": "file-list",
+            "variable": "file_list",
+            "fileUploadConfig": {
+              "file_size_limit": 30,
+              "batch_count_limit": 5,
+              "image_file_size_limit": 10,
+              "video_file_size_limit": 100,
+              "audio_file_size_limit": 50,
+              "workflow_file_upload_limit": 100
+              }
+            }
+          }
+        ],
+        "file_upload":{
+          "enabled": false
+        }
+      }
     },
     {
       "id": "basic_question_talk",
       "name": "鍑洪缁勫嵎",
       "description": "鍑洪缁勫嵎",
       "icon": "intellFrame4",
-      "agentType": "questionTalk"
-    },
-    {
-      "id": "basic_paper_talk",
-      "name": "鏂囨。鍑哄嵎",
-      "description": "鏂囨。鍑哄嵎",
-      "icon": "intellFrame4",
-      "agentType": "paperTalk"
+      "agentType": "questionTalk",
+      "parameters": {
+        "retriever_resource": {
+          "enabled": true
+        },
+        "user_input_form": [],
+        "file_upload":{
+          "enabled": false
+        }
+      }
     }
   ],
   "bs": []
diff --git a/app/init_config/init_run_data.py b/app/init_config/init_run_data.py
index ddb32e7..8bcff03 100644
--- a/app/init_config/init_run_data.py
+++ b/app/init_config/init_run_data.py
@@ -1,6 +1,7 @@
 from app.models.base_model import SessionLocal
 from app.service.v2.initialize_data import dialog_menu_sync, default_group_sync, default_role_sync, app_register_sync, \
     basic_agent_sync, admin_account_sync
+from app.task.fetch_agent import sync_resources_from_json
 
 
 async def sync_default_data():
diff --git a/app/models/__init__.py b/app/models/__init__.py
index 126abc8..9f8a749 100644
--- a/app/models/__init__.py
+++ b/app/models/__init__.py
@@ -16,6 +16,7 @@
 from .public_api_model import *
 from .menu_model import *
 from .label_model import *
+from .v2.session_model import *
 
 
 # 鑾峰彇褰撳墠鏃跺尯鐨勬椂闂�
diff --git a/app/models/dialog_model.py b/app/models/dialog_model.py
index 4a6a29e..1ab181f 100644
--- a/app/models/dialog_model.py
+++ b/app/models/dialog_model.py
@@ -23,6 +23,7 @@
     dialog_type = Column(String(1))            #  骞冲彴
     # agent_id = Column(String(36))
     mode = Column(String(36))
+    parameters = Column(Text)
 
     def get_id(self):
         return str(self.id)
diff --git a/app/models/token_model.py b/app/models/token_model.py
index 7ad0e01..ef120dc 100644
--- a/app/models/token_model.py
+++ b/app/models/token_model.py
@@ -94,8 +94,8 @@
 
 class ApiTokenModel(Base):
     __tablename__ = "chat_api_tokens"
-    id = Column(String(32), primary_key=True)
-    app_id = Column(String(32), index=True)
+    id = Column(String(36), primary_key=True)
+    app_id = Column(String(36), index=True)
     type = Column(String(16))
     token = Column(String(255))
     created_at = Column(DateTime, default=datetime.now())
diff --git a/app/models/user_model.py b/app/models/user_model.py
index 10b3fed..8dc7183 100644
--- a/app/models/user_model.py
+++ b/app/models/user_model.py
@@ -254,11 +254,4 @@
             'password': self.password,
             'access_token': self.access_token,
             'refresh_token': self.refresh_token,
-        }
-    @staticmethod
-    def encrypted_password(password):
-        return cipher_suite.encrypt(password.encode("utf-8")).decode("utf-8")
-
-    @staticmethod
-    def decrypted_password(password):
-        return cipher_suite.decrypt(password).decode("utf-8")
\ No newline at end of file
+        }
\ No newline at end of file
diff --git a/app/service/auth.py b/app/service/auth.py
index 8c6544c..8354200 100644
--- a/app/service/auth.py
+++ b/app/service/auth.py
@@ -83,23 +83,21 @@
     try:
         hashed_password = pwd_context.hash(password)
         db_user = UserModel(username=username, hashed_password=hashed_password, email=email, sync_flag=sync_flag)
-        pwd = db_user.encrypted_password(app_password)
-        db_user.password = pwd
+        # pwd = db_user.encrypted_password(app_password)
+        # db_user.password = pwd
         db_user.roles = [db.query(RoleModel).filter(RoleModel.role_type == 2).first()]
         db_user.groups = [db.query(GroupModel).filter(GroupModel.group_type == 2).first()]
         db.add(db_user)
         db.commit()
         db.refresh(db_user)
+        '''
         user_id = db_user.id
         for k, v in register_dict.items():
             await UserAppDao(db).update_and_insert_data(v.get("name"), pwd, v.get("email"), user_id, str(v.get("id")), k)
-
+        '''
     except Exception as e:
         logger.error(e)
-        # db.roolback()
-        if user_id:
-            db.query(UserModel).filter(UserModel.id == user_id).delete()
-            db.commit
+        db.rollback()
         return False
     return sync_flag
 
diff --git a/app/service/user.py b/app/service/user.py
index 015d404..b6c916e 100644
--- a/app/service/user.py
+++ b/app/service/user.py
@@ -58,10 +58,13 @@
 
 async def create_user(db, user_name, email, phone, login_name, password, roles, groups, user_id):
     try:
-        app_register = AppRegisterDao(db).get_apps()
+
         register_dict = {}
         token = ""
+
+        """
         app_password = await generate_password()
+        app_register = AppRegisterDao(db).get_apps()
         for app in app_register:
             if app["id"] == RAGFLOW:
                 service = RagflowService(settings.fwr_base_url)
@@ -82,26 +85,28 @@
             except Exception as e:
                 logger.error(e)
                 return False
-
+        """
         # 瀛樺偍鐢ㄦ埛淇℃伅
         hashed_password = pwd_context.hash(password)
         sync_flag = str(uuid.uuid4())
         user_model = UserModel(username=user_name, hashed_password=hashed_password, email=email,
                                ## ragflow_id=ragflow_info.get("id"),bisheng_id=bisheng_info.get("user_id"),
                                phone=phone, login_name=login_name,sync_flag=sync_flag)
-        pwd = user_model.encrypted_password(app_password)
+        # pwd = user_model.encrypted_password(app_password)
+        # user_model.password = pwd
         user_model.roles = [db.get(RoleModel, roleId) for roleId in roles]
-        user_model.password = pwd
         if groups:
             user_model.groups = [db.get(GroupModel, groupId) for groupId in groups]
         user_model.creator = user_id
         db.add(user_model)
         db.commit()
         db.refresh(user_model)
+        """
         u_id = user_model.id
         user_app_dao = UserAppDao(db)
         for k, v in register_dict.items():
             await user_app_dao.update_and_insert_data(v.get("name"), pwd, v.get("email"), u_id, str(v.get("id")), k)
+        """
     except Exception as e:
         logger.error(e)
         # db.rollback()
diff --git a/app/service/v2/app_driver/chat_data.py b/app/service/v2/app_driver/chat_data.py
index dad38e2..308f0fc 100644
--- a/app/service/v2/app_driver/chat_data.py
+++ b/app/service/v2/app_driver/chat_data.py
@@ -24,7 +24,7 @@
     async def chat_post(self, url, data, headers):
 
         res = await self.http_post(url, data, headers)
-        if res.status_code == 200:
+        if res.status_code == 200 or res.status_code == 201:
             return res.json()
         else:
             return {}
diff --git a/app/service/v2/chat.py b/app/service/v2/chat.py
index ddd17a2..2575e70 100644
--- a/app/service/v2/chat.py
+++ b/app/service/v2/chat.py
@@ -200,21 +200,22 @@
     chat_info = db.query(DialogModel).filter_by(id=chat_id).first()
     if not chat_info:
         return {}
-    if chat_info.dialog_type == RG_TYPE:
-        return {"retriever_resource":
-            {
-                "enabled": True
-            }
-        }
-    elif chat_info.dialog_type == BASIC_TYPE:
-        ...
-    elif chat_info.dialog_type == DF_TYPE:
-        token = await get_chat_token(db, chat_id)
-        if not token:
-            return {}
-        url = settings.dify_base_url + DF_CHAT_PARAMETERS
-        chat = ChatBaseApply()
-        return await chat.chat_get(url, {"user": str(user_id)}, await chat.get_headers(token))
+    return chat_info.parameters
+    # if chat_info.dialog_type == RG_TYPE:
+    #     return {"retriever_resource":
+    #         {
+    #             "enabled": True
+    #         }
+    #     }
+    # elif chat_info.dialog_type == BASIC_TYPE:
+    #     ...
+    # elif chat_info.dialog_type == DF_TYPE:
+    #     token = await get_chat_token(db, chat_id)
+    #     if not token:
+    #         return {}
+    #     url = settings.dify_base_url + DF_CHAT_PARAMETERS
+    #     chat = ChatBaseApply()
+    #     return await chat.chat_get(url, {"user": str(user_id)}, await chat.get_headers(token))
 
 
 async def service_chat_sessions(db, chat_id, name):
diff --git a/app/service/v2/initialize_data.py b/app/service/v2/initialize_data.py
index 958af75..08da5fb 100644
--- a/app/service/v2/initialize_data.py
+++ b/app/service/v2/initialize_data.py
@@ -135,6 +135,7 @@
                 dialog.name = agent["name"]
                 dialog.description = agent["description"]
                 dialog.icon = agent["icon"]
+                dialog.parameters = json.dumps(agent["parameters"])
                 db.commit()
             except Exception as e:
                 logger.error(e)
@@ -142,7 +143,7 @@
             try:
                 dialog = DialogModel(id=agent["id"], name=agent["name"], description=agent["description"],
                                      icon=agent["icon"], tenant_id=user.id if user else "", dialog_type="3",
-                                     agent_id=agent["id"])
+                                     agent_id=agent["id"], parameters = json.dumps(agent["parameters"]))
                 db.add(dialog)
                 db.commit()
                 db.refresh(dialog)
diff --git a/app/task/fetch_agent.py b/app/task/fetch_agent.py
index bbb4da9..f361265 100644
--- a/app/task/fetch_agent.py
+++ b/app/task/fetch_agent.py
@@ -240,6 +240,15 @@
 
 def get_data_from_ragflow_v2(names: List[str]) -> List[Dict]:
     db = SessionRagflow()
+    para = {
+        "user_input_form": [],
+        "retriever_resource": {
+            "enabled": True
+        },
+        "file_upload": {
+            "enabled": False
+        }
+    }
     try:
         if names:
             query = db.query(Dialog.id, Dialog.name, Dialog.description, Dialog.status, Dialog.tenant_id) \
@@ -251,13 +260,13 @@
         results = query.all()
         formatted_results = [
             {"id": row[0], "name": row[1], "description": row[2], "status": "1" if row[3] == "1" else "2",
-             "user_id": str(row[4]), "mode": "agent-dialog"} for row in results]
+             "user_id": str(row[4]), "mode": "agent-dialog", "parameters": para} for row in results]
         return formatted_results
     finally:
         db.close()
 
 
-def get_data_from_dify_v2(names: List[str]) -> List[Dict]:
+def get_data_from_dy_v2(names: List[str]) -> List[Dict]:
     db = SessionDify()
     try:
         if names:
@@ -269,7 +278,7 @@
         results = query.all()
         formatted_results = [
             {"id": str(row[0]), "name": row[1], "description": row[2], "status": "1",
-             "user_id": str(row[4]), "mode": row[5]} for row in results]
+             "user_id": str(row[4]), "mode": row[5], "parameters": {}} for row in results]
         return formatted_results
     finally:
         db.close()
@@ -286,14 +295,12 @@
             if existing_agent:
                 existing_agent.name = row["name"]
                 existing_agent.description = row["description"]
-                # existing_agent.status = row["status"]
                 existing_agent.mode = row["mode"]
-                # existing_agent.tenant_id = get_rag_user_id(db, row["user_id"], type_dict[dialog_type])
             else:
                 existing = DialogModel(id=row["id"], status=row["status"], name=row["name"],
                                        description=row["description"],
                                        tenant_id=get_rag_user_id(db, row["user_id"], type_dict[dialog_type]),
-                                       dialog_type=dialog_type, mode=row["mode"])
+                                       dialog_type=dialog_type, mode=row["mode"], parameters=json.dumps(row["parameters"]))
                 db.add(existing)
         db.commit()
         for dialog in db.query(DialogModel).filter_by(dialog_type=dialog_type).all():
@@ -332,12 +339,12 @@
                 ragflow_data = get_data_from_ragflow_v2([])
                 if ragflow_data:
                     update_ids_in_local_v2(ragflow_data, "1")
-            elif app["id"] == BISHENG:
-                bisheng_data = get_data_from_bisheng_v2([])
-                if bisheng_data:
-                    update_ids_in_local_v2(bisheng_data, "2")
+            # elif app["id"] == BISHENG:
+            #     bisheng_data = get_data_from_bisheng_v2([])
+            #     if bisheng_data:
+            #         update_ids_in_local_v2(bisheng_data, "2")
             elif app["id"] == DIFY:
-                dify_data = get_data_from_dify_v2([])
+                dify_data = get_data_from_dy_v2([])
                 if dify_data:
                     update_ids_in_local_v2(dify_data, "4")
         print("v2 Agents synchronized successfully")
diff --git a/app/task/sync_account_token.py b/app/task/sync_account_token.py
index 9d2ee32..1e7747c 100644
--- a/app/task/sync_account_token.py
+++ b/app/task/sync_account_token.py
@@ -9,5 +9,6 @@
     4.token鑾峰彇锛歭ogin
     df:/console/api/workspaces
     rg:/v1/system/version
+    5.璺熸柊鏈湴token鍜宬ong缃戝叧token
     :return:
     """
\ No newline at end of file
diff --git a/app/utils/password_handle.py b/app/utils/password_handle.py
index 8852a11..a6e421b 100644
--- a/app/utils/password_handle.py
+++ b/app/utils/password_handle.py
@@ -2,6 +2,10 @@
 import random
 import string
 
+from cryptography.fernet import Fernet
+from app.config.config import settings
+
+cipher_suite = Fernet(settings.PASSWORD_KEY.encode("utf-8"))
 
 async def generate_password(length=10):
     if length < 6:  # 鑷冲皯闇�瑕�3浣嶅瘑鐮佷互鍖呭惈鎵�鏈夊繀瑕佺殑瀛楃
@@ -24,8 +28,22 @@
     # 灏嗗垪琛ㄨ浆鎹负瀛楃涓�
     return ''.join(password)
 
+
+async def password_encrypted(password):
+    hash_pwd = cipher_suite.encrypt(password.encode("utf-8")).decode("utf-8")
+    print(hash_pwd)
+    return hash_pwd
+
+
+async def password_decrypted(hash_password):
+    pwd = cipher_suite.decrypt(hash_password).decode("utf-8")
+    print(pwd)
+    return pwd
 if __name__ == "__main__":
     # 鐢熸垚涓�涓�10浣嶇殑瀵嗙爜
-    asyncio.run(generate_password(10))
+    # asyncio.run(generate_password(10))
     # password = generate_password(10)
-    # print(password)
\ No newline at end of file
+    # print(password)
+
+    asyncio.run(password_encrypted("123456"))
+    asyncio.run(password_decrypted("gAAAAABnhyOiGUnAqK7FW_pHsXifje8WG1cirtF_eu3a44FrMYM3AkSBsWjsJrwpzUlD2GDzzZOS6yYu4Ie5gnkYuy8HVN3FBw=="))
\ No newline at end of file
diff --git a/main.py b/main.py
index b4bbe0a..fc24d9c 100644
--- a/main.py
+++ b/main.py
@@ -43,11 +43,11 @@
 
 
 
-    # await sync_default_data()
+    await sync_default_data()
     #
-    # sync_agents_v2()
-    # sync_knowledge()
-    # sync_resources_from_json()
+    sync_agents_v2()
+    sync_knowledge()
+    sync_resources_from_json()
     yield
     # 鍦ㄥ簲鐢ㄥ叧闂椂鎵ц娓呯悊鎿嶄綔锛堝鏋滈渶瑕侊級
     pass

--
Gitblit v1.8.0