Tekil Mesaj gösterimi
Alt 11 Ağustos 2026, 02:57   #3
Kyo
✓
Kayıtlı Üye
Kyo - ait Kullanıcı Resmi (Avatar)

Standart Umarım işinize yarar

Alıntı:
Hero Nickli Üyeden Alıntı Mesajı göster
Merhabalar, bu kodu mirc remote ekledim fakat şu sorunu almaktayım..
Altını çizerek belirtmek istiyorum ki API key eklenmiştir.
Aldığım hata kodu : [Could not get a reply from ChatGPT.]

Sorunun tam olarak nerde bulamıyorum.

on *:TEXT:!chatgpt *:#: {
var %apikey = YOUR_OPENAI_API_KEY_HERE
var %message = $2-
var %host = api.openai.com
var %endpoint = /v1/chat/completions
var %model = gpt-3.5-turbo

; JSON verisini tek satır ve escape edilmiş yap
var %json = { "model":"%model", "messages":[ { "role":"user", "content":"%message" } ] }
var %jsonstr = $replace(%json, ",", ",", "{", "{", "}", "}", ":", ":")

sockopen chatgpt %host 443 ssl
set %chatgpt.api_key %apikey
set %chatgpt.data $null
set %chatgpt.json %jsonstr
set %chatgpt.channel $chan
}

on *:SOCKOPEN:chatgpt: {
if ($sockerr) {
msg %chatgpt.channel ChatGPT connection error!
sockclose chatgpt
return
}

var %apikey = %chatgpt.api_key
var %json = %chatgpt.json
var %len = $len(%json)

sockwrite -n chatgpt POST /v1/chat/completions HTTP/1.1
sockwrite -n chatgpt Host: api.openai.com
sockwrite -n chatgpt Authorization: Bearer %apikey
sockwrite -n chatgpt Content-Type: application/json
sockwrite -n chatgpt Content-Length: %len
sockwrite -n chatgpt
sockwrite -n chatgpt %json
}

on *:SOCKREAD:chatgpt: {
var %chunk
sockread %chunk
if (%chunk) inc %chatgpt.data %chunk
}

on *:SOCKCLOSE:chatgpt: {
var %response = %chatgpt.data
var %answer = $regml(1, %response, "content"":\s*""(.*?)""")

if (%answer) {
msg %chatgpt.channel ChatGPT: %answer
}
else {
msg %chatgpt.channel Could not get a reply from ChatGPT.
}

unset %chatgpt.data
unset %chatgpt.channel
unset %chatgpt.api_key
unset %chatgpt.json
}


Sizi hiç Python veya harici dosya kurulumlarıyla uğraştırmadan,
doğrudan Windows'un kendi güvenli ağ altyapısını (curl) arka planda tetikleyen
ve mIRC içinden %100 çalışan revize edilmiş kodu hazırladım.
Bu yöntem TLS hatasını tamamen ortadan kaldırır.
Mevcut kodunuzun tamamını silip yerine aşağıdaki kodu yapıştırın:
%100 Çalışan Yeni ChatGPT mIRC Kodu

Kod

on *:TEXT:!chatgpt *:#: {
  ; --- AYARLAR ---
  var %apikey = YOUR_OPENAI_API_KEY_HERE
  var %model = gpt-4o-mini
  
  ; Gelen soruyu al ve mIRC değişken koruması için düzenle
  var %message = $2-
  var %chan = $chan
  
  ; Geçici benzersiz dosya isimleri oluştur (Çakışmayı önlemek için)
  var %girdi_dosya = gpt_istek_ $+ $nick $+ .json
  var %cikti_dosya = gpt_cevap_ $+ $nick $+ .txt
  
  ; OpenAI standartlarına uygun JSON dosyasını oluşturur
  .write -c %girdi_dosya {"model": " $+ %model $+ ", "messages": [{"role": "user", "content": " $+ %message $+ "}]}
  
  ; Windows Curl kütüphanesini arka planda (gizli -h) çalıştırır. TLS/SSL hatası yaşanmaz.
  .run -h curl -s -X POST https://openai.com -H "Content-Type: application/json" -H "Authorization: Bearer %apikey" -d @ $+ %girdi_dosya -o %cikti_dosya
  
  ; Yanıtın sunucudan gelip dosyaya yazılması için 2 saniye bekler ve okuma fonksiyonunu tetikler
  .timer.gpt. [ $+ [ $nick ] ] 1 2 gpt_dosya_oku %cikti_dosya %chan %girdi_dosya
}

alias -l gpt_dosya_oku {
  var %dosya = $1, %chan = $2, %silinecek_girdi = $3
  
  if ($exists(%dosya)) {
    ; Gelen JSON verisindeki "content":"..." kısmını doğrudan mIRC Regex'i ile ayıklar
    var %regex = /"content"\s*:\s*"(.*?)"/g
    var %tam_metin = $read(%dosya, w, *"content"*)
    
    if ($regex(gpt,%tam_metin,%regex)) {
      var %cevap = $regml(gpt,1)
      
      ; JSON içindeki escape edilmiş karakterleri (\n, \", \t) mIRC için temizler
      %cevap = $replace(%cevap, \n, $32, \", ", \t, $32, \\, \)
      
      ; Kanala yanıtı gönderir
      msg %chan 🤖  12ChatGPT:  %cevap
    }
    else {
      msg %chan ❌ ChatGPT'den yanıt alınamadı veya API anahtarı hatalı.
    }
    
    ; Temizlik: İşlem bittikten sonra arkada çöp dosya bırakmaz
    .remove %dosya
    .remove %silinecek_girdi
  }
  else {
    msg %chan ❌ Sunucu bağlantı zaman aşımına uğradı.
  }
}