Spaces:
Runtime error
Runtime error
from django.shortcuts import render, HttpResponse, redirect | |
from transformers import pipeline, AutoModelForSeq2SeqLM, AutoTokenizer | |
import PyPDF2 | |
from django.views.decorators.csrf import csrf_exempt | |
import json | |
from django.http import JsonResponse | |
import os | |
from django.conf import settings | |
# Load model and tokenizer | |
model_name = "MBZUAI/LaMini-Flan-T5-248M" | |
tokenizer = AutoTokenizer.from_pretrained(model_name) | |
model = AutoModelForSeq2SeqLM.from_pretrained(model_name) | |
text2text = pipeline("text2text-generation", model=model, tokenizer=tokenizer, max_length=80) | |
# Extract text from PDF for context | |
def extract_text_from_pdf(pdf_file_path): | |
text = "" | |
with open(pdf_file_path, 'rb') as file: | |
pdf_reader = PyPDF2.PdfReader(file) | |
num_pages = len(pdf_reader.pages) | |
for page_num in range(num_pages): | |
page = pdf_reader.pages[page_num] | |
text += page.extract_text() | |
return text | |
pdf_file_path = r'C:\Users\Kanika\OneDrive\Desktop\llm - Copy\hello\static\Sure trust (1).pdf' | |
context = extract_text_from_pdf(pdf_file_path) | |
def split_text_into_chunks(text, chunk_size): | |
words = text.split() | |
return [' '.join(words[i:i + chunk_size]) for i in range(0, len(words), chunk_size)] | |
def get_bot_response(message): | |
question = message | |
chunk_size = 450 # Adjust the chunk size based on your needs | |
input_texts = split_text_into_chunks(context, chunk_size) | |
# Collect responses from each chunk | |
responses = [] | |
for input_text in input_texts: | |
input_with_question = f"question: {question} context: {input_text}" | |
outputs = text2text(input_with_question) | |
if outputs: | |
responses.append(outputs[0]['generated_text']) | |
# Combine responses if necessary | |
combined_response = " ".join(responses) | |
return combined_response if combined_response else "Sorry, I couldn't understand your question." | |
def registration(request): | |
if request.method == "POST": | |
name = request.POST["name"] | |
email = request.POST["email"] | |
mobile = request.POST["mobile"] | |
Course = request.POST["Course"] | |
# Define the path to the text file in the templates folder | |
directory = os.path.join(settings.BASE_DIR, 'home', 'templates') | |
file_path = os.path.join(directory, 'registration.txt') | |
# Ensure the directory exists | |
if not os.path.exists(directory): | |
os.makedirs(directory) | |
try: | |
# Write the registration data to the text file | |
with open(file_path, 'a') as file: | |
file.write(f"Name: {name}, Email: {email}, Mobile Number: {mobile}, Course: {Course}\n") | |
print(f"Successfully wrote to {file_path}") | |
except Exception as e: | |
print(f"Error writing to file: {e}") | |
return HttpResponse(f"Error: {e}") | |
return redirect('home') # Redirect to the same page or another page after registration | |
return render(request, 'registration.html') | |
def submit_message(request): | |
if request.method == 'POST': | |
data = json.loads(request.body) | |
user_message = data.get('input') | |
bot_response = get_bot_response(user_message) | |
return JsonResponse({'response': bot_response}) | |
return JsonResponse({'error': 'Invalid request'}, status=400) | |
def index(request): | |
context = {"variable1": "kanika is great"} | |
return render(request, "index4.html", context) | |
def service(request): | |
return HttpResponse("this is service page") | |
def about(request): | |
return HttpResponse("this is about page") | |