public Object GetKBsql(string q, string domain, string intentdomain) { try { if (string.IsNullOrEmpty(q)) { return(null); } TestIntent testDal = new TestIntent(); string buf = ""; var relist = testDal.Query(domain, intentdomain, q, out buf); Intent intent = JsonConvert.DeserializeObject <Intent>(buf); //Intent intent = new Answer(domain).GetIntent(q, domain); if (intent == null || intent.qt_parsed_rst == null) { return(new { msg = "意图未识别" }); } Dictionary <string, List <QexFilter> > kbsql = new KBCustSql().GetKsql(intent); Dictionary <string, List <dynamic> > data = new Dictionary <string, List <dynamic> >(); foreach (var sql in kbsql) { //单个结果集多个结果集sql List <dynamic> ldy = new List <dynamic>(); foreach (var ex in sql.Value) { dynamic dy = new ExpandoObject(); dy.sql = ex.Qex.Render(); /*dy.order= ex.Qex.ExpModel.Order.Render(); * dy.group = ex.Qex.ExpModel.Group.Render(); * dy.top = ex.Qex.ExpModel.TOP;*/ if (ex.Filter != null && ex.Filter.Count > 0) { List <string> fsql = new List <string>(); foreach (var fex in ex.Filter) { fsql.Add(fex.ExpFilter.Render()); } dy.filtersql = fsql; } ldy.Add(dy); } //sql 字典 data.Add(sql.Key, ldy); } if (data.Count == 0) { return(new { msg = "意图已识别,但没有生成sql" }); } return(new { data }); } catch (Exception ex) { return(new { msg = ex.ToString() }); } }
public override void OnBeginTest(TestIntent testIntent) { var task = TryGetTask(testIntent); if (task != null) { _server.TaskStarting(task); } }