L'API Assistants te permet de construire des assistants IA dans tes propres applications. Un Assistant dispose d'instructions et peut tirer parti de modèles, d'outils et de fichiers pour répondre aux requêtes des utilisateurs. L'API Assistants prend actuellement en charge trois types d'outils : Code Interpreter, File Search et Function Calling.
Aperçu
Une intégration typique de l'API Assistants suit le flux suivant :
- Crée un Assistant en définissant ses instructions personnalisées et en choisissant un modèle. Si nécessaire, ajoute des fichiers et active des outils comme Code Interpreter, File Search et Function Calling.
- Crée un Thread lorsqu'un utilisateur démarre une conversation.
- Ajoute des Messages au Thread au fur et à mesure que l'utilisateur pose des questions.
- Exécute l'Assistant sur le Thread pour générer une réponse en appelant le modèle et les outils.
Étape 1 : créer un Assistant
Un Assistant représente une entité qui peut être configurée pour répondre aux messages d'un utilisateur via plusieurs paramètres comme le modèle, les instructions et les outils.
// ... créer un nouvel assistant oAssistant := TsgcAIOpenAIAssistant.Create(nil); // ... définir ta clé api oAssistant.OpenAIOptions.ApiKey := txtAPIKey.Text; // ... options de l'assistant 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'; // ... créer l'assistant oAssistant.CreateAssistant();
Étape 2 : créer un Thread
Un Thread représente une conversation entre un utilisateur et un ou plusieurs Assistants. Tu peux créer un Thread lorsqu'un utilisateur (ou ton application IA) démarre une conversation avec ton Assistant.
oThread := oAssistant.CreateThread;
Étape 3 : ajouter un Message au Thread et exécuter
Le contenu des messages créés par tes utilisateurs ou tes applications est ajouté au Thread sous forme d'objets Message. Les Messages peuvent contenir à la fois du texte et des fichiers. Il n'y a pas de limite au nombre de Messages que tu peux ajouter à un Thread — nous tronquons intelligemment tout contexte qui ne tient pas dans la fenêtre de contexte du modèle.
Une fois que tous les Messages utilisateur ont été ajoutés au Thread, tu peux exécuter le Thread avec n'importe quel Assistant. La création d'un Run utilise le modèle et les outils associés à l'Assistant pour générer une réponse. Ces réponses sont ajoutées au Thread sous forme de Messages d'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;
Démo Delphi
Tu trouveras ci-dessous une démo compilée des OpenAI Assistants utilisant sgcWebSockets Enterprise pour Windows.
