Saltar al contenido principal
Versión: 21 R3

OpenAIChatCompletionsParameters

La clase OpenAIChatCompletionsParameters está diseñada para manejar los parámetros necesarios para completar el chat utilizando la API OpenAI.

Hereda​

Propiedades​

PropiedadTipoValor por defectoDescripción
modelText"gpt-4o-mini"ID del modelo a utilizar. Soporta provider:model aliases para uso multi-proveedor (por ejemplo, "openai:gpt-4o", "anthropic:claude-3-opus").
streamBooleanFalseSi se retransmite el progreso parcial. Si se define, los tokens se enviarán solo como datos. Fórmula de retrollamada necesaria.
stream_optionsObjectNullPropiedad para stream=True. Por ejemplo: {include_usage: True}
max_completion_tokensInteger0El número máximo de tokens que se pueden generar en la respuesta.
nInteger1Número de respuestas a generar para cada invite (prompt).
temperatureReal-1Qué temperatura de muestreo utilizar, entre 0 y 2. Los valores más altos hacen que la salida sea más aleatoria, mientras que los valores más bajos la hacen más centrada y determinista.
top_pReal-1Una alternativa al muestreo con temperatura, llamado muestreo de núcleos, donde el modelo considera los resultados de los tokens con masa de probabilidad superior_p. Por lo tanto, 0,1 significa que sólo se consideran los tokens que componen la masa superior del 10% de probabilidad. Solo se envía cuando el valor es mayor que 0 (se omite cuando <= 0, con el valor por defecto -1).
storeBooleanFalseAlmacena o no el resultado de esta solicitud de finalización de chat.
reasoning_effortTextNullRestringe el esfuerzo de razonamiento para los modelos de razonamiento. Los valores actualmente soportados son "low", "medium" y "high".
response_formatObjectNullUn objeto que especifica el formato que el modelo debe producir. Compatible con las salidas estructuradas.
herramientasCollectionNullUna lista de herramientas (OpenAITool) a las que el modelo puede llamar. Sólo se soporta el tipo "function".
tool_choiceVariantNullControla la herramienta (si hay alguna) que es llamada por el modelo. Puede ser "none", "auto", "required", o especificar una herramienta concreta.
predictionObjectNullContenido de salida estático, como el contenido de un archivo texto que se está regenerando.
service_tierTextNullEspecifica el tipo de procesamiento utilizado para servir la petición. "auto", "auto", "default" y "priority".

Propiedades de retrollamada asíncrona​

| Property | Type | Description | |---------------------------|---------|-------------------------|---------------------------------------------------------------------------------------------------| | onData
(or formula) | 4D.Function | A function to be called asynchronously when receiving data chunk.
Asegúrese de que el proceso actual no termina. |

onData recibirá como argumento un OpenAIChatCompletionsStreamResult

Ver OpenAIParameters para otras propiedades de retrollamada.

Formato de respuesta​

El parámetro response_format le permite especificar el formato que el modelo debe salir. Esto es especialmente útil cuando necesita datos estructurados o quiere asegurarse de que la respuesta sigue un formato específico.

Tipos de formato de respuesta soportados​

1. Formato de texto (por defecto)​

El formato de respuesta por defecto retorna texto plano:

var $params := cs.AIKit.OpenAIChatCompletionsParameters.new({ \
model: "gpt-4o-mini"; \
response_format: {type: "text"} \
})

2. Formato de objetos JSON​

Fuerza al modelo a responder con JSON válido:

var $params := cs.AIKit.OpenAIChatCompletionsParameters.new({ \
model: "gpt-4o-mini"; \
response_format: {type: "json_object"} \
})

var $messages := [ \
cs.AIKit.OpenAIMessage.new({ \
role: "system"; \
content: "You are a helpful assistant that always responds in JSON format." \
}) \
]
$messages.push({ \
role: "user"; \
content: "Give me information about the number 42 in JSON format with keys 'significance' and 'facts'." \
})

$result := $client.chat.completions.create($messages; $params)

3. Formato de esquema JSON (salidas estructuradas)​

Para un control preciso de la estructura JSON, puede definir un esquema:

var $jsonSchema := { \
type: "object"; \
properties: { \
name: {type: "string"}; \
age: {type: "integer"}; \
occupation: {type: "string"}; \
city: {type: "string"} \
}; \
required: ["name"; "age"; "occupation"; "city"]; \
additionalProperties: False \
}

var $params := cs.AIKit.OpenAIChatCompletionsParameters.new({ \
model: "gpt-4o-mini"; \
response_format: { \
type: "json_schema"; \
json_schema: { \
name: "person_info"; \
description: "Information about a person"; \
schema: $jsonSchema; \
strict: True \
} \
} \
})

var $messages := [{role: "system"; content: "You are a helpful assistant."}]
$messages.push({ role: "user"; content: "Generate information about a person named John Smith."})

$result := $client.chat.completions.create($messages; $params)

Propiedades del esquema JSON​

Cuando se utiliza el tipo json_schema, puede especificar:

  • name: un nombre para el esquema
  • description: una descripción de lo que representa el esquema
  • schema: la definición de esquema JSON
  • strict: si se debe hacer cumplir estrictamente el esquema

Notas Importantes​

  • No todos los modelos soportan salidas estructuradas (json_object o json_schema), así que verifique las capacidades del modelo antes de usarlas.
  • Cuando utilice el formato json_object, deberá incluir instrucciones en el mensaje del sistema para responder en formato JSON
  • El formato json_schema ofrece el mayor control y garantiza que la respuesta coincida exactamente con la estructura especificada
  • Las respuestas JSON no válidas provocarán un error al utilizar formatos JSON
  • La validación del esquema JSON garantiza la seguridad de los tipos y la presencia de los campos obligatorios

Ver también​