gpt4 book ai didi

bots - 适用于 BOT 新手的带有 Direct line Rest API 的 Microsoft bot

转载 作者:行者123 更新时间:2023-12-01 08:52:49 26 4
gpt4 key购买 nike

我是 Microsoft bot 的新手。我的公司有自己的通信应用程序,我想将我的机器人与通信应用程序连接起来,我的客户可以在我公司的通信应用程序上使用我的机器人。我读到它需要使用 Direct Line 来做到这一点。但我真的不知道该怎么做。有人帮助我吗?或给我一些建议?或任何例子。非常感谢。

最佳答案

请引用 documentation关于 Bot 框架的直线方法。

你需要做的是使用 https://directline.botframework.com/api/conversations作为您的端点并调用这些 API,如文档中所示。

示例:- 我刚刚尝试使用 ASP.MVC 应用程序。我创建了一个文本框和按钮,用于向机器人提交消息。

  1. 首先在您的机器人应用程序中启用直接链接。然后记住这个 secret 。
  2. 以下代码示例向您展示了如何将您的聊天应用或公司应用与您使用机器人框架构建的机器人连接起来。

  3. 首先您需要授权您访问直接链接 API。

    client = new HttpClient();
    client.BaseAddress = new Uri("https://directline.botframework.com/api/conversations/");
    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("BotConnector", "[Your Secret Key Here]");

    response = await client.GetAsync("/api/tokens/");

    if (response.IsSuccessStatusCode)

  4. 如果您之前的回复成功,您可以开始新的对话型号 -

    公开课对话{ 公共(public)字符串 session ID { 获取;放; } 公共(public)字符串 token { 获取;放; } 公共(public)字符串 eTag { 获取;放; }}

Controller 内的代码 -

 var conversation = new Conversation();
response = await client.PostAsJsonAsync("/api/conversations/",conversation);
if (response.IsSuccessStatusCode)

如果您成功响应此响应,您将获得 conversationId 和一个 token 以开始消息传递。

  1. 然后通过以下代码将您的消息传递给机器人,

    对话 ConversationInfo = response.Content.ReadAsAsync(typeof(Conversation)).Result as Conversation; string conversationUrl = ConversationInfo.conversationId+"/messages/"; 消息 msg = new Message() { text = message }; 响应 = 等待 client.PostAsJsonAsync(conversationUrl,msg); if (response.IsSuccessStatusCode)

如果您收到成功响应,则表示您已将消息发送到机器人。现在您需要从 BOT 获取回复消息

  1. 要从机器人获取消息,

    响应 = 等待 client.GetAsync(conversationUrl);if (response.IsSuccessStatusCode){MessageSet BotMessage = response.Content.ReadAsAsync(typeof(MessageSet)).Result as MessageSet;ViewBag.Messages = BotMessage;IsReplyReceived = true;}

在这里你得到一个消息集,这意味着你发送的消息和来自 Bot 的回复。您现在可以在聊天窗口中显示它。

消息模型 -

 public class MessageSet
{
public Message[] messages { get; set; }
public string watermark { get; set; }
public string eTag { get; set; }
}

public class Message
{
public string id { get; set; }
public string conversationId { get; set; }
public DateTime created { get; set; }
public string from { get; set; }
public string text { get; set; }
public string channelData { get; set; }
public string[] images { get; set; }
public Attachment[] attachments { get; set; }
public string eTag { get; set; }
}

public class Attachment
{
public string url { get; set; }
public string contentType { get; set; }
}

使用这些 API 调用,您可以轻松地将任何自定义聊天应用程序与机器人框架连接起来。下面是一种方法中的完整代码,供您了解如何归档目标。

 private async Task<bool> PostMessage(string message)
{
bool IsReplyReceived = false;

client = new HttpClient();
client.BaseAddress = new Uri("https://directline.botframework.com/api/conversations/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("BotConnector", "[Your Secret Code Here]");
response = await client.GetAsync("/api/tokens/");
if (response.IsSuccessStatusCode)
{
var conversation = new Conversation();
response = await client.PostAsJsonAsync("/api/conversations/", conversation);
if (response.IsSuccessStatusCode)
{
Conversation ConversationInfo = response.Content.ReadAsAsync(typeof(Conversation)).Result as Conversation;
string conversationUrl = ConversationInfo.conversationId+"/messages/";
Message msg = new Message() { text = message };
response = await client.PostAsJsonAsync(conversationUrl,msg);
if (response.IsSuccessStatusCode)
{
response = await client.GetAsync(conversationUrl);
if (response.IsSuccessStatusCode)
{
MessageSet BotMessage = response.Content.ReadAsAsync(typeof(MessageSet)).Result as MessageSet;
ViewBag.Messages = BotMessage;
IsReplyReceived = true;
}
}
}

}
return IsReplyReceived;
}

谢谢你的机器人。

关于bots - 适用于 BOT 新手的带有 Direct line Rest API 的 Microsoft bot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37518770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com