【더 쉽게】Laravel에서 Watson을 사용합시다.
Watson Assistant
와 Watson Discovery Service
에 대한 호출을 래핑하는 라이브러리를 만들었습니다.소스는 Github에 있습니다.
packagist은 이쪽.
설치 방법
composer를 통해 설치할 수 있습니다.
composer require motuo/call-watson-api
watson 용
config file
은 다음 명령으로 생성됩니다.php artisan vendor:publish
위의 명령을 실행하면 어떤 Provider의 Config를 생성할지 묻기 때문에 아래의 패키지를 선택하십시오.
Provider: motuo\CallWatsonAPI\CallWatsonServiceProvider
마지막으로
.env
파일에 Watson 자격 증명과 URL을 추가합시다.WATSON_ASSISTAN_API_URL="https://gateway-fra.watsonplatform.net/assistant/api"
WATSON_ASSISTANT_VERSION="2018-07-10"
WATSON_ASSISTANT_WORKSPACEID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
WATSON_ASSISTANT_USER_NAME=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
WATSON_ASSISTANT_PASSWORD=xxxxxxxxxxxx
WATSON_DISCOVERY_API_URL="https://gateway-fra.watsonplatform.net/discovery/api"
WATSON_DISCOVERY_VERSION="2018-10-15"
WATSON_DISCOVERY_ENV_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
WATSON_DISCOVERY_COLLECTION=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
WATSON_DISCOVERY_USER_NAME=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
WATSON_DISCOVERY_PASSWORD=xxxxxxxxxxxx
참고로
Watson Assistant
의 작업 공간 ID와 자격 증명은 아래를 클릭하여 얻을 수 있습니다.Discovery의
ENV_ID
및 Collection Id
는Manage data 여기에서사용법
Watson Assistant API 호출
쉽게 메시지를 보낼 수 있습니다.
컨트롤러의 예
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
//useを忘れずに!!!
use motuo\CallWatsonAPI\CallAssistant;
class TestContoller extends Controller
{
public function index(Request $request,CallAssistant $CWA){
//ここでWatson Assistantにメッセージを飛ばす。
$response = $CWA->postMessage('input message',session('context')?session('context'):[]);
//必要に応じてjsonを配列にデコード
$responseArray = json_decode($response,true);
//連続した会話を実現するために、contextデータをsessionに可能する。
$request->session()->put('context',$responseArray['context']);
return view('welcome');
}
}
Watson Discovery API를 호출하는 방법
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use motuo\CallWatsonAPI\CallDiscovery;
class TestContoller extends Controller
{
public function index(Request $request,CallDiscovery $CWD){
//自分のCollection内の検索
$query = ['query'=>[
'version' => '2018-08-01',
'deduplicate' => 'false',
'highlight' => 'true',
'passages' => 'true',
'passages.count' => '5' ,
'natural_language_query' => 'natural_language_query'
]];
$CWD->queryCollection($query);
//トレーニングデータ一覧の取得
$CWD->listTrainingData();
//質問文をキーにQueryIdを取得
$CWD->getQueryIdByNLQ('natural_language_query');
//質問文をトレーニング用のクエリとして追加
$CWD->addQueryToTrainingData('document_id','natural_language_query',100);
//トレーニング用のクエリを削除
$CWD->deleteTrainingDataQuery('query_id');
//既にクエリに紐づいている用例データの一覧を取得
$CWD->listExamplesTrainingData('query_id');
//既に該当のドキュメントがクエリに紐づいている場合、document_idを返却。
$CWD->getExampleId('query_id','document_id');
//トレーニング用データに用例と関連性(0~100)を追加
$CWD->addExampleToTrainingData('query_id','document_id',100);
//トレーニング用データから用例を削除
$CWD->deleteExampleForTrainingDataQuery('query_id','document_id');
}
}
처음으로 Laravel 용 패키지를 만들었습니다.
더 빨리 해두면 좋았다 ...
참고문헌
패키지 개발
Watson Assistant API 참조
Watson Discovery API 참조
Reference
이 문제에 관하여(【더 쉽게】Laravel에서 Watson을 사용합시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/motuo/items/27b7f50fba64c1dd149f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)