Documento de interfaz OpenAI-API (versión en chino)
OpenAI-API-Versión china
1. Introducción _
Si desea usar nuestra API, puede interactuar con la API desde cualquier idioma a través de solicitudes HTTP , o usar nuestros enlaces oficiales de Python, la biblioteca oficial de Node.js o una biblioteca mantenida por la comunidad .
Para instalar los enlaces oficiales de Python, ejecute el siguiente comando:
pitón
copiar codigo
pip install openai
Para instalar la biblioteca oficial de Node.js , ejecute el siguiente comando en el directorio de su proyecto Node.js:
js
copiar codigo
npm install openai
2. Autenticación _
1. OpenAI-API-CLAVE
Las API de OpenAI usan claves de API para la autenticación. Visite la página de su clave de API para recuperar la clave de API que utilizó en su solicitud.
¡Recuerde, su clave API es confidencial! No lo comparta con otros ni lo exponga en ningún código del lado del cliente (navegador, aplicación). Las solicitudes de producción deben enrutarse a través de su propio servidor back-end, donde sus claves API se pueden cargar de forma segura desde variables de entorno o servicios de administración de claves.
Todas las solicitudes de API deben Authorization
incluir su clave de API en un encabezado HTTP como este:
http
copiar codigo
# 注意Bearer OPENAI_API_KEY,Bearer的后面是有一个空格的 Authorization: Bearer OPENAI_API_KEY
2. Organización OpenAI
Organización solicitante Organización solicitante
Para los usuarios que pertenecen a varias organizaciones, puede pasar un encabezado que especifique qué organizaciones usar para las solicitudes de API. El uso de estas solicitudes de API se descontará de la cuota de suscripción de la organización especificada.
Ejemplo de comando curl :
http
copiar codigo
curl https://api.openai.com/v1/models \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "OpenAI-Organization: org-gth0C8mT2wnKealyCkSRrpQk"
Ejemplo usando el paquete openai Python :
pitón
copiar codigo
import os import openai openai.organization = "org-gth0C8mT2wnKealyCkSRrpQk" openai.api_key = os.getenv("OPENAI_API_KEY") openai.Model.list()
Ejemplo usando el paquete openai Node.js :
js
copiar codigo
import { Configuration, OpenAIApi } from "openai"; const configuration = new Configuration({ organization: "org-gth0C8mT2wnKealyCkSRrpQk", apiKey: process.env.OPENAI_API_KEY, }); const openai = new OpenAIApi(configuration); const response = await openai.listEngines();
El ID de la organización se puede encontrar en la página Configuración de la organización
3. Realización de solicitudes
Puede pegar el siguiente comando en su terminal para ejecutar su primera solicitud de API. Asegúrate de reemplazar $OPENAI_API_KEY con tu clave de API .
http
copiar codigo
curl https://api.openai.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "Say this is a test!"}], "temperature": 0.7 }'
Esta solicitud consulta gpt-3.5-turbo模型
para completar el texto que comienza con el mensaje "Diga que esto es una prueba". Deberías recibir una respuesta similar a:
json
copiar codigo
{ "id":"chatcmpl-abc123", "object":"chat.completion", "created":1677858242, "model":"gpt-3.5-turbo-0301", "usage":{ "prompt_tokens":13, "completion_tokens":7, "total_tokens":20 }, "choices":[ { "message":{ "role":"assistant", "content":"\n\nThis is a test!" }, "finish_reason":"stop", "index":0 } ] }
Ahora ha generado su primera finalización de chat. Podemos ver finish_reason
que sí stop
, lo que significa que la API devolvió una finalización completa de la generación del modelo. En la solicitud anterior, solo generamos un mensaje, pero puede configurar n
el parámetro para generar la opción de mensajes múltiples. En este ejemplo, gpt-3.5-turbo
se utiliza para una tarea de finalización de texto más tradicional . El modelo también está optimizado para aplicaciones de chat .
Cuatro Modelos modelo
Enumera y describe los diversos modelos disponibles en la API. Puede consultar la documentación del modelo para conocer los modelos disponibles y las diferencias entre ellos.
1. Listar modelos listar modelos
http
copiar codigo
GET https://api.openai.com/v1/models
Enumera los modelos disponibles actualmente y proporciona información básica sobre cada uno, como el propietario y la disponibilidad.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/models \ -H "Authorization: Bearer $OPENAI_API_KEY"
respuesta:
json
copiar codigo
{ "data": [ { "id": "model-id-0", "object": "model", "owned_by": "organization-owner", "permission": [...] }, { "id": "model-id-1", "object": "model", "owned_by": "organization-owner", "permission": [...] }, { "id": "model-id-2", "object": "model", "owned_by": "openai", "permission": [...] }, ], "object": "list" }
2. Recuperar modelo modelo de recuperación
http
copiar codigo
GET https://api.openai.com/v1/models/{model}
Recupera una instancia de modelo y proporciona información básica sobre el modelo, como el propietario y los permisos.
donde, model
es un tipo de cadena requerido , el ID del modelo utilizado para esta solicitud .
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/models/text-davinci-003 \ -H "Authorization: Bearer $OPENAI_API_KEY"
respuesta:
json
copiar codigo
{ "id": "text-davinci-003", "object": "model", "owned_by": "openai", "permission": [...] }
Cinco Terminaciones completadas
Dada una pista, el modelo devolverá una o más finalizaciones previstas y también puede devolver la probabilidad de una ficha alternativa en cada posición.
1. Crear finalización
http
copiar codigo
POST https://api.openai.com/v1/completions
Creado para el aviso y los argumentos proporcionados.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "text-davinci-003", "prompt": "Say this is a test", "max_tokens": 7, "temperature": 0 }'
respuesta:
json
copiar codigo
{ "id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7", "object": "text_completion", "created": 1589478378, "model": "text-davinci-003", "choices": [ { "text": "\n\nThis is indeed a test", "index": 0, "logprobs": null, "finish_reason": "length" } ], "usage": { "prompt_tokens": 5, "completion_tokens": 7, "total_tokens": 12 } }
Cuerpo de la solicitud (explicación detallada de los parámetros de entrada)
model
(cadena, requerido)El ID del modelo a utilizar. Puede usar la API de modelos de lista (GET api.openai.com/v1/models ) para ver todos los modelos disponibles o ver la Descripción general de los modelos para ver sus descripciones.
prompt
(cadena o matriz, 选填, predeterminado en <|endoftext|>)Sugerencias para generar finalizaciones, codificadas como cadenas, matrices de cadenas, matrices de tokens o matrices de matrices de tokens.
Tenga en cuenta que |endoftext| es el separador de documentos que el modelo ve durante el entrenamiento, por lo que si no se especifica ninguna sugerencia, el modelo generará como si fuera el principio de un nuevo documento.
suffix
(cadena, 选填, valor predeterminado nulo)El sufijo después del texto insertado está hecho.
max_tokens
(entero, 选填, el valor predeterminado es 16)El número máximo de tokens para generar al finalizar .
El
max_tokens
recuento de tokens de una sugerencia no puede exceder la longitud del contexto del modelo. La mayoría de los modelos tienen una longitud de contexto de 2048 tokens (excepto el último modelo, que admite 4096)
temperature
(número, opcional, por defecto es 1)Qué temperatura de muestreo usar, entre 0 y 2 .
Valores más altos como 0.8 harán que la salida sea más aleatoria, mientras que valores más bajos como 0.2 la harán más enfocada y determinista.
Por lo general, recomendamos modificar este (
temperature
) paratop_p
pero ambos no pueden existir al mismo tiempo, elija uno de los dos.
top_p
(número, opcional, por defecto es 1)Una alternativa al muestreo de temperatura se denomina muestreo central, donde el modelo tiene en cuenta los resultados etiquetados con calidad de probabilidad top_p. Por lo tanto, 0.1 significa que solo se consideran los marcadores con la masa de probabilidad del 10% superior.
Generalmente recomendamos modificar este (
top_p
) otemperature
, pero no ambos.
n
(entero, 选填, el valor predeterminado es 1)
prompt
El número de finalizaciones para cada compilación.Nota: dado que este parámetro genera muchas finalizaciones, puede consumir rápidamente su cuota de token. Úselo con cuidado y asegúrese de configurar
max_tokens
ystop
de manera razonable.
stream
(booleano, 选填, el valor predeterminado es falso)Si devolver un flujo de progreso parcial. Si se establece, los tokens se enviarán como eventos de inserción del servidor de datos a medida que estén disponibles, y los flujos
data: [DONE]
se terminarán a través de mensajes.
logprobs
(entero, 选填, predeterminado en nulo)En
logprobs
la lista devuelta de marcadores más probables, incluya el marcador seleccionado y la probabilidad logarítmica correspondiente.Por ejemplo, si
logprobs
es 5, la API devolverá una lista de las 5 etiquetas más probables. La API siempre devuelve la probabilidad de registro del marcador muestreado, por lo que puede haber tantos comologprobs+1
elementos en la respuesta.
logprobs
El valor máximo es 5. Si necesita más, comuníquese con nosotros a través de nuestro centro de ayuda y describa su caso de uso.
echo
(booleano, 选填, el valor predeterminado es falso)Hacer eco de la indicación además de la finalización
stop
(cadena o matriz, 选填, valor predeterminado en nulo)Genere hasta 4 secuencias, la API dejará de generar más tokens. El texto devuelto no contiene secuencias de parada.
presence_penalty
(número, opcional, predeterminado a 0)Un número entre -2.0 y 2.0 . Los valores positivos penalizan los nuevos tokens en función de si han aparecido en el texto hasta el momento, lo que aumenta la probabilidad de que el modelo hable sobre nuevos temas.
Ver más sobre la frecuencia y las sanciones estatales
frequency_penalty
(número, opcional, predeterminado a 0)Un número entre -2.0 y 2.0. Un valor positivo penaliza los tokens nuevos en función de su frecuencia existente en el texto, lo que reduce la probabilidad de que el modelo repita la misma fila.
Ver más sobre penalizaciones por frecuencia y presencia
best_of
(entero, 选填, el valor predeterminado es 1)La generación se realiza en el lado del servidor
best_of
y se devuelve el "mejor" (el que tiene la probabilidad de registro más alta para cada token). Los resultados no se pueden transmitir.Cuando
n
se usa con ,best_of
controla el número de finalizaciones candidatas,n
especificando cuántos devolver;best_of
debe ser mayor quen
.Nota: dado que este parámetro genera muchas finalizaciones, puede consumir rápidamente su cuota de token. Úselo con cuidado y asegúrese
max_tokens
de questop
esté configurado correctamente.
logit_bias
(mapa, 选填, valor predeterminado nulo)Modifica la probabilidad de que aparezca el token especificado al finalizar.
Acepta tokens de mapeo de objetos JSON (especificados por ID de token en el tokenizador GPT) a valores de sesgo relativos de -100 a 100. Puede usar esta herramienta tokenizadora (para GPT-2 y GPT-3) para convertir texto en identificadores de token. Matemáticamente, se agrega sesgo a los logits generados por el modelo antes del muestreo. El efecto exacto varía según el modelo, pero los valores entre -1 y 1 deberían reducir o aumentar la probabilidad de selección; valores como -100 o 100 deberían hacer que el token asociado sea prohibido o seleccionado exclusivamente.
Por ejemplo, puede pasar
{"50256": -100}
para evitar generar
user
(cadena, opcional)Un identificador único, que representa a su usuario final, que ayuda a OpenAI a monitorear y detectar abusos. Más información
6. Charla _
Dada una lista de mensajes que describen una conversación, el modelo devolverá una respuesta.
1. Crear finalización de chat
http
copiar codigo
POST https://api.openai.com/v1/chat/completions
Cree una respuesta modelo para un diálogo de chat determinado.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "Hello!"}] }'
respuesta:
json
copiar codigo
{ "id": "chatcmpl-123", "object": "chat.completion", "created": 1677652288, "choices": [{ "index": 0, "message": { "role": "assistant", "content": "\n\nHello there, how may I assist you today?", }, "finish_reason": "stop" }], "usage": { "prompt_tokens": 9, "completion_tokens": 12, "total_tokens": 21 } }
Cuerpo de la solicitud (explicación detallada de los parámetros de entrada)
model
(cadena, requerido)El ID del modelo a utilizar. Para obtener detalles sobre qué modelos están disponibles para la API de chat, consulte la Tabla de compatibilidad de puntos finales de modelos.
messages
(matriz, requerida)Lista de mensajes que describen la conversación hasta el momento
role
(cadena, requerido)El rol de autor de este mensaje.
system
,user
oassistant
uno de
content
(cadena, requerido)contenido del mensaje
name
(cadena, opcional)El nombre del autor de este mensaje. Puede contener az, AZ, 0-9 y guión bajo, la longitud máxima es de 64 caracteres
temperature
(número, opcional, por defecto es 1)Qué temperatura de muestreo usar, entre 0 y 2 .
Valores más altos como 0.8 harán que la salida sea más aleatoria, mientras que valores más bajos como 0.2 la harán más enfocada y determinista.
Por lo general, recomendamos modificar este (
temperature
) paratop_p
pero ambos no pueden existir al mismo tiempo, elija uno de los dos.
top_p
(número, opcional, por defecto es 1)Una alternativa al muestreo de temperatura se denomina muestreo central, donde el modelo tiene en cuenta los resultados etiquetados con calidad de probabilidad top_p. Por lo tanto, 0.1 significa que solo se consideran los marcadores con la masa de probabilidad del 10% superior.
Generalmente recomendamos modificar este (
top_p
) otemperature
, pero no ambos.
n
(entero, 选填, el valor predeterminado es 1)Cuántas opciones de finalización de chat generar por mensaje de entrada
stream
(booleano, 选填, el valor predeterminado es falso)Si se establece, se enviarán deltas de mensajes parciales, al igual que en ChatGPT. Los tokens se enviarán como eventos de inserción del servidor de datos a medida que estén disponibles y las transmisiones
data: [DONE]
finalicen mediante mensajes. Consulte el libro de cocina de OpenAI para obtener un código de ejemplo .detener (cadena o matriz, 选填, valor predeterminado en nulo)
Genere hasta 4 secuencias, la API dejará de generar más tokens.
max_tokens
(entero, 选填, predeterminado en inf)Número máximo de tokens para generar al finalizar el chat .
La longitud total de los tokens de entrada y los tokens generados está limitada por la longitud del contexto del modelo.
presence_penalty
(número, opcional, predeterminado a 0)Un número entre -2.0 y 2.0 . Los valores positivos penalizan los nuevos tokens en función de si han aparecido en el texto hasta el momento, lo que aumenta la probabilidad de que el modelo hable sobre nuevos temas.
frequency_penalty
(número, opcional, predeterminado a 0)Un número entre -2.0 y 2.0. Un valor positivo penaliza los tokens nuevos en función de su frecuencia existente en el texto, lo que reduce la probabilidad de que el modelo repita la misma fila.
logit_bias
(mapa, 选填, valor predeterminado nulo)Especifica la probabilidad de que el marcador aparezca cuando se completen las modificaciones.
Acepta tokens de mapeo de objetos JSON (especificados por ID de token en tokenizadores) a valores de sesgo relativos de -100 a 100. Este sesgo se suma a los logits generados por el modelo antes del muestreo. El efecto exacto varía según el modelo, pero los valores entre -1 y 1 deberían reducir o aumentar la probabilidad de selección; valores como -100 o 100 deberían hacer que el marcador asociado sea suprimido o seleccionado exclusivamente.
user
(cadena, opcional)Un identificador único, que representa a su usuario final, que ayuda a OpenAI a monitorear y detectar abusos. Más información
Siete . _
Dada una pista y una instrucción, el modelo devuelve una versión editada de la pista.
1. Crear edición
http
copiar codigo
POST https://api.openai.com/v1/edits
Cree un nuevo editor para las entradas, directivas y argumentos proporcionados.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/edits \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "text-davinci-edit-001", "input": "What day of the wek is it?", "instruction": "Fix the spelling mistakes" }'
respuesta:
json
copiar codigo
{ "object": "edit", "created": 1589478378, "choices": [ { "text": "What day of the week is it?", "index": 0, } ], "usage": { "prompt_tokens": 25, "completion_tokens": 32, "total_tokens": 57 } }
Cuerpo de la solicitud (explicación detallada de los parámetros de entrada)
model
(cadena, requerido)El ID del modelo a utilizar.
text-davinci-edit-001
Puede usar o modelar en este punto finalcode-davinci-edit-001
.
input
(cadena, opcional, predeterminado a '')El texto de entrada que se utilizará como punto de partida para la edición.
instruction
(cadena, requerido)Una descripción que indica al modelo cómo editar la solicitud.
n
(entero, 选填, el valor predeterminado es 1)Cuántas ediciones deben generarse para la entrada y las directivas.
temperature
(número, opcional, por defecto es 1)Qué temperatura de muestreo usar, entre 0 y 2 .
Valores más altos como 0.8 harán que la salida sea más aleatoria, mientras que valores más bajos como 0.2 la harán más enfocada y determinista.
Por lo general, recomendamos modificar este (
temperature
) paratop_p
pero ambos no pueden existir al mismo tiempo, elija uno de los dos.
top_p
(número, opcional, por defecto es 1)Una alternativa al muestreo de temperatura se denomina muestreo central, donde el modelo tiene en cuenta los resultados etiquetados con calidad de probabilidad top_p. Por lo tanto, 0.1 significa que solo se consideran los marcadores con la masa de probabilidad del 10% superior.
Generalmente recomendamos modificar este (
top_p
) otemperature
, pero no ambos.
Ocho Imágenes _
Dada una señal y/o una imagen de entrada, el modelo generará una nueva imagen.
Guía relacionada: Generación de imágenes .
1. Crear imagen
http
copiar codigo
POST https://api.openai.com/v1/images/generations
Siga las indicaciones para crear una imagen.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/images/generations \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "prompt": "A cute baby sea otter", "n": 2, "size": "1024x1024" }'
respuesta:
json
copiar codigo
{ "created": 1589478378, "data": [ { "url": "https://..." }, { "url": "https://..." } ] }
Cuerpo de la solicitud (explicación detallada de los parámetros de entrada)
prompt
(cadena, requerido)Una descripción textual de la imagen deseada. La longitud máxima es de 1000 caracteres.
n
(entero, 选填, el valor predeterminado es 1)El número de imágenes a generar. Debe estar entre 1 y 10.
size
(cadena, opcional, predeterminado a 1024x1024)Las dimensiones de la imagen resultante. Debe ser uno de
256x256
,512x512
o1024x1024
.
response_format
(cadena, 选填, URL por defecto)El formato de retorno de la imagen resultante. Debe ser uno de
url
ob64_json
.
user
(cadena, opcional)Un identificador único, que representa a su usuario final, que ayuda a OpenAI a monitorear y detectar abusos. Más información
2. Crear edición de imagen
http
copiar codigo
POST https://api.openai.com/v1/images/edits
Cree imágenes editadas o ampliadas a partir de imágenes y señales originales.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/images/edits \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -F image="@otter.png" \ -F mask="@mask.png" \ -F prompt="A cute baby sea otter wearing a beret" \ -F n=2 \ -F size="1024x1024"
respuesta:
json
copiar codigo
{ "created": 1589478378, "data": [ { "url": "https://..." }, { "url": "https://..." } ] }
Cuerpo de la solicitud (explicación detallada de los parámetros de entrada)
image
(cadena, requerido)La imagen a editar. Debe ser un archivo PNG válido, de menos de 4 MB y cuadrado. Si no se proporciona máscara, la imagen debe tener transparencia, que se utilizará como máscara.
mask
(cadena, opcional)Una imagen adicional cuyas áreas totalmente transparentes (como aquellas con un valor alfa de cero) indican dónde debe editarse la imagen.
image
Debe ser un archivo PNG válido, menos de 4 MB y lasimage
mismas dimensiones que .
prompt
(cadena, requerido)Una descripción textual de la imagen deseada. La longitud máxima es de 1000 caracteres.
n
(entero, 选填, el valor predeterminado es 1)El número de imágenes a generar. Debe estar entre 1 y 10.
size
(cadena, opcional, predeterminado a 1024x1024)Las dimensiones de la imagen resultante. Debe ser uno de
256x256
,512x512
o1024x1024
.
response_format
(cadena, 选填, URL por defecto)El formato de retorno de la imagen resultante. Debe ser uno de
url
ob64_json
.
user
(cadena, opcional)Un identificador único, que representa a su usuario final, que ayuda a OpenAI a monitorear y detectar abusos. Más información
3. Crea una variación de imagen
http
copiar codigo
POST https://api.openai.com/v1/images/variations
Crea una variante de la imagen dada.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/images/variations \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -F image="@otter.png" \ -F n=2 \ -F size="1024x1024"
respuesta:
json
copiar codigo
{ "created": 1589478378, "data": [ { "url": "https://..." }, { "url": "https://..." } ] }
Cuerpo de la solicitud (explicación detallada de los parámetros de entrada)
image
(cadena, requerido)La imagen que se usará como base para la variante. Debe ser un archivo PNG válido, menos de 4 MB y cuadrado.
n
(entero, 选填, el valor predeterminado es 1)El número de imágenes a generar. Debe estar entre 1 y 10.
size
(cadena, opcional, predeterminado a 1024x1024)Las dimensiones de la imagen resultante. Debe ser uno de
256x256
,512x512
o1024x1024
.
response_format
(cadena, 选填, URL por defecto)El formato de retorno de la imagen resultante. Debe ser uno de
url
ob64_json
.
user
(cadena, opcional)Un identificador único, que representa a su usuario final, que ayuda a OpenAI a monitorear y detectar abusos. Más información
Nueve Incrustaciones incrustadas
Obtenga una representación vectorial de una entrada determinada que los modelos y algoritmos de aprendizaje automático puedan usar fácilmente.
Guía relacionada: Incrustación
1. Crear incrustaciones
http
copiar codigo
POST https://api.openai.com/v1/embeddings
Cree un vector de incrustación que represente el texto de entrada.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/embeddings \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "input": "The food was delicious and the waiter...", "model": "text-embedding-ada-002" }'
respuesta:
json
copiar codigo
{ "object": "list", "data": [ { "object": "embedding", "embedding": [ 0.0023064255, -0.009327292, .... (1536 floats total for ada-002) -0.0028842222, ], "index": 0 } ], "model": "text-embedding-ada-002", "usage": { "prompt_tokens": 8, "total_tokens": 8 } }
Cuerpo de la solicitud (explicación detallada de los parámetros de entrada)
model
(cadena, requerido)El ID del modelo a utilizar . Puede ver todos los modelos disponibles utilizando la API de modelos de lista, o ver nuestra descripción general de modelos para ver sus descripciones.
input
(cadena o matriz, requerido)Ingrese texto para obtener una incrustación, codificada como una cadena o una matriz de tokens. Para obtener incrustaciones para múltiples entradas en una sola solicitud, pase una matriz de matrices de cadenas o matrices de matrices de tokens. Cada entrada no debe tener más de 8192 tokens de longitud .
user
(cadena, opcional)Un identificador único, que representa a su usuario final, que ayuda a OpenAI a monitorear y detectar abusos. Más información
10. Sonido _
Aprende a convertir audio a texto.
Guía relacionada: Conversión de voz a texto
1. Crear transcripción
http
copiar codigo
POST https://api.openai.com/v1/audio/transcriptions
Transcribe el audio al idioma de entrada.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/audio/transcriptions \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: multipart/form-data" \ -F file="@/path/to/file/audio.mp3" \ -F model="whisper-1"
respuesta:
json
copiar codigo
{ "text": "Imagine the wildest idea that you've ever had, and you're curious about how it might scale to something that's a 100, a 1,000 times bigger. This is a place where you can get to do that." }
Cuerpo de la solicitud (explicación detallada de los parámetros de entrada)
file
(cadena, requerido)El archivo de audio a transcribir, en uno de los siguientes formatos: mp3, mp4, mpeg, mpga, m4a, wav o webm.
model
(cadena, requerido)El ID del modelo a utilizar. Actualmente solo
whisper-1
disponible.
prompt
(cadena, opcional)Un texto opcional para guiar el estilo del modelo o para continuar con el clip de audio anterior. El aviso debe coincidir con el idioma del audio.
response_format
(cadena, 选填, por defecto a json)Formato de salida de transcripción, las opciones incluyen: json, texto, srt, verbose_json o vtt.
temperature
(número, opcional, predeterminado a 0)La temperatura de muestreo está entre 0 y 1. Los valores más altos (como 0,8) harán que la salida sea más aleatoria, mientras que los valores más bajos (como 0,2) la harán más enfocada y determinista. Si se establece en 0, el modelo utilizará la probabilidad logarítmica para aumentar automáticamente la temperatura hasta que se alcancen ciertos umbrales.
language
(cadena, opcional)El idioma del audio de entrada. Proporcionar el idioma de entrada en formato ISO-639-1 mejorará la precisión y la latencia.
2. Crear traducción
http
copiar codigo
POST https://api.openai.com/v1/audio/translations
Traducir audio al inglés.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/audio/translations \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: multipart/form-data" \ -F file="@/path/to/file/german.m4a" \ -F model="whisper-1"
respuesta:
json
copiar codigo
{ "text": "Hello, my name is Wolfgang and I come from Germany. Where are you heading today?" }
Cuerpo de la solicitud (explicación detallada de los parámetros de entrada)
file
(cadena, requerido)Los archivos de audio a traducir deben estar en uno de los siguientes formatos: mp3, mp4, mpeg, mpga, m4a, wav o webm.
model
(cadena, requerido)El ID del modelo a utilizar. Actualmente solo
whisper-1
disponible.
prompt
(cadena, opcional)Un texto opcional para guiar el estilo del modelo o para continuar con el clip de audio anterior. El aviso debe coincidir con el idioma del audio.
response_format
(cadena, 选填, por defecto a json)Formato de salida de transcripción, las opciones incluyen: json, texto, srt, verbose_json o vtt.
temperature
(número, opcional, predeterminado a 0)La temperatura de muestreo está entre 0 y 1. Los valores más altos (como 0,8) harán que la salida sea más aleatoria, mientras que los valores más bajos (como 0,2) la harán más enfocada y determinista. Si se establece en 0, el modelo utilizará la probabilidad logarítmica para aumentar automáticamente la temperatura hasta que se alcancen ciertos umbrales.
11. Archivos _
Archivos se usa para cargar documentos y se puede usar con funciones como Ajuste fino .
1. Lista de archivos
http
copiar codigo
GET https://api.openai.com/v1/files
Devuelve una lista de archivos que pertenecen a la organización del usuario.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/files \ -H "Authorization: Bearer $OPENAI_API_KEY"
respuesta:
json
copiar codigo
{ "data": [ { "id": "file-ccdDZrC3iZVNiQVeEA6Z66wf", "object": "file", "bytes": 175, "created_at": 1613677385, "filename": "train.jsonl", "purpose": "search" }, { "id": "file-XjGxS3KTG0uNmNOK362iJua3", "object": "file", "bytes": 140, "created_at": 1613779121, "filename": "puppy.jsonl", "purpose": "search" } ], "object": "list" }
2. Subir archivo
http
copiar codigo
POST https://api.openai.com/v1/files
Cargue un archivo que contenga documentación para usar en puntos finales/funciones. Actualmente, todos los archivos cargados por una organización pueden tener un tamaño de hasta 1 GB. Póngase en contacto con nosotros si necesita aumentar su límite de almacenamiento.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/files \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -F purpose="fine-tune" \ -F file="@mydata.jsonl"
respuesta:
json
copiar codigo
{ "id": "file-XjGxS3KTG0uNmNOK362iJua3", "object": "file", "bytes": 140, "created_at": 1613779121, "filename": "mydata.jsonl", "purpose": "fine-tune" }
Cuerpo de la solicitud (explicación detallada de los parámetros de entrada)
file
(cadena, requerido)El nombre de archivo de JSON Lines para cargar .
Si
purpose
se establece en "ajuste fino" , cada línea es un registro JSON con campos de "solicitud" y "finalización" que representan sus ejemplos de capacitación .
purpose
(cadena, requerido)El uso previsto del documento cargado.
Use "ajuste fino" para Ajuste fino . Esto valida el formato del archivo cargado.
3. Eliminar archivo
http
copiar codigo
DELETE https://api.openai.com/v1/files/{file_id}
Borrar archivos.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3 \ -X DELETE \ -H "Authorization: Bearer $OPENAI_API_KEY"
Entre ellos, {file_id}
es un elemento obligatorio de tipo cadena y el ID del archivo utilizado para esta solicitud.
respuesta:
json
copiar codigo
{ "id": "file-XjGxS3KTG0uNmNOK362iJua3", "object": "file", "deleted": true }
4. Recuperar archivo
http
copiar codigo
GET https://api.openai.com/v1/files/{file_id}
Devolver información sobre un archivo específico.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3 \ -H "Authorization: Bearer $OPENAI_API_KEY"
Entre ellos, {file_id}
es un elemento obligatorio de tipo cadena y el ID del archivo utilizado para esta solicitud.
respuesta:
json
copiar codigo
{ "id": "file-XjGxS3KTG0uNmNOK362iJua3", "object": "file", "bytes": 140, "created_at": 1613779657, "filename": "mydata.jsonl", "purpose": "fine-tune" }
5. Recuperar el contenido del archivo
http
copiar codigo
GET https://api.openai.com/v1/files/{file_id}/content
Devuelve el contenido del archivo especificado.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3/content \ -H "Authorization: Bearer $OPENAI_API_KEY" > file.jsonl
Entre ellos, {file_id}
es un elemento obligatorio de tipo cadena y el ID del archivo utilizado para esta solicitud.
12. Afinaciones _
Administre trabajos de ajuste fino para adaptar el modelo a sus datos de entrenamiento específicos.
Guía relacionada: Modelos de ajuste fino
1. Crear ajustes finos
http
copiar codigo
POST https://api.openai.com/v1/fine-tunes
Cree un trabajo que ajuste con precisión el modelo especificado a partir del conjunto de datos dado.
La respuesta incluye detalles del trabajo que se puso en cola, incluido el estado del trabajo y el nombre del modelo ajustado al finalizar.
Obtenga más información sobre el ajuste fino .
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/fine-tunes \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "training_file": "file-XGinujblHPwGLSztz8cPS8XY" }'
respuesta:
json
copiar codigo
{ "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F", "object": "fine-tune", "model": "curie", "created_at": 1614807352, "events": [ { "object": "fine-tune-event", "created_at": 1614807352, "level": "info", "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0." } ], "fine_tuned_model": null, "hyperparams": { "batch_size": 4, "learning_rate_multiplier": 0.1, "n_epochs": 4, "prompt_loss_weight": 0.1, }, "organization_id": "org-...", "result_files": [], "status": "pending", "validation_files": [], "training_files": [ { "id": "file-XGinujblHPwGLSztz8cPS8XY", "object": "file", "bytes": 1547276, "created_at": 1610062281, "filename": "my-data-train.jsonl", "purpose": "fine-tune-train" } ], "updated_at": 1614807352, }
Cuerpo de la solicitud (explicación detallada de los parámetros de entrada)
training_file
(cadena, requerido)El ID del archivo cargado que contiene los datos de entrenamiento .
Consulte cargar archivo para obtener información sobre cómo cargar un archivo.
Su conjunto de datos debe estar formateado como un archivo JSONL , donde cada ejemplo de entrenamiento es un objeto JSON con claves de "solicitud" y "finalización". Además, debe cargar
fine-tune
un documento con un propósito.Consulte la guía de ajuste fino para obtener más detalles .
validation_file
(cadena, opcional)El ID del archivo cargado que contiene los datos de autenticación .
Si proporciona este archivo, los datos se usarán periódicamente durante el ajuste para generar métricas de validación. Estas métricas se pueden ver en el archivo de resultados de ajuste fino . Sus datos de capacitación y validación deben ser mutuamente excluyentes.
Su conjunto de datos debe estar formateado como un archivo JSONL , donde cada ejemplo de validación es un objeto JSON con claves de "solicitud" y "finalización". Además, debe cargar
fine-tune
un documento con un propósito.Consulte la guía de ajuste fino para obtener más detalles .
model
(cadena,选填,Predeterminado en curie)El nombre del modelo base para afinar.
Puede elegir uno de estos: "ada", "babbage", "curie", "davinci" o un modelo ajustado creado después del 21 de abril de 2022. Para obtener más información sobre estos modelos, consulte la documentación de Modelos .
n_epochs
(entero, 选填, el valor predeterminado es 4)El número de épocas para entrenar el modelo. Una época se refiere a un recorrido completo del conjunto de datos de entrenamiento.
batch_size
(entero, 选填, predeterminado en nulo)El tamaño del lote utilizado para el entrenamiento. El tamaño del lote es el número de ejemplos de entrenamiento utilizados para entrenar un solo paso hacia adelante y hacia atrás.
De forma predeterminada, el tamaño del lote se configurará dinámicamente para que sea aproximadamente el 0,2 % de la cantidad de ejemplos de conjuntos de entrenamiento, con un límite de 256.
En general, hemos descubierto que los tamaños de lote más grandes funcionan mejor para conjuntos de datos más grandes.
learning_rate_multiplier
(número, 选填, predeterminado en nulo)El multiplicador de tasa de aprendizaje utilizado para el entrenamiento. La tasa de aprendizaje de ajuste fino se obtiene multiplicando la tasa de aprendizaje original utilizada en el entrenamiento previo por este valor.
De forma predeterminada, el multiplicador para la tasa de aprendizaje es 0,05, 0,1 o 0,2, según el final
batch_size
(los tamaños de lote más grandes generalmente funcionan mejor con tasas de aprendizaje más altas). Recomendamos intentar experimentar con diferentes valores en el rango de 0,02 a 0,2 para encontrar el que produce los mejores resultados.
prompt_loss_weight
(número, opcional, por defecto es 0.01)El peso solía insinuar la pérdida de fichas. Esto controla cuánto intenta aprender el modelo para generar sugerencias (en comparación con tener siempre finalización con un peso de 1,0), y puede agregar un efecto estabilizador al entrenamiento cuando las finalizaciones son cortas.
Si las señales son muy largas (en relación con la finalización), podría tener sentido reducir este peso para evitar priorizar demasiado el aprendizaje de las señales.
compute_classification_metrics
(booleano, 选填, el valor predeterminado es falso)Si se establece, usamos el conjunto de validación al final de cada época para calcular métricas específicas de la clasificación, como la precisión y la puntuación F-1. Estas métricas se pueden ver en el archivo de resultados .
Para calcular una métrica categórica, debe proporcionar uno
validation_file(验证文件)
. Además, debe especificar la clasificación multiclaseclassification_n_classes
y la clasificación binariaclassification_positive_class
.
classification_n_classes
(entero, 选填, predeterminado en nulo)El número de categorías en la tarea de clasificación.
Este parámetro es necesario en tareas de multiclasificación.
classification_positive_class
(cadena, 选填, valor predeterminado nulo)Clase positiva en clasificación binaria.
Este parámetro es necesario para generar métricas de precisión, recuperación y F1 al realizar una clasificación binaria.
classification_betas
(matriz, 选填, valor predeterminado nulo)Si se proporciona este parámetro, calcularemos la puntuación F-beta en el valor beta especificado. La puntuación F-beta es una generalización de la puntuación F-1. Esto es solo para la clasificación binaria.
Cuando beta es 1 (es decir, puntuación F-1), la precisión y la recuperación tienen el mismo peso. Los valores beta más grandes ponen más énfasis en la recuperación que en la precisión. Los valores beta más pequeños ponen más énfasis en la precisión que en la recuperación.
suffix
(cadena, 选填, valor predeterminado nulo)Una cadena de hasta 40 caracteres de longitud que se agregará al nombre de su modelo ajustado.
Por ejemplo,
suffix
"nombre de modelo personalizado" generaría un nombre de modelo comoada:ft-your-org:custom-model-name-2022-02-15-04-21-04
.
2. Enumera los ajustes finos
http
copiar codigo
GET https://api.openai.com/v1/fine-tunes
Enumere los trabajos de ajuste de la organización
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/fine-tunes \ -H "Authorization: Bearer $OPENAI_API_KEY"
respuesta:
json
copiar codigo
{ "object": "list", "data": [ { "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F", "object": "fine-tune", "model": "curie", "created_at": 1614807352, "fine_tuned_model": null, "hyperparams": { ... }, "organization_id": "org-...", "result_files": [], "status": "pending", "validation_files": [], "training_files": [ { ... } ], "updated_at": 1614807352, }, { ... }, { ... } ] }
3. Recuperar el ajuste fino .
http
copiar codigo
GET https://api.openai.com/v1/fine-tunes/{fine_tune_id}
Obtenga información sobre trabajos de puesta a punto.
Obtenga más información sobre el ajuste fino .
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F \ -H "Authorization: Bearer $OPENAI_API_KEY"
Entre ellos, fine_tune_id
se encuentra una cadena de caracteres de tipo cadena, que se debe pasar ; el ID del trabajo de puesta a punto
respuesta:
json
copiar codigo
{ "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F", "object": "fine-tune", "model": "curie", "created_at": 1614807352, "events": [ { "object": "fine-tune-event", "created_at": 1614807352, "level": "info", "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0." }, { "object": "fine-tune-event", "created_at": 1614807356, "level": "info", "message": "Job started." }, { "object": "fine-tune-event", "created_at": 1614807861, "level": "info", "message": "Uploaded snapshot: curie:ft-acmeco-2021-03-03-21-44-20." }, { "object": "fine-tune-event", "created_at": 1614807864, "level": "info", "message": "Uploaded result files: file-QQm6ZpqdNwAaVC3aSz5sWwLT." }, { "object": "fine-tune-event", "created_at": 1614807864, "level": "info", "message": "Job succeeded." } ], "fine_tuned_model": "curie:ft-acmeco-2021-03-03-21-44-20", "hyperparams": { "batch_size": 4, "learning_rate_multiplier": 0.1, "n_epochs": 4, "prompt_loss_weight": 0.1, }, "organization_id": "org-...", "result_files": [ { "id": "file-QQm6ZpqdNwAaVC3aSz5sWwLT", "object": "file", "bytes": 81509, "created_at": 1614807863, "filename": "compiled_results.csv", "purpose": "fine-tune-results" } ], "status": "succeeded", "validation_files": [], "training_files": [ { "id": "file-XGinujblHPwGLSztz8cPS8XY", "object": "file", "bytes": 1547276, "created_at": 1610062281, "filename": "my-data-train.jsonl", "purpose": "fine-tune-train" } ], "updated_at": 1614807865, }
4. Cancele el ajuste fino
http
copiar codigo
POST https://api.openai.com/v1/fine-tunes/{fine_tune_id}/cancel
Cancela inmediatamente el trabajo de ajuste fino.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F/cancel \ -H "Authorization: Bearer $OPENAI_API_KEY"
Entre ellos, fine_tune_id
se encuentra una cadena de caracteres de tipo cadena, que se debe pasar ; el ID del trabajo de puesta a punto
respuesta:
json
copiar codigo
{ "id": "ft-xhrpBbvVUzYGo8oUO1FY4nI7", "object": "fine-tune", "model": "curie", "created_at": 1614807770, "events": [ { ... } ], "fine_tuned_model": null, "hyperparams": { ... }, "organization_id": "org-...", "result_files": [], "status": "cancelled", "validation_files": [], "training_files": [ { "id": "file-XGinujblHPwGLSztz8cPS8XY", "object": "file", "bytes": 1547276, "created_at": 1610062281, "filename": "my-data-train.jsonl", "purpose": "fine-tune-train" } ], "updated_at": 1614807789, }
5. Lista de eventos de ajuste fino
http
copiar codigo
GET https://api.openai.com/v1/fine-tunes/{fine_tune_id}/events
Obtenga actualizaciones de estado granulares para trabajos de ajuste.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F/events \ -H "Authorization: Bearer $OPENAI_API_KEY"
Entre ellos, fine_tune_id
se encuentra una cadena de caracteres de tipo string, a la que se debe pasar : el ID del trabajo de puesta a punto;
respuesta:
json
copiar codigo
{ "object": "list", "data": [ { "object": "fine-tune-event", "created_at": 1614807352, "level": "info", "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0." }, { "object": "fine-tune-event", "created_at": 1614807356, "level": "info", "message": "Job started." }, { "object": "fine-tune-event", "created_at": 1614807861, "level": "info", "message": "Uploaded snapshot: curie:ft-acmeco-2021-03-03-21-44-20." }, { "object": "fine-tune-event", "created_at": 1614807864, "level": "info", "message": "Uploaded result files: file-QQm6ZpqdNwAaVC3aSz5sWwLT." }, { "object": "fine-tune-event", "created_at": 1614807864, "level": "info", "message": "Job succeeded." } ] }
Parámetros de consulta
stream
(booleano, 选填, el valor predeterminado es falso)Ya sea para flujo de eventos trabajos de ajuste fino.
Si se establece en verdadero, los eventos estarán disponibles como eventos enviados por el servidor de datos . La transmisión finaliza con un mensaje cuando el trabajo se completa (con éxito, cancelado o fallido)
data:[DONE]
.Si se establece en falso, solo se devolverán los eventos generados hasta el momento.
6. Eliminar el modelo de ajuste fino
http
copiar codigo
DELETE https://api.openai.com/v1/models/{model}
Elimine el modelo ajustado. Debe tener el rol de propietario en la organización.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/models/curie:ft-acmeco-2021-03-03-21-44-20 \ -X DELETE \ -H "Authorization: Bearer $OPENAI_API_KEY"
Entre ellos, model
se encuentra un string de tipo string, que se debe pasar ; el modelo a borrar
respuesta:
json
copiar codigo
{ "id": "curie:ft-acmeco-2021-03-03-21-44-20", "object": "model", "deleted": true }
13. Revisión de moderadores
Dado un texto de entrada, indique si el modelo lo clasifica como una infracción de la política de contenido de OpenAI.
Guía relacionada: Moderaciones
1. Crear moderación
http
copiar codigo
POST https://api.openai.com/v1/moderations
Clasifique el texto para determinar si viola la política de contenido de OpenAI
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/moderations \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "input": "I want to kill them." }'
respuesta:
json
copiar codigo
{ "id": "modr-5MWoLO", "model": "text-moderation-001", "results": [ { "categories": { "hate": false, "hate/threatening": true, "self-harm": false, "sexual": false, "sexual/minors": false, "violence": true, "violence/graphic": false }, "category_scores": { "hate": 0.22714105248451233, "hate/threatening": 0.4132447838783264, "self-harm": 0.005232391878962517, "sexual": 0.01407341007143259, "sexual/minors": 0.0038522258400917053, "violence": 0.9223177433013916, "violence/graphic": 0.036865197122097015 }, "flagged": true } ] }
Cuerpo de la solicitud (explicación detallada de los parámetros de entrada)
input
(cadena o matriz, requerido)el texto de entrada para clasificar
model
(cadena,选填,Predeterminado en texto-moderación-último)Hay dos modelos de moderación de contenido disponibles:
text-moderation-stable
ytext-moderation-latest
.De forma predeterminada, se utiliza un modelo
text-moderation-latest
que se actualiza automáticamente con el tiempo. Esto garantiza que siempre esté utilizando nuestros modelos más precisos. Si usatext-moderation-stable
, le enviaremos una notificación avanzada antes de actualizar el modelo.text-moderation-stable
puede ser un poco menos precisotext-moderation-latest
.
14. Motores motor
El punto final del motor está obsoleto. Utilice sus modelos de reemplazo . Más información
Estos puntos finales describen y brindan acceso a los diversos motores disponibles en la API.
1. Motores de lista <Desolado>
http
copiar codigo
GET https://api.openai.com/v1/engines
Enumera los modelos actualmente disponibles (sin sintonizar) y proporciona información básica sobre cada uno, como el propietario y la disponibilidad.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/engines \ -H "Authorization: Bearer $OPENAI_API_KEY"
respuesta:
json
copiar codigo
{ "data": [ { "id": "engine-id-0", "object": "engine", "owner": "organization-owner", "ready": true }, { "id": "engine-id-2", "object": "engine", "owner": "organization-owner", "ready": true }, { "id": "engine-id-3", "object": "engine", "owner": "openai", "ready": false }, ], "object": "list" }
2. Recuperar motor <Desolado>
http
copiar codigo
GET https://api.openai.com/v1/engines/{engine_id}
Recupera una instancia de modelo y proporciona información básica, como el propietario y la disponibilidad.
Solicite una demostración:
http
copiar codigo
curl https://api.openai.com/v1/engines/text-davinci-003 \ -H "Authorization: Bearer $OPENAI_API_KEY"
Entre ellos, engine_id
se encuentra una cadena de caracteres de tipo cadena, a la que se debe pasar el ID del motor utilizado para esta solicitud.
respuesta:
json
copiar codigo
{ "id": "text-davinci-003", "object": "engine", "owner": "openai", "ready": true }
15. Detalles del parámetro detalles del parámetro
Penalizaciones de Frecuencia y Existencia
Las penalizaciones de frecuencia y presencia que se encuentran en la API de finalización se pueden usar para reducir la probabilidad de muestrear secuencias de tokens duplicadas. Se modifican agregando directamente contribuciones a logits (probabilidades logarítmicas no normalizadas).
pitón
copiar codigo
mu[j] -> mu[j] - c[j] * alpha_frequency - float(c[j] > 0) * alpha_presence
Dónde:
mu[j]
es el logit de la ficha j-ésimac[j]
es la frecuencia con la que se muestreó ese token antes de la posición actualfloat(c[j] > 0)
es 1 sic[j] > 0
y 0 en caso contrarioalpha_frequency
es el coeficiente de penalización de frecuenciaalpha_presence
es el coeficiente de penalización por presencia
Como podemos ver, la penalización por presencia es una contribución aditiva única que se aplica a todos los tokens que se han muestreado al menos una vez, y la penalización por frecuencia es una contribución proporcional a la frecuencia con la que se ha muestreado un token en particular.
Un valor razonable para el factor de penalización está entre 0,1 y 1 si el objetivo es solo reducir ligeramente las muestras repetidas. Si el objetivo es suprimir fuertemente los duplicados, el factor se puede aumentar a 2, pero esto puede reducir significativamente la calidad de la muestra. Los valores negativos se pueden utilizar para aumentar la probabilidad de recurrencia.