pauljpeterson commited on
Commit
5e2b3aa
1 Parent(s): ce8a46f
Files changed (1) hide show
  1. app.py +23 -20
app.py CHANGED
@@ -1,20 +1,23 @@
1
- from transformers import AutoModelForCausalLM, AutoTokenizer
2
- import torch
3
- import streamlit as st
4
-
5
- tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-large")
6
- model = AutoModelForCausalLM.from_pretrained("microsoft/DialoGPT-large")
7
-
8
- # Let's chat for 5 lines
9
- for step in range(5):
10
- # encode the new user input, add the eos_token and return a tensor in Pytorch
11
- new_user_input_ids = tokenizer.encode(input(">> User:") + tokenizer.eos_token, return_tensors='pt')
12
-
13
- # append the new user input tokens to the chat history
14
- bot_input_ids = torch.cat([chat_history_ids, new_user_input_ids], dim=-1) if step > 0 else new_user_input_ids
15
-
16
- # generated a response while limiting the total chat history to 1000 tokens,
17
- chat_history_ids = model.generate(bot_input_ids, max_length=1000, pad_token_id=tokenizer.eos_token_id)
18
-
19
- # pretty print last ouput tokens from bot
20
- print("DialoGPT: {}".format(tokenizer.decode(chat_history_ids[:, bot_input_ids.shape[-1]:][0], skip_special_tokens=True)))
 
 
 
 
1
+ from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
2
+ tokenizer = AutoTokenizer.from_pretrained("microsoft/GODEL-v1_1-large-seq2seq")
3
+ model = AutoModelForSeq2SeqLM.from_pretrained("microsoft/GODEL-v1_1-large-seq2seq")
4
+ def generate(instruction, knowledge, dialog):
5
+ if knowledge != '':
6
+ knowledge = '[KNOWLEDGE] ' + knowledge
7
+ dialog = ' EOS '.join(dialog)
8
+ query = f"{instruction} [CONTEXT] {dialog} {knowledge}"
9
+ input_ids = tokenizer(f"{query}", return_tensors="pt").input_ids
10
+ outputs = model.generate(input_ids, max_length=128, min_length=8, top_p=0.9, do_sample=True)
11
+ output = tokenizer.decode(outputs[0], skip_special_tokens=True)
12
+ return output
13
+ # Instruction for a chitchat task
14
+ instruction = f'Instruction: given a dialog context, you need to response empathically.'
15
+ # Leave the knowldge empty
16
+ knowledge = ''
17
+ dialog = [
18
+ 'Does money buy happiness?',
19
+ 'It is a question. Money buys you a lot of things, but not enough to buy happiness.',
20
+ 'What is the best way to buy happiness ?'
21
+ ]
22
+ response = generate(instruction, knowledge, dialog)
23
+ print(response)