5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

サンプルAdvent Calendar 2021

Day 24

A3RTさんのTalk APIをElixirで使ってみます

Last updated at Posted at 2021-12-23

2021/12/24(金)の回です。

はじめに

Elixirを楽しんでいますか:bangbang::bangbang::bangbang:
A3RT(アート)さんのTalk APIElixirでのサンプル実装を書きます。

What is Talk API ?

Talk APIはChatbotを作成するためのAPIです。 Recurrent Neural Network(LSTM)を用いた入力文からの応答文生成による日常会話応答機能を提供します。 Talk APIを活用したChatbotによって様々なアプリケーション上でユーザとの対話を自動化し、 どのようなタイミングにおいても即座にユーザからの問いかけに対して応答することができます。

(https://a3rt.recruit.co.jp/product/talkAPI/)

サンプルコード

small_talk_api.exs
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")

結果 :tada::tada::tada:

%{
  "message" => "ok",
  "results" => [
    %{"perplexity" => 4.650666957874292, "reply" => "スイスイ?"}
  ],
  "status" => 0
}
"スイスイ?"

$\huge{Thanks\ a\ lot!!!}$

Wrapping up :lgtm::lgtm::lgtm::lgtm::lgtm:

Talk APIElixirでのサンプル実装を書きました。

Enjoy Elixir:rocket::rocket::rocket:


おまけ

Elixirを始めてみよう! とおもった、あなたに参考情報(クリスマス🎄プレゼント)を贈ります。:gift::gift::gift:
思い立ったが吉日です!!!

オススメの書籍 :books:

Webアプリケーションを楽しむなら

IoTを楽しむなら

AIを楽しむなら

コミュニティ

FCOvBkAUYAE6mL8.jpeg
@piacerex さん作 :pray::pray_tone1::pray_tone2::pray_tone3::pray_tone4::pray_tone5:

  1. 「動かし方」の意。おそらく西日本の方言、たぶん。NervesJPではおなじみ。少し古いオートレースの映像ですが、実況アナウンサーが「針2イゴきます」とはっきり言っています。https://autorace.jp/netstadium/SearchMovie/Movie/iizuka?date=2017-01-04&p=5&race_number=11&pg=

  2. 大時計の針のこと。針がイゴいてある地点まで到達すると選手はスタートを切って良い発走の合図。針がイゴきはじめると(おそらく)選手は緊張するし、スタートはその後のレース展開に大きく影響するので、車券を握りしめている観客たちがもっとも緊張する瞬間であるため、先の尖った鋭いものを連想させる針は緊張の暗喩としても言い得て妙。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?