/// <summary> /// Initializes a new instance of the <see cref="LuisNLUTrainClient"/> class. /// </summary> /// <param name="luisConfiguration">LUIS configuration.</param> /// <param name="luisSettings">LUIS settings.</param> /// <param name="luisClient">LUIS client.</param> public LuisNLUTrainClient(ILuisConfiguration luisConfiguration, LuisSettings luisSettings, ILuisTrainClient luisClient) { this.LuisConfiguration = luisConfiguration ?? throw new ArgumentNullException(nameof(luisConfiguration)); this.LuisSettings = luisSettings ?? throw new ArgumentNullException(nameof(luisSettings)); this.LuisClient = luisClient ?? throw new ArgumentNullException(nameof(luisClient)); this.LuisAppId = luisConfiguration.AppId; }
/// <summary> /// Initializes a new instance of the <see cref="LuisNLUService"/> class. /// </summary> /// <param name="appName">App name.</param> /// <param name="appId">App ID.</param> /// <param name="versionId">Version ID.</param> /// <param name="luisSettings">LUIS settings.</param> /// <param name="luisClient">LUIS client.</param> public LuisNLUService(string appName, string appId, string versionId, LuisSettings luisSettings, ILuisClient luisClient) { this.LuisAppId = appId; this.LuisVersionId = versionId ?? "0.1.1"; this.LuisSettings = luisSettings ?? throw new ArgumentNullException(nameof(luisSettings)); this.LuisClient = luisClient ?? throw new ArgumentNullException(nameof(luisClient)); this.AppName = appName ?? ((appId == null && luisSettings.AppTemplate.Name == null) ? throw new ArgumentNullException(nameof(appName), $"Must supply one of '{nameof(appName)}', '{nameof(appId)}', or '{nameof(Luis.LuisSettings)}.{nameof(Luis.LuisSettings.AppTemplate)}'.") : appName); }
/// <inheritdoc/> public INLUTestClient CreateTestInstance(IConfiguration configuration, string settingsPath) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var luisSettings = settingsPath != null ? LuisSettings.FromJson(JObject.Parse(File.ReadAllText(settingsPath))) : new LuisSettings(); var luisConfiguration = new TestLuisConfiguration(configuration); var luisClient = new LuisTestClient(luisConfiguration); return(new LuisNLUTestClient(luisSettings, luisClient)); }
/// <summary> /// Initializes a new instance of the <see cref="LuisNLUTestClient"/> class. /// </summary> /// <param name="luisSettings">LUIS settings.</param> /// <param name="luisClient">LUIS test client.</param> public LuisNLUTestClient(LuisSettings luisSettings, ILuisTestClient luisClient) { this.LuisSettings = luisSettings ?? throw new ArgumentNullException(nameof(luisSettings)); this.LuisClient = luisClient ?? throw new ArgumentNullException(nameof(luisClient)); }
public static JSONUtterance ToJSONUtterance(this Models.LabeledUtterance utterance, LuisSettings luisSettings) { JSONEntity toJSONEntity(Entity entity) { var startPos = entity.StartCharIndexInText(utterance.Text); var endPos = startPos + entity.MatchText.Length - 1; if (luisSettings.Roles.TryGetValue(entity.EntityType, out var entityType)) { return(new JSONEntityWithRole(startPos, endPos, entityType, entity.EntityType)); } entityType = luisSettings.PrebuiltEntityTypes.TryGetValue(entity.EntityType, out var builtinType) ? builtinType : entity.EntityType; return(new JSONEntity(startPos, endPos, entityType)); } return(new JSONUtterance( utterance.Text, utterance.Intent, utterance.Entities?.Select(toJSONEntity).ToArray() ?? Array.Empty <JSONEntity>())); }