NotesLLMRequest (LotusScript)

Domino IQ サーバー経由で言語モデル (LLM) に要求を送信するために使用されるクラスです。

メソッド

Completion メソッド (NotesLLMRequest - LotusScript)

Domino IQ サーバーによってホストされている大規模言語モデル (LLM) にチャット完了要求を送信します。

CompletionStream メソッド (NotesLLMRequest - LotusScript

DominoIQ がホストする大規模言語モデル (LLM) にチャット完了メソッドリクエストを送信し、ストリームモードで応答を受信します。DominoIQ サーバーによって発行される通知イベントに基づいて、ユーザーはすぐに応答処理を開始できます。

CancelStream メソッド (NotesLLMRequest- LotusScript)

CompletionStream メソッドを使用してストリームモードで応答を受信する場合、必要に応じて、CancelStream メソッドを使用して応答のストリームを停止できます。

IsCommandAvailable メソッド (NotesLLMRequest - LotusScript)

指定されたコマンドが LLMRequest の Completion メソッドで使用できる場合は True を返します。

GetAvailableCommands メソッド (NotesLLMRequest - LotusScript)

Domino IQ で使用できるコマンドの配列を返します。
 
 

Completion メソッド (NotesLLMRequest - LotusScript)

Domino IQ サーバーによってホストされている大規模言語モデル (LLM) にチャット完了要求を送信します。

構文

NotesLLMRequest.completion (SERVER$, COMMAND$, userPROMPT$)

パラメータ

SERVER$

文字列。リクエストを送信するために必要なDominoサーバーIQ名。空の場合、リクエストはコマンドを処理するように設定されたDomino IQサーバーにルーティングされます。

COMMAND$

文字列。Domino IQ設定データベースで定義されたコマンド文書の名前。コマンド文書は、LLMの動作と応答を指示するシステムプロンプトを指定します。

userPROMPT$

文字列。ユーザープロンプトとは、このメソッドの呼び出し元によって提供される特定の入力です。このプロンプトは、コマンド文書で定義されたシステムプロンプトと結合され、Domino IQサーバーを介して言語モデルに提示されます。

戻り値

NotesLLMResponse

注:リクエストが成功しなかった場合、例外が発生し、NotesLLMResponse は受信されません。LotusScript の On Error 関数を使用して例外をキャッチします。クエリが成功しなかった状況によって、発生する例外が異なります。例えば、server パラメータが Domino IQ サーバーのホストでない場合は「サーバーへのパスが見つかりません」、Command パラメータが Domino IQ 設定データベースで設定されたコマンドでない場合は「エントリが見つかりません」というメッセージが表示されます。
 

例: Completion メソッド (NotesLLMRequest - LotusScript)

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
 

CompletionStream メソッド (NotesLLMRequest - LotusScript)

DominoIQ がホストする大規模言語モデル (LLM) に completion リクエストを送信し、ストリームモードで応答を受信します。DominoIQ サーバーによって発行される通知イベントに基づいて、ユーザーはすぐに応答処理を開始できます。

パラメータ

SERVER$

文字列。リクエストを送信する Domino IQ サーバーの名前。空の場合、リクエストはコマンドを処理するように設定された Domino IQ サーバーにルーティングされます。

COMMAND$

文字列。Domino IQ 設定データベースで定義されたコマンド文書の名前。コマンド文書は、LLM の動作と応答を指示するシステムプロンプトを指定します。

userPROMPT$

文字列。ユーザープロンプトとは、このメソッドの呼び出し元によって提供される特定の入力です。このプロンプトは、コマンド文書で定義されたシステムプロンプトと結合され、Domino IQ サーバーを介して言語モデルに提供されます。

例: CompletionStream メソッド (NotesLLMRequest - LotusScript)

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

 

CancelStream メソッド (NotesLLMRequest- LotusScript)

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
 

IsCommandAvailable メソッド (NotesLLMRequest - LotusScript)

指定されたコマンドが 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クライアントを再起動する必要があります。

 

GetAvailableCommands メソッド (NotesLLMRequest - LotusScript)

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