NLP 임곗값 및 설정을 업데이트합니다
이 API를 사용하려면 앱은 NLP 설정의 봇 빌더 API 범위가 필요합니다. 또는 테스트 및 학습에서 NLP 설정의 관리자 API 범위가 필요합니다.
POST https://{{host}}/api/public/bot/{{BotID}}/configurations?language={{languageCode}}&groupName={{groupName}}
쿼리 매개 변수
매개 변수 | 필수/선택 사항 | 설명 |
---|---|---|
host | 필수 | 환경 URL(예: https://bots.kore.ai) |
BotID | 필수 | 봇 ID 또는 스트림 ID. 봇의 일반 설정 페이지에서 이를 액세스할 수 있습니다. |
languageCode | 필수 | 이러한 설정을 업데이트해야 하는 봇 언어입니다. |
groupName | 다중 ML 모델에 필요 | GroupName을 사용하여 특정 그룹의 ML 매개 변수를 업데이트할 수 있습니다. 봇 수준 의도 모델 설정 groupName을 업데이트하려면 그룹 이름을 "봇 수준 의도 모델"로 설정해야 합니다. |
본문 매개 변수
매개 변수는 업데이트해야 하는 임곗값 설정에 따라 달라집니다. 다음은 다양한 임곗값 설정에 대한 전체 매개 변수 목록입니다.
설정 업데이트
머신 러닝 엔진
이 섹션에서는 머신 러닝 엔진과 관련된 설정을 다룹니다. 설정에 대한 자세한 내용은 여기를 참조하세요.
{ "configurations": [ { "mode": "ml", // Machine Learning Engine "exactMatchThreshold": 90, // ML Definitive Score - value in range [80-100] "minThreshold": 0.4, // ML threshold - value in range [0-1] } ], "mlParams": { "intentParams": { "useSynonyms": true, // Bot Synonyms "useStopwords": true, // Stopwords "usePlaceholders": true, // Entity Placeholders "features": "n_gram" // Feature Extraction - value in range [skip_gram, n_gram] "skip_gram": { // features should be 'skip_gram' "seqLength": 2, // Sequence Length - value in range [2-4] "maxSkipDistance": 1 // Maximum Skip Distance - value in range [1-3] }, "ngram": 3, // ngram Sequence Length - value in range [1-4] // features should be ‘n_gram’ }, "nerParams": { "type": "corenlp" // NER Model // could be "corenlp" for Conditional Random Field // or "spacy" - Deep Neural Network } } }
Fundamental Meaning Engine
이 섹션에서는 엔진의 기본 의미와 관련된 설정을 다룹니다. 설정에 대한 자세한 내용은 여기를 참조하세요.
{ "configurations": [ { "mode": "cs", // Fundamental Meaning Engine "labelMatch": true // Intent Detection using Task Name Words "isFMThreshold": true, //FM Threshold "fmThreshold": 15 //FM Threshold value } ] }
지식 그래프 엔진
이 섹션에서는 지식 그래프 엔진과 관련된 설정을 다룹니다. 설정에 대한 자세한 내용은 여기를 참조하세요.
{ "configurations": [ THRESHOLDS & CONFIGURATIONS { "mode": "faq", "autoSpellCorrectEnabled": true, // Auto Correction "useBotSynonyms": true, // Bot Synonyms "enPatternLemma": false, // Lemmatization using Parts of Speech "pathCoverage": 50, // Path Coverage - value in range [0-100] "exactMatchThreshold": 95, // Minimum and Definitive Level for Knowledge Tasks // value in range [0-100] // should be more than minThreshold & maxThreshold "maxThreshold": 80, // Probable range for Knowledge Task // value in range [0-100] // should be between minThreshold & exactMatchThreshold "minThreshold": 60, // Low confidence range for Knowledge Task // value in range [0-100] // should be less than maxThreshold & exactMatchThreshold "suggestionsCount": 3, // KG suggestionsCount | [0-5] "taskMatchTolerance": 35, // Proximity of Suggested Matches | [0-50] "longResponses": { "readMore": true, // Manage Long Responses "useCustomReadMoreURL": true, // readMore should be true "customReadMoreURL": "www.siteurl.com" // readMore link; readMore should be true }, "searchInAnswer": { "enabled": true, // Search in Answer "notifyUser": true, // Inform end user that it is a probable answer "responseType": "relevantWithReadMore", // can be "complete" - Show complete response, // or "relevant" - Show only the relevant paragraph, // or "relevantWithReadMore" - Show only the relevant paragraph with “read more” link ] "customReadMoreURL": "www.siteurl.com", // “read more” link "useCustomReadMoreURL": true // enabled should be true } "qualifyContextualPaths": false, // Qualify Contextual Paths } ] }
순위 및 해결 엔진
이 섹션에서는 순위 및 해결 엔진과 관련된 설정을 다룹니다. 설정에 대한 자세한 내용은 여기를 참조하세요.
{ "configurations": { "mode": "rr", // Ranking and Resolver Engine "taskMatchTolerance": 2, // Proximity of Probable Matches - value in range [0-20] "useDependencyParser": true, // Dependency Parsing Model "minMatchVal": 0.4, // Minimum Match Score - value in range [0-1] // useDependencyParser should be true "rankingParameters": "" // Advanced Configurations // useDependencyParser should be true "intentRescoring": false, // Rescoring of Intents "isPreferDefinitiveMatch": true // Prefer Definitive Matches } ] }
고급 NLP 설정
이 섹션에서는 자연어 -> 학습의 고급 NLP 설정 섹션에 나와 있는 설정을 참조합니다. 설정에 대한 자세한 내용은 여기를 참조하세요. 다음은 위에서 언급한 고급 NLP 구성을 설정하기 위한 샘플 요청입니다.
{ "advancedNLPSettings":[ { "configurationKeyName": "NoneIntent", "configurationValue":true, "nlpEngine":"ML" } ] }
다음은 허용 가능한 고급 NLP 설정 및 가능한 값의 전체 목록입니다. 복합어 분할
{ "configurationName": "Split Compound Words", "configurationKeyName": "splitCompoundWords", "desc": "The settings enables splitting of the compound words into multiple stems and then process the individual stem", "nlpEngine": "ML", "dataType": "Boolean", "range": [true, false], "defaultValue": false, "requiresTraining": true, "language": ["de", "nl"], "isChild": false }
의도 없음
{ "configurationName": "None Intent", "configurationKeyName": "NoneIntent", "desc": "Once enabled, a None intent is created which reduces the chances of getting a false positive for an intent match using ML engine", "nlpEngine": "ML", "dataType": "Boolean", "range": [true, false], "defaultValue": true, "requiresTraining": true, "language": "ALL", "isChild": false }
코사인 유사도 감소
{ "configurationName": "Cosine similarity dampening", "configurationKeyName": "cosineSimilarityDampening", "desc": "Avoid penalty on short length questions using Cosine Similarity Dampening", "nlpEngine": "KG", "dataType": "Boolean", "range": [true, false], "defaultValue": true, "requiresTraining": false, "language": "ALL", "isChild": false }
네트워크 유형
{ "configurationName" : "Network Type", "configurationKeyName" : "network", "desc" : "Networks available for intent training", "nlpEngine" : "ML", "dataType" : "enum", "range" : ["Standard","MLP-BOW","MLP-WordEmbeddings","LSTM","CNN", "KoreBERT"], "defaultValue": "Standard", "requiresTraining" : true, "language" : "ALL", "isChild" : false }
에포크(Epoch)
{ "configurationName": "Epochs", "configurationKeyName": "epochs", "desc": "Number of iterations in training the model", "nlpEngine": "ML", "dataType": "Number", "range": [20, 300], "defaultValue": 20, "requiresTraining" : true, "language" : "ALL", "isChild" : true, "parentConfiguration" : "network", "requiredParentInput" : ["MLP-BOW","MLP-WordEmbeddings","LSTM","CNN","KoreBERT"] }
배치 크기
{ "configurationName" : "Batch Size", "configurationKeyName" : "batch_size", "desc" : "Number of training samples used for each batch while training", "nlpEngine" : "ML", "dataType" : "Number", "range" : [10,30], "defaultValue":10, "requiresTraining" : true, "language" : "ALL", "isChild" : true, "parentConfiguration" : "network", "requiredParentInput" : ["MLP-BOW","MLP-WordEmbeddings","LSTM","CNN","KoreBERT"] }
학습률
{ "configurationName": "Learning rate", "configurationKeyName": "lr", "desc": "Learning rate is a hyper-parameter that controls how much we are adjusting the weights of our network with respect to the loss gradient", "nlpEngine": "ML", "dataType": "enum", "range": [1e-4, 1e-3, 1e-2], "defaultValue": 1e-3, "requiresTraining" : true, "language" : "ALL", "isChild" : true, "parentConfiguration" : "network", "requiredParentInput" : ["MLP-BOW","MLP-WordEmbeddings","LSTM","CNN","KoreBERT"] }
Dropout
{ "configurationName": "Dropout", "configurationKeyName": "dropout", "desc": "Regularization parameter to avoid overfitting of the model", "nlpEngine": "ML", "dataType": "Number", "range": [0, 0.8], "defaultValue": 0, "requiresTraining" : true, "language" : "ALL", "isChild" : true, "parentConfiguration" : "network", "requiredParentInput" : ["MLP-BOW","MLP-WordEmbeddings","LSTM","CNN", "KoreBERT"] }
벡터화
{ "configurationName": "Vectorizer", "configurationKeyName": "vector_type", "desc": "Feature extraction technique on training data", "nlpEngine": "ML", "dataType": "enum", "range": ["count", "tfidf"], "defaultValue": "count", "requiresTraining": true, "language": "ALL", "isChild": true, "parentConfiguration": "network", "requiredParentInput": ["MLP-BOW"] }
최대 시퀀스 길이
{ "configurationName": "Maximum sequence length", "configurationKeyName": "max_seq_length", "desc": "Length of the training sample or user input", "nlpEngine": "ML", "dataType": "Number", "range": [10, 30], "defaultValue": 20, "requiresTraining" : true, "language" : "ALL", "isChild" : true, "parentConfiguration" : "network", "requiredParentInput" : ["MLP-WordEmbeddings","LSTM","CNN","KoreBERT"] }
임베딩 유형
{ "configurationName": "Embeddings Type", "configurationKeyName": "word_embedding_type", "desc": "Feature extraction technique on training data", "nlpEngine": "ML", "dataType": "enum", "range": ["generated", "pretrained", "random"], "defaultValue": "random", "requiresTraining" : true, "language" : "ALL", "isChild" : true, "parentConfiguration" : "network", "requiredParentInput" : ["MLP-WordEmbeddings","LSTM","CNN", "KoreBERT"] }
임베딩 차원
{ "configurationName": "Embeddings Dimensions", "configurationKeyName": "embedding_dim", "desc": "Embeddings Dimensions to be used in featurization", "nlpEngine": "ML", "dataType": "Number", "range": [100, 400], "defaultValue": 300, "requiresTraining" : true, "language" : "ALL", "isChild" : true, "parentConfiguration" : "network", "requiredParentInput" : ["MLP-WordEmbeddings","LSTM","CNN", "KoreBERT"] }
K Fold 교차 검증
{ "configurationName" : "kfold", "configurationKeyName" : "kfold", "desc" : "kfold parameter for Crossvalidation", "nlpEngine" : "ML", "dataType" : "Number", "range" : [2,10], "defaultValue": 5, "requiresTraining" : true, "language" : "ALL", "isChild" : false }
의도 이름으로서의 FAQ 이름
{ "configurationName": "FAQ Name as Intent Name", "configurationKeyName": "FAQ_Name_Intent_Name", "desc": "Enable to use FAQ Name as Intent Name. ", "nlpEngine": "KG", "dataType": "Boolean", "range": [true, false], "defaultValue": false, "requiresTraining" : false, "language" : "ALL", "isChild" : false }
퍼지 매치
{ "configurationName" : "Fuzzy Match", "configurationKeyName" : "fuzzyMatch", "desc" : "This setting enables the use of the fuzzy matching algorithm for intent identification", "nlpEngine" : "ML", "dataType" : "Boolean", "range" : [true,false], "defaultValue": true, "requiresTraining" : false, "language" : "ALL", "isChild" : false }
부정어 처리
{ "configurationName" : "Handle Negation", "configurationKeyName" : "f_negation", "desc" : "This setting enables the handling of negated words in intent identification", "nlpEngine" : "ML", "dataType" : "Boolean", "range" : [true,false], "defaultValue": true, "requiresTraining" : true, "language" : ["en", "es"], "isChild" : false }
다중 발생 무시
{ "configurationName" : "Ignore Multiple occurences", "configurationKeyName" : "binary", "desc" : "This setting enables to just use presence or absence of a term instead of the raw counts", "nlpEngine" : "ML", "dataType" : "Boolean", "range" : [true,false], "defaultValue": false, "requiresTraining" : true, "language" : ["en"], "isChild" : true, "parentConfiguration" : "network", "requiredParentInput" : ["MLP-BOW"] }
사용자 발화의 엔티티 플레이스홀더
{ "configurationName": "Test PlaceHolders", "configurationKeyName": "TestPlaceHolders", "desc": "Enable to replace entity values present in the user input with the corresponding entity placeholders during prediction", "nlpEngine": "ML", "dataType": "Boolean", "range": [true, false], "defaultValue": true, "requiresTraining": false, "language": "ALL", "isChild": false }
설정 삭제
설정을 삭제하려면 위 섹션에서 언급한 설정 이름을 다음과 같이 사용합니다.
curl --location -g --request POST \ 'https://{{host}}/api/public/bot/{{bot-id}}/configurations?language={{languageCode}}' \ --header 'auth: YOUR_JWT_ACCESS_TOKEN' \ --header 'content-type: application/json' \ --data-raw '{ "delete": { "advancedNLPSettings": [ "kfold" ] } }'
설정 재설정
설정을 재설정하려면 위 섹션에서 언급한 설정 이름을 다음과 같이 사용합니다.
curl --location -g --request POST \ 'https://{{host}}/api/public/bot/{{bot-id}}/configurations?language={{languageCode}}' \ --header 'auth: YOUR_JWT_ACCESS_TOKEN' \ --header 'content-type: application/json' \ --data-raw '{ "reset": { "faq": [ "pathCoverage", // Path Coverage "suggestionsCount", // KG suggestionsCount "minimumAndDefinitiveLevels", // Minimum and Definitive Level for Knowledge Tasks (will reset all three values) "taskMatchTolerance" // Proximity of Suggested Matches ], "ml": [ "exactMatchThreshold", // ML Definitive Score "minThreshold" // ML threshold ], "rr": [ "taskMatchTolerance", // Proximity of Probable Matches "minMatchVal" // Minimum Match Score ], "mlParams": [ "ngram", // ngram Sequence Length "seqLength", // Sequence Length "maxSkipDistance" // Maximum Skip Distance ] } }'
권한 부여
다음과 같이 헤더에 JWT와 API를 호출합니다. auth: {{JWT}}
콘텐츠 유형 응답
application/json
샘플 요청
curl --location -g --request POST \ 'https://{{host}}/api/public/bot/{{bot-id}}/configurations?language={{languageCode}}' \ --header 'auth: YOUR_JWT_ACCESS_TOKEN' \ --header 'content-type: application/json' \ --data-raw '{ "advancedNLPSettings": [ { "configurationKeyName": "NoneIntent", "configurationValue": true, "nlpEngine": "ML" } ], "configurations": [ { "mode": "ml", "exactMatchThreshold": 85, "useDependencyParser": true, "minThreshold": 0.2 }, { "mode": "faq", "useBotSynonyms": true, "searchInAnswer": { "enabled": true, "notifyUser": false, "responseType": "relevantWithReadMore", "customReadMoreURL": "aa", "useCustomReadMoreURL": true } } ], "mlParams": { "intentParams": { "features": "skip_gram", "skip_gram": { "seqLength": 3, "maxSkipDistance": 2 } } }, "nlSettings": { "enableAutoUtteranceAddition": false, "enableNegativePatterns": true } }'
샘플 응답
[ { "message": "Training Queued.", "Training_ID": "5d14b03edba48abcb44375a1" } ]