Mistral AI, çok dilli anlama, kod üretimi, function calling ve yapılandırılmış çıktılarda üstün başarı gösteren yüksek performanslı modeller sunarak önde gelen bir Avrupalı yapay zeka sağlayıcısı olarak kendini kanıtladı. Mistral'i uygulamalarına entegre etmek isteyen Delphi geliştiricileri için sgcWebSockets, tüm Mistral API'sini temiz ve tür güvenli Delphi koduyla saran kapsamlı, yerel bir bileşen olan TsgcHTTP_API_Mistral'i sunar.
Akıllı chatbot'lar oluşturuyor, yapılandırılmış JSON çıktıları üretiyor, görselleri analiz ediyor, anlamsal arama için embedding oluşturuyor ya da araçlarla desteklenmiş iş akışları düzenliyor olun, bu bileşen size her Mistral özelliğine doğrudan erişim sağlar. REST kalıp kodu yok. JSON ile uğraşma yok. Yalnızca bileşeni ekleyin, API anahtarınızı ayarlayın ve oluşturmaya başlayın.
Eksiksiz API Kapsamı
Mistral API'sinin her başlıca özelliği kutudan çıktığı haliyle desteklenir.
|
Chat Completions Sistem prompt'larıyla mesaj gönderin, yanıtları senkron olarak veya akış halinde alın. Temperature, top-p ve stop dizileri üzerinde tam kontrol. |
Gerçek Zamanlı Akış Yanıtları Server-Sent Events kullanarak token token akıtın. Yanıtları üretilirken görüntüleyen duyarlı kullanıcı arayüzleri oluşturun. |
Vision base64 kodlu veriler veya görsel URL'lerini metin prompt'larıyla birlikte göndererek görselleri analiz edin. Pixtral modelleri görsel içeriği tanımlar, yorumlar ve onun hakkında akıl yürütür. |
|
JSON Modu Mistral'i geçerli JSON çıktısı döndürmeye zorlayın. Veri çıkarımı, yapılandırılmış yanıtlar ve API entegrasyon hatları için idealdir. |
Araç Kullanımı (Function Calling) JSON Schema ile özel araçlar tanımlayın. Mistral, bunları ne zaman çağıracağına karar vererek aracı (agentic), çok adımlı iş akışlarına olanak tanır. |
Embeddings Yüksek kaliteli vektör embedding'leri üretin. Anlamsal aramayı, kümelemeyi, sınıflandırmayı ve öneri sistemlerini güçlendirin. |
|
Safe Prompt Mistral'in yerleşik güvenlik korumalarını tek bir özellikle etkinleştirin. Zararlı veya uygunsuz içeriği otomatik olarak filtreleyin. |
Model Yönetimi Mevcut tüm Mistral modellerini programatik olarak listeleyin. Model kimliklerini, sahiplerini, oluşturma tarihlerini ve yeteneklerini sorgulayın. |
Yerleşik Yeniden Deneme ve Günlük Kaydı Yapılandırılabilir deneme sayıları ve bekleme aralıklarıyla geçici hatalarda otomatik yeniden deneme. Hata ayıklama için tam istek/yanıt günlüğü. |
Başlarken
Mistral AI'yi Delphi projenize bir dakikadan kısa sürede entegre edin. Bileşeni ekleyin, API anahtarınızı yapılandırın ve ilk mesajınızı gönderin.
// Create the component and configure the API key
var
Mistral: TsgcHTTP_API_Mistral;
vResponse: string;
begin
Mistral := TsgcHTTP_API_Mistral.Create(nil);
Try
Mistral.MistralOptions.ApiKey := 'YOUR_API_KEY';
// Send a simple message to Mistral
vResponse := Mistral._CreateMessage(
'mistral-large-latest', 'Hello, Mistral!');
ShowMessage(vResponse);
Finally
Mistral.Free;
End;
end;
İki API stili. Her özellik hem kolaylık metotları (dize tabanlı, minimum kod) hem de türlü istek/yanıt sınıfları (tam kontrol, tür güvenliği) sunar. Kullanım senaryonuza en uygun yaklaşımı seçin.
Chat Completions ve Akış
Chat Completions API'si, her Mistral etkileşiminin temelidir. İsteğe bağlı sistem prompt'larıyla metin gönderin ve yanıtları senkron olarak veya gerçek zamanlı akış halinde alın.
Sistem Prompt'ları
Konuşma için bağlamı, kişiliği veya kısıtlamaları belirleyen bir sistem prompt'u sağlayarak Mistral'in davranışını kontrol edin.
vResponse := Mistral._CreateMessageWithSystem(
'mistral-large-latest',
'You are a helpful assistant that responds in Spanish.',
'What is the capital of France?');
// Returns: "La capital de Francia es París."
Gerçek Zamanlı Akış
Duyarlı kullanıcı arayüzleri için, Mistral'in yanıtını Server-Sent Events kullanarak token token akıtın. OnHTTPAPISSE olay işleyicisini atayın ve _CreateMessageStream'i çağırın.
// Enable streaming via SSE
Mistral.OnHTTPAPISSE := OnSSEEvent;
Mistral._CreateMessageStream('mistral-large-latest',
'Explain the theory of relativity.');
procedure TForm1.OnSSEEvent(Sender: TObject;
const aEvent, aData: string; var Cancel: Boolean);
begin
// aData: JSON payload with generated content
Memo1.Lines.Add(aData);
end;
Gelişmiş Türlü API
İstek parametreleri (temperature, top-p, stop dizileri, random seed, safe prompt) üzerinde tam kontrol için türlü istek ve yanıt sınıflarını kullanın.
var
oRequest: TsgcMistralClass_Request_ChatCompletion;
oMessage: TsgcMistralClass_Request_Message;
oResponse: TsgcMistralClass_Response_ChatCompletion;
begin
oRequest := TsgcMistralClass_Request_ChatCompletion.Create;
Try
oRequest.Model := 'mistral-large-latest';
oRequest.MaxTokens := 2048;
oRequest.Temperature := 0.7;
oRequest.TopP := 0.9;
oRequest.SafePrompt := True;
oRequest.RandomSeed := 42;
oMessage := TsgcMistralClass_Request_Message.Create;
oMessage.Role := 'user';
oMessage.Content := 'Explain quantum computing in simple terms.';
oRequest.Messages.Add(oMessage);
oResponse := Mistral.CreateMessage(oRequest);
Try
if Length(oResponse.Choices) > 0 then
ShowMessage(oResponse.Choices[0].Message.Content);
Finally
oResponse.Free;
End;
Finally
oRequest.Free;
End;
end;
Vision (Görsel Anlama)
Mistral'in Pixtral modelleri görselleri analiz edebilir ve onlar hakkında akıl yürütebilir. Fotoğrafları, ekran görüntülerini, diyagramları veya belgeleri bir metin prompt'uyla birlikte gönderin ve ayrıntılı açıklamalar, veri çıkarımı veya görsel soru-cevap alın.
// Load an image and ask Mistral to analyze it
var
vBase64: string;
begin
vBase64 := sgcBase64Encode(LoadFileToBytes('architecture-diagram.png'));
ShowMessage(Mistral._CreateVisionMessage(
'pixtral-large-latest',
'Describe the architecture shown in this diagram.',
vBase64, 'image/png'));
end;
Kullanım senaryosu. Belge analizini otomatikleştirin, diyagramlardan veri çıkarın, görselleri sınıflandırın veya iş akışlarınıza görsel anlama yeteneği ekleyin; tümü yerel Delphi kodundan.
JSON Modu
Mistral'i geçerli, ayrıştırılabilir JSON çıktısı döndürmeye zorlayın. JSON modu; garantili makine tarafından okunabilir çıktıya ihtiyaç duyduğunuz veri çıkarımı, yapılandırılmış API yanıtları ve otomatik işleme hatları için mükemmeldir.
// Generate structured JSON output
vResponse := Mistral._CreateMessageJSON(
'mistral-large-latest',
'Extract the name, age, and city from: John is 30, lives in Madrid.');
// Returns: {"name": "John", "age": 30, "city": "Madrid"}
// Using the typed API for JSON mode
oRequest.ResponseFormat := 'json_object';
Araç Kullanımı (Function Calling)
JSON Schema ile özel araçlar tanımlayın; Mistral bunları ne zaman ve nasıl çağıracağına karar verir. Bu, yapay zekayı iş mantığınıza bağlayan aracı (agentic), çok adımlı iş akışları oluşturmanın temelidir.
// Define a tool with JSON Schema
oTool := TsgcMistralClass_Request_Tool.Create;
oTool.FunctionName := 'get_weather';
oTool.FunctionDescription := 'Get the current weather in a location';
oTool.FunctionParameters :=
'{"type":"object","properties":{"location":{"type":"string",' +
'"description":"City and country"}},"required":["location"]}';
oRequest.Tools.Add(oTool);
oRequest.ToolChoice := 'auto';
oResponse := Mistral.CreateMessage(oRequest);
// Check if Mistral wants to call a tool
if oResponse.Choices[0].FinishReason = 'tool_calls' then
begin
for i := 0 to Length(oResponse.Choices[0].Message.ToolCalls) - 1 do
begin
vToolId := oResponse.Choices[0].Message.ToolCalls[i].Id;
vFuncName := oResponse.Choices[0].Message.ToolCalls[i].FunctionCall.Name;
vFuncArgs := oResponse.Choices[0].Message.ToolCalls[i].FunctionCall.Arguments;
// Execute the tool and return the result
end;
end;
Embeddings
Mistral'in embedding modellerini kullanarak metin için yüksek kaliteli vektör embedding'leri üretin. Embedding'ler; anlamsal aramayı, belge kümelemeyi, öneri motorlarını ve sınıflandırma görevlerini güçlendirir.
// Generate embeddings for a text
var
vEmbedding: string;
begin
vEmbedding := Mistral._CreateEmbeddings(
'mistral-embed',
'Delphi is a powerful programming language.');
ShowMessage(vEmbedding);
end;
Tam kontrol için, birden çok girdiyi toplu işlemek ve kodlama biçimini seçmek üzere türlü API'yi kullanın.
var
oRequest: TsgcMistralClass_Request_Embeddings;
oResponse: TsgcMistralClass_Response_Embeddings;
begin
oRequest := TsgcMistralClass_Request_Embeddings.Create;
Try
oRequest.Model := 'mistral-embed';
oRequest.Input.Add('First document to embed');
oRequest.Input.Add('Second document to embed');
oRequest.EncodingFormat := 'float';
oResponse := Mistral.CreateEmbeddings(oRequest);
Try
ShowMessage('Embeddings: ' + IntToStr(Length(oResponse.Data)));
ShowMessage('Tokens used: ' + IntToStr(oResponse.Usage.TotalTokens));
Finally
oResponse.Free;
End;
Finally
oRequest.Free;
End;
end;
Safe Prompt
Mistral, tek bir özellikle etkinleştirilebilen yerleşik bir güvenlik katmanı sunar. SafePrompt etkinleştirildiğinde, zararlı veya uygunsuz içeriği filtrelemek için güvenlik odaklı bir sistem prompt'u otomatik olarak başa eklenir.
// Enable safety guardrails
oRequest.SafePrompt := True;
Yeniden üretilebilir sonuçlar. Deterministik çıktılar elde etmek için RandomSeed'i sabit bir değere ayarlayın. Temperature := 0 ile birleştiğinde, bu aynı girdi için özdeş yanıtlar sağlar; test ve doğrulama hatları için idealdir.
Model Yönetimi
Mevcut Mistral modellerini programatik olarak sorgulayın. Yeni yetenekleri kullanılabilir hale geldikçe keşfetmek için tüm modelleri listeleyin.
// List all available Mistral models
vModels := Mistral._GetModels;
// Typed API: access model properties directly
var
oModels: TsgcMistralClass_Response_Models;
i: Integer;
begin
oModels := Mistral.GetModels;
Try
for i := 0 to Length(oModels.Data) - 1 do
Memo1.Lines.Add(oModels.Data[i].Id + ' (by ' +
oModels.Data[i].OwnedBy + ')');
Finally
oModels.Free;
End;
end;
Yapılandırma ve Seçenekler
Kapsamlı yapılandırma seçenekleriyle bileşen davranışında ince ayar yapın.
| Özellik | Açıklama |
|---|---|
MistralOptions.ApiKey |
Mistral API anahtarınız (zorunlu) |
HttpOptions.ReadTimeout |
Milisaniye cinsinden HTTP okuma zaman aşımı (varsayılan: 60000) |
LogOptions.Enabled |
İstek/yanıt günlüğünü etkinleştir |
RetryOptions.Enabled |
Geçici hatalarda otomatik yeniden deneme |
RetryOptions.Retries |
Maksimum yeniden deneme sayısı (varsayılan: 3) |
RetryOptions.Wait |
Milisaniye cinsinden yeniden denemeler arasındaki bekleme süresi (varsayılan: 3000) |
İstek Parametreleri
| Parametre | Açıklama |
|---|---|
Temperature |
Örnekleme sıcaklığı (0.0–2.0). Daha düşük değerler = daha deterministik. |
TopP |
Nucleus örnekleme (0.0–1.0). Kümülatif olasılık eşiğini kontrol eder. |
MaxTokens |
Yanıttaki maksimum token sayısı (varsayılan: 4096). |
SafePrompt |
İçerik filtreleme için yerleşik güvenlik korumalarını etkinleştirin. |
RandomSeed |
Yeniden üretilebilir çıktılar için sabit seed. Test için idealdir. |
ResponseFormat |
Garantili JSON çıktısı için 'json_object' olarak ayarlayın. |
ToolChoice |
Araç seçimini kontrol edin: 'auto', 'none' veya 'required'. |
Avrupalı yapay zeka avantajı. Mistral'in merkezi Fransa'dadır ve AB'de barındırılan çıkarım sunar; bu da onu Avrupa veri yerleşimi gereksinimleri olan kuruluşlar için mükemmel bir seçim haline getirir. sgcWebSockets bileşeninin yerleşik yeniden deneme mantığı, günlük kaydı ve tür güvenli API'siyle birleştiğinde, tam mevzuat uyumluluğuyla üretime hazır yapay zeka entegrasyonu elde edersiniz.
