Assistants API, kendi uygulamalarınız içinde yapay zeka asistanları oluşturmanıza olanak tanır. Bir Asistanın talimatları vardır ve kullanıcı sorgularına yanıt vermek için modellerden, araçlardan ve dosyalardan yararlanabilir. Assistants API şu anda üç tür aracı destekler: Code Interpreter, File Search ve Function calling.
Genel Bakış
Assistants API'sinin tipik bir entegrasyonu şu akışa sahiptir:
- Özel talimatlarını tanımlayıp bir model seçerek bir Asistan oluşturun. Yararlıysa dosyalar ekleyin ve Code Interpreter, File Search ve Function calling gibi araçları etkinleştirin.
- Bir kullanıcı konuşma başlattığında bir Thread oluşturun.
- Kullanıcı soru sordukça Thread'e Mesajlar ekleyin.
- Modeli ve araçları çağırarak bir yanıt üretmek için Asistanı Thread üzerinde çalıştırın.
Adım 1: Bir Asistan oluşturun
Bir Asistan, model, talimatlar ve araçlar gibi çeşitli parametreler kullanılarak bir kullanıcının mesajlarına yanıt verecek şekilde yapılandırılabilen bir varlığı temsil eder.
// ... 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();
Adım 2: Bir Thread oluşturun
Bir Thread, bir kullanıcı ile bir veya birden çok Asistan arasındaki bir konuşmayı temsil eder. Bir kullanıcı (veya yapay zeka uygulamanız) Asistanınızla bir konuşma başlattığında bir Thread oluşturabilirsiniz.
oThread := oAssistant.CreateThread;
Adım 3: Thread'e bir Mesaj ekleyin ve Çalıştırın
Kullanıcılarınızın veya uygulamalarınızın oluşturduğu mesajların içeriği, Thread'e Message nesneleri olarak eklenir. Mesajlar hem metin hem de dosya içerebilir. Thread'lere ekleyebileceğiniz Mesaj sayısında bir sınır yoktur; modelin bağlam penceresine sığmayan herhangi bir bağlamı akıllıca kısaltırız.
Tüm kullanıcı Mesajları Thread'e eklendikten sonra, Thread'i herhangi bir Asistanla Çalıştırabilirsiniz. Bir Run oluşturmak, bir yanıt üretmek için Asistanla ilişkili modeli ve araçları kullanır. Bu yanıtlar, asistan Mesajları olarak Thread'e eklenir.
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 Demosu
Windows için sgcWebSockets Enterprise kullanan, OpenAI Assistants'ın derlenmiş bir demosunu aşağıda bulabilirsiniz.
