Open-Source-Dialogsystem Natural Language Processing Engine?

Einleitung und Ziel

Ich bin daran interessiert, Conversational Commerce Chat Apps (möglicherweise in Ruby-Sprache) zu entwickeln [1].

Eine Dialogsystem-Engine?

Insbesondere möchte ich eine Dialogsystem-Engine implementieren , eine Server-Middleware für natürliche Sprache, die von Geschäftsanwendungen verwendet wird, um bestimmte deterministische Geschäftsaktionen (Online-Shopping: Bestellungen aufgeben, Buchen: eine Reservierung aufgeben, beliebige Dienstleistungen erbringen) von Bots auszuführen, die im Chat sofort ausgeführt werden Messaging-Plattformen wie http://www.Telegram.org (über Bot-APIs, siehe mein Projekt [2][7]) oder Teamarbeits-Chat wie http://www.slack.com oder was auch immer für Bot-APIs von IM-Systemen bereitgestellt werden (vielleicht bald: Messenger/Whatsapp, Google Chat, etc. etc.).

API.ai / WIT.ai-Ansatz

Ich studiere jetzt diese zwei ähnlichen Dialogsystem-Cloud-/proprietären Engines: http://api.ai und http://wit.ai (siehe interessante Einführungsartikel von Patrick Cantazariti: [4][5][6] und my Anmerkungen zu exzellenter API.ai: [9][10]).

Diese Plattformen haben einen ziemlich ähnlichen Ansatz (den jemand euristische/pragmatische Systeme oder Dialogskriptsysteme nennt ), bei dem eine Konversationsanwendung ( in der api.ai-Terminologie als Agent oder im Fall von wit.ai als App bezeichnet) als eine Reihe von Absichten modelliert wird auf Entitäten in bestimmten Domänen einwirken , Ihnen ermöglichen, umsetzbare Daten zu sammeln und so eine Konversation zu implementieren, die Daten sammelt, um das zu tun , was ich ein deterministisches Ziel nenne (z. B. eine E-Commerce-Bestellung aufgeben, ein Zimmer in einem Hotel reservieren usw. usw.).

Ich bin der Meinung, dass der obige Ansatz zum Modellieren einer Konversation (Dialog als Domänen / Entitäten / Absichten / Kontexte / umsetzbare Daten modelliert ) ein guter Kompromiss ist zwischen:

  • eine riesige/komplexe „Künstliche Intelligenz“-Dialog-Engine, die „jeden“ Satz von Benutzern in natürlicher Sprache verstehen muss (z.

  • und ein fest codierter Ansatz, wie ich es bei meinem bescheidenen experimentellen Projekt "dialogs" [3] getan habe, wo ich eine Konversation als eine Zusammensetzung von Dialogen modelliert habe, wobei jeder Dialog eine Art endliche Zustandsmaschine ist.

Einige Anmerkungen/Probleme

  1. Datenprivatsphäre

    API.ai und WIT.ai haben eine großartige Webschnittstelle, um einfach Dialoge aufzubauen, aber ich sehe ein großes Problem: Um einen E-Commerce-Workflow anhand eines Beispiels zu modellieren, müssen Benutzerentitäten definiert werden, in denen die persönlichen Daten der Anwendung und der Benutzer müssen auf dem proprietären Cloud-System (z. B. API.ai) „eingenommen“/gespeichert werden; das ist ein Datenschutzproblem; Meiner Meinung nach ist es schlecht, dass die endgültige Geschäftsanwendung und die persönlichen Benutzerdaten auf einem einzigen (proprietären) Cloud-System verwaltet werden.

  2. Software-Öffnung

    • Ein möglicher Wunsch ist eine Open-Source-Software, die auf privaten Servern instanziiert wird, um die Daten privat zu halten. Alles in allem muss diese „Dialogsystem“-Plattform als Datenbank (DBMS) dienen: Betrachten wir Postgresql/REDIS als großartiges Beispiel für das Paradigma einer offenen Softwaredienstplattform: Jeder Entwickler installiert seine eigene Datenbankserverinstanz, auf der er seine privaten Daten speichert.

    • So etwas wie API.ai als offene Software zu haben, könnte auch dabei helfen, Dialogskripte für den Austausch von Dialogagenten zu TEILEN und vielleicht einen gemeinsamen Standard zu erreichen (Textdateien können einfach heruntergeladen/hochgeladen werden).

Die Hauptfrage

  1. Es gibt etwas Ähnliches wie API.ai, aber Open Source? Wenn nicht:
  2. Besteht Interesse, jetzt eine Community aufzubauen, um ein ähnliches Projekt zu erstellen?

Jeder Vorschlag/Kommentar/Antwort willkommen.

giorgio

Verbindungen:

[1] mein Mikroblog
[2] BOTServer auf Github
[3] ((Dialoge)) auf GitHub
[4] Fünf einfache Möglichkeiten, künstliche Intelligenz im Jahr 2016 zu
entwickeln [5] Wie man seinen eigenen KI-Assistenten mit Api.ai baut
[6] Anpassen Ihres Api.ai-Assistenten mit Absicht und Kontext
[7] Telegram Bot API
[8] Willkommen bei Slack API
[9] Was sind Kontexte und wie werden sie verwendet?
[10] API.ai vs. Sirius?

Willkommen und Glückwunsch! Ich glaube, das ist das erste Mal, dass das Wort Desiderata in dieser SE verwendet wird.

Antworten (1)

Hier sind ein paar Ressourcen, die ich gefunden habe und die ein Open Source "Dialogsystem" bereitstellen.

  1. https://github.com/superscriptjs/superscript (Javascript) Ich habe das gerade gestern lokal ausgeführt, mit der Telnet-Schnittstelle für Regeln sieht es interessant aus. Es gibt ein Beispiel mit Websockets; aber ich habe das noch nicht zum Laufen gebracht.

  2. https://github.com/plison/opendial (Java) Ich habe das gerade entdeckt und noch nicht ausprobiert.

Das interessiert mich auch. Dieser Bereich der Entwicklung von "Dialogsystemen" scheint sich schnell zu verändern und eine Menge Ressourcen zu erhalten. Ich denke, die intuitivere Einrichtung und Konfiguration, wie sie wi.ai bietet (ich habe api.ai noch nicht verwendet), ist ein notwendiges Stück, das in Open Source fehlt. Ich würde gerne an etwas arbeiten (vorausgesetzt, wir alle finden die Zeit); Ich würde gerne etwas sehen, das mit NodeRed für eine Schnittstelle gebaut wurde, um dann das "Dialogsystem" bauen zu können - aber das ist nur eine erste Idee.

Ich recherchiere immer noch in diesem Bereich - also gibt es möglicherweise auch mehr und bessere Optionen.

Mit freundlichen Grüßen!

Hi @petegordon Übrigens, heute wird api.ai Teil von Google! Übrigens schlage ich ChatScript Open Source vor (ich trage zur Überarbeitung der Dokumentation bei) und ich lade Sie herzlich ein, meinen Artikel über die Debatte über Open Source/proprietäre Chatbots-Plattformen zu lesen: medium.com/@solyarisoftware/…