Greifen Sie über Java auf API.AI zu

Was ist API.AI?

Ein Tool (API) zum Erstellen von Bots. Weitere Details finden Sie im Beitrag des Plattfischers. Verwenden Sie API.AI, mit dem die Verarbeitung natürlicher Sprache problemlos implementiert werden kann # api.ai

JAVA Bibliothek

Sie können es von der JSON-API herunterladen, aber da es eine Bibliothek für Java gibt, verwenden wir es. Unten ist die GitHub-URL.  api-ai/apiai-java-client

Zugriff von JAVA

Es gibt ein Beispielservlet im obigen GitHub-Pfad "apiai-java-client / samples / clients / web-client / src / main / java / ai / api / examples / web / ServiceServletSample.java". Es ergänzt den Inhalt der wichtigsten Punkte.

ServiceServletSample.java


/**
 * Copyright 2017 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 
package ai.api.examples.web;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import ai.api.AIServiceException;
import ai.api.model.AIResponse;
import ai.api.web.AIServiceServlet;


/**
 * Servlet implementation class AIServiceServlet
 */
//Ergänzung 1
@WebServlet(urlPatterns = {"/ai"}, initParams = {
    @WebInitParam(name = ServiceServletSample.PARAM_API_AI_KEY,
        value = "1bea0a262c924f43bf87a88e4a69cd94")})
public class ServiceServletSample extends AIServiceServlet {
  private static final long serialVersionUID = 1L;
  
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    try {
      //Ergänzung 2
      AIResponse aiResponse = request(request.getParameter("query"), request.getSession());
      response.setContentType("text/plain");
//Ergänzung 3
response.getWriter().append(aiResponse.getResult().getFulfillment().getSpeech());
    } catch (AIServiceException e) {
      e.printStackTrace();
    }
  }

  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    doGet(request, response);
  }
}
[Ergänzung 1]

Obwohl es sich um die Quelle des API-Schlüssels handelt, befindet sich auf GitHub ein Bild des entsprechenden Teils in "apiai-java-client / docs / images / apiKeys.png ".

[Ergänzung 2]

Es ist eine Anforderung an API.AI und wird im AIResponse-Objekt gespeichert. Darüber hinaus wird die Java-Sitzung als zweites Anforderungsargument festgelegt. Dies dient jedoch zum Synchronisieren der Konversationssitzung von API.AI und der Java-Sitzung. (Wenn die Java-Sitzung abläuft, läuft auch die API.AI-Konversation ab.)

[Ergänzung 3]

Ich erhalte die Antwort von API.AI von AIResponse. Von diesem Objekt können Sie auch Folgendes erhalten, das ich ausprobiert habe. ■ Ergebnis im Parameter eingestellt Es kann mit "aiResponse.getResult (). GetStringParameter (" Parametername ")" abgerufen werden. Die Parameter finden Sie auf der folgenden Seite.    Actions and Parameters

■ Kontexteinstellungen Sie können die Liste der festgelegten Kontexte mit "aiResponse.getResult (). GetContexts ()" abrufen. Den Kontext finden Sie auf der Beispielseite unten.    Context Examples

Recommended Posts

Greifen Sie über Java auf API.AI zu
Greifen Sie über eine Java-Anwendung auf Teradata zu
Zugriffsmodifikator [Java]
Zugriff auf geschützte Felder von Enkelkindern (Java / PHP)
Greifen Sie über Java mit Axis2 Enterprise WSDL auf Forec.com zu
Rufen Sie Java von JRuby aus auf
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Eval Java-Quelle von Java
Von Java zu Ruby !!
Informationen zu Java-Zugriffsmodifikatoren
Java ab Anfänger überschreiben
Elastic Search Indexerstellung aus Java
Neue Funktionen von Java7 bis Java8
Stellen Sie eine Verbindung von Java zu PostgreSQL her
Java, Instanz für Anfänger
Java ab Anfänger, Vererbung
Java-Leben von vorne anfangen
Verwenden von Docker von Java Gradle
Von ineffektivem Java zu effektivem Java
JavaScript von Java aus gesehen
Führen Sie Nicht-Java-Anweisungen von Java aus
[JDBC] Ich habe versucht, von Java aus auf die SQLite3-Datenbank zuzugreifen.
Greifen Sie mit Java auf die Netzwerkschnittstelle zu
Rufen Sie Kotlins versiegelte Klasse von Java aus an
Java, abstrakte Klasse für Anfänger
Installieren Sie das memcached Plugin unter MySQL und greifen Sie von Java aus zu
Deep Learning Java von Grund auf 6.4 Regularisierung
Land von IP-Adresse abrufen (Java)
Führen Sie node.js von Android Java aus (Verarbeitung)
Führen Sie eine Batchdatei von Java aus
[Java] Entfernen Sie Leerzeichen in Zeichenfolgen
Akka praktische Vorbereitungsprozedur aus Java
Greifen Sie von einem Java-Client aus auf das speicherinterne Datenraster Apache Ignite zu
Verwenden Sie Chrome Headless von Selenium / Java
Java soll ab heute dabei sein
Java
Von Java zu VB.NET-Writing Kontrastmemo-
Java, Überlastungskonstruktor ab Anfänger
Arbeiten Sie mit Google-Tabellen aus Java
Java, Schnittstelle für Anfänger
JNA-Mustersammlung (Java Native Access)
Java
Der Weg von JavaScript nach Java
Wiedereinführung von Java8, das seit Android Studio 2.4 verfügbar ist
Rufen Sie die Java-API von TensorFlow von Scala aus auf
Einfacher Datenbankzugriff mit Java Sql2o
[Java] Konvertierung von Array zu Liste
Beispielcode mit Minio aus Java
Greifen Sie über ein lokales Java-Programm (Host-Betriebssystem) auf MySQL in einem Docker-Container zu
Lernen Sie Deep Learning von Grund auf in Java.
[Java Silver] Zusammenfassung der Zugriffsmodifikatorpunkte
Java für Anfänger, Variablen und Typen
Beziehung zwischen Kotlin- und Java-Zugriffsmodifikatoren
Datenverarbeitung mit der Stream-API von Java 8
Rufen Sie die Java-Bibliothek von C mit JNI auf
Rufen Sie die GitHub-API über Javas Socket-API Teil2 auf
API-Integration von Java mit Jersey Client
Verwenden Sie den PostgreSQL-Datentyp (jsonb) aus Java
Rufen Sie Java-Methoden aus JavaScript auf, das in Java ausgeführt wird