Sayfayı Yazdır | Pencereyi Kapat

TclStringList

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=969
Tarih: 01 Ocak 2025 Saat 18:31
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: TclStringList
Mesajı Yazan: yasar
Konu: TclStringList
Mesaj Tarihi: 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.BaseURL = ' https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key=My" rel="nofollow - https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key=My API'; // Gerçek API endpointini kullanın

    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 



Cevaplar:
Mesajı Yazan: Kemal
Mesaj Tarihi: 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.BaseURL = ' https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key=My" rel="nofollow - https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key=My API'; // Gerçek API endpointini kullanın

    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.







Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net