团队机器人超时

问题描述 投票:0回答:1

我已经创建了一个正在开发的 Teams 机器人。它旨在调用 REST API。我注意到,如果 API 响应时间超过 30 秒,则会抛出“操作已取消”异常。我在 Bot Framework 文档中发现机器人必须在 15 秒内响应 HTTP 200 代码。

如何解决 Teams 机器人的 15 秒限制?

如果 REST API 响应速度很快,此代码可以正常工作,但如果需要接近 30 秒,我会收到操作取消异常。

        public async Task<ICommandResponse> HandleCommandAsync(ITurnContext turnContext, CommandMessage message, CancellationToken cancellationToken = default)
        {
            var client = new HttpClient();
            var request = new HttpRequestMessage(HttpMethod.Post, "https://RESTENDPOINT/"
            var dataText = message.Text;

            Message msg = new Message() { role = "user", content = message.Text };
            ChatParams chatParams = new ChatParams() { model = "gpt-4-1106-preview", temperature = 0.3f, messages = new List<Message>() { msg }, stream = false };
            RequestBody requestBodyObject = new RequestBody() { chat_params = chatParams, conversation_id = 1, assistant_id = 1, uuid = Guid.NewGuid().ToString() };


            var requestBody = JsonConvert.SerializeObject(requestBodyObject);


            var content = new StringContent(requestBody, null, "application/json");
            request.Content = content;
            var response = await client.SendAsync(request);
            response.EnsureSuccessStatusCode();
            string responseText = await response.Content.ReadAsStringAsync();

            ChatCompletion chatCompletion = JsonConvert.DeserializeObject<ChatCompletion>(responseText);

            var responseContent = chatCompletion.choices[0]?.message.content;

            _logger.LogInformation(responseContent);

            return new TextCommandResponse(responseContent);


        }

microsoft-teams teams-toolkit
1个回答
0
投票

对此的一些提示:

  1. 您可以向用户发送“打字”活动,向他们展示正在发生的事情(它显示三个小动画点) - 我认为这甚至可能会给您超过 30 秒的时间,因为 first 响应在 30 秒内秒。查看更多这里。重要的是,-实际-动画目前在“新”团队中不起作用 - 请参阅 Bot Framework Typing 指示器在新的 MS 团队(工作或学校)中不起作用

  2. 您可以使用各种 SDK 之一,而不是直接调用 OpenAI 端点,这使得编码更容易。有趣的是,Microsoft 的 SDK 支持 Azure Open AI 以及直接调用 Open AI 的端点 - 请参阅 https://www.nuget.org/packages/Azure.AI.OpenAI/

  3. 通常,您实际上会发现Azure开放式AI实例的响应速度比直接调用开放式AI端点快得多(Azure开放式AI是相同的模型,但托管在Azure基础设施中,对于几个可能的原因)。 然而gpt-4-1106-preview

    模型,可能是因为它是“预览”,所以速度非常慢。一旦达到 GA,它可能会加速。

© www.soinside.com 2019 - 2024. All rights reserved.