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 |
Yazar | |
yasar
Yeni Üye Kayıt Tarihi: 20 Kasım 2024 Durum: Aktif Değil Puanlar: 14 |
Mesaj Seçenekleri
Teşekkürler(0)
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.BaseURL = '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
|
|
Kemal
Moderatör Kayıt Tarihi: 30 Nisan 2024 Konum: Konya Durum: Aktif Değil Puanlar: 15 |
Mesaj Seçenekleri
Teşekkürler(0)
|
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 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. |
|
Yanıt Yaz | |
Tweet |
Forum Atla | Forum İzinleri Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |