Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Botframework 使用azurebot服务和cosmos db的访谈机器人,用于提问_Botframework_Azure Cosmosdb_Azure Bot Service - Fatal编程技术网

Botframework 使用azurebot服务和cosmos db的访谈机器人,用于提问

Botframework 使用azurebot服务和cosmos db的访谈机器人,用于提问,botframework,azure-cosmosdb,azure-bot-service,Botframework,Azure Cosmosdb,Azure Bot Service,我想使用azure bot服务创建一个面试机器人,并想使用cosmos db来回答面试问题。这可能吗?需要帮助和建议。不清楚您的体系结构是什么,以使机器人真正工作,以及是否有任何限制,但我假设您使用的是C语言,并将Bot托管在C Web应用程序中 您可以使用本文作为基础 它不仅展示了如何存储用户数据,还展示了如何将状态存储在Cosmos DB中(这实际上更好,因为您可以获得Cosmos DB的性能优势,并且还超过了Cosmos DB的32Kb限制) 在这篇文章之后,您将在Cosmos DB中存储

我想使用azure bot服务创建一个面试机器人,并想使用cosmos db来回答面试问题。这可能吗?需要帮助和建议。

不清楚您的体系结构是什么,以使机器人真正工作,以及是否有任何限制,但我假设您使用的是C语言,并将Bot托管在C Web应用程序中

您可以使用本文作为基础

它不仅展示了如何存储用户数据,还展示了如何将状态存储在Cosmos DB中(这实际上更好,因为您可以获得Cosmos DB的性能优势,并且还超过了Cosmos DB的32Kb限制)

在这篇文章之后,您将在Cosmos DB中存储:

  • 用户数据存储:存储特定于用户的数据

  • 会话存储:存储特定于会话的数据

  • 私有会话存储:存储会话中特定于用户的数据

如果要存储聊天线路,默认情况下Bot框架不会这样做。您必须创建一个实现
IActivityLogger
的类,并让用户知道您正在存储聊天记录

public class CosmosDBActivityLogger : IActivityLogger
{
    private readonly DocumentClient _client;
    private readonly string _collectionUri;

    public ServiceBusActivityLogger(DocumentClient client, string databaseName, string collectionName)
    {
        this._client = DocumentClient;

        // This is the collection where you want to store the chat
        this._collectionUri = UriFactory.CreateDocumentCollectionUri(databaseName, collectionName);
    }

    public async Task LogAsync(IActivity activity)
    {
        var message = activity.AsMessageActivity();
        // At this point you might want to handle your own Activity schema or leave the default

        // Not handling errors for simplicity's sake, but you should

        this._client.CreateDocumentAsync(this._collectionUri, message);
    }
}
然后,您必须在声明Bot容器的任何位置添加记录器,例如,在
Global.asax

protected void Application_Start()
    {
        var builder = new ContainerBuilder();
        builder.RegisterType<CosmosDBActivityLogger>().AsImplementedInterfaces().InstancePerDependency();
        builder.Update(Conversation.Container);    

        GlobalConfiguration.Configure(WebApiConfig.Register);
    }
受保护的无效应用程序\u Start()
{
var builder=new ContainerBuilder();
builder.RegisterType();
builder.Update(Conversation.Container);
GlobalConfiguration.Configure(WebApiConfig.Register);
}

有关如何注册中间件的更多信息。

我已使用cosmos db存储机器人转换历史记录。现在我想使用cosmos db存储面试机器人的问题和答案,但我不知道如何执行。您能更详细地描述一下您的数据模式吗?机器人中的问题和答案确实是对话历史记录的一部分,您可以将其保存在文章中所述的
PrivateConversationData
中。最好不要在评论中开始问答讨论(尤其是在答案下方)。如果你想进一步讨论,我建议你把这个带到(chat.stackoverflow.com),我同意大卫的说法@用户3807114如果您向问题添加更多详细信息,我可以编辑并提供有关答案的更多信息,否则请参阅文章和关于PrivateConversationData的部分。你好,Matias Quaranta,我正在使用Azure机器人服务创建面试机器人。我需要的是机器人应该接受候选人的面试(只是初步筛选)。因此,每当用户与我的机器人交互时,面试过程将开始,它将通过从我的cosmos db获取一些问题。我想现在您已经清楚了。我需要帮助如何从cosmos db获取问题。