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.

İçindekiler
Toggle- Kod Parçacığının Genel Yapısı
- İstek Metninin Belirlenmesi
- API Endpoint ve API Anahtarının Tanımlanması
- HTTP Başlıklarının (Headers) Ayarlanması
- Gönderilecek Verilerin Tanımlanması
- Verinin JSON Formatına Dönüştürülmesi
- POST İsteğinin Gönderilmesi
- Gelen Yanıtın İşlenmesi ve Gösterilmesi
- Uygulamada Dikkat Edilmesi Gerekenler
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.
- message adındaki değişken, ChatGPT’ye gönderilecek mesajın içeriğini belirler. Bu mesajda iki anahtar bulunur:
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
-
STANDART SEYİR ÇEVRİMLERİ VE MODEL TABANLI SİMÜLASYONDA ELEKTRİKLİ ARAÇTA HARCANAN ENERJİ KARŞILAŞTIRMASI