Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Fotoğraf ile hastalık tespiti servisi
  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.

Fotoğraf ile hastalık tespiti servisi

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


Kayıt Tarihi: 11 Ağustos 2025
Konum: Stajyer
Durum: Aktif Değil
Puanlar: 5
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı bedir_agdemir Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Fotoğraf ile hastalık tespiti servisi
    Gönderim Zamanı: 20 Ağustos 2025 Saat 16:20
Fotoğrafı çekip gönderdikten sonra Instace of "TclProImage" not created. hatası alıyorum 
uAnaliz birimi
const
  GEMINI_API_KEY = ''; 

  var
    restIstegi: TclRest;
    base64Resim, gelenCevap, geminiCevap, prompt, jsonMektup, apiUrl: String;
    analizEdilecekDosyaYolu: String;

  analizEdilecekDosyaYolu = Clomosy.GlobalVariableString;

  if (analizEdilecekDosyaYolu <> '')
  {
    restIstegi = TclRest.Create;
    try
      ShowMessage('Fotoğraf yapay zekaya gönderiliyor, lütfen bekleyin...');
      Clomosy.ProcessMessages;

      base64Resim = Clomosy.FileToBase64(analizEdilecekDosyaYolu);

      prompt = 'Bu tarım bitkisinin fotoğrafını incele. Üzerinde herhangi bir hastalık belirtisi var mı? Varsa, hastalığın adı ne olabilir ve çiftçiye ne gibi bir öneride bulunursun? Cevabını kısa ve anlaşılır bir şekilde ver.';
      jsonMektup = '{ "contents":[{"parts":[ {"text": "' + prompt + '"}, {"inline_data": { "mime_type":"image/jpeg", "data": "' + base64Resim + '" }} ]}]}';

      restIstegi.BaseURL = apiUrl;
      restIstegi.Method = rmPOST;
      restIstegi.AddBody(jsonMektup, 'application/json');
      restIstegi.Execute;
      gelenCevap = restIstegi.Response;

      geminiCevap = clGetStringAfter(gelenCevap, '"text": "');
      geminiCevap = clGetStringTo(geminiCevap, '"');
      geminiCevap = clGetStringReplace(geminiCevap, '\\n', #13#10);

      if (geminiCevap <> '')
      {
        ShowMessage('Yapay Zeka Analiz Sonucu:' + #13#10 + geminiCevap);
      }
      else
      {
        ShowMessage('Yapay zekadan cevap alınamadı.');
      }

  }
}
Yukarı Dön
Developer Açılır Kutu İzle
Forum Yöneticisi
Forum Yöneticisi


Kayıt Tarihi: 14 Haziran 2023
Durum: Aktif Değil
Puanlar: 387
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Developer Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 20 Ağustos 2025 Saat 16:47
Merhaba Bedir 
Projenin butun kodlarini paylasabilir misin?
Yukarı Dön
bedir_agdemir Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 11 Ağustos 2025
Konum: Stajyer
Durum: Aktif Değil
Puanlar: 5
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı bedir_agdemir Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 20 Ağustos 2025 Saat 16:48
// ======================================================================
// BİRİM: uAnaUygulama 
// ======================================================================

var
  anaForm: TclStyleForm;
  konumButton, havaDurumuButton, haritaButton, tohumOneriButton, sohbetButton, cikisButton, analizButton: TclProButton;
  sonucLabel, havaDurumuLabel, baslikLabel: TclProLabel;
  tohumOneriMemo: TclMemo;
  anaScrollBox: TclVertScrollBox;
  ustPanel, adim1Panel, adim2Panel, adim3Panel, adim4Panel, adim5Panel: TclProPanel;
  geciciResimAnaliz: TclProImage;
  analizUnit: TclUnit;
  gonderilecekVeri: TclStringList;
  konumUnit: TclUnit;
  servislerUnit: TclUnit;
    
void konumButonunaBasildi;
{
  konumUnit = TclUnit.Create;

    konumUnit.UnitName = 'uKonum';
    konumUnit.CallerForm = anaForm;
    konumUnit.Run;

  }

void havaDurumuButonunaBasildi;
{
  servislerUnit = TclUnit.Create;
  
    Clomosy.GlobalVariableInteger = 1;
    servislerUnit.UnitName = 'uServisler';
    servislerUnit.CallerForm = anaForm;
    servislerUnit.Run;
  
    servislerUnit.Free;
  }


void haritaButonunaBasildi;

{
  servislerUnit = TclUnit.Create;
  
    Clomosy.GlobalVariableInteger = 2;
    servislerUnit.UnitName = 'uServisler';
    servislerUnit.CallerForm = anaForm;
    servislerUnit.Run;
  
    servislerUnit.Free;
  }

void tohumOneriButonunaBasildi;
var
  servislerUnit: TclUnit;
{
  servislerUnit = TclUnit.Create;
  
    Clomosy.GlobalVariableInteger = 3;
    servislerUnit.UnitName = 'uServisler';
    servislerUnit.CallerForm = anaForm;
    servislerUnit.Run;
  
    servislerUnit.Free;
  }


void sohbetButonunaBasildi;
var
  sohbetUnit: TclUnit;
{
  sohbetUnit = TclUnit.Create;
  
    sohbetUnit.UnitName = 'uSohbet';
    sohbetUnit.CallerForm = anaForm;
    sohbetUnit.Run;
  
    sohbetUnit.Free;
  }


void analizButonunaBasildi;

{
  Clomosy.ImageChooser(anaForm, geciciResimAnaliz);

  if (geciciResimAnaliz.clProSettings.PictureSource <> '')
  {
    analizUnit = TclUnit.Create;
    
      gonderilecekVeri = Clomosy.StringListNew;
      gonderilecekVeri.Add(geciciResimAnaliz.clProSettings.PictureSource);
      Clomosy.GlobalVariableStringList = gonderilecekVeri;
      
      analizUnit.UnitName = 'uAnaliz';
      analizUnit.CallerForm = anaForm;
      analizUnit.Run;
    
      analizUnit.Free;
    }
  }

void cikisYapButonunaBasildi;
{
  anaForm.Close;
}

  anaForm = TclStyleForm.Create(Self);
  geciciResimAnaliz = anaForm.AddNewProImage(anaForm, 'geciciResimAnaliz');
  geciciResimAnaliz.Visible = True;
  anaForm.clSetCaption('Çiftçi Destek Uygulaması');
  anaForm.clSetStyle(anaForm.LightSB);
  anaForm.SetFormBGImage('https://clomosy.com/demos/bg4.jpg');

  ustPanel = anaForm.AddNewProPanel(anaForm, 'ustPanel');
  ustPanel.Align = alTop; ustPanel.Height = 80;
  ustPanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#CC212529');
  ustPanel.SetclProSettings(ustPanel.clProSettings);

  baslikLabel = anaForm.AddNewProLabel(ustPanel, 'baslikLabel', 'ÇİFTÇİ DESTEK UYGULAMASI');
  baslikLabel.Align = alClient;
  baslikLabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); baslikLabel.clProSettings.FontSize = 22;
  baslikLabel.clProSettings.TextSettings.Font.Style = [fsBold]; baslikLabel.clProSettings.TextSettings.HorzAlign = taCenter;
  baslikLabel.SetclProSettings(baslikLabel.clProSettings);

  cikisButton = anaForm.AddNewProButton(ustPanel, 'cikisButton', 'Çıkış Yap');
  cikisButton.Align = alRight; cikisButton.Width = 120;
  cikisButton.Margins.Right = 10; cikisButton.Margins.Top = 15; cikisButton.Margins.Bottom = 15;
  cikisButton.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  cikisButton.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#dc3545');
  cikisButton.clProSettings.IsRound = True;
  cikisButton.SetclProSettings(cikisButton.clProSettings);

  anaScrollBox = anaForm.AddNewVertScrollBox(anaForm, 'anaScrollBox');
  anaScrollBox.Align = alClient;

  adim1Panel = anaForm.AddNewProPanel(anaScrollBox, 'adim1Panel');
  adim1Panel.Align = alTop; adim1Panel.Height = 130;
  adim1Panel.Margins.Top = 15; adim1Panel.Margins.Left = 15; adim1Panel.Margins.Right = 15;
  adim1Panel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E6FFFFFF'); adim1Panel.clProSettings.IsRound = True; adim1Panel.SetclProSettings(adim1Panel.clProSettings);
  
  konumButton = anaForm.AddNewProButton(adim1Panel, 'konumButton', '1. Adım: Konumumu Bul');
  konumButton.Align = alTop; konumButton.Height = 60;
  konumButton.Margins.Top = 10; konumButton.Margins.Left = 10; konumButton.Margins.Right = 10;
  konumButton.clProSettings.FontSize = 17;
  konumButton.SetclProSettings(konumButton.clProSettings);

  sonucLabel = anaForm.AddNewProLabel(adim1Panel, 'sonucLabel', 'Konum bilgisi bekleniyor...');
  sonucLabel.Align = alClient; sonucLabel.Margins.Top = 5;
  sonucLabel.clProSettings.TextSettings.HorzAlign = taCenter; sonucLabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#6c757d');
  sonucLabel.SetclProSettings(sonucLabel.clProSettings);

  adim2Panel = anaForm.AddNewProPanel(anaScrollBox, 'adim2Panel');
  adim2Panel.Align = alTop; adim2Panel.Height = 130;
  adim2Panel.Margins.Top = 10; adim2Panel.Margins.Left = 15; adim2Panel.Margins.Right = 15;
  adim2Panel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E6FFFFFF'); adim2Panel.clProSettings.IsRound = True; adim2Panel.SetclProSettings(adim2Panel.clProSettings);
  
  havaDurumuButton = anaForm.AddNewProButton(adim2Panel, 'havaDurumuButton', '2. Adım: Hava Durumunu Getir');
  havaDurumuButton.Align = alTop; havaDurumuButton.Height = 60;
  havaDurumuButton.Margins.Top = 10; havaDurumuButton.Margins.Left = 10; havaDurumuButton.Margins.Right = 10;
  havaDurumuButton.Enabled = False;
  havaDurumuButton.clProSettings.FontSize = 17;
  havaDurumuButton.SetclProSettings(havaDurumuButton.clProSettings);

  havaDurumuLabel = anaForm.AddNewProLabel(adim2Panel, 'havaDurumuLabel', '');
  havaDurumuLabel.Align = alClient; havaDurumuLabel.Margins.Top = 5;
  havaDurumuLabel.clProSettings.TextSettings.HorzAlign = taCenter; havaDurumuLabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#17a2b8');
  havaDurumuLabel.clProSettings.TextSettings.Font.Style = [fsBold]; havaDurumuLabel.SetclProSettings(havaDurumuLabel.clProSettings);

  adim3Panel = anaForm.AddNewProPanel(anaScrollBox, 'adim3Panel');
  adim3Panel.Align = alTop; adim3Panel.Height = 80;
  adim3Panel.Margins.Top = 10; adim3Panel.Margins.Left = 15; adim3Panel.Margins.Right = 15;
  adim3Panel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E6FFFFFF'); adim3Panel.clProSettings.IsRound = True; adim3Panel.SetclProSettings(adim3Panel.clProSettings);
  
  haritaButton = anaForm.AddNewProButton(adim3Panel, 'haritaButton', '3. Adım: Tarlamı Haritada Göster');
  haritaButton.Align = alClient;
  haritaButton.Enabled = False;
  haritaButton.clProSettings.FontSize = 17;
  haritaButton.SetclProSettings(haritaButton.clProSettings);

  adim4Panel = anaForm.AddNewProPanel(anaScrollBox, 'adim4Panel');
  adim4Panel.Align = alTop; adim4Panel.Height = 250;
  adim4Panel.Margins.Top = 10; adim4Panel.Margins.Left = 15; adim4Panel.Margins.Right = 15;
  adim4Panel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E6FFFFFF'); adim4Panel.clProSettings.IsRound = True; adim4Panel.SetclProSettings(adim4Panel.clProSettings);
  
  tohumOneriButton = anaForm.AddNewProButton(adim4Panel, 'tohumOneriButton', '4. Adım: Tohum Önerisi Al');
  tohumOneriButton.Align = alTop; tohumOneriButton.Height = 60;
  tohumOneriButton.Margins.Top = 10; tohumOneriButton.Margins.Left = 10; tohumOneriButton.Margins.Right = 10;
  tohumOneriButton.Enabled = False;
  tohumOneriButton.clProSettings.FontSize = 17;
  tohumOneriButton.SetclProSettings(tohumOneriButton.clProSettings);

  tohumOneriMemo = anaForm.AddNewMemo(adim4Panel, 'tohumOneriMemo', '');
  tohumOneriMemo.Align = alClient;
  tohumOneriMemo.Margins.Top = 10; tohumOneriMemo.Margins.Left = 10; tohumOneriMemo.Margins.Right = 10; tohumOneriMemo.Margins.Bottom = 10;
  tohumOneriMemo.ReadOnly = True;

  adim5Panel = anaForm.AddNewProPanel(anaScrollBox, 'adim5Panel');
  adim5Panel.Align = alTop; adim5Panel.Height = 100;
  adim5Panel.Margins.Top = 10; adim5Panel.Margins.Left = 15; adim5Panel.Margins.Right = 15; adim5Panel.Margins.Bottom = 10;
  adim5Panel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#E6FFFFFF'); adim5Panel.clProSettings.IsRound = True; adim5Panel.SetclProSettings(adim5Panel.clProSettings);
  
  analizButton = anaForm.AddNewProButton(adim5Panel, 'analizButton', #13#10'FOTOĞRAFLA BİTKİ ANALİZİ YAP'#13#10'(Hastalık Tespiti)');
  analizButton.Align = alClient;
  analizButton.clProSettings.FontSize = 18;
  analizButton.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  analizButton.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#28a745');
  analizButton.clProSettings.TextSettings.Font.Style = [fsBold];
  analizButton.SetclProSettings(analizButton.clProSettings);
  analizButton.Enabled = True; // Başlangıçta pasif

  sohbetButton = anaForm.AddNewProButton(anaForm, 'sohbetButton', 'Akıllı Asistan ile Sohbet Et');
  sohbetButton.Align = alBottom; sohbetButton.Height = 70;
  sohbetButton.Margins.Top = 10; sohbetButton.Margins.Left = 15; sohbetButton.Margins.Right = 15; sohbetButton.Margins.Bottom = 10;
  sohbetButton.clProSettings.FontSize = 18; sohbetButton.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  sohbetButton.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2c7be5'); sohbetButton.clProSettings.TextSettings.Font.Style = [fsBold];
  sohbetButton.clProSettings.IsRound = True; sohbetButton.clProSettings.RoundHeight = 15; sohbetButton.clProSettings.RoundWidth = 15;
  sohbetButton.SetclProSettings(sohbetButton.clProSettings);

  anaForm.AddNewEvent(konumButton, tbeOnClick, 'konumButonunaBasildi');
  anaForm.AddNewEvent(havaDurumuButton, tbeOnClick, 'havaDurumuButonunaBasildi');
  anaForm.AddNewEvent(haritaButton, tbeOnClick, 'haritaButonunaBasildi');
  anaForm.AddNewEvent(tohumOneriButton, tbeOnClick, 'tohumOneriButonunaBasildi');
  anaForm.AddNewEvent(sohbetButton, tbeOnClick, 'sohbetButonunaBasildi');
  anaForm.AddNewEvent(cikisButton, tbeOnClick, 'cikisYapButonunaBasildi');
  anaForm.AddNewEvent(analizButton, tbeOnClick, 'analizButonunaBasildi');

  anaForm.Run;
}
// MAİN

{
Clomosy.RunUnit('uAnauygulama');

diğer servisler  çalışıyor 
Yukarı Dön
Developer Açılır Kutu İzle
Forum Yöneticisi
Forum Yöneticisi


Kayıt Tarihi: 14 Haziran 2023
Durum: Aktif Değil
Puanlar: 387
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Developer Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 20 Ağustos 2025 Saat 18:18
Merhaba Bedir 
Main icerisinde kodlamayi :
      gonderilecekVeri = Clomosy.StringListNew;
      gonderilecekVeri.Add(geciciResimAnaliz.clProSettings.PictureSource);
      Clomosy.GlobalVariableStringList = gonderilecekVeri;
ama cagirirken  analizEdilecekDosyaYolu = Clomosy.GlobalVariableString; bu seklide yukleme yapilmis. Dogrusu icin  https://www.docs.clomosy.com/index.php?title=Global_Variables bu linkideki ornegi inceler misin?
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,095 Saniyede Yüklendi.