Depuis que j'ai créé une application Java qui intègre Dialogflow, La procédure est brièvement résumée dans un mémorandum. En l'utilisant réellement, je pense que vous écrirez celui décrit ici + Swing etc.
Dialogflow
Maven
[[Pour les super débutants] Super introduction Maven](https://qiita.com/tarosa0001/items/e5667cfa857529900216'https://qiita.com/tarosa0001/items/e5667cfa857529900216 ')
[Comment créer un fichier exécutable avec Maven](https://qiita.com/tarosa0001/items/e019ec4daaaf54684c53'https://qiita.com/tarosa0001/items/e019ec4daaaf54684c53 ')
[GroupId et artifactId du projet Maven](https://code-macchiato.com/tips/maven-groupid-artifactid'https://code-macchiato.com/tips/maven-groupid-artifactid ')
Dialogflow est une plate-forme de compréhension du langage naturel qui facilite la conception d'interfaces utilisateur conversationnelles et l'intégration dans des applications mobiles, des applications Web, des appareils, des robots, des systèmes de réponse vocale interactifs, etc. Source: Document officiel
Il est utilisé lors de l'analyse du langage naturel de Google Home et est utilisé par AWS Amazon Lex. Des systèmes similaires incluent / lex / ').
Créez un projet GCP pour connecter Dialogflow.
Japanese --ja
pour DEFAULT LANGUAGE
et created project
pour GOOGLE PROJECT
, et appuyez sur CREATE
.
Créons maintenant un modèle d'interaction Dialogflow. Pour plus d'informations sur la création d'un modèle d'interaction, consultez la documentation officielle (https://cloud.google.com/dialogflow/docs/quick/build-agent'https://cloud.google.com/dialogflow/docs/quick/build) -agent ') et autres Il y a beaucoup d'informations sur le net, je vais donc les omettre.
Cette fois, la réponse "Hello Dialog flow!" Est renvoyée à l'énoncé "test". J'ai créé un modèle d'interaction de test.
Dialogflow
-> Dialogflow API Client
dans Select Role
et continuez.Fichier
-> Nouveau
-> Projet Maven
pour créer un projet maven.Créez des packages et des fichiers de classe dans le projet Maven que vous avez créé.
src / main / java
et sélectionnez Nouveau
-> Package
.package créé
et sélectionnez Nouveau
-> Classe
.Nom
, vérifiez public static void main (String [] args)
et cliquez sur Terminer
.Vous avez maintenant créé un package et une classe avec la méthode main dans votre projet Maven.
Réécrivez le fichier appelé pom.xml dans le projet Maven créé comme suit.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--groupId et artifactId...Remplacez-le par celui que vous avez entré lors de la création du projet Maven.-->
<modelVersion>4.0.0</modelVersion>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.2</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<finalName>...</finalName>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<!--de mainClass...Est le nom du package.Le nom de la classe.-->
<mainClass>...</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>mark-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>libraries-bom</artifactId>
<version>5.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-dialogflow</artifactId>
</dependency>
</dependencies>
</project>
Lorsque vous avez terminé, enregistrez et appliquez pom.xml.
pom.xml
et sélectionnez Maven
-> ʻUpdate Project``.projet Maven créé
dans la base de code Maven disponible et continuez avec ʻOK`.Réécrivez le fichier de classe contenant la méthode principale créée précédemment comme suit.
Main.java
//Remplacez le nom du package comme il convient.
package tokyo.penguin_syan.dialogflowTest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import com.google.api.client.util.Maps;
import com.google.cloud.dialogflow.v2.DetectIntentResponse;
import com.google.cloud.dialogflow.v2.QueryInput;
import com.google.cloud.dialogflow.v2.QueryResult;
import com.google.cloud.dialogflow.v2.SessionName;
import com.google.cloud.dialogflow.v2.SessionsClient;
import com.google.cloud.dialogflow.v2.TextInput;
import com.google.cloud.dialogflow.v2.TextInput.Builder;
public class Main {
public static void main(String[] args) {
Scanner userInput = new Scanner(System.in);
List<String> text = new ArrayList<String>();
String input;
Map<String, QueryResult> ret;
//sessionId est un nombre approprié pour les tests.
int sessionId = 123456789;
do {
System.out.print("\nYou : ");
input = userInput.next();
if(input.equals("exit"))
System.exit(0);
text.add(input);
ret = new HashMap<>();
try {
//Dans l'argument---Le projet est-il décrit dans le fichier json téléchargé_Veuillez remplacer par id.
ret.putAll(detectIntentTexts(---,
text, String.valueOf(sessionId++), "ja"));
System.out.format("Agent: %s\n", ret.get(input).getFulfillmentText());
} catch (Exception e) {
e.printStackTrace();
}
}while(true);
}
public static Map<String, QueryResult> detectIntentTexts(
String projectId,
List<String> texts,
String sessionId,
String languageCode) throws Exception {
Map<String, QueryResult> queryResults = Maps.newHashMap();
try (SessionsClient sessionsClient = SessionsClient.create()) {
SessionName session = SessionName.of(projectId, sessionId);
for (String text : texts) {
Builder textInput = TextInput.newBuilder().setText(text).setLanguageCode(languageCode);
QueryInput queryInput = QueryInput.newBuilder().setText(textInput).build();
DetectIntentResponse response = sessionsClient.detectIntent(session, queryInput);
QueryResult queryResult = response.getQueryResult();
queryResults.put(text, queryResult);
}
}
return queryResults;
}
}
projet Maven
dans l'Explorateur de packagesExécuter
-> Maven install
.Créez un fichier bat pour exécution.
dialogflowTest_java.bat
@echo off
rem ---Entrez le nom du fichier json téléchargé pour l'authentification.
set GOOGLE_APPLICATION_CREDENTIALS=---.json
java -jar test-jar-with-dependencies.jar
Organisez la structure des répertoires pour l'exécution.
test-jar-with-dependencies.jar
, download json file
et created bat file
dans le même dossier.
(Test-jar-with-dependencies.jar se trouve dans le dossier cible du projet Maven)Structure du répertoire
.
├ test-jar-with-dependencies.jar
├ ---.json
└ dialogflowTest_java.bat
Pour l'exécuter, démarrez le fichier bat créé.
J'ai pu l'exécuter en toute sécurité. ٩ (๑ • ㅂ •) ۶ Wow
Recommended Posts