פרטי השיעור
בשלב הזה, ניצור View אשר יטפל בקלט מהמשתמש וישתמש במודל DistilGPT-2 ליצירת תשובה.
-
נתחיל בהתקנת המודל DistilGPT-2:
ב-
chat/views.py
, הוסף את הקוד הבא:
from django.shortcuts import render from django.http import JsonResponse from transformers import GPT2LMHeadModel, GPT2Tokenizer import torch # טעינת המודל והטוקניזר של DistilGPT-2 model_name = "distilgpt2" model = GPT2LMHeadModel.from_pretrained(model_name) tokenizer = GPT2Tokenizer.from_pretrained(model_name) # הגדרת pad_token כדי למנוע בעיות עם ריווח tokenizer.pad_token = tokenizer.eos_token def chat_view(request): return render(request, 'chat/chat.html') def generate_response(request): if request.method == "POST": user_input = request.POST.get("prompt", "") # טוקניזציה של הקלט inputs = tokenizer(user_input, return_tensors='pt', padding=True, truncation=True) attention_mask = inputs['attention_mask'] input_ids = inputs['input_ids'] # יצירת טקסט באמצעות המודל outputs = model.generate(input_ids, attention_mask=attention_mask, max_length=200, num_return_sequences=1, pad_token_id=tokenizer.eos_token_id) # פענוח התשובה שנוצרה response_text = tokenizer.decode(outputs[0], skip_special_tokens=True, clean_up_tokenization_spaces=True) return JsonResponse({"response": response_text}) return JsonResponse({"response": "Invalid request method."})
הגדרת נתיבי URL:
צור קובץ urls.py
בתוך תיקיית chat
והוסף את הקוד הבא:
from django.urls import path from .views import chat_view, generate_response urlpatterns = [ path('', chat_view, name='chat'), path('generate_response/', generate_response, name='generate_response'), ]
לאחר מכן, הוסף את הנתיבים הללו בקובץ הראשי chatgpt_clone/urls.py
:
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('chat.urls')), ]