111 lines
3.0 KiB
Python
111 lines
3.0 KiB
Python
import json
|
|
import sys
|
|
import os
|
|
|
|
API_HOST = "https://app.comflowy.com"
|
|
# API_HOST = "http://127.0.0.1:3000"
|
|
PPT_TOKEN = ""
|
|
RUN_ID = ""
|
|
ENV = "pro"
|
|
# ENV = "preview"
|
|
|
|
def _read_config():
|
|
try:
|
|
# 首先尝试从线程上下文获取
|
|
thread_context_module = sys.modules.get("flowy_execute_thread_context")
|
|
if thread_context_module and hasattr(thread_context_module, "get_run_context"):
|
|
options = thread_context_module.get_run_context("options")
|
|
if options:
|
|
print("get_run_context", options.get("custom_node_api_config", {}))
|
|
return options.get("custom_node_api_config", {})
|
|
except Exception as e:
|
|
print(f"Error getting context from thread: {e}")
|
|
|
|
# 回退到文件读取
|
|
try:
|
|
config_path = "/comfyui/custom_node_api_config.json"
|
|
if os.path.exists(config_path):
|
|
with open(config_path, "r") as f:
|
|
ret = json.load(f)
|
|
print("read_config", ret)
|
|
return ret
|
|
except Exception as e:
|
|
print(f"Error reading custom node api config file: {e}")
|
|
|
|
# 如果都失败了,返回空字典
|
|
return {}
|
|
|
|
|
|
def get_api_host():
|
|
config = _read_config()
|
|
return config.get("domain", API_HOST)
|
|
|
|
def get_modal_cloud_web_url():
|
|
config = _read_config()
|
|
env = config.get("env", ENV)
|
|
if env == "dev":
|
|
return "https://comflowy--cloud-web-dev.modal.run"
|
|
else:
|
|
return "https://comflowy--comflowyspacecloud-web-main.modal.run"
|
|
|
|
def get_ppt_token():
|
|
config = _read_config()
|
|
return config.get("ppt_token", PPT_TOKEN)
|
|
|
|
def get_run_id():
|
|
config = _read_config()
|
|
return config.get("run_id", RUN_ID)
|
|
|
|
FLOAT = (
|
|
"FLOAT",
|
|
{"default": 1, "min": -sys.float_info.max, "max": sys.float_info.max, "step": 0.01},
|
|
)
|
|
|
|
BOOLEAN = ("BOOLEAN", {"default": True})
|
|
BOOLEAN_FALSE = ("BOOLEAN", {"default": False})
|
|
|
|
INT = ("INT", {"default": 1, "min": -sys.maxsize, "max": sys.maxsize, "step": 1})
|
|
|
|
STRING = ("STRING", {"default": ""})
|
|
|
|
STRING_ML = ("STRING", {"multiline": True, "default": ""})
|
|
|
|
STRING_WIDGET = ("STRING", {"forceInput": True})
|
|
|
|
JSON_WIDGET = ("JSON", {"forceInput": True})
|
|
|
|
METADATA_RAW = ("METADATA_RAW", {"forceInput": True})
|
|
|
|
HTTP_REQUEST_METHOD = ["GET", "POST", "PUT", "DELETE", "PATCH"]
|
|
|
|
HTTP_REQUEST_TYPE = ["application/json", "application/x-www-form-urlencoded", "multipart/form-data"]
|
|
|
|
HTTP_REQUEST_RETURN_TYPE = ["TEXT", "JSON"]
|
|
|
|
LLM_MODELS = [
|
|
"Qwen/Qwen2-7B-Instruct",
|
|
"Qwen/Qwen2-1.5B-Instruct",
|
|
"THUDM/glm-4-9b-chat",
|
|
"THUDM/chatglm3-6b",
|
|
"01-ai/Yi-1.5-9B-Chat-16K",
|
|
"01-ai/Yi-1.5-6B-Chat",
|
|
"internlm/internlm2_5-7b-chat"
|
|
]
|
|
|
|
SAFETY_TOLERANCE = ["1", "2", "3", "4", "5", "6"]
|
|
|
|
NUM_IMAGES = ["1", "2", "3", "4"]
|
|
|
|
OUTPUT_FORMAT = ["jpeg", "png"]
|
|
|
|
class AnyType(str):
|
|
"""A special class that is always equal in not equal comparisons. Credit to pythongosssss"""
|
|
|
|
def __eq__(self, _) -> bool:
|
|
return True
|
|
|
|
def __ne__(self, __value: object) -> bool:
|
|
return False
|
|
|
|
any = AnyType("*")
|