public async Task <ActionResult <AIResponse> > Query(QueryModel request) { String clientAccessToken = (User.Identity as ClaimsIdentity).Claims.FirstOrDefault(x => x.Type == "UserId")?.Value; // find a model according to clientAccessToken var agents = await builder.GetAllAgents(); var agent = agents.FirstOrDefault(x => x.ClientAccessToken == clientAccessToken); if (agent == null) { return(BadRequest("The agent not found.")); } var aIResponse = await builder.TextRequest <AIResponseResult>(new AiRequest { Text = request.Query, AgentId = agent.Id, SessionId = request.SessionId }); return(new AIResponse { Result = aIResponse, Id = Guid.NewGuid().ToString(), Lang = request.Lang, SessionId = request.SessionId, Status = new AIResponseStatus(), Timestamp = DateTime.UtcNow }); }
public async Task <ActionResult <AIResponse> > Query(QueryModel request) { String clientAccessToken = (User.Identity as ClaimsIdentity).Claims.FirstOrDefault(x => x.Type == "UserId")?.Value; // find a model according to clientAccessToken AgentModel agent = null; string projectsPath = Path.Combine(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "Projects"); string[] d1 = Directory.GetDirectories(projectsPath); for (int i = 0; i < d1.Length; i++) { string[] d2 = Directory.GetDirectories(d1[i]); var raw = Path.Combine(d1[i], "tmp"); if (!Directory.Exists(raw)) { continue; } string metaJson = System.IO.File.ReadAllText(Path.Combine(raw, "meta.json")); var meta = JsonConvert.DeserializeObject <AgentImportHeader>(metaJson); if (meta.ClientAccessToken == clientAccessToken) { agent = await builder.GetAgentById(meta.Id); break; } } ; if (agent == null) { return(BadRequest("The agent not found.")); } var aIResponse = builder.TextRequest(new AiRequest { Text = request.Query, AgentId = agent.Id, SessionId = request.SessionId }); return(null); }