OpenAI Assistant
TsgcAIOpenAIAssistant 封装了 OpenAI Assistants API。创建一个带指令和工具的助手,打开一个线程,发布消息并启动运行,可以阻塞也可以流式。File Search、Code Interpreter 和您自己的函数都以属性形式配置。
TsgcAIOpenAIAssistant 封装了 OpenAI Assistants API。创建一个带指令和工具的助手,打开一个线程,发布消息并启动运行,可以阻塞也可以流式。File Search、Code Interpreter 和您自己的函数都以属性形式配置。
基于 OpenAI Assistants API 的有状态智能体。该组件管理助手、线程、消息、运行和向量存储,并把工具调用分派回您的代码。
sgcAI 是自包含的。该组件随 sgcAI 一同交付,并附带它所基于的 sgcWebSockets Core 运行时,因此无需购买基础授权。
配置助手,打开线程,发布消息,然后运行。流式运行会在答案生成过程中触发事件。
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 发布一轮内容,GetMessages 则通过 limit、order 和游标参数分页浏览对话记录。
CreateRun 启动一次运行,GetRun 轮询它,CreateRunAndWait 则带超时地阻塞直到运行结束。它们都可以采用流式方式。
UploadVectorStoreFile 把文档添加到一个具名向量存储中,GetVectorStoreFiles 列出其中已有的内容,助手正是借此把答案建立在您自己的文件之上。
OnStreamMessage、OnStreamMessageDelta、OnStreamRun、OnStreamError 和 OnStreamDone 用于跟踪流式运行。OnFunctionCall 把工具调用分派到您的代码。
该组件还可以关联 AudioRecorder 和 TextToSpeech,因此同一个助手可以用语音而不是键盘输入来驱动。
该组件所用服务和协议的权威资料来源。