ChatGPT'nin yazdığı kod hata veriyor

479980

Decapat
Katılım
29 Temmuz 2021
Mesajlar
742
Çözümler
1
Arkadaşlar ChatGPT'ye gene kod yazdırdım fakat hatayı kaç kere sordum her seferinde bir şeyler ekletti fakat hata düzelmedi.
Python:
import torch
import torch.nn as nn
import torch.optim as optim
import random

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
vocab_size = 10000
responses = ["iyiyim sen nasılsın?", "teşekkürler", "harika", "merhaba!"]
vocab = []
with open("vocabs.txt", "r", encoding="utf-8") as f:
    for line in f:
        vocab.append(line.strip())

# Define word to index and index to word mappings
word_to_index = {word: index for index, word in enumerate(vocab)}
index_to_word = {index: word for index, word in enumerate(vocab + responses)}
# Prepare training data
train_data = [("Merhaba nasılsın?", "İyiyim teşekkür ederim, sen nasılsın?"),               ("Bugün hava nasıl?", "Hava güzel görünüyor, senin için nasıl?"),               ("Sen ne iş yapıyorsun?", "Ben bir yapay zeka modeliyim, insanlarla sohbet etmeyi öğrendim."),               ("En sevdiğin yemek nedir?", "Ben bir yapay zeka modeliyim, yemek yeme gibi bir ihtiyacım yok."),              ("En sevdiğin film nedir?", "Ben bir yapay zeka modeliyim, film izleme gibi bir ihtiyacım yok."),              ("Hangi şehirdesin?", "Ben bir yapay zeka modeliyim, fiziksel bir yerde bulunmuyorum.")]

train_data = [(question.split(), responses.index(answer)) for question, answer in train_data]
train_data = [(torch.tensor([word_to_index[word] for word in question]), answer) for question, answer in train_data]


class ChatBot(nn.Module):
    def __init__(self, input_size, hidden_size, num_layers, num_classes):
        super(ChatBot, self).__init__()
        self.hidden_size = hidden_size
        self.num_layers = num_layers
        self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True)
        self.fc = nn.Linear(hidden_size, num_classes)
 
    def forward(self, x):
        h0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size).to(device)
        c0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size).to(device)
     
        out, _ = self.lstm(x, (h0, c0))
        out = self.fc(out[:, -1, :])
        return out

model = ChatBot(input_size=vocab_size, hidden_size=512, num_layers=2, num_classes=len(responses))
model.to(device)

criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)

for epoch in range(100):
    for i, (questions, answers) in enumerate(train_data):
        questions = questions.to(device)
        answers = answers.to(device)

        optimizer.zero_grad()
        outputs = model(questions)
        loss = criterion(outputs, answers)
        loss.backward()
        optimizer.step()

    if (epoch+1) % 10 == 0:
        print ('Epoch [{}/100], Loss: {:.4f}'.format(epoch+1, loss.item()))

torch.save(model.state_dict(), 'model.ckpt')
def chat(model, sentence, word_to_index, index_to_word):
   model.eval()
   sentence = sentence.lower()
   sentence = sentence.split()
   inputs = [word_to_index[i] for i in sentence]
   inputs = torch.tensor(inputs).unsqueeze(1).to(device)
   outputs = model(inputs)
   predicted = outputs.argmax(1).item()
   return index_to_word[predicted]

while True:
    user_input = input("User: ")
    response = chat(model, user_input,word_to_index, index_to_word)
    print("ChatBot:", response)
File "<string>", line 20, in <module> File "<string>", line 20, in <listcomp> ValueError: 'İyiyim teşekkür ederim, sen nasılsın?' is not in list

Vocabs.txt
Kod:
Merhaba
İyiyim
teşekkür
ederim
sen
bugün hava
nasıl
güzel
görünüyor
için
ne
iş
yapıyorsun
bir
yapay zeka
modeliyim
insanlarla
sohbet
etmeyi
öğrendim
en
sevdiğin
yemek
film
hangi
şehirdesin
fiziksel
yerde
bulunmuyorum

Merhaba
Nasılsın
Bugün
Hava
Sen
Ne
İş
Yapıyorsun
En
Sevdiğin
Yemek
Film
Nedir
Hangi
Şehirdesin
Nasıl düzeltebilirim?Şimdiden çok teşekkürler.

@bitwise ve @Vavien. Sizler bayağı anlıyorsunuz hocalarım yardımcı olsanız olurm mu?
 
Son düzenleme:
Bu kodun amacı ne? Ne için böyle bir kod var önce onu söyler misiniz? ChatGPT yapay zeka diye her şeyi yapacak değil.
 
Bu kodun amacı ne? Ne için böyle bir kod var önce onu söyler misiniz? ChatGPT yapay zeka diye her şeyi yapacak değil.

Bu kod kalıcı öğrenme ile çalışan söyleşi botu. Neden olmasın böyle bir kod anlamadım sizin algıladığınız kötü bir şey mi var? Kötü bir amaç yok yani zaten ne yapılabilirki kötü.
 
Hatanın sebebini söylüyor zaten. Şu kod parçasında "responses.index(answer)" answer değişkenini "İyiyim teşekkür ederim, sen nasılsın?" stringi olarak aratınca kod hata veriyor çünkü responses listinde öyle bir string yok. Genel olarak kod çok kötü zaten. ChatGPT'ye şunu yap yazıp bilmediğiniz bir şeyi düzgünce yapmayı, çalıştırmayı bekleyemezsiniz. Sizin yaptığınız internete semptom yazıp doktor olmaya çalışmak. Yanlış ve işe yaramaz. Bu tip şeylerle uğraşmak, yazmak istiyorsanız öğrenin. Yeterli bilgiye sahip olmadan ChatGPT'ye yazdırmaya çalışmayın. Hem çalışmıyor hem siz bir şey öğrenmiyorsunuz.
 
Hatanın sebebini söylüyor zaten. Şu kod parçasında "responses. İndex(answer)" answer değişkenini "iyiyim teşekkür ederim, sen nasılsın?" stringi olarak aratınca kod hata veriyor çünkü responses listinde öyle bir string yok. Genel olarak kod çok kötü zaten. ChatGPT'ye şunu yap yazıp bilmediğiniz bir şeyi düzgünce yapmayı, çalıştırmayı bekleyemezsiniz. Sizin yaptığınız internete semptom yazıp doktor olmaya çalışmak. Yanlış ve işe yaramaz. Bu tip şeylerle uğraşmak, yazmak istiyorsanız öğrenin. Yeterli bilgiye sahip olmadan ChatGPT'ye yazdırmaya çalışmayın. Hem çalışmıyor hem siz bir şey öğrenmiyorsunuz.

Hocam benim bu kodu kullanmak gibi bir amacım yok sadece çok zevk veriyor çalışması bir de çok merak edip yazdırıyorum. ChatGPT'den hatasız yazması gibi bir beklentimde yok. Sadece bu kadar kod yazdı acaba sonu nasıl bir şey olacak merakımdan buraya sordum. Zaten kullanmaya kalksam adamakıllı eğitemem bile. Sadece çok seviyorum böyle kodları çalıştırmayı. Bir de derslerine başladım zaten sadece kurstan sonra böyle bir şey kodlar mıyım diye merakımdan. Kötü hiçbir amacım yok.
 

Technopat Haberler

Yeni konular

Geri
Yukarı