OpenAI Assistant
TsgcAIOpenAIAssistant は OpenAI Assistants API をラップします。指示とツールを備えたアシスタントを作成し、スレッドを開き、メッセージを投稿して、ブロッキングまたはストリーミングでランを開始できます。File Search、Code Interpreter、独自の関数はプロパティとして設定します。
TsgcAIOpenAIAssistant は OpenAI Assistants API をラップします。指示とツールを備えたアシスタントを作成し、スレッドを開き、メッセージを投稿して、ブロッキングまたはストリーミングでランを開始できます。File Search、Code Interpreter、独自の関数はプロパティとして設定します。
OpenAI Assistants API 上で動作する、状態を保持するエージェントです。アシスタント、スレッド、メッセージ、ラン、ベクトルストアを管理し、ツール呼び出しをコード側にディスパッチします。
TsgcAIOpenAIAssistant
OpenAI Assistants API のエージェント
Win32 および Win64
sgcAI は単体で完結しています。このコンポーネントは、土台となる sgcWebSockets Core ランタイムとともに sgcAI に同梱されているため、基本ライセンスを購入する必要はありません。
アシスタントを設定し、スレッドを開き、メッセージを投稿して実行します。ストリーミングのランでは、回答が生成されるにつれてイベントが発生します。
uses
sgcAI, sgcAI_OpenAI_Audio_Assistant;
var
oAssistant: TsgcAIOpenAIAssistant;
oThread: TsgcOpenAIClass_Thread;
begin
oAssistant := TsgcAIOpenAIAssistant.Create(nil);
oAssistant.OpenAIOptions.ApiKey := 'sk-...';
oAssistant.AssistantOptions.Name := 'Support Agent';
oAssistant.AssistantOptions.Model := 'gpt-4o';
oAssistant.AssistantOptions.Instructions.Text :=
'Answer support questions from the product manual only.';
oAssistant.AssistantOptions.Tools.FileSearch.Enabled := True;
oAssistant.OnStreamMessageDelta := AssistantDelta;
oAssistant.OnFunctionCall := AssistantFunctionCall;
oAssistant.CreateAssistant;
oThread := oAssistant.CreateThread;
oAssistant.CreateMessageText(oThread.Id, 'How do I reset the device?');
oAssistant.CreateRunAndWait(oThread.Id, 60000, True);
end;
// includes: sgcAI.hpp, sgcAI_OpenAI_Audio_Assistant.hpp
TsgcAIOpenAIAssistant *oAssistant = new TsgcAIOpenAIAssistant(NULL);
oAssistant->OpenAIOptions->ApiKey = "sk-...";
oAssistant->AssistantOptions->Name = "Support Agent";
oAssistant->AssistantOptions->Model = "gpt-4o";
oAssistant->AssistantOptions->Tools->FileSearch->Enabled = true;
oAssistant->OnStreamMessageDelta = AssistantDelta;
oAssistant->CreateAssistant();
TsgcOpenAIClass_Thread *oThread = oAssistant->CreateThread();
oAssistant->CreateMessageText(oThread->Id, "How do I reset the device?");
oAssistant->CreateRunAndWait(oThread->Id, 60000, true);
最もよく使うメンバーです。
Name、Model、Instructions、Temperature、TopP でアシスタントを定義します。Tools.FileSearch、Tools.CodeInterpreter、Tools.Functions で組み込みツールと独自ツールを有効にします。
CreateAssistant、GetAssistant、ListAssistants で、OpenAI アカウント上のアシスタント定義を管理します。
CreateThread と GetThread で会話を開始します。CreateMessageText が 1 ターンを投稿し、GetMessages が limit、order、カーソルの各引数で履歴をページングします。
CreateRun がランを開始し、GetRun が状態をポーリングし、CreateRunAndWait がタイムアウト付きで完了までブロックします。いずれもストリーミングに対応します。
UploadVectorStoreFile は指定したベクトルストアにドキュメントを追加し、GetVectorStoreFiles は登録済みのファイルを一覧表示します。これによりアシスタントは自社のファイルに基づいて回答します。
OnStreamMessage、OnStreamMessageDelta、OnStreamRun、OnStreamError、OnStreamDone がストリーミングのランを追跡します。OnFunctionCall はツール呼び出しをコード側にディスパッチします。
このコンポーネントは AudioRecorder と TextToSpeech のリンクも受け付けるため、同じアシスタントをキーボード入力ではなく音声で操作できます。
このコンポーネントが利用するサービスとプロトコルの一次情報です。