Başvuru
Temel özellikler & yöntemler
En sık başvurduğunuz üyeler.
Bir sağlayıcı, Enterprise ya da All-Access sürümünün ya da sgcAI paketinin AI birimlerini gerektirir ve bunlar yalnızca Windows'tadır. Yerleşik ayrıştırıcı sağlayıcı olmadan her platformda yanıt verir. Birim, SGC_HTML tanımlı olduğunda derlenir; sgcVer.inc bunu Android ve iOS için tanımlamaz ve sgcHTML tek başına bir pakettir, sgcWebSockets'ten bağımsız olarak satılır.
Nereye atanır
AIAssistant, TsgcHTMLComponent_Grid, TsgcHTMLComponent_DataTable, TsgcHTMLComponent_PivotTable, TsgcHTMLComponent_Form ve TsgcHTMLComponent_InlineAIPrompt üzerinde bulunur. AIQueryEnabled ızgarada, veri tablosunda ve pivotta bulunur: sorgu çubuğunu, yorumlama çipini ve temizleme denetimini işler. Formda AIQueryEnabled yoktur, asistanı akıllı yapıştırma için kullanır ve InlineAIPrompt onu yanıtı için kullanır. Hiçbir asistan atanmadığı sürece bir ızgara hiçbir AI işaretlemesi işlemez.
Makineden neler çıkar
Bir ızgara ya da pivot sorusu; sütun adlarını, başlıkları, türleri ve sütun başına en fazla üç örnek değeri gönderir, her biri 40 karaktere kısaltılır. Geçit ayarı ne olursa olsun başka hiçbir şey gönderilmez. Satırlar yalnızca satırlarla ilgili çağrılar üzerinden ve yalnızca AllowRowDataToProvider değeri True olduğunda çıkar, ki varsayılan olarak öyle değildir: SuggestColumnValues ve Summarize bu durumda False döndürür ve hiçbir şey göndermez, MaxRows ise taşıyabilecekleri miktarı sınırlar. Akıllı yapıştırma, bir kişinin yapıştırdığı metni ve her alanın adını, etiketini ve türünü gönderir, formun hiçbir değerini göndermez.
Doğrulama sınırdır
Bir sağlayıcının döndürdüğü her şey güvenilmeyen metin olarak ele alınır. Her sütun adı beyaz listenizle eşleşmelidir, tam adıyla ve büyük/küçük harf ayrımı yapılmadan. Her işleç TsgcHTMLAIOperator içindeki 13 değerden biri olmalıdır, her toplama işlevi sum, count, avg, min ve max değerlerinden biri olmalıdır ve her değer sütununun türüne göre dönüştürülür: dönüştürülemeyen bir değer işleminin tamamını düşürür. Bir vurgu stili primary, secondary, success, danger, warning, info, light ya da dark değerlerinden biri olmalıdır. Sınırlar MaxLimit değerine kısıtlanır, en fazla 32 filtre, 32 sıralama ve 32 vurgu olabilir, kontrol karakterleri ayıklanır ve bilinmeyen her şey sessizce atılır. Hiçbir şey kalmazsa açıklama dahil tüm küme temizlenir. Bir istem enjeksiyonu (prompt injection) boş ya da kısmi bir küme üretir, hiçbir zaman bir istisna üretmez.
İşlem modeli
TsgcHTMLGridOps şunları tutar: Filters, Sorts, Highlights, GroupBy, Limit ve Explanation. TsgcHTMLPivotOps şunları tutar: Rows, Columns, Measure, Aggregate ve Explanation. TsgcHTMLAIColumns beyaz listedir: her sütun için Add(aName, aDataType, aCaption) ve örnekler için AddSample. Her iki işlem sınıfı da IsEmpty, ToText ve ToJSON sunar, FromJSON ise yalnızca sütunları geçirdiğinizde tam sınırdır, bu yüzden bir tarayıcıdan geri okunan her şeyi güncel beyaz listeye karşı yeniden doğrulayın.
Sağlayıcı seçme
Provider, aiprOpenAI (varsayılan), aiprAnthropic, aiprGemini, aiprDeepSeek, aiprOllama, aiprGrok ve aiprMistral değerlerinden biridir; bunlar TsgcAIChatProvider türünün sgcAI_Chat içindeki yedi değeridir. APIKey ya da BaseUrl ayarlarsanız asistan, bir TsgcAI_Chat bileşenine sahip olur; bu bileşen Provider, APIKey, Model (boş olması sohbet varsayılanını korur) ve BaseUrl değerlerinden yapılandırılır. Ya da kendi sohbet bileşeninizi, yalnızca AI birimlerinin derlendiği yerde bildirilen Chat özelliğine atayın. Her çağrı bir JSON şemasını izleyen yapılandırılmış çıktı ister ve sohbetiniz sonrasında eski haline getirilir. HasProvider hangi durumda olduğunuzu söyler.
Kural tabanlı yedek
Sağlayıcı yokken asistan kendi ayrıştırıcısıyla yanıt verir ve UseRuleBasedFallback (varsayılan olarak açık) başarısız bir sağlayıcı çağrısını da yanıtlamasını sağlar. and ya da virgülle birleştirilmiş sütun işleç değer biçimindeki ifadeleri, ayrıca sort by, group by, top N, between A and B ve highlight ifadelerini, bir pivot için de satırları, sütunları ve toplama işlevini okur. Her işlecin olağan İngilizce yazımlarını ve iki ondalık ayırıcıyı da kabul eder. Anlamadığı bir soru hiçbir işlem üretmez ve sayfa satırlarını korur. SuggestColumnValues ve Summarize için yedek yoktur.
SmartPaste(aText, aFields, aValues) yapıştırılan metni bir alan kümesine eşler. SmartPasteEnabled özelliğini TsgcHTMLComponent_Form üzerinde ayarlarsanız bir yapıştırma bölgesi işler; ProcessSmartPaste(aText) metni asistana verir, geri geleni adına göre alanlara yazar ve etiketin üzerinde küçük bir rozetle bunları AI tarafından doldurulmuş olarak işaretler. Kural tabanlı ayrıştırıcı bunu sağlayıcı olmadan yanıtlar ve satır sonları sunucuya giderken korunur.
Sütun asistanı
SuggestColumnValues(aPrompt, aRows, aValues) ızgara sütun asistanını çalıştırır. AIMode değeri acOff olmayan bir sütun bir öneri denetimi işler, ProcessAIColumnValues(aColumnName) tek bir çağrıda görünen her satır için bir değer ister ve yanıtlar, bir Kabul Et ve bir Reddet denetimiyle AIProposals olur. Kitaplık hiçbir şey yazmaz: kabul edilen bir öneri OnAIColumnValues olayını yükseltir ve uygulamanız bunu kalıcı hale getirir. Çağrı satırları gönderir, bu yüzden bir sağlayıcı ve açık bir AllowRowDataToProvider gerektirir.
Yanıt ayarları ve olaylar
Language serbest metnin dilini belirler, boş olması isteğin yerel ayarı anlamına gelir. CacheMinutes (5), aynı sütun kümesi üzerindeki aynı soruyu önbellekten yanıtlar ve ClearCache onu boşaltır. MaxLimit (1000) 1000'in üzerine çıkarılamaz. OnBeforeQuery(Sender, aPrompt, aAllow) her sağlayıcı çağrısından önce istemin tamamını görür ve aAllow değerini False yaparsanız çağrıyı engeller. Hiçbir yöntem istisna oluşturmaz: bir sağlayıcı hatası OnAIError(Sender, E, aHandled) olayına ulaşır.
Host sözleşmesi
HTTP rotası yoktur. Her denetim bir data-sgc-ws-send formudur ve uygulamanız action değerine göre dağıtım yapar: gridAIQuery, gridAIClear, gridAIColumn, gridAIAccept, gridAIReject, pivotAIQuery, pivotAIClear, formSmartPaste ve satır içi istemin dört eylemi. Yeniden işlenen bileşenle bir bant dışı (out of band) parça olarak yanıt verin. Bir bileşen kümesi bir kullanıcıdır, bu yüzden her oturum için ayrı bir küme kullanın ve bir eylemin yaptığı işin yetkilendirmesini sunucuda yapın.