Newer chat models reject max_tokens. Omit unset optional fields, add a Max Completion Tokens option, and error if both limits are set.
29 lines
908 B
Python
29 lines
908 B
Python
from typing_extensions import override
|
|
from comfy_api.latest import ComfyExtension, io
|
|
|
|
from .client import Client
|
|
from .completions import ChatCompletion
|
|
from .options import OptionSeed, OptionTemperature, OptionMaxTokens, OptionMaxCompletionTokens, OptionTopP, OptionFrequencyPenalty, OptionPresencePenalty, OptionExtraBody, OptionDeveloperRole
|
|
|
|
|
|
class OpenAIAPIExtension(ComfyExtension):
|
|
@override
|
|
async def get_node_list(self) -> list[type[io.ComfyNode]]:
|
|
return [
|
|
Client,
|
|
ChatCompletion,
|
|
OptionSeed,
|
|
OptionTemperature,
|
|
OptionMaxTokens,
|
|
OptionMaxCompletionTokens,
|
|
OptionTopP,
|
|
OptionFrequencyPenalty,
|
|
OptionPresencePenalty,
|
|
OptionDeveloperRole,
|
|
OptionExtraBody
|
|
]
|
|
|
|
|
|
async def comfy_entrypoint() -> OpenAIAPIExtension:
|
|
return OpenAIAPIExtension()
|