送信する JSON の準備ができたので、GTP4o API のコールする部分を開発します。メイン関数 ReadNameCard の以下の部分ですね。
|
Public Function ReadNameCard(vnd As NotesDocument) As Boolean ・・・ '2. API をコールし、結果の JSON を取得 Set jnavResponce = xCallWebAPI(jnavRequest) Call xSetRT(vnd, "JSON_Responce", jnavResponce.Stringify) ・・・ End Function |
API コール
スクリプトライブラリ lsReadNameCard を開き、GTP4o API のコールする関数 xCallWebAPI 関数を追加します。
NotesHTTPRequest のオブジェクトを準備して、HTTP ヘッダに OpenAI 社の API キーを使用するための Bearer をセットします。
|
Private Function xCallWebAPI(vjnavRequest As NotesJSONNavigator) As NotesJSONNavigator Dim sURL As String Dim http As NotesHTTPRequest Dim jnav As NotesJSONNavigator 'HTTP リクエストの準備 Set http = xns.CreateHTTPRequest() http.Timeoutsec = 120 'HTTP ヘッダーの設定(Bearer を OpenAI API 設定から取得) Call http.SetHeaderField("Content-Type", "application/json") Call http.SetHeaderField("Authorization", "Bearer " & xndWAPI.Bearer(0)) 'API 実行(URL を OpenAI Chat Completion 設定から取得) http.PreferJSONNavigator = True sURL = xndChat.EndPoint(0) Set jnav = http.Post(sURL, vjnavRequest.Stringify) 'API のレスポンスを戻り値にセット Set xCallWebAPI = jnav End Function |
API をコールするための URL(エンドポイント)に対して、Post メソッドを使って、作成した JSON を送信しています。
PreferJSONNavigator を True にセットしているので、結果は JSON(NotesJSONNavigator のオブジェクト)で返ります。それをそのまま関数の戻り値としています。
動作検証
ReadNameCard 関数を修正して、API コール部分のコメントを解除します。
|
Public Function ReadNameCard(vnd As NotesDocument) As Boolean Dim jnavRequest As NotesJSONNavigator Dim jnavResponce As NotesJSONNavigator Dim jnavNameCard As NotesJSONNavigator '1. API リクエスト時に送信する JSON を作成 Set jnavRequest = xMakeRequest(vnd) 'Call xSetRT(vnd, "JSON_Request", jnavRequest.Stringify) '2. API をコールし、結果の JSON を取得 Set jnavResponce = xCallWebAPI(jnavRequest) Call xSetRT(vnd, "JSON_Responce", jnavResponce.Stringify) '3. 結果の JSON 内から名刺情報部分だけの JSON を取得 'Set jnavNameCard = xGetNameCard(jnavResponce) 'Call xSetRT(vnd, "JSON_NameCard", jnavNameCard.Stringify) '4. 名刺情報を文書に保存 'Call xSaveNameCard(jnavNameCard , vnd) End Function |
準備ができたら前回と同様に名刺の画像を貼り付けて、[名刺読込] ボタンをクリックしてテストします。今回はレスポンスに JSON が出力されていれば成功です。
次回の予定
これで WebAPI からレスポンスを受け取れるようになりました。次回はレスポンスの JSON から AI が読み取った名刺の情報を取得します。
| 前回 | 作ってみよう | 次回 |

0 件のコメント:
コメントを投稿