ASTERIA WarpとDeepSeek・Line連携フロー

先月話題になってたDeepSeek(会話生成API)とASTERIA Warpを連携し、回答文をLineへ送信するフローを作成しました。

DeepSeek側の事前準備

DeepSeekアカウント作成

DeepSeekAPIキー取得

Line側の準備

https://scominc.co.jp/blog/2024/11/asteria-warpline.html

上記のブログを参考ください。

フローの流れ

①特定のLineユーザー(登録済み)からの質問をWebhook URLより受信する

②質問をDeepSeekの会話生成APIへ送信する

③回答文を①の特定Lineユーザーへ送信する

HttpStartコンポーネント

Lineからのイベント情報を受信するため、HttpStartコンポーネントを配置する

・出力フォーマットにMIMEを設定する

MIMEDecodeコンポーネント

MIMEデータから対象となるボディ部分を取得する

・「取得対象とする条件式」にpart[0]を入力する

※取得したボディ部分のJSON形式データを以下画像にご参照ください。

JSONDecodeコンポーネント

・入力されたJSON形式の文字列データをXMLストリームへ変換する

・フィールド名は入力JSON形式に対応するように設定する

JSONDecodeコンポーネント設定

Mapperコンポーネント

eventsの「type」と「userId」をフロー変数へマッピングする

BranchStartコンポーネント

eventsの「type」がmessageの時だけ、フローを実行する

Mapperコンポーネント

DeepSeekAPIを呼び出すために必要なデータ準備とデータマッピング

・出力はDeepSeekリクエストボディ部分と対応するフィールドと構成を設定する

DeepSeekAPIを呼び出すためのデータ準備

RESTコンポーネント

DeepSeekChat CompletionAPIを呼び出す

・基本設定と送信ヘッダー設定は以下画像のように設定する

RESTコンポーネント基本設定と送信ヘッダー設定
RESTコンポーネントフィールド名設定

Mapperコンポーネント

・直前RESTコンポーネントからDeepSeekの回答「content」をマッピングする

Lineへ回答を送信するために必要なuserId、アクセストークンをマッピングする

LinePushコンポーネント

・対象のLineUserDeepSeekからの回答を送信する

・アクセストークン、送信先ID、テキストは直前Mapperより値が代入される

・アクセストークンはフロー変数AccessTokenに直接設定しました。

実行結果