communications-mining
latest
false
- Documents d’API
- CLI
- Guides d'intégration
- Blog
- Comment les machines apprennent à comprendre les mots : guide d'intégration dans NLP
- Apprentissage basé sur des invites avec des Transformers
- Efficient Transformers II : Dilarisation des connaissances et affinement
- Transformateurs efficaces I : mécanismes d'attention
- Modélisation de l'intention hiérarchique profonde non supervisée : obtenir de la valeur sans données d'entraînement
- Correction du biais d'annotation avec Communications Mining
- Apprentissage actif : de meilleurs modèles d'ML en moins de temps
- Tout est dans les chiffres : évaluer les performances du modèle avec des métriques
- Pourquoi la validation du modèle est importante
- Comparaison de Communications Mining et de Google AutoML pour l'intelligence des données conversationnelles
Important :
Ce contenu a été traduit à l'aide d'une traduction automatique.
Guide du développeur Communications Mining
Last updated 27 sept. 2024
Créer un flux
/api/v1/datasets/<project>/<dataset_name>/streams
/api/v1/datasets/<project>/<dataset_name>/streams
Autorisations requises : Administrateur des flux, afficher les libellés
- Bash
curl -X PUT 'https://<my_api_endpoint>/api/v1/datasets/project1/collateral/streams' \ -H "Authorization: Bearer $REINFER_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "stream": { "comment_filter": { "user_properties": { "number:Spend": { "maximum": 100000, "minimum": 100 }, "number:Transactions": { "one_of": [ 1 ] }, "string:Country": { "one_of": [ "uk", "de" ] } } }, "description": "Used by ACME RPA to create tickets for disputes.", "model": { "label_thresholds": [ { "name": [ "Some Label" ], "threshold": 0.37 }, { "name": [ "Another Label" ], "threshold": 0.46 }, { "name": [ "Parent Label", "Child Label" ], "threshold": 0.41 } ], "version": 8 }, "name": "dispute", "title": "Collateral Disputes" } }'
curl -X PUT 'https://<my_api_endpoint>/api/v1/datasets/project1/collateral/streams' \ -H "Authorization: Bearer $REINFER_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "stream": { "comment_filter": { "user_properties": { "number:Spend": { "maximum": 100000, "minimum": 100 }, "number:Transactions": { "one_of": [ 1 ] }, "string:Country": { "one_of": [ "uk", "de" ] } } }, "description": "Used by ACME RPA to create tickets for disputes.", "model": { "label_thresholds": [ { "name": [ "Some Label" ], "threshold": 0.37 }, { "name": [ "Another Label" ], "threshold": 0.46 }, { "name": [ "Parent Label", "Child Label" ], "threshold": 0.41 } ], "version": 8 }, "name": "dispute", "title": "Collateral Disputes" } }' - Nœud
const request = require("request"); request.put( { url: "https://<my_api_endpoint>/api/v1/datasets/project1/collateral/streams", headers: { Authorization: "Bearer " + process.env.REINFER_TOKEN, }, json: true, body: { stream: { comment_filter: { user_properties: { "number:Spend": { maximum: 100000, minimum: 100 }, "number:Transactions": { one_of: [1] }, "string:Country": { one_of: ["uk", "de"] }, }, }, description: "Used by ACME RPA to create tickets for disputes.", model: { label_thresholds: [ { name: ["Some Label"], threshold: 0.37 }, { name: ["Another Label"], threshold: 0.46 }, { name: ["Parent Label", "Child Label"], threshold: 0.41 }, ], version: 8, }, name: "dispute", title: "Collateral Disputes", }, }, }, function (error, response, json) { // digest response console.log(JSON.stringify(json, null, 2)); } );
const request = require("request"); request.put( { url: "https://<my_api_endpoint>/api/v1/datasets/project1/collateral/streams", headers: { Authorization: "Bearer " + process.env.REINFER_TOKEN, }, json: true, body: { stream: { comment_filter: { user_properties: { "number:Spend": { maximum: 100000, minimum: 100 }, "number:Transactions": { one_of: [1] }, "string:Country": { one_of: ["uk", "de"] }, }, }, description: "Used by ACME RPA to create tickets for disputes.", model: { label_thresholds: [ { name: ["Some Label"], threshold: 0.37 }, { name: ["Another Label"], threshold: 0.46 }, { name: ["Parent Label", "Child Label"], threshold: 0.41 }, ], version: 8, }, name: "dispute", title: "Collateral Disputes", }, }, }, function (error, response, json) { // digest response console.log(JSON.stringify(json, null, 2)); } ); - Python
import json import os import requests response = requests.put( "https://<my_api_endpoint>/api/v1/datasets/project1/collateral/streams", headers={"Authorization": "Bearer " + os.environ["REINFER_TOKEN"]}, json={ "stream": { "name": "dispute", "title": "Collateral Disputes", "description": "Used by ACME RPA to create tickets for disputes.", "model": { "version": 8, "label_thresholds": [ {"name": ["Some Label"], "threshold": 0.37}, {"name": ["Another Label"], "threshold": 0.46}, { "name": ["Parent Label", "Child Label"], "threshold": 0.41, }, ], }, "comment_filter": { "user_properties": { "string:Country": {"one_of": ["uk", "de"]}, "number:Spend": {"minimum": 100, "maximum": 100000}, "number:Transactions": {"one_of": [1]}, } }, } }, ) print(json.dumps(response.json(), indent=2, sort_keys=True))
import json import os import requests response = requests.put( "https://<my_api_endpoint>/api/v1/datasets/project1/collateral/streams", headers={"Authorization": "Bearer " + os.environ["REINFER_TOKEN"]}, json={ "stream": { "name": "dispute", "title": "Collateral Disputes", "description": "Used by ACME RPA to create tickets for disputes.", "model": { "version": 8, "label_thresholds": [ {"name": ["Some Label"], "threshold": 0.37}, {"name": ["Another Label"], "threshold": 0.46}, { "name": ["Parent Label", "Child Label"], "threshold": 0.41, }, ], }, "comment_filter": { "user_properties": { "string:Country": {"one_of": ["uk", "de"]}, "number:Spend": {"minimum": 100, "maximum": 100000}, "number:Transactions": {"one_of": [1]}, } }, } }, ) print(json.dumps(response.json(), indent=2, sort_keys=True)) - Réponse
{ "status": "ok", "stream": { "context": "0", "created_at": "2019-08-03T12:30:00.123456Z", "dataset_id": "abcdef0123456789", "description": "Used by ACME RPA to create tickets for disputes.", "id": "0123456789abcdef", "model": { "version": 8 }, "name": "dispute", "title": "Collateral Disputes", "updated_at": "2019-08-03T12:30:00.123456Z" } }
{ "status": "ok", "stream": { "context": "0", "created_at": "2019-08-03T12:30:00.123456Z", "dataset_id": "abcdef0123456789", "description": "Used by ACME RPA to create tickets for disputes.", "id": "0123456789abcdef", "model": { "version": 8 }, "name": "dispute", "title": "Collateral Disputes", "updated_at": "2019-08-03T12:30:00.123456Z" } }
Les flux permettent une itération persistante et avec état à travers les commentaires d'un ensemble de données, avec des libellés prédits et des champs généraux calculés à l'aide d'un modèle épinglé.
Once a stream is created, the and methods can be used to iterate through comments.
Nom | Saisie de texte | Requis | DESCRIPTION |
---|---|---|---|
name | string | oui | Nom d'API du flux, utilisé dans les URL. Doit être unique dans un ensemble de données et doit correspondre à [A-Za-z0-9-_]{1,256} .
|
title | string | non | Titre d'une ligne lisible par un humain pour le flux. |
description | string | non | Une description plus longue du flux. |
model | Modèle | non | Si ce champ est spécifié, les commentaires récupérés à partir de ce flux contiendront les prédictions d'un modèle épinglé. |
comment_filter | CommentFilter | non | If specified, comments not matching the filter will not be returned. See for details on how the comment filter will affect the results returned by the stream. |
Où
Model
a le format suivant :
Nom | Saisie de texte | Requis | DESCRIPTION |
---|---|---|---|
version | Integer | oui | Une version de modèle qui a été épinglée via la page Modèles . |
label_thresholds | array<LabelThreshold> | non | Si cet élément est sélectionné, seules les valeurs correspondant à l'élément label_thresholds donné seront renvoyées. Si ce paramètre n’est pas défini, tous les libellés et toutes les valeurs de prédiction seront renvoyés.
|
Où
LabelThreshold
a le format suivant :
Nom | Saisie de texte | Requis | DESCRIPTION |
---|---|---|---|
name | array<string> | oui | Nom du libellé à renvoyer, formaté sous la forme d'une liste de libellés hiérarchisés. Par exemple, le libellé "Some Label" aura le format ["Some Label"] , tandis que le libellé "Parent Label > Child Label" aura le format ["Parent Label", "Child Label"] .
|
threshold | Numérique | oui | Le seuil de confiance à utiliser pour le libellé (un nombre compris entre 0,0 et 1,0). Le libellé ne sera renvoyé pour un commentaire que si sa prédiction est supérieure à ce seuil. |
Où
CommentFilter
a le format suivant :
Nom | Saisie de texte | Requis | DESCRIPTION |
---|---|---|---|
user_properties | UserPropertyFilter | non | Un filtre qui s'applique aux propriétés utilisateur d'un commentaire. Pour plus d'informations sur les propriétés utilisateur, consultez la référence du commentaire. |
Le
UserPropertyFilter
est une carte de nom de propriété utilisateur à filtrer. Les propriétés de chaîne peuvent être filtrées sur les valeurs d'un ensemble ({"one_of": ["val_1", "val_2"]}
). Les propriétés numériques peuvent être filtrées soit sur les valeurs d'un ensemble ({"one_of": [123, 456]}
), soit sur une plage ({"minimum": 123, "maximum": 456}
).