블로그 이미지
* Microsoft MVP - Windows Development 2014 ~ 2019 5ring * LINE : kaki104 * facebook : https://www.facebook.com/kaki104 https://www.facebook.com/groups/w10app/ kaki104

카테고리

List All (551)
Xamarin Forms (4)
Bot Framework (19)
Azure (9)
Windows 10 (35)
Facebook News & Tips (158)
Windows App(Universa.. (83)
Windows 8&8.1 (113)
Windows Phone 8 (42)
Silverlight (37)
HTML5 & MVC4 (16)
WPF (1)
Portable Class Library (2)
Uncategorised Tips a.. (3)
Kinect for Windows (2)
ETC (12)
kaki104 Scrap (4)
App News (11)
Total521,316
Today35
Yesterday108

대화한 내용을 찾아보기 위해서 Log나 History 기능을 검색했고, 아래와 같은 결론을 내렸습니다. 참고하세용


음..이미지는 Log 이미지입니다. 흐흐흐;;;




1. How can i get all the chat history of bot and the user ?

https://github.com/Microsoft/BotBuilder/issues/2073#issuecomment-273982401


이슈 트래킹에 따르면, 대화 내용은 private하기 때문에 대부분의 봇들이 히스토리 기능을 기본 제공을 하지 않는다고 합니다. 히스토리가 필요하면 직접 구현해야한다고..



2. 간단하게 구현하는 방법은 내부에 IList<string> 이나 IDictionary<string,string>을 이용해서 간단하게 저장했다가 사용하는 방법이 있습니다.


    public sealed class WillActivityLogger : IActivityLogger
    {
        async Task IActivityLogger.LogAsync(IActivity activity)
        {
            //log here
            var message = activity.AsMessageActivity();
            var id = string.IsNullOrEmpty(message.Id) ? "BotToUser" : message.Id;
            Debug.WriteLine($"Id : {id}, Text : {message.Text}");
        }
    }


    [BotAuthentication]
    public class MessagesController : ApiController
    {
        static MessagesController()
        {
            var builder = new ContainerBuilder();
            builder.RegisterType<WillActivityLogger>().AsImplementedInterfaces().InstancePerDependency();
            builder.Update(Conversation.Container);
        }

        ...

    }


기본 MessageController를 약간 수정한 것 입니다. 로그를 남기는 sealed class를 하나 생성하고, 기능을 구현한 후, MessagesController가 생성되는 시점에 로그를 남길 수 있도록 쑤셔 넣는 것입니다.



Id : 63ddlg3dk2cnmk847c, Text : 좋아하는 음식은 뭐에요?
Id : BotToUser, Text : 할로~ 카키봇입니다.


위와 같은 로그를 Output 창에서 볼 수 있습니다.



3. 이슈 트래킹 아래로 계속 내려가면 Azure table storage에 로그를 남기는 방법에 대해서도 간단하게 나옵니다. 봇 프레임웍이 내부적으로 남기는 로그는 1mb이내이기 때문에 그 이상의 데이터를 남겨야 하는 경우에 사용하기를 바란다는 내용이 있네요..



4. 이슈 트래킹 더~ 하단에는  LogPostToBot and LogBotUser. 것을 이용하세요라고 안내를 하기도 합니다. 아마 이 부분에 대한 요구가 많았던 것 같습니다. 이렇게 만들어 줄거면;;; 그냥 첨부터 기능 넣어주지..



그래서 최종적으로 로그를 남기고 싶다면 별도록 구현해야하며, 1mb이상은 별도 서비스를 이용하여야 한다.. 정도가 될 것 같습니다.



추가로 아래 내용도 있습니다. 뭐 비슷한 내용입니다만..

http://stackoverflow.com/questions/41309532/how-to-log-a-chat-conversation-with-bot-framework-c-sharp-bot-builder

Posted by MVP kaki104

티스토리 툴바