1
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 1 year has passed since last update.

PlaywrightからDifyのAPIを使って日本語が正しいか検証する

1
Posted at

ことはじめ

VRTにいろんなことをさせたいと思った結果、AIを使って文章の検証とかしたらいいんではないかと思いつき、DIFYを連携させてみた。

DIFYのほう

とてもシンプルです。inTextで入った文章が正しいかどうかをoutTextで出力する。
しかし無料で使えて日本語での問いにちゃんと答えてくれたのが数少なく、Qwen系AIになりました。
image.png
こんなプロンプトが入っています。

検証内容は「{inText}」です。
検証内容に日本語上の誤りが含まれていれば内容を出力してください。

誤りが無ければ”0000”を出力してください。
検証内容が空文字であれば”0000”を出力してください。

0000を出させているのは正解かどうかg判別しにくいからです。

Playwrightのほう

こんなテストを書きます。

import axios from 'axios';
//DIFY API KEY
const difyKey = 'app-aaaabbbbccccddddeeeeffff';
~~~~~~~~~~~~~~
//日本語テスト
test('isTrueJapanese', async ({ page }) => {
  await page.goto('https://demo.playwright.dev/todomvc'); // ページ遷移
  const texts = await page.innerText('h1')); //テキスト取得
  
  //DIFY API 
  const difyClient = axios.create({
    baseURL: 'https://api.dify.ai/v1',
    headers: {
      'Authorization': `Bearer ${difyKey}`,
      'Content-Type': 'application/json',
    },
  });
  const response = await difyClient.post('/workflows/run', {
    inputs: {
      inText: texts
    },
    response_mode: "blocking",
    user: "abc-123"
  });
  const checkResult = response.data.data.outputs.outText.split('</think>')[1].replaceAll("\n",''));

  expect(checkResult).toEqual('0000');

});

で切って改行を消したのは比較しやすい為です。もっと賢いAIモデルならそんな事もしなくていいかもしれません。

1
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
1
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?