- Documentos de la API
- Introducción
- Uso de la API
- Tutorial de la API
- Resumen
- Fuentes
- Conjuntos de datos
- Comentarios
- Archivos adjuntos
- Predictions
- Crear una transmisión
- Actualizar una transmisión
- Obtener una transmisión por nombre
- Obtener todas las transmisiones
- Eliminar una transmisión
- Obtener resultados de la transmisión
- Obtener comentarios de una transmisión (heredado)
- Avanzar una transmisión
- Restablecer una transmisión
- Etiquetar una excepción
- Desetiquetar una excepción
- Eventos de auditoría
- Obtener todos los usuarios
- CLI
- Guías de integración
- Blog
- Cómo aprenden las máquinas a entender palabras: una guía para las incrustaciones en PNL
- Aprendizaje basado en solicitudes con Transformers
- Efficient Transformers II: destilación de conocimientos y ajuste
- Transformadores eficientes I: mecanismos de atención
- Modelado de intenciones jerárquico profundo no supervisado: obtener valor sin datos de entrenamiento
- Corrección del sesgo de anotación con Communications Mining
- Aprendizaje activo: mejores modelos ML en menos tiempo
- Todo está en los números: evaluar el rendimiento del modelo con métricas
- Por qué es importante la validación del modelo
- Comparación de Communications Mining y Google AutoML para la inteligencia de datos conversacional
Transmisiones
Permisos necesarios: Consumir transmisiones, Ver etiquetas, Ver fuentes.
/results
es la nueva forma de obtener comentarios y sus predicciones de una transmisión, reemplazando la ruta /fetch
existente (Transmisiones - heredadas). Mantenemos la ruta /fetch para la compatibilidad heredada, pero recomendamos que todos los nuevos casos de uso utilicen la ruta /results
, ya que admite todos los casos de uso posibles, incluidos los que utilizan la extracción generativa.
- Bash
curl -X GET 'https://<my_api_endpoint>/api/preview/datasets/project1/collateral/streams/dispute/results?max_results=5&max_filtered=15' \ -H "Authorization: Bearer $REINFER_TOKEN"
curl -X GET 'https://<my_api_endpoint>/api/preview/datasets/project1/collateral/streams/dispute/results?max_results=5&max_filtered=15' \ -H "Authorization: Bearer $REINFER_TOKEN" - Nodo
const request = require("request"); request.get( { url: "https://<my_api_endpoint>/api/preview/datasets/project1/collateral/streams/dispute/results?max_results=5&max_filtered=15", headers: { Authorization: "Bearer " + process.env.REINFER_TOKEN, }, }, function (error, response, json) { // digest response console.log(JSON.stringify(json, null, 2)); } );
const request = require("request"); request.get( { url: "https://<my_api_endpoint>/api/preview/datasets/project1/collateral/streams/dispute/results?max_results=5&max_filtered=15", headers: { Authorization: "Bearer " + process.env.REINFER_TOKEN, }, }, function (error, response, json) { // digest response console.log(JSON.stringify(json, null, 2)); } ); - Python
import json import os import requests response = requests.get( "https://<my_api_endpoint>/api/preview/datasets/project1/collateral/streams/dispute/results", headers={"Authorization": "Bearer " + os.environ["REINFER_TOKEN"]}, params={"max_results": 5, "max_filtered": 15}, ) print(json.dumps(response.json(), indent=2, sort_keys=True))
import json import os import requests response = requests.get( "https://<my_api_endpoint>/api/preview/datasets/project1/collateral/streams/dispute/results", headers={"Authorization": "Bearer " + os.environ["REINFER_TOKEN"]}, params={"max_results": 5, "max_filtered": 15}, ) print(json.dumps(response.json(), indent=2, sort_keys=True)) - Respuesta
{ "status": "ok", "results": [ { "comment": { "uid": "18ba5ce699f8da1f.0123456789abcdef", "id": "0123456789abcdef", "timestamp": "2018-09-17T09:54:56.332000Z", "user_properties": { "number:Messages": 1, "string:Folder": "Sent (/ Sent)", "string:Has Signature": "Yes", "string:Message ID": "<abcdef@abc.company.com>", "string:Sender": "alice@company.com", "string:Sender Domain": "company.com", "string:Thread": "<abcdef@abc.company.com>" }, "messages": [ { "from": "alice@company.com", "to": [ "bob@organisation.org" ], "sent_at": "2018-09-17T09:54:56.332000Z", "body": { "text": "Hi Bob,\n\nCould you send me today's figures?" }, "subject": { "text": "Today's figures" }, "signature": { "text": "Thanks,\nAlice" } } ], "text_format": "plain", "attachments": [], "source_id": "18ba5ce699f8da1f", "last_modified": "2024-07-03T13:30:53.991000Z", "created_at": "2020-12-14T15:07:03.718000Z", "context": "1", "has_annotations": true }, "prediction": { "taxonomies": [ { "name": "default", "labels": [ { "name": "Margin Call", "occurrence_confidence": { "value": 0.9905891418457031, "thresholds": ["stream"] }, "extraction_confidence": { "value": 0.4712367373372217, "thresholds": [] }, "fields": [ { "name": "Notification Date", "value": null } ] }, { "name": "Margin Call > Interest Accrual", "occurrence_confidence": { "value": 0.9905891418457031, "thresholds": [] }, "extraction_confidence": { "value": 0.9905891418457031, "thresholds": [] }, "fields": [ { "name": "Amount", "value": { "formatted": "636,000.00" } }, { "name": "Broker number", "value": null }, { "name": "Client name", "value": null }, { "name": "Currency", "value": { "formatted": "AUD" } } ] } ], "general_fields": [ { "name": "monetary-quantity", "value": { "formatted": "636,000.00 GBP" } }, { "name": "MarginCallDateType", "value": { "formatted": "2018-09-21 00:00 UTC" } }, { "name": "client-name", "value": { "formatted": "Big Client Example Bank" } } ] } ] }, "continuation": "pmjKYXYBAAADqHUvPkQf1ypNCZFR37vu" } ], "num_filtered": 0, "more_results": true, "continuation": "pmjKYXYBAAAsXghZ2niXPNP6tOIJtL_8" }
{ "status": "ok", "results": [ { "comment": { "uid": "18ba5ce699f8da1f.0123456789abcdef", "id": "0123456789abcdef", "timestamp": "2018-09-17T09:54:56.332000Z", "user_properties": { "number:Messages": 1, "string:Folder": "Sent (/ Sent)", "string:Has Signature": "Yes", "string:Message ID": "<abcdef@abc.company.com>", "string:Sender": "alice@company.com", "string:Sender Domain": "company.com", "string:Thread": "<abcdef@abc.company.com>" }, "messages": [ { "from": "alice@company.com", "to": [ "bob@organisation.org" ], "sent_at": "2018-09-17T09:54:56.332000Z", "body": { "text": "Hi Bob,\n\nCould you send me today's figures?" }, "subject": { "text": "Today's figures" }, "signature": { "text": "Thanks,\nAlice" } } ], "text_format": "plain", "attachments": [], "source_id": "18ba5ce699f8da1f", "last_modified": "2024-07-03T13:30:53.991000Z", "created_at": "2020-12-14T15:07:03.718000Z", "context": "1", "has_annotations": true }, "prediction": { "taxonomies": [ { "name": "default", "labels": [ { "name": "Margin Call", "occurrence_confidence": { "value": 0.9905891418457031, "thresholds": ["stream"] }, "extraction_confidence": { "value": 0.4712367373372217, "thresholds": [] }, "fields": [ { "name": "Notification Date", "value": null } ] }, { "name": "Margin Call > Interest Accrual", "occurrence_confidence": { "value": 0.9905891418457031, "thresholds": [] }, "extraction_confidence": { "value": 0.9905891418457031, "thresholds": [] }, "fields": [ { "name": "Amount", "value": { "formatted": "636,000.00" } }, { "name": "Broker number", "value": null }, { "name": "Client name", "value": null }, { "name": "Currency", "value": { "formatted": "AUD" } } ] } ], "general_fields": [ { "name": "monetary-quantity", "value": { "formatted": "636,000.00 GBP" } }, { "name": "MarginCallDateType", "value": { "formatted": "2018-09-21 00:00 UTC" } }, { "name": "client-name", "value": { "formatted": "Big Client Example Bank" } } ] } ] }, "continuation": "pmjKYXYBAAADqHUvPkQf1ypNCZFR37vu" } ], "num_filtered": 0, "more_results": true, "continuation": "pmjKYXYBAAAsXghZ2niXPNP6tOIJtL_8" }
Una vez que creas una transmisión, puedes consultarla para obtener comentarios y sus predicciones. Esto incluye etiquetas, campos generales y extracciones de etiquetas, que contienen un conjunto de campos de extracción para cada instancia de esa etiqueta que se produce.
Comprueba estos aspectos al recuperar comentarios de una transmisión:
Cuando creas una transmisión, estableces su posición inicial para que sea igual a su hora de creación. Si es necesario, puedes establecer la transmisión en una posición diferente (ya sea hacia adelante o hacia atrás en el tiempo), utilizando el punto final de restablecimiento. La transmisión devuelve comentarios a partir de su posición actual. La posición del comentario en la cola de comentarios se determina por el orden en el que se cargan los comentarios.
Dependiendo del diseño de tu aplicación, puedes elegir entre:
- avanzando la transmisión una vez, para todo el lote. Utiliza el
continuation
del lote contenido en la respuesta. - avanzar la transmisión para cada comentario individual. Utiliza el
continuation
del comentario, contenido en la respuesta.
comment_filter
al crear la transmisión, los resultados no incluyen comentarios que no coincidan con el filtro, pero siguen contando para el max_filtered
solicitado. Puedes ver respuestas en las que se filtran todos los comentarios max_filtered
, lo que lleva a una matriz results
vacía. En el siguiente ejemplo, solicitas un lote de 8 comentarios, todos los cuales se filtran.
{
"filtered": 8,
"results": [],
"sequence_id": "qs8QcHIBAADJ1p3W2FtmBB3QiOJsCJlR",
"status": "ok"
}
{
"filtered": 8,
"results": [],
"sequence_id": "qs8QcHIBAADJ1p3W2FtmBB3QiOJsCJlR",
"status": "ok"
}
max_filtered
opcional, para evitar que los comentarios filtrados cuenten para el max_results
solicitado.
/fetch
heredada no devuelve comentarios con predicciones que no alcanzan el umbral de confianza.
/results
, devuelves todas las predicciones para un comentario, y también confidence
value
. También indicas qué tipo(s) de umbral cumple.
"occurrence_confidence": {
"value": 0.9905891418457031,
"thresholds": ["stream"]
}
"occurrence_confidence": {
"value": 0.9905891418457031,
"thresholds": ["stream"]
}
confidence
para una predicción 0.9905..
y el valor thresholds
indican que la predicción cumple con el umbral configurado para el stream
.
stream
para confirmar que la predicción cumple con el umbral que configuraste en la transmisión.
Para obtener más información sobre las extracciones generadas y cómo trabajar con umbrales, consulta la página Comprender la validación en las extracciones y el rendimiento de la extracción .
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
max_results | Número | No | El número de comentarios a recuperar para esta transmisión. Devuelve menos comentarios si llega al final del lote, o si filtra los comentarios según el filtro de comentarios. El valor máximo es 32. El valor predeterminado es 16. |
max_filtered | Número | No | Parámetro de conveniencia para transmisiones con un filtro de comentarios. Cuando los proporciona, hasta max_filtered comentarios filtrados no cuentan para el max_results solicitado. Esto es útil si esperas que un gran número de comentarios no coincidan con el filtro. No tiene efecto en las transmisiones sin un filtro de comentarios. El valor máximo es 1024. El valor predeterminado es nulo.
|
Nombre | Tipo | Descripción |
---|---|---|
status | String | ok si la solicitud tiene éxito, o error , en caso de error. Para obtener más información sobre las respuestas de error, consulta la página Información general .
|
num_filtered | Número | Número de comentarios que se filtraron en función de un filtro de comentarios. Si creaste la transmisión sin un filtro, este número siempre es 0 .
|
continuation | String | El token de continuación del lote. Úselo para confirmar el procesamiento de este lote y avanzar la transmisión al siguiente lote. |
more_results | Booleano | Verdadero si no hubo resultados adicionales en la transmisión, cuando realizó la solicitud. Falso en caso contrario. |
results | array<Result> | Una matriz que contiene objetos de resultado. |
Result
tiene el siguiente formato:
Nombre | Tipo | Descripción |
---|---|---|
comment | Comentario | Comentar datos. Para obtener una explicación detallada, consulta la Referencia de comentarios. |
continuation | String | El token de continuación del comentario. Se utiliza para reconocer el procesamiento de este comentario y avanzar al siguiente comentario. |
prediction | array<Prediction> | La predicción para este comentario. Solo está disponible si la transmisión especifica una versión del modelo. Para obtener más información sobre las predicciones generativas, consulta la página Communications Mining: comprensión de la validación en las extracciones y el rendimiento de las extracciones . |
Prediction
tiene el siguiente formato:
Nombre | Tipo | Descripción |
---|---|---|
taxonomies | matriz<PredicciónDeTaxonomía><TaxonomyPrediction> | Lista de predicciones de taxonomía. Actualmente solo defines una taxonomía por conjunto de datos, pero la proporcionas como una lista, para futura compatibilidad. |
TaxonomyPrediction
tiene el siguiente formato:
Nombre | Tipo | Descripción |
---|---|---|
name | String | Nombre de la taxonomía. El único valor es actualmente default .
|
labels | array<LabelPrediction> | Una lista de predicciones de etiquetas extraídas con sus occurrence_confidence , extraction_confidence y fields extraídas. Para obtener más información sobre las predicciones generativas, consulta la página Communications Mining: comprensión de la validación en extracciones y rendimiento de extracción .
|
general_fields | matriz<PredicciónDeCampo><FieldPrediction> | Una lista de predicciones de campo generales extraídas con sus name y value extraídas. Para obtener más información sobre las predicciones generativas, consulta la página Communications Mining: comprensión de la validación en extracciones y rendimiento de extracción .
|