2021/12/24(金)の回です。
はじめに
Elixirを楽しんでいますか
A3RT(アート)さんのTalk APIのElixirでのサンプル実装を書きます。
What is Talk API ?
Talk APIはChatbotを作成するためのAPIです。 Recurrent Neural Network(LSTM)を用いた入力文からの応答文生成による日常会話応答機能を提供します。 Talk APIを活用したChatbotによって様々なアプリケーション上でユーザとの対話を自動化し、 どのようなタイミングにおいても即座にユーザからの問いかけに対して応答することができます。
(https://a3rt.recruit.co.jp/product/talkAPI/)
サンプルコード
Mix.install([{:jason, "~> 1.2"}, {:httpoison, "~> 1.8"}])
defmodule Recruit.A3RT.Smalltalk do
def call(query) do
%{body: body, status_code: 200} =
HTTPoison.post!(
"https://api.a3rt.recruit.co.jp/talk/v1/smalltalk",
{:form, [apikey: recruit_a3rt_smalltalk_apikey(), query: query]}
)
Jason.decode!(body)
|> IO.inspect()
|> handle_response()
end
defp handle_response(%{"status" => 0} = response) do
response
|> Map.get("results")
|> Enum.map(fn r -> Map.get(r, "reply", "") end)
|> Enum.join(" ")
end
defp handle_response(_response), do: :error
defp recruit_a3rt_smalltalk_apikey, do: System.get_env("RECRUIT_A3RT_SMALLTALK_APIKEY")
end
イゴかし方1
APIキー
にてAPIキーを取得してください。
環境変数の設定
macOSの場合
$ export RECRUIT_A3RT_SMALLTALK_APIKEY="あなたの API KEYは、メールで届く"
Windowsの場合
Windowsの場合は以下を参考にしてください。
Run
Elixirは1.12 or laterをインストールしておいてください。
$ iex
そうするとIExが立ち上がります。
iex> c "small_talk_api.exs"
iex> Recruit.A3RT.Smalltalk.call("Hello")
結果
%{
"message" => "ok",
"results" => [
%{"perplexity" => 4.650666957874292, "reply" => "スイスイ?"}
],
"status" => 0
}
"スイスイ?"
$\huge{Thanks\ a\ lot!!!}$
Wrapping up
Talk APIのElixirでのサンプル実装を書きました。
Enjoy Elixir
おまけ
Elixirを始めてみよう! とおもった、あなたに参考情報(クリスマス🎄プレゼント)を贈ります。
思い立ったが吉日です!!!
オススメの書籍
- プログラミングElixir(第2版) -- オーム社
- Elixir実践ガイド -- インプレス
- アルケミスト 夢を旅した少年 -- 角川文庫
Webアプリケーションを楽しむなら
IoTを楽しむなら
AIを楽しむなら
コミュニティ
-
elixir.jp Slack workspaceに参加してみてください
- マヂ、やさしい人ばっかりのコミュニティ
- あなたの困ったをきっと解決してくれるでしょう
- NervesJP Slack workspaceでは、NervesやIoTが好きな愉快なfolksたちがあなたの訪れを歓迎します
- たくさんのコミュニティがあります
- @kn339264 さん作の素敵な資料をご紹介します
- Elixirコミュニティ の歩き方〜国内オンライン編〜
@piacerex さん作
-
「動かし方」の意。おそらく西日本の方言、たぶん。NervesJPではおなじみ。少し古いオートレースの映像ですが、実況アナウンサーが「針2イゴきます」とはっきり言っています。https://autorace.jp/netstadium/SearchMovie/Movie/iizuka?date=2017-01-04&p=5&race_number=11&pg= ↩
-
大時計の針のこと。針がイゴいてある地点まで到達すると選手はスタートを切って良い発走の合図。針がイゴきはじめると(おそらく)選手は緊張するし、スタートはその後のレース展開に大きく影響するので、車券を握りしめている観客たちがもっとも緊張する瞬間であるため、先の尖った鋭いものを連想させる針は緊張の暗喩としても言い得て妙。 ↩