1
1
mirror of https://github.com/leon-ai/leon.git synced 2024-12-26 10:14:57 +03:00

feat: tmp resolvers mapping

This commit is contained in:
louistiti 2022-05-23 23:19:25 +08:00
parent e88495a9a9
commit b1a332bab6
No known key found for this signature in database
GPG Key ID: 7ECA3DD523793FE6
3 changed files with 14 additions and 1 deletions

View File

@ -20,7 +20,7 @@ def main():
'current_entities': intent_obj['current_entities'], 'current_entities': intent_obj['current_entities'],
'entities': intent_obj['entities'], 'entities': intent_obj['entities'],
'current_resolvers': intent_obj['current_resolvers'], 'current_resolvers': intent_obj['current_resolvers'],
'resolvers': intent_obj['resolvers'] 'resolvers': intent_obj['resolvers'],
'slots': intent_obj['slots'] 'slots': intent_obj['slots']
} }

View File

@ -185,6 +185,8 @@ class Brain {
utterance: obj.utterance, utterance: obj.utterance,
current_entities: obj.currentEntities, current_entities: obj.currentEntities,
entities: obj.entities, entities: obj.entities,
current_resolvers: obj.currentResolvers,
resolvers: obj.resolvers,
slots: obj.slots slots: obj.slots
} }

View File

@ -21,6 +21,8 @@ const defaultNluResultObj = {
utterance: null, utterance: null,
currentEntities: [], currentEntities: [],
entities: [], entities: [],
currentResolvers: [],
resolvers: [],
slots: null, slots: null,
nluDataFilePath: null, nluDataFilePath: null,
answers: [], // For dialog action type answers: [], // For dialog action type
@ -159,10 +161,19 @@ class Nlu {
) )
const processedData = await this.brain.execute(this.nluResultObj, { mute: opts.mute }) const processedData = await this.brain.execute(this.nluResultObj, { mute: opts.mute })
console.log('processedData', processedData)
const expectedItems = processedData.action.loop.expected_items.map(({ name }) => name) const expectedItems = processedData.action.loop.expected_items.map(({ name }) => name)
// TODO: also check for resolvers, not only entities // TODO: also check for resolvers, not only entities
const hasMatchingItem = processedData const hasMatchingItem = processedData
.entities.filter(({ entity }) => expectedItems.includes(entity)).length > 0 .entities.filter(({ entity }) => expectedItems.includes(entity)).length > 0
|| processedData
.resolvers.filter(({ resolver }) => expectedItems.includes(resolver)).length > 0
console.log('expectedItems', expectedItems[0])
// TODO: only process expected_items includes resolvers
const testo = await this.nlp.process(utterance)
console.log('testo', testo)
// this.nluResultObj.resolvers = await this.resolveResolvers()
// Ensure expected items are in the utterance, otherwise clean context and reprocess // Ensure expected items are in the utterance, otherwise clean context and reprocess
if (!hasMatchingItem) { if (!hasMatchingItem) {