Alıntı:
Hero Nickli Üyeden Alıntı
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ı.
}
}