그 응용 프로그램에 Bot 기술이 정말 필요합니까?

10802 단어 BotFrameworkbot

계기



어떤 방향으로, 프로그래밍의 초보를 가르치고 있어, C 로 하고 싶었습니다만, C# 로부터 시작해 보았습니다.

발견 - Step.1 Console App



우선은 Console アプリケーション 로부터 시작해 보았습니다. Console.WriteLine() 입니다.

컴퓨터에 자신의 일을 부르고 싶으니까, 이름과 생년월일을 입력받아, 나이를 맞추는, 라고 하는 어플리케이션을 만들었습니다.

몇 가지 프로그래밍의 기본을 담기 위해서입니다.
  • 사용자와의 정보 교환
  • 순차 실행
  • 데이터 형식 존재 - 날짜 계산
  • 조건 분기 -> 반복

  • 이하, 지금, 내가 30분 정도로 만든 샘플 코드. 코드 자체에 큰 가치가 없기 때문에 ...
    using System;
    
    namespace ConsoleAppLikeBot
    {
        class Program
        {
            static void Main(string[] args)
            {
                // 1. あいさつ文作成
                var greetingMessage = MakeGreetingMessage(DateTime.Now.Hour);
                Console.WriteLine($"{greetingMessage}!");
    
                var customeName = "";
                while (customeName.Trim().Length==0)
                {
                    Console.WriteLine($"お名前を教えてください");
                    customeName = Console.ReadLine();
                }
    
    
                // 2. 誕生日を聞く
                DateTime? birthDate = null;
                while (birthDate == null)
                {
                    Console.WriteLine($"誕生日はいつですか?");
                    var inputDate = Console.ReadLine().Trim();
                    try
                    {
                        birthDate = DateTime.Parse(inputDate);
                    } catch (Exception e)
                    {
                        Console.WriteLine("入力したデータが日付の形式として処理できないか、存在していない日付の様です。");
                        birthDate = null;
                    }
                }
    
                Console.WriteLine($"{customeName}さん、ようこそ!");
                Console.WriteLine($"現在 { getAge(birthDate)} 歳ですね?");
    
                Console.WriteLine("ご利用ありがとうございました");
            }
    
            static string MakeGreetingMessage(int Time)
            {
                string message = "";
                if (Time < 3) {
                    message = "深夜までご苦労さまです";
                }
                else if (Time < 11)
                {
                    message = "おはようございます";
                }
                else if (Time > 15)
                {
                    message = "こんにちは";
                }
                else
                {
                    message = "こんばんわ";
                }
    
                return message;
    
    
            }
    
            static int getAge(DateTime? birthDay)
            {
                if (birthDay == null) return 0;
                int age = DateTime.Now.Year - birthDay.Value.Year;
                if (birthDay > DateTime.Now.AddYears(-age))
                {
                    age--;
                }
                return age;
            }
    
        }
    }
    
    

    움직이면 이런 느낌.
    こんばんわ!
    お名前を教えてください
    わたくし
    誕生日はいつですか?
    2000/1/1
    わたくしさん、ようこそ!
    現在 19 歳ですね?
    ご利用ありがとうございました
    

    그래서, 깨달았습니다.

    이것은 Bot 앱과 동일하지 않습니다.

    그렇습니다.
  • 사용자 입력을 기다립니다
  • 입력 결과에서 조건 분기
  • 어딘가에서 종료

  • 음, LUIS도 호출할 수 있네요. 어쩌면 말할 수도 있습니다.

    발견 - Step 2. WindowsForm을 만들어 보았다



    화면이있는 것이 즐겁기 때문에, 같은 처리를 WindowForms 로 구현해 보았습니다. 코드는 생략합니다.



    그래서 화면에 컨트롤을 놓고 깨달았습니다.

    순차적으로만 처리 할 수있는 Console Application과 비교하여 압도적으로 사용자도 프로그래머에게도 친절하지 않습니다!
  • 사용자가 항상 입력 상태를 확인할 수 있습니다
  • 날짜 전용 컨트롤. 쉬운 입력 값 확인
  • 완벽한 프로그래밍 모델

  • 그렇습니다.

    프로그래밍의 진화를 뒤쫓았을 뿐입니다만, 다시 실감한 것입니다.

    발견 - 자신의 몸을 둘러보고



    무엇이든 Bot이라는 풍조가 강하다고 생각합니다. 스마트 스피커도 괜찮습니다만, 엄청 복잡한 입력을 처리할 수 있는 것은 아닙니다.

    Chat Bot의 약점:
  • Bot과의 상호 작용이 5 회 정도를 초과하면 대다수가 이탈합니다 ...
  • 스마트폰에 말을 건 사람은 거의 부재
  • 목록이 나쁘다. 항목 수가 증가하면 사용자가 과거에 무엇을 말했는지 잊기 쉽습니다

  • 그리고 역시 스마트 폰이라면 :
  • 버튼으로 선택한다. 뭐라면 이미지로 설명.
  • Q & A는 검색이므로 솔직하게 검색에 가장 적합한 화면 구성을 만듭니다.

    쪽이 좋을까,라고 다시 생각한 대로입니다.

    요약



    전부터 Bot 앱에 대해 이렇게 생각했습니다.

    Bot은 단순한 웹 앱

    그리고 User Experience의 디자인이나 프로토 타입에 실제로 간단한 Console Application이 도움이 될 수 있습니까?

    Bot 앱이 정말로 필요한가? 복잡한 앱 + 인프라가 될 가치가 정말로 있습니까?

    잘 생각해 볼 수 있을까 생각합니다.

    봇 디자인의 원칙:
    htps : // / cs. mic로소 ft. 코 m / 그럼 jp / 아즈레 / 보 터 r ゔ ぃせ / ボ ー ト せ rゔぃえw=아즈레-보 t세 rゔぃ세-4.0
  • 좋은 웹페이지 즐겨찾기