Domino IQ サーバー経由で言語モデル (LLM) に要求を送信するために使用されるクラスです。
Completion メソッド (NotesLLMRequest - LotusScript)
CompletionStream メソッド (NotesLLMRequest - LotusScript
CancelStream メソッド (NotesLLMRequest- LotusScript)
IsCommandAvailable メソッド (NotesLLMRequest - LotusScript)
GetAvailableCommands メソッド (NotesLLMRequest - LotusScript)
Domino IQ サーバーによってホストされている大規模言語モデル (LLM) にチャット完了要求を送信します。
NotesLLMRequest.completion (SERVER$, COMMAND$, userPROMPT$)
SERVER$
文字列。リクエストを送信するために必要なDominoサーバーIQ名。空の場合、リクエストはコマンドを処理するように設定されたDomino IQサーバーにルーティングされます。
COMMAND$
文字列。Domino IQ設定データベースで定義されたコマンド文書の名前。コマンド文書は、LLMの動作と応答を指示するシステムプロンプトを指定します。
userPROMPT$
文字列。ユーザープロンプトとは、このメソッドの呼び出し元によって提供される特定の入力です。このプロンプトは、コマンド文書で定義されたシステムプロンプトと結合され、Domino IQサーバーを介して言語モデルに提示されます。
NotesLLMResponse
Sub Initialize
On Error Goto processError
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim mailDoc As NotesUIDocument
Set mailDoc = workspace.CurrentDocument
Dim sMailThread As String
mailDoc.Editmode = True
sMailThread = mailDoc.Fieldgettext("Body")
Dim llmreq As NotesLLMRequest
Dim llmres As NotesLLMResponse
Set llmreq = session.CreateLLMRequest()
Set llmres = llmreq.Completion("DominoIQ server/Org", "SummarizeMailThread", sMailThread)
If (llmres.FinishReason = LLM_FINISH_REASON_STOP) Then
Call mailDoc.FieldSetText("Summary", llmres.Content)
Call mailDoc.save()
End If
Exit Sub
processError:
Messagebox(Error$)
Exit Sub
End Sub
DominoIQ がホストする大規模言語モデル (LLM) に completion リクエストを送信し、ストリームモードで応答を受信します。DominoIQ サーバーによって発行される通知イベントに基づいて、ユーザーはすぐに応答処理を開始できます。
SERVER$
文字列。リクエストを送信する Domino IQ サーバーの名前。空の場合、リクエストはコマンドを処理するように設定された Domino IQ サーバーにルーティングされます。
COMMAND$
文字列。Domino IQ 設定データベースで定義されたコマンド文書の名前。コマンド文書は、LLM の動作と応答を指示するシステムプロンプトを指定します。
userPROMPT$
文字列。ユーザープロンプトとは、このメソッドの呼び出し元によって提供される特定の入力です。このプロンプトは、コマンド文書で定義されたシステムプロンプトと結合され、Domino IQ サーバーを介して言語モデルに提供されます。
Sub Initialize
Dim session As New NotesSession
Dim llmreq As NotesLLMRequest
Set llmreq = session.CreateLLMRequest()
On Event LLMCompletionStreamNotify From llmreq Call ProcessResponse
Call llmreq.CompletionStream(""DominoIQ server/Org"", "stdMailSummaryThread" , sMailThread)
Exit Sub
processError:
Dim errMess As String
errMess = "Error " & Err & ": " & Error$
Messagebox(errMess)
Exit Sub
End Sub
Sub ProcessResponse (Source As NotesLLMRequest, Byval lastResponse As Boolean, Byval content As String)
if (lastResponse) then
' Do something with last content for example print it out
Messagebox(content)
Messagebox("No more content")
else
' Do something with content for example print it out
Messagebox(content)
End If
End Sub
CompletionStream メソッドを使用してストリームモードで応答を受信する場合、必要に応じて CancelStream メソッドを使用して応答のストリームを停止することができます。
Sub Initialize
Dim session As New NotesSession
Dim llmreq As NotesLLMRequest
Set llmreq = session.CreateLLMRequest()
On Event LLMCompletionStreamNotify From llmreq Call ProcessResponse
Call llmreq.CompletionStream(""DominoIQ server/Org"", "stdMailSummaryThread" , sMailThread)
Exit Sub
processError:
Dim errMess As String
errMess = "Error " & Err & ": " & Error$
Messagebox(errMess)
Exit Sub
End Sub
Sub ProcessResponse (Source As NotesLLMRequest, Byval lastResponse As Boolean, Byval content As String)
'Do something with content and check lastResponse
'Do cancel based on some condition
Call Source.CancelStream()
End Sub
指定されたコマンドが LLMRequest の completion メソッドで使用できる場合は True を返します。
flag = NotesLLMRequest.isCommandAvailable (SERVER$, COMMAND$[ , suppressErrors ])
SERVER$
文字列。リクエストを送信する Domino IQ サーバーの名前。空の場合、リクエストはコマンドを処理するように設定された Domino IQ サーバーにルーティングされます。
COMMAND$
文字列。Domino IQ設定データベースで定義されたコマンド文書の名前。コマンド文書は、LLMの動作と応答を指示するシステムプロンプトを指定します。
suppressErrors
Boolean 値。オプション。True の場合、Notes の内部エラー処理は抑制され、例外は発生せず、エラーの場合は False のみが返されます。
コマンドが Domino IQ で使用できる場合は True を返します。
コマンドが Domino IQ で使用できない場合は False を返します。
suppressErrors = Trueを渡さない場合、低レベルの障害のために要求の可用性を判断できない場合にエラーが発生します。
エージェントがNotesクライアント上でこのメソッドを使用する場合、Notesクライアントは再起動されるまでコマンドリストをキャッチし続けることに注意してください。メソッドが更新されたコマンドリストを確実にチェックするには、更新後にNotesクライアントを再起動する必要があります。
Domino IQ で使用できるコマンドの配列を返します。
availCmds = llmreq.GetAvailableCommands (SERVER$[, suppressErrors ])
SERVER$
文字列。リクエストを送信する Domino IQ サーバーの名前。空の場合、リクエストはコマンドを処理するように設定されたDomino IQサーバーにルーティングされます。
[,suppressErrors]
Boolean 値。オプション。True の場合、Notes の内部エラー処理は抑制され、例外は発生せず、空の文字列配列のみが返されます。
文字列の配列
suppressErrors=True を渡さない場合、低レベルの障害によってリクエストの可用性を判断できない場合にエラーが発生します。
エージェントが Notes クライアント上でこのメソッドを使用する場合、Notesクライアントは再起動されるまでコマンドリストをキャッチし続けることに注意してください。メソッドが最新のコマンドリストを返すようにするには、更新後にNotesクライアントを再起動する必要があります。
Sub Initialize
On Error Resume Next
Dim session As New NotesSession
Dim llmreq As NotesLLMRequest
Dim displayMsg As String
Dim availCmds As Variant
Set llmreq = session.CreateLLMRequest()
availCmds = llmreq.GetAvailableCommands(""DominoIQ server/Org"")
REM If there are no commands, an array with an empty string will be returned.
If (Not Isempty(availCmds) And Len(availCmds(0)) > 0) Then
Forall cmd In availCmds
displayMsg = displayMsg + cmd
displayMsg = displayMsg + Chr(10)
End Forall
Messagebox displayMsg, MB_OK, "Available Commands"
Else
displayMsg = "No commands available."
Messagebox(displayMsg)
End If
End Sub