Met de Assistants-API bouw je AI-assistenten in je eigen toepassingen. Een Assistant heeft instructies en kan modellen, tools en bestanden inzetten om gebruikersvragen te beantwoorden. De Assistants-API ondersteunt momenteel drie soorten tools: Code Interpreter, File Search en Function calling.
Overzicht
Een typische integratie van de Assistants-API heeft het volgende verloop:
- Maak een Assistant aan door zijn aangepaste instructies te definiëren en een model te kiezen. Voeg eventueel bestanden toe en schakel tools in zoals Code Interpreter, File Search en Function calling.
- Maak een Thread aan zodra een gebruiker een gesprek start.
- Voeg Messages toe aan de Thread terwijl de gebruiker vragen stelt.
- Voer de Assistant uit op de Thread om een antwoord te genereren door het model en de tools aan te roepen.
Stap 1: Een Assistant aanmaken
Een Assistant vertegenwoordigt een entiteit die geconfigureerd kan worden om te reageren op berichten van een gebruiker met behulp van diverse parameters zoals model, instructies en tools.
// ... 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();
Stap 2: Een Thread aanmaken
Een Thread vertegenwoordigt een gesprek tussen een gebruiker en een of meer Assistants. Je kunt een Thread aanmaken zodra een gebruiker (of je AI-toepassing) een gesprek start met je Assistant.
oThread := oAssistant.CreateThread;
Stap 3: Een Message toevoegen aan de Thread en uitvoeren
De inhoud van de berichten die je gebruikers of toepassingen aanmaken, wordt als Message-object toegevoegd aan de Thread. Messages kunnen zowel tekst als bestanden bevatten. Er is geen limiet aan het aantal Messages dat je aan Threads kunt toevoegen — we kappen elke context die niet in het contextvenster van het model past op slimme wijze af.
Zodra alle gebruikers-Messages aan de Thread zijn toegevoegd, kun je de Thread uitvoeren met elke Assistant. Het aanmaken van een Run gebruikt het model en de tools die aan de Assistant zijn gekoppeld om een antwoord te genereren. Deze antwoorden worden als assistant-Messages aan de Thread toegevoegd.
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;
Delphi-demo
Hieronder vind je een gecompileerde demo van OpenAI Assistants met sgcWebSockets Enterprise voor Windows.
