OpenAI Assistant 组件 — sgcAI | eSeGeCe

OpenAI Assistant

TsgcAIOpenAIAssistant 封装了 OpenAI Assistants API。创建一个带指令和工具的助手,打开一个线程,发布消息并启动运行,可以阻塞也可以流式。File Search、Code Interpreter 和您自己的函数都以属性形式配置。

TsgcAIOpenAIAssistant

基于 OpenAI Assistants API 的有状态智能体。该组件管理助手、线程、消息、运行和向量存储,并把工具调用分派回您的代码。

组件类

TsgcAIOpenAIAssistant

用途

基于 OpenAI Assistants API 的智能体

平台

Win32 和 Win64

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);

关键属性与方法

您最常使用的成员。

AssistantOptions

NameModelInstructionsTemperatureTopP 描述该助手。Tools.FileSearchTools.CodeInterpreterTools.Functions 启用内置工具和自定义工具。

助手

CreateAssistantGetAssistantListAssistants 用于管理您 OpenAI 账户上的助手定义。

线程与消息

CreateThreadGetThread 用于开启一段对话。CreateMessageText 发布一轮内容,GetMessages 则通过 limit、order 和游标参数分页浏览对话记录。

运行

CreateRun 启动一次运行,GetRun 轮询它,CreateRunAndWait 则带超时地阻塞直到运行结束。它们都可以采用流式方式。

UploadVectorStoreFile 把文档添加到一个具名向量存储中,GetVectorStoreFiles 列出其中已有的内容,助手正是借此把答案建立在您自己的文件之上。

事件

OnStreamMessageOnStreamMessageDeltaOnStreamRunOnStreamErrorOnStreamDone 用于跟踪流式运行。OnFunctionCall 把工具调用分派到您的代码。

语音前端

该组件还可以关联 AudioRecorderTextToSpeech,因此同一个助手可以用语音而不是键盘输入来驱动。

规范与参考资料

该组件所用服务和协议的权威资料来源。

继续探索

在线帮助sgcAI 组件的完整 API 参考和使用指南。
所有 sgcAI 组件浏览全部 15 个组件的完整功能矩阵。
下载免费试用版用您自己的 OpenAI 密钥构建一个会使用工具的助手。
价格Single、Team 和 Site 授权,均含完整源代码,无需基础产品。
超值之选:All-AccesseSeGeCe 全部产品,含高级支持,每年 €1,059 起。
查看 All-Access 价格

准备好开始了吗?

下载免费试用版,为您的应用程序配上一个带工具、能用您自己文档的智能体。