Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - TclStringList
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

TclStringList

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
yasar Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 20 Kasım 2024
Durum: Aktif Değil
Puanlar: 14
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı yasar Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: TclStringList
    Gönderim Zamanı: 27 Kasım 2024 Saat 11:55
var

  Form1 : TclForm;

  InputText : TclProEdit;

  ResponseMemo : TclMemo;

  Button1 : TclButton;

  clRest : TCLRest;
  ResponseBody2:tstringlist;

  RequestBody, ResponseBody : string;

 

void BtnOnClick;

{

  try

    // clRest bileşeni (API bağlantısı için) oluşturuluyor

    clRest = TCLRest.Create;

    // Kullanıcıdan alınan metni JSON formatında API'ye gönderilecek hale getiriyoruz

    /* RequestBody = '{"contents":{"parts":{"text":"' + InputText.Text + '"}}"}';*/

    RequestBody ='{"contents":{ "role": "user", "parts": {"text": "' + InputText.Text + '"}},"generationConfig": {"temperature": 1,"topK": 40,"topP": 0.95,"maxOutputTokens": 8192,"responseMimeType": "text/plain"}}';

   

    

    // clRest bileşeni ile API bağlantısı kuruyoruz


    clRest.Accept = 'application/json';

    clRest.Method = rmPOST;

    clRest.AddHeader( 'Content-Type',' application/json');

    clRest.AddBody(RequestBody, 'application/json');

   

    // API isteğini gönderiyoruz

    clRest.Execute;

   

    // Yanıt kontrolü

    if (clRest.Response <> '')

    {

      // Başarılı bir yanıt aldıysak, yanıtı ResponseMemo'ya ekliyoruz

      ResponseBody = clRest.Response;
      ResponseBody2= Clomosy.StringListNew;
      ResponseBody2.Delimiter = '"';

  ResponseBody2.DelimitedText = ResponseBody;

  ResponseBody=Clomosy.StringListItemString(ResponseBody2,10);//0. elemanı getirir

  ShowMessage(ResponseBody);
      

      ResponseMemo.Lines.Add('Gemini Yanıtı: ' + ResponseBody);
      

       InputText.Text = '';

    }

    else

    {

      // Yanıt alınamazsa hata mesajı veriyoruz

      ResponseMemo.Lines.Add('API isteği başarısız oldu.');

    }

  finally

    clRest.Free;

  }

}

 

{

  // Form ve bileşenleri oluşturuyoruz

  Form1 = TclForm.Create(Self);

 

  // InputText (kullanıcının metin girdiği alan) oluşturuluyor

  InputText = Form1.AddNewProEdit(Form1, 'InputText', 'Enter your query...');

  InputText.Align = alTop;

  InputText.Height = 45;

  InputText.Margins.Top = 10;

  InputText.Margins.Left = 10;

  InputText.Margins.Right = 10;

 

  // Button1 (API çağrısını tetikleyen buton) oluşturuluyor

  Button1 = Form1.AddNewButton(Form1, 'Button1', 'Send Request');

  Button1.Align = alTop;

  Button1.Margins.Top = 10;

  Form1.AddNewEvent(Button1, tbeOnClick, 'BtnOnClick');

 

  // ResponseMemo (yanıtı gösterecek alan) oluşturuluyor

  ResponseMemo = Form1.AddNewMemo(Form1, 'ResponseMemo', 'Response will appear here...');

  ResponseMemo.Align = alTop;

  ResponseMemo.Height = 200;

  ResponseMemo.Margins.Top = 10;

  ResponseMemo.ReadOnly = True;

 

  // Form çalıştırılıyor

  Form1.Run;

}
yukardaki koda yapmak istediğim yapay zekadan gelen değerin parçalayıp cevap yazan yeri getirmek istedim yapay zekadan gelen değer
Gemini Yanıtı: {"candidates":[{"content":{"parts":[{"text":"Merhaba!  Nasıl yardımcı olabilirim?\n"}],"role":"model"},"finishReason":"STOP","avgLogprobs":-0.018644950606606224}],"usageMetadata":{"promptTokenCount":3,"candidatesTokenCount":11,"totalTokenCount":14},"modelVersion":"gemini-1.5-flash-latest"} 
bu şekilde gelemkte çift tırnağa göre bölmek istedim ancak sadece nasıl yazısını yazmakta nasıl yapabilirim 
Yukarı Dön
Kemal Açılır Kutu İzle
Moderatör
Moderatör
Simge

Kayıt Tarihi: 30 Nisan 2024
Konum: Konya
Durum: Aktif Değil
Puanlar: 15
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Kemal Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 27 Kasım 2024 Saat 14:36
Merhaba Yaşar,

{"error":{"code":400,"message":"API key not valid. Please pass a valid API key.","status":"INVALID_ARGUMENT","details":[{"@type":"type.googleapis.com\/google.rpc.ErrorInfo","reason":"API_KEY_INVALID","domain":"googleapis.com","metadata":{"service":"generativelanguage.googleapis.com"}},{"@type":"type.googleapis.com\/google.rpc.LocalizedMessage","locale":"en-US","message":"API key not valid. Please pass a valid API key."}]}}
Kodu çalıştırdığımda dönen yanıt bu olduğu için örnek olarak bunu parçalamasını göstereceğim.

void BtnOnClick;

{

  try

    // clRest bileşeni (API bağlantısı için) oluşturuluyor

    clRest = TCLRest.Create;

    // Kullanıcıdan alınan metni JSON formatında API'ye gönderilecek hale getiriyoruz

    /* RequestBody = '{"contents":{"parts":{"text":"' + InputText.Text + '"}}"}';*/

    RequestBody ='{"contents":{ "role": "user", "parts": {"text": "' + InputText.Text + '"}},"generationConfig": {"temperature": 1,"topK": 40,"topP": 0.95,"maxOutputTokens": 8192,"responseMimeType": "text/plain"}}';

   

    

    // clRest bileşeni ile API bağlantısı kuruyoruz


    clRest.Accept = 'application/json';

    clRest.Method = rmPOST;

    clRest.AddHeader( 'Content-Type',' application/json');

    clRest.AddBody(RequestBody, 'application/json');

   

    // API isteğini gönderiyoruz

    clRest.Execute;

   

    // Yanıt kontrolü

    if (clRest.Response <> '')

    {

      // Başarılı bir yanıt aldıysak, yanıtı ResponseMemo'ya ekliyoruz
      JSONObject = Clomosy.ClDataSetFromJSON(clRest.Response)

       ShowMessage(clRest.Response);
  ShowMessage(JSONObject.FieldByName('error').AsString);
      JSONObject = Clomosy.ClDataSetFromJSON(JSONObject.FieldByName('error').AsString);
      ShowMessage(JSONObject.FieldByName('details').AsString);

      ResponseMemo.Lines.Add('Gemini Yanıtı: ' + JSONObject.FieldByName('details').AsString);
      

       InputText.Text = '';

    }

    else

    {

      // Yanıt alınamazsa hata mesajı veriyoruz

      ResponseMemo.Lines.Add('API isteği başarısız oldu.');

    }

  finally

    clRest.Free;

  }

}
TCLJSONQuery nesnesini kullanarak FieldbyName ile istenilen dataya ulaşabilirsiniz.




Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,164 Saniyede Yüklendi.