39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
from comfy_api.latest import io
|
|
from ..utils.request_utils import parse_json_options
|
|
|
|
|
|
class OpenAITextAdvancedOptions(io.ComfyNode):
|
|
"""Parse user-supplied protocol/API-specific JSON request parameters."""
|
|
|
|
@classmethod
|
|
def define_schema(cls) -> io.Schema:
|
|
return io.Schema(
|
|
node_id="YCYY_OpenAI_Text_Advanced_Options",
|
|
display_name="OpenAI Text Advanced Options",
|
|
category="YCYY/API/utils",
|
|
inputs=[
|
|
io.String.Input(
|
|
id="options_json",
|
|
multiline=True,
|
|
default="{}",
|
|
tooltip=(
|
|
"JSON object containing protocol/API-specific request parameters. "
|
|
"Example:\n{\n \"temperature\": 0.7,\n \"reasoning\": {\n"
|
|
" \"effort\": \"medium\"\n }\n}"
|
|
),
|
|
),
|
|
],
|
|
outputs=[
|
|
io.Custom("YCYY_OPENAI_TEXT_ADVANCED_OPTIONS").Output(
|
|
id="advanced_options",
|
|
display_name="advanced_options",
|
|
tooltip="Advanced request parameters for OpenAI Text API",
|
|
)
|
|
],
|
|
description="Pass custom JSON parameters to the OpenAI Text API.",
|
|
)
|
|
|
|
@classmethod
|
|
def execute(cls, options_json) -> io.NodeOutput:
|
|
return io.NodeOutput(parse_json_options(options_json))
|