La Assistants API te permite construir asistentes de IA dentro de tus propias aplicaciones. Un Assistant tiene instrucciones y puede aprovechar modelos, herramientas y archivos para responder a las consultas de los usuarios. La Assistants API admite actualmente tres tipos de herramientas: Code Interpreter, File Search y Function calling.
Visión general
Una integración típica de la Assistants API sigue este flujo:
- Crea un Assistant definiendo sus instrucciones personalizadas y eligiendo un modelo. Si es útil, añade archivos y habilita herramientas como Code Interpreter, File Search y Function calling.
- Crea un Thread cuando un usuario inicia una conversación.
- Añade Messages al Thread a medida que el usuario hace preguntas.
- Ejecuta el Assistant sobre el Thread para generar una respuesta llamando al modelo y a las herramientas.
Paso 1: crear un Assistant
Un Assistant representa una entidad que se puede configurar para responder a los mensajes de un usuario usando varios parámetros como modelo, instrucciones y herramientas.
// ... 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();
Paso 2: crear un Thread
Un Thread representa una conversación entre un usuario y uno o varios Assistants. Puedes crear un Thread cuando un usuario (o tu aplicación de IA) inicia una conversación con tu Assistant.
oThread := oAssistant.CreateThread;
Paso 3: añadir un Message al Thread y ejecutarlo
El contenido de los mensajes que crean tus usuarios o aplicaciones se añade como objetos Message al Thread. Los Messages pueden contener tanto texto como archivos. No hay límite en el número de Messages que puedes añadir a un Thread — truncamos inteligentemente cualquier contexto que no encaje en la ventana de contexto del modelo.
Una vez añadidos todos los Messages del usuario al Thread, puedes ejecutar (Run) el Thread con cualquier Assistant. Crear un Run usa el modelo y las herramientas asociadas al Assistant para generar una respuesta. Estas respuestas se añaden al Thread como Messages del 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
A continuación encontrarás una demo compilada de OpenAI Assistants usando sgcWebSockets Enterprise para Windows.
