sgcWebSockets 2024.10.0 sürümünden itibaren, genel modeli kullanmak yerine kendi dosyalarınızda arama yapmak için OpenAI Assistants'ı kullanabilirsiniz.
File Search, Asistanı modelinin dışındaki bilgilerle, örneğin tescilli ürün bilgileri veya kullanıcılarınızın sağladığı belgelerle zenginleştirir. OpenAI, belgelerinizi otomatik olarak ayrıştırır ve parçalara böler, embedding'leri oluşturup saklar ve kullanıcı sorgularını yanıtlamak için ilgili içeriği almak üzere hem vektör hem de anahtar kelime aramasını kullanır.
Desteklenen Dosyalar
Desteklenen dosyalar
text/ MIME türleri için kodlama şunlardan biri olmalıdır: utf-8, utf-16 veya ascii.
| Dosya biçimi | MIME türü |
|---|---|
.c | text/x-c |
.cpp | text/x-c++ |
.cs | text/x-csharp |
.css | text/css |
.doc | application/msword |
.docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
.go | text/x-golang |
.html | text/html |
.java | text/x-java |
.js | text/javascript |
.json | application/json |
.md | text/markdown |
.pdf | application/pdf |
.php | text/x-php |
.pptx | application/vnd.openxmlformats-officedocument.presentationml.presentation |
.py | text/x-python |
.py | text/x-script.python |
.rb | text/x-ruby |
.sh | application/x-sh |
.tex | text/x-tex |
.ts | application/typescript |
.txt | text/plain |
Adım 1: File Search Etkin Yeni Bir Asistan oluşturun
Asistanın tools parametresinde file_search etkinleştirilmiş yeni bir asistan oluşturun.
file_search aracı etkinleştirildikten sonra, model kullanıcı mesajlarına göre içeriğin ne zaman alınacağına karar verir.
Assistant := TsgcAIOpenAIAssistant.Create(nil); Assistant.OpenAIOptions.ApiKey := 'sk-askdjfalskdjfl23kjkjasdefasdfj'; Assistant.AssistantOptions.Name := 'sgcWebSockets HelpDesk'; Assistant.AssistantOptions.Instructions.Text := 'You are a sgcWebSockets HelpDesk Agent. ' + 'Answer questions briefly, in a sentence or less. When asked a question,use the manual to answer the question.' Assistant.AssistantOptions.Model := 'gpt-4o-mini'; Assistant.AssistantOptions.Tools.FileSearch.Enabled := True; Assistant.AssistantOptions.Tools.CodeInterpreter.Enabled := False;
Adım 2: Dosyaları yükleyin ve bir Vector Store'a ekleyin
Dosyalarınıza erişmek için file_search aracı Vector Store nesnesini kullanır. Dosyalarınızı yükleyin ve bunları içerecek bir Vector Store oluşturun.
procedure UploadFile();
var
oDialog: TOpenDialog;
begin
oDialog := TOpenDialog.Create(nil);
Try
if oDialog.Execute then
begin
Screen.Cursor := crHourGlass;
Try
Assistant.UploadVectorStoreFile('sgcVectorStore', oDialog.FileName);
Finally
Screen.Cursor := crDefault;
End;
end;
Finally
oDialog.Free;
End;
end;
Adım 3: Bir run oluşturun ve çıktıyı kontrol edin
Şimdi bir Run oluşturun ve modelin kullanıcının sorusuna yanıt vermek için File Search aracını kullandığını gözlemleyin.
procedure SendMessage()
var
i: Integer;
oMessage: TsgcOpenAIClass_Message;
oMessages: TsgcOpenAIClass_Response_List_Messages;
oRun: TsgcOpenAIClass_Run;
begin
DoLog('[user]: ' + memoMessage.Lines.Text);
Screen.Cursor := crHourGlass;
Try
oMessage := Assistant.CreateMessageText('thread_id', 'Create a WebSocket Client that connects to eSeGeCe WebSocket Server');
if Assigned(oMessage) then
begin
oRun := Assistant.CreateRunAndWait('thread_id');
if Assigned(oRun) then
begin
oMessages := Assistant.GetMessages('thread_id', oRun.Id);
if Assigned(oMessages) and (Length(oMessages.Messages) > 0) then
begin
memoMessage.Lines.Text := '';
for i := 0 to Length(oMessages.Messages) - 1 do
DoLog('[assistant]: ' + DoFormatResponse(oMessages.Messages[i]
.ContentText + #13#10));
end;
end;
end;
Finally
Screen.Cursor := crDefault;
End;
end;
