Skip to main content

MATLAB Ortamında ChatGPT API Entegrasyonu: Uygulamaya Geçiş Adımları

Bu yazımızda, OpenAI’ nın ChatGPT API’siyle MATLAB ortamında nasıl etkileşim kurabileceğinizi ve doğal dilde verdiğiniz komutlardan nasıl MATLAB kodu üretebileceğinizi ele alacağız. Özellikle, aşağıdaki kod örneğini kullanarak API’ye nasıl POST isteği gönderip yanıt alacağınızı, yanıtı nasıl işleyeceğinizi ve MATLAB üzerinde nasıl uygulayabileceğinizi açıklayacağız.

Kod Parçacığının Genel Yapısı

Aşağıda, ChatGPT API’sine yapılan istek ve yanıtı işleyen MATLAB kodu yer almaktadır:

% Define the prompt
prompt = “Verilerimi tree modeli kullanarak eğitmek istiyorum, MATLAB’de yazar mısın?”;
  
% Define the API endpoint
api_endpoint = ‘https://api.openai.com/v1/chat/completions’;
 
% Define the API key from https://platform.openai.com/account/api-keys
api_key = “Your API Key”;
 
% Define the headers
headers = [“Content-Type”, “application/json”; “Authorization”, “Bearer ” + api_key];

% Define the data
message = containers.Map({‘role’, ‘content’}, {‘user’, prompt});
data = containers.Map({‘model’, ‘messages’}, {‘gpt-3.5-turbo’, {message}});
 
% Convert the data to JSON
data = jsonencode(data);
 
% Send the POST request
options = weboptions(‘RequestMethod’, ‘post’, ‘HeaderFields’, headers);
response = webwrite(api_endpoint, data, options);
 
% Return the response
response = response.choices.message.content;
disp(prompt)
disp(response)

Bu kod parçası, OpenAI’ nın ChatGPT modeline doğal dilde bir istek göndererek MATLAB üzerinden kod üretilmesini sağlamaktadır. Şimdi adım adım bu kodun nasıl çalıştığını ve ne işe yaradığını inceleyelim.

İstek Metninin Belirlenmesi

prompt = “Verilerimi tree modeli kullanarak eğitmek istiyorum, MATLAB’de yazar mısın?”;
  • Açıklama:
    Bu satırda, ChatGPT’ye göndermek istediğiniz komut metnini belirliyorsunuz. Kullanıcının, verilerini “tree modeli” kullanarak eğitmek istediğini belirttiği doğal dil ifadesi burada yer alıyor. Bu ifade, API’ye gönderildiğinde modelin MATLAB kodu üretmesi için temel girdiyi oluşturur.

API Endpoint ve API Anahtarının Tanımlanması

api_endpoint = ‘https://api.openai.com/v1/chat/completions’;
api_key = “sk-proj-…”;  % API anahtarınız burada yer alır
  • Açıklama:
    • api_endpoint değişkeni, ChatGPT API’sinin isteklerin gönderileceği URL’sini belirtir.
    • api_key değişkeninde ise OpenAI hesabınızdan aldığınız API anahtarı yer alır. Bu anahtar, API isteklerinde kimlik doğrulaması için kullanılır.
      Önemli Not: API anahtarınızı güvenlik açısından herkese açık alanlarda paylaşmamaya özen gösterin.

HTTP Başlıklarının (Headers) Ayarlanması

headers = [“Content-Type”, “application/json”; “Authorization”, “Bearer ” + api_key];

Açıklama:
Bu satırda, HTTP isteği için gerekli olan başlıkları tanımlıyorsunuz. MATLAB’da weboptions fonksiyonu kullanılırken HeaderFields parametresi iki sütunlu (Mx2) bir cell array olmalıdır.
Content-Type: JSON formatında veri gönderileceğini belirtir.
Authorization: API anahtarınızı “Bearer” formatında göndererek kimlik doğrulaması yapar.
Önemli olan nokta, iki farklı başlık çiftinin her biri ayrı bir satırda tanımlanmasıdır. Bu şekilde MATLAB, header bilgilerini doğru biçimde alır ve istek sırasında hata vermeden çalışır.

Gönderilecek Verilerin Tanımlanması

message = containers.Map({‘role’, ‘content’}, {‘user’, prompt});
data = containers.Map({‘model’, ‘messages’}, {‘gpt-3.5-turbo’, {message}});
  • Açıklama:
    • message adındaki değişken, ChatGPT’ye gönderilecek mesajın içeriğini belirler. Bu mesajda iki anahtar bulunur:
      • role: Mesajı gönderenin rolü (bu örnekte “user” olarak belirtilmiştir).
      • content: Kullanıcının doğal dilde verdiği komut (burada prompt değişkeni).
    • data değişkeni ise, API’ye gönderilecek genel isteğin yapılandırılmasını sağlar. Bu yapı içerisinde:
      • model: Kullanmak istediğiniz model ismi (örnekte “gpt-3.5-turbo”).
      • messages: Gönderilecek mesajları içeren liste. Burada tek bir mesaj bulunmakta, fakat liste yapısı sayesinde birden fazla mesaj da gönderilebilir.

Verinin JSON Formatına Dönüştürülmesi

data = jsonencode(data);
  • Açıklama:
    API istekleri JSON formatında veri kabul ettiğinden, oluşturduğunuz data yapısını JSON formatına dönüştürmeniz gerekmektedir. MATLAB’ın jsonencode fonksiyonu bu işlemi gerçekleştirir ve verinizi uygun formata çevirir.

POST İsteğinin Gönderilmesi

options = weboptions(‘RequestMethod’, ‘post’, ‘HeaderFields’, headers);
response = webwrite(api_endpoint, data, options);
  • Açıklama:
    • weboptions fonksiyonu ile HTTP istek ayarlarını yapılandırıyorsunuz. Burada isteğin gönderim metodunu post olarak belirtiyor ve yukarıda tanımlanan header bilgilerini ekliyorsunuz.
    • webwrite fonksiyonu ise, belirlenen API endpoint’ine JSON formatındaki veriyi gönderir. Bu fonksiyon, API’den dönen yanıtı response değişkeninde saklar. Böylece, MATLAB üzerinden API’ye başarılı bir POST isteği yapılmış olur.

Gelen Yanıtın İşlenmesi ve Gösterilmesi

response = response.choices.message.content;
disp(prompt)
disp(response)
  • Açıklama:
    • API’den gelen yanıt genellikle bir yapı (struct) formatındadır. Bu yapı içerisindeki choices alanı, modelin ürettiği mesajları içerir. Burada, yanıtın içeriğine erişmek için response.choices.message.content ifadesi kullanılır.
    • Son olarak, disp komutu kullanılarak orijinal komutunuz ve API’den dönen yanıt ekrana yazdırılır. Bu sayede, modelin ürettiği MATLAB kodunu ve mesajı görebilirsiniz.

Uygulamada Dikkat Edilmesi Gerekenler

API Anahtarının Güvenliği

API anahtarınız, tüm API isteklerinde kimlik doğrulaması sağlamak için kullanılır. Bu nedenle, kodunuzu paylaşırken veya GitHub gibi platformlarda depolarken anahtarınızı gizli tutmaya özen gösterin. Çevresel değişkenler veya ayrı yapılandırma dosyaları kullanarak API anahtarınızı saklayabilirsiniz.

Başlık Bilgilerinin Doğru Formatlanması

MATLAB’da HTTP başlıklarını belirtirken, HeaderFields parametresinin Mx2 formatında olmasına dikkat edin. Aksi halde, “Expected HeaderFields to be of size Mx2, but it is of size 1×4.” gibi hata mesajları alabilirsiniz. Yukarıdaki örnekte, iki satırlı bir header array kullanarak bu sorun çözüme kavuşturulmuştur.

JSON Formatına Dönüştürme İşlemi

API’ye gönderilen verinin JSON formatında olması gerektiği için jsonencode fonksiyonu kritik bir rol oynar. Bu adımı atlamamanız, API’nin verinizi doğru şekilde işlemesi açısından önemlidir.

Hata Yönetimi

API istekleri sırasında zaman zaman hata mesajlarıyla karşılaşabilirsiniz. Bu durumda, dönen yanıtı detaylı inceleyerek hatanın nedenini belirleyip gerekli düzeltmeleri yapmanız gerekmektedir. Örneğin, ağ bağlantısı sorunları veya API kullanım limitlerine ulaşıldığında hata mesajları alabilirsiniz. Bu tür durumlarda MATLAB hata ayıklama özelliklerini kullanmak yararlı olacaktır.

Sonuç

MATLAB üzerinden OpenAI’nın ChatGPT API’sine yapılan bağlantı ve istek süreci, yukarıdaki adımlarla oldukça basit ve anlaşılır hale gelmektedir. Bu entegrasyon sayesinde, doğal dilde verilen komutlardan MATLAB kodu üretebilir ve çeşitli uygulama senaryolarında yapay zekadan yararlanabilirsiniz.

  • Veri Analizi: Verileriniz üzerinde farklı analiz işlemleri gerçekleştiren kodları ChatGPT yardımıyla otomatik olarak oluşturabilirsiniz.
  • Fonksiyon Üretimi: Belirli işlevler için MATLAB fonksiyonlarını, doğal dilde verdiğiniz yönergelerle oluşturabilirsiniz.
  • Hata Çözümü: Kodu çalıştırırken karşılaştığınız hataları çözmek için öneriler alabilir ve kodunuzu optimize edebilirsiniz.

Bu yazıda, kodun her adımını ayrıntılı şekilde açıklayarak, MATLAB ve ChatGPT entegrasyonunu nasıl gerçekleştirebileceğinizi gösterdik. Umarız bu bilgiler, kendi projelerinizde yapay zeka destekli kod üretimi yaparken size yol gösterici olur. Her adımda dikkat edilmesi gereken noktalara özen göstererek, projelerinizde güvenli ve etkili bir şekilde ilerleyebilirsiniz.

Yazar Adı

Doğukan Kaygısız

Yazar Ünvanı

Yapay Zeka ve Makine Öğrenmesi Mühendisi, FİGES

Bloglar

  • MATLAB ile Uydu Yakın Geçiş (Conjunction) Tespiti: Teorik ve Uygulamalı Bir Yaklaşım
  • Satcom on the Move Terminali İçin Senaryo Oluşumu
  • Açıklanabilir Yapay Zeka
  • Yazılım Tanımlı Araç (Software Defined Vehicle – SDV) Nedir?
  • MATLAB ve Python Birlikte Nasıl Kullanılır?
  • Sevginizi MATLAB ile Kodlayın!
  • İHA Modelleme ve Simülasyonunun Önemi
  • Model Tabanlı Sistem Mühendisliği Hakkında Merak Ettikleriniz!
  • Teknolojiyi Keşfet, Bilgini Test Et!
  • MATLAB ve Simulink’te Kendinizi Test Edin!
  • MATLAB SÖZLÜĞÜ
  • Otomotiv Sistemlerinde Model Tabanlı Sistem Tasarımı
  • Simulink, MATLAB’de Nasıl Çalışır?
  • Simulink ile Modelleme ve Simülasyon
  • MATLAB ile Sayısal Hesaplama Dünyasına Giriş
  • STANDART SEYİR ÇEVRİMLERİ VE MODEL TABANLI SİMÜLASYONDA ELEKTRİKLİ ARAÇTA HARCANAN ENERJİ KARŞILAŞTIRMASI
  • Akıllı Aynalar
  • Elon Musk NeuraLink ile Ne Hedefliyor?
  • 2020’nin Yükselen 10 Teknolojisi
  • Özellik Çıkarımı ve Yüz Tanıma Algoritmalarının Performans Karşılaştırması
Kurumsal e-bültenimize abone olarak FİGES hakkındaki güncel gelişmelerden haberdar olabilirsiniz.
Sosyal Medya'da FİGES
FİGES Facebook
FİGES Twitter
FİGES Linkedin
FİGES Instagram

© FİGES A.Ş. Tüm hakları saklıdır. Tasarım ordek.co.