import os
os.environ["HF_HOME"] = r"D:\__sistem__\Masaustu\Python Yapay Zeka\Denemeler\modeller"

import json
from transformers import pipeline

# OpenAI'nin GPT modelini kullanan bir örnek, Hugging Face Transformers kütüphanesini kullanıyor
chatbot = pipeline('text-generation', model='gpt-3.5-turbo', tokenizer='gpt-3.5-turbo')

# Karakter sınıfı
class Character:
    def __init__(self, name, role, prompt):
        self.name = name
        self.role = role
        self.prompt = prompt
        self.conversation_history = []

    def respond(self, message):
        self.conversation_history.append(f"User: {message}")
        input_text = f"{self.prompt}\n\n" + "\n".join(self.conversation_history) + f"\n{self.name}:"
        response = chatbot(input_text, max_length=100, num_return_sequences=1)[0]['generated_text']
        character_response = response.split(f"{self.name}:")[-1].strip()
        self.conversation_history.append(f"{self.name}: {character_response}")
        return character_response

# JSON dosyasından karakterleri yükleme
def load_characters(json_file):
    with open(json_file, 'r', encoding='utf-8') as file:
        roles = json.load(file)
    return [Character(role['name'], role['role'], role['prompt']) for role in roles]

# Karakterleri yükleyelim
characters = load_characters('roles.json')

# Sohbet başlatma
user_message = "Merhaba, internet bağlantımda sorun yaşıyorum."

for character in characters:
    response = character.respond(user_message)
    print(f"{character.name}: {response}")

# Kullanıcıdan yeni mesaj alarak sohbeti sürdürme
while True:
    user_message = input("Kullanıcı: ")
    for character in characters:
        response = character.respond(user_message)
        print(f"{character.name}: {response}")