先月話題になってた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形式に対応するように設定する

Mapperコンポーネント
・eventsの「type」と「userId」をフロー変数へマッピングする
BranchStartコンポーネント
・eventsの「type」がmessageの時だけ、フローを実行する
Mapperコンポーネント
・DeepSeekAPIを呼び出すために必要なデータ準備とデータマッピング
・出力はDeepSeekリクエストボディ部分と対応するフィールドと構成を設定する

RESTコンポーネント
・DeepSeekのChat CompletionAPIを呼び出す
・基本設定と送信ヘッダー設定は以下画像のように設定する


Mapperコンポーネント
・直前RESTコンポーネントからDeepSeekの回答「content」をマッピングする
・Lineへ回答を送信するために必要なuserId、アクセストークンをマッピングする
LinePushコンポーネント
・対象のLineUserへDeepSeekからの回答を送信する
・アクセストークン、送信先ID、テキストは直前Mapperより値が代入される
・アクセストークンはフロー変数AccessTokenに直接設定しました。
実行結果