이 모델에서는 외부 플러그인 기능을 갖춘 기본 AI 인터페이스를 만들었습니다. 인터페이스 AI_Contracts는 AI와의 인터페이스를 가능하게 합니다. 인터페이스를 구현하고 컴파일된 DLL을 APPPlugins 폴더에 배치하면 AI_Interface가 사용자에게 반환할 응답을 얻는 플러그인을 검색하고 호출할 수 있습니다. 이 프로젝트는 4단계로 설계되었습니다. 각 단계 또는 이정표를 통해 Chatbot의 개발 및 확장이 공개 출시될 가치가 있는 풍부한 제품이 될 수 있습니다.
여기서 인터페이스에는 텍스트를 통한 입력 및 출력을 위한 기본 디자인이 제공됩니다. 채팅 기록을 유지합니다. 이 인터페이스를 사용하면 인터페이스의 기본 테스트가 가능합니다. 아바타가 추가되지 않았습니다. 이는 아바타가 필수적인 것이 아니라 장식적인 것이기 때문이기도 합니다. 첫 번째 단계에서는 주로 기능적 인터페이스를 생성하는 데 중점을 둡니다.
이는 사용자가 AI에서 실행할 수 있는 스크립트를 설계할 수 있도록 하는 메커니즘입니다. 시작 단계에서; 메카니심을 제공하는 것이 핵심입니다. 사용된 초기 인터페이스는 구현에 필요한 클래스의 구조만 제공합니다. 사용자 함수는 지정된 위치에서 발견된 이 유형의 모든 개체에 대해 기본 스크립트에 의해 호출됩니다. 이는 광범위한 확장성을 가능하게 합니다. 여기에는 도우미 스크립트로 사용하기 위해 확장 및 내부 기능 또는 AI 프레임워크를 사용자에게 제공할 수 있는 지점도 있습니다.
AI의 첫 번째 릴리스에서는 인터페이스 테스트를 위해 샘플 플러그인도 생성됩니다. SAMPLE_PLUGIN 이는 추가 플러그인 생성을 위한 템플릿도 제공합니다. ###참고: 작은 버그!!!!! AI_Contracts.Dll을 플러그인과 함께 플러그인 폴더에 배포해야 합니까? 플러그인 분리를 위한 상대 참조. 플러그인이 애플리케이션과 동일한 폴더에 있을 때 애플리케이션은 계속해서 읽기를 시도하고 충돌하므로 별도의 폴더가 필요했습니다. MAN EXE는 또한 AI_Contacts DLL SO에 액세스해야 합니다...
이중 배포!.
이 단계에서는 질문과 답변 데이터베이스를 제공하여 내부 메모리 기능을 만듭니다. 여기에서는 애플리케이션 사용자에게 시작점을 제공하는 간단한 질문 및 답변 스타일 응답을 만들 수 있습니다. 각 턴이 데이터베이스에 저장되는 구현이 있지만. 이 반복에서는 SUPERVISED 방법에 더 중점을 두도록 선택되었습니다. 데이터베이스 편집기가 제공되어야 합니다. 그러나 이는 이후 단계에서 제공될 예정입니다. 실행 순서는 플러그인 먼저, 질문 및 답변 두 번째로 응답 검색의 우선순위를 지정할 수 있습니다. AI가 응답하지 않는 경우를 처리하려면 대체 응답도 필요합니다.
상태 기계는 감정 상태를 유지하는 메커니즘을 제공할 수 있습니다. 이 반복에서는 감정 상태 개체에 대한 구조를 제공하기 위해 인터페이스가 사용되었습니다. 각 상태는 핸들러에 로드됩니다. 스크립트를 돌릴 때마다 감정이 감지되어 현재 보유하고 있는 감정을 긍정적, 부정적으로 조정하여 감정을 구체화할 수 있습니다. 여기서는 감정 상태가 변화함에 따라 일반적인 반응이 제공됩니다. 상태 기계를 사용하여 다른 형태의 상태도 차례대로 수행할 수 있습니다. 이전 프로그래밍 방법은 종종 "여행 변수"를 활용했지만 종종 상태를 감정적 왜곡에 대한 유한 몫 값으로 대체했습니다. IE 행복 = 0.78, 슬픈 0.23; 이 기술은 감정의 강도를 허용하지 않습니다. 감정의 강도가 증가합니다. 즉, 다음 턴에 행복이 감지되면 행복이 증가합니다. 하지만 다음 감정이 단순히 중립적이면 감소합니다. 강도 수준이 상태를 중립으로 변경할 수 있는 값 0으로 감소할 때까지.
플러그인을 코딩하고 컴파일하는 기능은 챗봇 인터페이스를 통해 제공될 수 있습니다. 여기서는 플러그인 생성을 위한 탭 인터페이스를 제공했습니다. 1단계에서 구현한 템플릿은 사용자가 편집하고 확장할 수 있는 시작 예제 스크립트를 제공하는 데 사용됩니다. 스크립트 저장 및 스크립트 컴파일이 제공됩니다.
질문 및 답변 파일을 편집하기 위한 데이터 편집기도 각 테이블에 대해 생성됩니다.
여기에서는 기능을 UserScripting 프레임워크로 정렬하고 확장하는 코드를 리팩터링합니다. 리팩토링 프로세스와 주석 달기를 통해 나중에 애플리케이션을 편집하고 개선할 수 있습니다. 사용자에게 이해를 제공합니다.
Rich UI를 제공하려면 음성도 필요하지만 음성 인식은 시간이 지남에 따라 향상되었습니다. 주로 Speech out을 위해 추가될 예정입니다.
일부 그래픽 개선 사항과 테마가 앱에 추가됩니다. (아마도 LCARS _ Star trek Design!)
AI_Contracts 구성 요소에 대한 배포 및 중앙 집중식 액세스의 경우: SpydazWb.AI.Contracts와 같은 NUGET을 사용하여 라이브러리를 중앙 집중화하기로 결정했습니다. 이를 통해 플러그인 생성 및 최적의 전달을 위해 추가 업데이트를 중앙 집중화할 수 있습니다. 이 시점에서 AI_Contracts SourceCode도 프로젝트에서 제거되었으며 NUGET 참조 어셈블리로 추가되었습니다. 이제 AI_Contracts 프로젝트를 UI 및 플러그인과 별도로 개발할 수 있습니다. 플러그인은 Nuget과 별도로 중앙 집중식 소스에 Nuget 패키지로 배포될 수도 있습니다. 즉, 중앙화된 웹사이트입니다!