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
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
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);
}
}
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 ".
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.)
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