assemsabry commited on
Commit
7222613
·
verified ·
1 Parent(s): c5e18e8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -11
app.py CHANGED
@@ -1,25 +1,26 @@
 
1
  import gradio as gr
2
- from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
3
 
4
- model_name = "microsoft/DialoGPT-medium" # ممكن تغيره حسب رغبتك
5
 
6
  tokenizer = AutoTokenizer.from_pretrained(model_name)
7
  model = AutoModelForCausalLM.from_pretrained(model_name)
8
 
9
  chat_history_ids = None
10
 
11
- def chat_with_bot(user_input, history=[]):
12
  global chat_history_ids
13
- input_ids = tokenizer.encode(user_input + tokenizer.eos_token, return_tensors="pt")
14
 
15
  if chat_history_ids is not None:
16
- input_ids = torch.cat([chat_history_ids, input_ids], dim=-1)
 
 
17
 
18
- output = model.generate(input_ids, max_length=1000, pad_token_id=tokenizer.eos_token_id)
19
- chat_history_ids = output
20
 
21
- response = tokenizer.decode(output[:, input_ids.shape[-1]:][0], skip_special_tokens=True)
22
- return response
23
 
24
- iface = gr.Interface(fn=chat_with_bot, inputs="text", outputs="text", title="ChatBot 🤖")
25
- iface.launch()
 
1
+ import torch
2
  import gradio as gr
3
+ from transformers import AutoModelForCausalLM, AutoTokenizer
4
 
5
+ model_name = "microsoft/DialoGPT-medium"
6
 
7
  tokenizer = AutoTokenizer.from_pretrained(model_name)
8
  model = AutoModelForCausalLM.from_pretrained(model_name)
9
 
10
  chat_history_ids = None
11
 
12
+ def respond(message, chat_history=[]):
13
  global chat_history_ids
14
+ new_input_ids = tokenizer.encode(message + tokenizer.eos_token, return_tensors='pt')
15
 
16
  if chat_history_ids is not None:
17
+ input_ids = torch.cat([chat_history_ids, new_input_ids], dim=-1)
18
+ else:
19
+ input_ids = new_input_ids
20
 
21
+ chat_history_ids = model.generate(input_ids, max_length=1000, pad_token_id=tokenizer.eos_token_id)
 
22
 
23
+ reply = tokenizer.decode(chat_history_ids[:, input_ids.shape[-1]:][0], skip_special_tokens=True)
24
+ return reply
25
 
26
+ gr.Interface(fn=respond, inputs="text", outputs="text", title="DialoGPT Chatbot").launch()