A Assistants API permite criar assistentes de IA dentro dos seus próprios aplicativos. Um Assistant possui instruções e pode usar modelos, ferramentas e arquivos para responder às perguntas dos usuários. Atualmente, a Assistants API suporta três tipos de ferramentas: Code Interpreter, File Search e Function calling.
Visão geral
Uma integração típica da Assistants API tem o seguinte fluxo:
- Crie um Assistant definindo suas instruções personalizadas e escolhendo um modelo. Se necessário, adicione arquivos e habilite ferramentas como Code Interpreter, File Search e Function calling.
- Crie uma Thread quando um usuário iniciar uma conversa.
- Adicione Messages à Thread conforme o usuário faz perguntas.
- Execute o Assistant na Thread para gerar uma resposta chamando o modelo e as ferramentas.
Passo 1: Criar um Assistant
Um Assistant representa uma entidade que pode ser configurada para responder às mensagens do usuário usando vários parâmetros como modelo, instruções e ferramentas.
// ... create a new assistant oAssistant := TsgcAIOpenAIAssistant.Create(nil); // ... set your api key oAssistant.OpenAIOptions.ApiKey := txtAPIKey.Text; // ... assistant options oAssistant.AssistantOptions.Name := 'Math Tutor'; oAssistant.AssistantOptions.Instructions.Text := 'You are a personal math tutor. Write and run code to answer math questions.'; oAssistant.AssistantOptions.Model := 'gpt-4o'; // ... create the assistant oAssistant.CreateAssistant();
Passo 2: Criar uma Thread
Uma Thread representa uma conversa entre um usuário e um ou vários Assistants. Você pode criar uma Thread quando um usuário (ou seu aplicativo de IA) iniciar uma conversa com seu Assistant.
oThread := oAssistant.CreateThread;
Passo 3: Adicionar uma Message à Thread e Executar
O conteúdo das mensagens criadas pelos seus usuários ou aplicativos é adicionado como objetos Message à Thread. As Messages podem conter texto e arquivos. Não há limite para a quantidade de Messages que você pode adicionar às Threads — o contexto que não couber na janela de contexto do modelo é truncado de forma inteligente.
Depois que todas as Messages do usuário forem adicionadas à Thread, você pode executar a Thread com qualquer Assistant. Criar um Run usa o modelo e as ferramentas associadas ao Assistant para gerar uma resposta. Essas respostas são adicionadas à Thread como Messages do assistant.
procedure SendMessage(const oAssistant: TsgcAIOpenAIAssistant; const oThread: TsgcAIClass_Thread; const aMessage: string);
var
i: Integer;
oMessage: TsgcOpenAIClass_Message;
oMessages: TsgcOpenAIClass_Response_List_Messages;
oRun: TsgcOpenAIClass_Run;
begin
DoLog('[user]: ' + aMessage);
oMessage := oAssistant.CreateMessageText(oThread.Id, aMessage);
if Assigned(oMessage) then
begin
oRun := oAssistant.CreateRunAndWait(oThread.Id);
if Assigned(oRun) then
begin
oMessages := oAssistant.GetMessages(oThread.Id, oRun.Id);
if Assigned(oMessages) and (Length(oMessages.Messages) > 0) then
begin
for i := 0 to Length(oMessages.Messages) - 1 do
DoLog('[assistant]: ' + DoFormatResponse(oMessages.Messages[i].ContentText + #13#10));
end;
end;
end;
end;
Demo Delphi
Veja abaixo uma demo compilada dos OpenAI Assistants usando sgcWebSockets Enterprise para Windows.
