Diabibot / README.md
diabetica's picture
Create README.md
208e8e6 verified
metadata
license: bsl-1.0
base_model:
  - microsoft/OmniParser-v2.0
pipeline_tag: text-generation
tags:
  - medical

pip install transformers datasets torch [ {"soru": "Diyabet nedir?", "cevap": "Diyabet, vücudunuzun yeterince insülin üretemediği veya insülini etkili bir şekilde kullanamadığı bir durumdur."}, {"soru": "İnsülin direnci nedir?", "cevap": "İnsülin direnci, hücrelerinizin insüline yanıt vermediği ve kan şekerinin yükselmesine neden olduğu bir durumdur."}, {"soru": "Diyabet nasıl yönetilir?", "cevap": "Diyabet, sağlıklı beslenme, düzenli egzersiz ve ilaçlarla yönetilebilir."} ] from transformers import AutoTokenizer, AutoModelForCausalLM, Trainer, TrainingArguments from datasets import Dataset import json

Veri setini yükle with open("diabi_veri_seti.json", "r", encoding="utf-8") as f: veri_seti = json.load(f)

#Veri setini Hugging Face Dataset formatına dönüştür sorular = [veri["soru"] for veri in veri_seti] cevaplar = [veri["cevap"] for veri in veri_seti]

dataset = Dataset.from_dict({"soru": sorular, "cevap": cevaplar})

Tokenizer ve modeli yükle model_adi = "microsoft/DialoGPT-small" # Küçük, Orta veya Büyük model seçebilirsiniz tokenizer = AutoTokenizer.from_pretrained(model_adi) model = AutoModelForCausalLM.from_pretrained(model_adi)

Veri setini tokenize et def tokenize_veri(ornek): return tokenizer(ornek["soru"] + " " + ornek["cevap"], truncation=True, padding="max_length", max_length=128)

tokenized_dataset = dataset.map(tokenize_veri, batched=True)

Eğitim argümanlarını ayarla training_args = TrainingArguments( output_dir="./diabi-model", # Modelin kaydedileceği dizin overwrite_output_dir=True, num_train_epochs=3, # Eğitim epoch sayısı per_device_train_batch_size=8, # Batch boyutu save_steps=500, save_total_limit=2, logging_dir="./logs", # Logların kaydedileceği dizin logging_steps=10, )

Trainer'ı oluştur trainer = Trainer( model=model, args=training_args, train_dataset=tokenized_dataset, )

Modeli eğit trainer.train()

Modeli kaydet trainer.save_model("./diabi-model") tokenizer.save_pretrained("./diabi-model")

from transformers import AutoTokenizer, AutoModelForCausalLM

Eğitilen modeli yükle model_adi = "./diabi-model" tokenizer = AutoTokenizer.from_pretrained(model_adi) model = AutoModelForCausalLM.from_pretrained(model_adi)

Sohbet başlat print("Diabi: Merhaba! Ben Diabi, diyabetle ilgili sorularınızı yanıtlamak için buradayım. Nasıl yardımcı olabilirim? (Çıkmak için 'exit' yazın)") while True: user_input = input("Siz: ") if user_input.lower() == "exit": break

# Kullanıcı mesajını modele gönder
inputs = tokenizer.encode(user_input + tokenizer.eos_token, return_tensors="pt")
outputs = model.generate(inputs, max_length=1000, pad_token_id=tokenizer.eos_token_id)
bot_reply = tokenizer.decode(outputs[:, inputs.shape[-1]:][0], skip_special_tokens=True)

print(f"Diabi: {bot_reply}")