Bläddra i källkod

switch to diffy_config with Pydantic in files, moderation and app (#6747)

Signed-off-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: -LAN- <laipz8200@outlook.com>
Vicky Guo 8 månader sedan
förälder
incheckning
829472a1d7

+ 2 - 2
api/core/app/apps/base_app_queue_manager.py

@@ -5,9 +5,9 @@ from collections.abc import Generator
 from enum import Enum
 from typing import Any
 
-from flask import current_app
 from sqlalchemy.orm import DeclarativeMeta
 
+from configs import dify_config
 from core.app.entities.app_invoke_entities import InvokeFrom
 from core.app.entities.queue_entities import (
     AppQueueEvent,
@@ -48,7 +48,7 @@ class AppQueueManager:
         :return:
         """
         # wait for APP_MAX_EXECUTION_TIME seconds to stop listen
-        listen_timeout = current_app.config.get("APP_MAX_EXECUTION_TIME")
+        listen_timeout = dify_config.APP_MAX_EXECUTION_TIME
         start_time = time.time()
         last_ping_time = 0
         while True:

+ 6 - 7
api/core/file/upload_file_parser.py

@@ -6,8 +6,7 @@ import os
 import time
 from typing import Optional
 
-from flask import current_app
-
+from configs import dify_config
 from extensions.ext_storage import storage
 
 IMAGE_EXTENSIONS = ['jpg', 'jpeg', 'png', 'webp', 'gif', 'svg']
@@ -23,7 +22,7 @@ class UploadFileParser:
         if upload_file.extension not in IMAGE_EXTENSIONS:
             return None
 
-        if current_app.config['MULTIMODAL_SEND_IMAGE_FORMAT'] == 'url' or force_url:
+        if dify_config.MULTIMODAL_SEND_IMAGE_FORMAT == 'url' or force_url:
             return cls.get_signed_temp_image_url(upload_file.id)
         else:
             # get image file base64
@@ -44,13 +43,13 @@ class UploadFileParser:
         :param upload_file: UploadFile object
         :return:
         """
-        base_url = current_app.config.get('FILES_URL')
+        base_url = dify_config.FILES_URL
         image_preview_url = f'{base_url}/files/{upload_file_id}/image-preview'
 
         timestamp = str(int(time.time()))
         nonce = os.urandom(16).hex()
         data_to_sign = f"image-preview|{upload_file_id}|{timestamp}|{nonce}"
-        secret_key = current_app.config['SECRET_KEY'].encode()
+        secret_key = dify_config.SECRET_KEY.encode()
         sign = hmac.new(secret_key, data_to_sign.encode(), hashlib.sha256).digest()
         encoded_sign = base64.urlsafe_b64encode(sign).decode()
 
@@ -68,7 +67,7 @@ class UploadFileParser:
         :return:
         """
         data_to_sign = f"image-preview|{upload_file_id}|{timestamp}|{nonce}"
-        secret_key = current_app.config['SECRET_KEY'].encode()
+        secret_key = dify_config.SECRET_KEY.encode()
         recalculated_sign = hmac.new(secret_key, data_to_sign.encode(), hashlib.sha256).digest()
         recalculated_encoded_sign = base64.urlsafe_b64encode(recalculated_sign).decode()
 
@@ -77,4 +76,4 @@ class UploadFileParser:
             return False
 
         current_time = int(time.time())
-        return current_time - int(timestamp) <= current_app.config.get('FILES_ACCESS_TIMEOUT')
+        return current_time - int(timestamp) <= dify_config.FILES_ACCESS_TIMEOUT

+ 2 - 1
api/core/moderation/output_moderation.py

@@ -6,6 +6,7 @@ from typing import Any, Optional
 from flask import Flask, current_app
 from pydantic import BaseModel, ConfigDict
 
+from configs import dify_config
 from core.app.apps.base_app_queue_manager import AppQueueManager, PublishFrom
 from core.app.entities.queue_entities import QueueMessageReplaceEvent
 from core.moderation.base import ModerationAction, ModerationOutputsResult
@@ -76,7 +77,7 @@ class OutputModeration(BaseModel):
         return final_output
 
     def start_thread(self) -> threading.Thread:
-        buffer_size = int(current_app.config.get('MODERATION_BUFFER_SIZE', self.DEFAULT_BUFFER_SIZE))
+        buffer_size = int(dify_config.config.MODERATION_BUFFER_SIZE)
         thread = threading.Thread(target=self.worker, kwargs={
             'flask_app': current_app._get_current_object(),
             'buffer_size': buffer_size if buffer_size > 0 else self.DEFAULT_BUFFER_SIZE