- 概要
- 暗号化
- データベース
- Java
- Python
- Web API
Web API の言語検出
次の例では、[HTTP 要求] や [JSON を逆シリアル化] などのアクティビティを使用して、パブリック API を呼び出し、情報を抽出して、結果を表示する方法を説明します。これらのアクティビティは、UiPath.WebAPI.Activities パッケージに含まれています。
言語検出 API を使用してテキスト内の言語を検出するための 3 つのワークフローがあります。1 つ目のワークフローは言語の辞書を作成し、2 つ目は単一のテキストで言語を検出し、3 つ目は複数のテキストで言語を検出します。
言語辞書の作成
このワークフローは、言語コードと名前を含む CSV ファイルから言語辞書を作成します。このワークフローは、他の 2 つのワークフローで呼び出されます。
サンプルと同等のオートメーション プロセスは以下のように構築できます。
- Studio を開いて、新しいプロセスを作成します。
- この例で説明するプロジェクトを含むアーカイブをダウンロードし、languages.csv ファイルをプロジェクト フォルダーにコピーします。
-
デザイナー パネルに [シーケンス] コンテナーをドラッグします。
-
次の変数を作成します。
変数名
変数の型
既定値
LanguagesDT
データ テーブル
-
-
[シーケンス] コンテナー内部に [CSV を読み込み] アクティビティを追加します。
- 式
"languages.csv"
を [ファイル パス] フィールドに追加します。 - [プロパティ] パネルで、変数
LanguagesDT
を [データ テーブル]
- 式
-
[CSV を読み込み] アクティビティの後に [代入] アクティビティを追加します。
- 式
out_LanguagesDictionary
を [左辺値 (To)] フィールドに追加します。 -
[右辺値 (Value)] フィールドに式
LanguagesDT.AsEnumerable.ToDictionary(of string, string)(function(row) row("Code").ToString, function(row) row("Language").ToString)
を追加します。
- 式
- プロセスを実行して辞書を作成します。
単一のテキストで言語を検出する
サンプルと同等のオートメーション プロセスは以下のように構築できます。
- Studio を開いて、新しいプロセスを作成します。
-
デザイナー パネルに [シーケンス] コンテナーをドラッグします。
-
次の変数を作成します。
変数名
変数の型
既定値
APIKey
文字列
Text
文字列
Result
文字列
StatusCode
Int32
LanguagesDictionary
Dictionary<String, String>
LanguageCode
文字列
Reliable
Boolean
Confidence
Double
LanguageName
文字列
-
-
[シーケンス] コンテナー内に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
APIKey
を追加します。 - [右辺値 (Value)] フィールドに式
"demo"
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
-
[代入] アクティビティの後に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
Text
を追加します。 - [右辺値 (Value)] フィールドに式
"Hello. This is a sample test."
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
-
[代入] アクティビティの後に [HTTP 要求] アクティビティを追加します。
- [エンドポイント] アドレス、[要求メソッド]、応答受け入れの形式、および [認証] メソッドを追加して、ウィザードを設定します。
- [プロパティ] パネルの [本文形式] フィールドに値
application/json
を追加します。注: ワークフローには「application/xml」と表示されます。 - Result (値) フィールドに変数
Result
を追加します。 - [ステータス コード] フィールドに変数
StatusCode
を追加します。
- [エンドポイント] アドレス、[要求メソッド]、応答受け入れの形式、および [認証] メソッドを追加して、ウィザードを設定します。
-
[HTTP 要求] アクティビティの後に [条件分岐 (if)] アクティビティを追加します。
- [条件 (Condition)] フィールドに式
StatusCode = 200
を追加します。
- [条件 (Condition)] フィールドに式
-
[条件分岐 (if)] アクティビティの [Then] フィールドに [シーケンス] アクティビティを追加します。
-
次の変数を作成します。
変数名
変数の型
既定値
ResultJSON
JObject
-
-
[シーケンス] コンテナー内に [ワークフロー ファイルを呼び出し] アクティビティを追加します。
- [ブック パス] フィールドに式
"GetLanguagesDictionary.xaml"
を追加します。 -
[引数を編集] ボタンを選択して、次の引数を追加します。
引数名
引数の方向
引数の型
既定値
out_LanguagesDictionary
Out
Dictionary<String, String>
LanguagesDictionary
- [ブック パス] フィールドに式
-
[ワークフロー ファイルを呼び出し] アクティビティの後に [JSON を逆シリアル化] アクティビティを追加します。
- [JSON 文字列] フィールドに変数
Result
を追加します。
- [JSON 文字列] フィールドに変数
-
[JSON を逆シリアル化] アクティビティの後に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
LanguageCode
を追加します。 - [右辺値 (Value)] フィールドに式
ResultJSON("data")("detections")(0)("language").ToString
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
-
先ほどの [代入] アクティビティの後に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
LanguageName
を追加します。 - [右辺値 (Value)] フィールドに式
LanguagesDictionary(LanguageCode)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
-
先ほどの [代入] アクティビティの後に [代入] アクティビティをもう 1 つ追加します。
- [左辺値 (To)/宛先] フィールドに変数
Reliable
を追加します。 - [右辺値 (Value)] フィールドに式
CBool(ResultJSON("data")("detections")(0)("isReliable").ToString)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
-
先ほどの [代入] アクティビティの後に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
Confidence
を追加します。 - [右辺値 (Value)] フィールドに式
CDbl(ResultJSON("data")("detections")(0)("confidence").ToString)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
-
[代入] アクティビティの後に [メッセージをログ] アクティビティを追加します。
- 式
"Detection for the text:" + vbCrLf + " Language is " + LanguageName+ vbCrLf +" Reliable detection: " + Reliable.ToString + vbCrLf + " Confidence level: " + Confidence.ToString
を Message フィールドに追加します。
- 式
-
[条件分岐 (if)] アクティビティの [Else] フィールドに [メッセージをログ] アクティビティを追加します。
- [レベル] ドロップダウン リストから [Warn] オプションを選択します。
- 式
"HTTP Request was not successful. Code: " + StatusCode.ToString
を Message フィールドに追加します。
-
先ほどの [メッセージをログ] アクティビティの後に [メッセージをログ] アクティビティを追加します。
- [レベル] ドロップダウン リストから [Warn] オプションを選択します。
-
式
"HTTP Request was not successful. Result: " + Result
を Message フィールドに追加します。
- プロセスを実行して、テキストで使用されている言語を検出してログに記録します。
テキストのバッチ内の言語の検出
サンプルと同等のオートメーション プロセスは以下のように構築できます。
- Studio を開いて、新しいプロセスを作成します。
-
デザイナー パネルに [シーケンス] コンテナーをドラッグします。
-
次の変数を作成します。
変数名
変数の型
既定値
APIKey
文字列
Texts
String[]
Result
文字列
StatusCode
Int32
HTTPRequestBodyJSON
文字列
-
-
[シーケンス] コンテナー内に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
APIKey
を追加します。 - [右辺値 (Value)] フィールドに値
"demo"
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
-
上記の [代入] の下にもう 1 つ [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
Texts
を追加します。 - [右辺値 (Value)] フィールドに値
{"Hello world.", "Buenos dias, señor.", "Guten Tag.", "Buna ziua, tuturor."}
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
-
先ほどの [代入] アクティビティの後に新しい [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
HTTPRequestBodyJSON
を追加します。 - [右辺値 (Value)] フィールドに値
Newtonsoft.Json.JsonConvert.SerializeObject(new with{ .q = Texts })
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
-
[代入] アクティビティの後に [HTTP 要求] アクティビティを追加します。
- [エンドポイント] アドレス、[要求メソッド]、応答受け入れの形式、および [認証] メソッドを追加して、ウィザードを設定します。
- [プロパティ] パネルの [本体] フィールドに変数
HTTPRequestBodyJSON
を追加します。 - [本文形式] フィールドに値
application/json
を追加します。 - Result (値) フィールドに変数
Result
を追加します。 - [ステータス コード] フィールドに変数
StatusCode
を追加します。
- [エンドポイント] アドレス、[要求メソッド]、応答受け入れの形式、および [認証] メソッドを追加して、ウィザードを設定します。
-
[HTTP 要求] アクティビティの後に [条件分岐 (if)] アクティビティを追加します。
- [条件 (Condition)] フィールドに式
StatusCode = 200
を追加します。
- [条件 (Condition)] フィールドに式
-
[条件分岐 (if)] アクティビティの [Then] フィールドに [シーケンス] アクティビティを追加します。
-
次の変数を作成します。
変数名
変数の型
既定値
ResultJSON
JObject
LanguagesDictionary
System.Collections.Generic.Dictionary<System.String, System.String>
LanguageCode
文字列
LanguageName
文字列
Reliable
Boolean
Confidence
Double
index
Int32
0
-
-
[シーケンス] コンテナー内に [ワークフロー ファイルを呼び出し] アクティビティを追加します。
- [ブック パス] フィールドに式
"GetLanguagesDictionary.xaml"
を追加します。 -
[引数を編集] ボタンを選択して、次の引数を追加します。
引数名
引数の方向
引数の型
既定値
out_LanguagesDictionary
Out
Dictionary<String, String>
LanguagesDictionary
- [ブック パス] フィールドに式
-
[ワークフロー ファイルを呼び出し] アクティビティの後に [JSON を逆シリアル化] アクティビティを追加します。
- [JSON 文字列] フィールドに変数
Result
を追加します。
- [JSON 文字列] フィールドに変数
-
[JSON を逆シリアル化] アクティビティの後に [繰り返し (コレクションの各要素)] アクティビティを追加します。
- 式
ResultJSON("data")("detections")
を Value (値) フィールドに追加します。
- 式
-
[繰り返し (コレクションの各要素)] アクティビティの [本体] 内部に [代入] アクティビティを配置します。
- [左辺値 (To)/宛先] フィールドに変数
LanguageCode
を追加します。 - [右辺値 (Value)] フィールドに式
item(0)("language").ToString
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
-
先ほどの [代入] アクティビティの後に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
LanguageName
を追加します。 - [右辺値 (Value)] フィールドに式
LanguagesDictionary(LanguageCode)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
-
先ほどの [代入] アクティビティの後に [代入] アクティビティをもう 1 つ追加します。
- [左辺値 (To)/宛先] フィールドに変数
Reliable
を追加します。 - [右辺値 (Value)] フィールドに式
CBool(item(0)("isReliable").ToString)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
-
先ほどの [代入] アクティビティの後に [代入] アクティビティを追加します。
- [左辺値 (To)/宛先] フィールドに変数
Confidence
を追加します。 - [右辺値 (Value)] フィールドに式
CDbl(item(0)("confidence").ToString)
を追加します。
- [左辺値 (To)/宛先] フィールドに変数
-
[代入] アクティビティの後に [メッセージをログ] アクティビティを追加します。
- 式
"Detection for the text #"+index.ToString +":" + vbCrLf + " Language is " + LanguageName+ vbCrLf +" Reliable detection: " + Reliable.ToString + vbCrLf + " Confidence level: " + Confidence.ToString
を Message フィールドに追加します。
- 式
-
[条件分岐 (if)] アクティビティの [Else] フィールドに [メッセージをログ] アクティビティを追加します。
- [レベル] ドロップダウン リストから [Warn] オプションを選択します。
- 式
"HTTP Request was not successful. Code: " + StatusCode.ToString
を Message フィールドに追加します。
-
先ほどの [メッセージをログ] アクティビティの後に [メッセージをログ] アクティビティを追加します。
- [レベル] ドロップダウン リストから [Warn] オプションを選択します。
-
式
"HTTP Request was not successful. Result: " + Result
を Message フィールドに追加します。
- プロセスを実行して、テキストで使用されている言語を検出してログに記録します。
こちらからサンプルをダウンロードできます。