Spaces:
Runtime error
Runtime error
Download app.py from vsrinivas/ChatBot_by_SrinivasV: direct link, hf CLI and curl.
- Browser
- Download file 1.96 kB
-
https://huggingface.co/spaces/vsrinivas/ChatBot_by_SrinivasV/resolve/bf63d35fb4a5a63551078880b2bd1c0bd5183507/app.py
- Command line
-
hf download hf://spaces/vsrinivas/ChatBot_by_SrinivasV@bf63d35fb4a5a63551078880b2bd1c0bd5183507/app.py
-
curl -L -o app.py https://huggingface.co/spaces/vsrinivas/ChatBot_by_SrinivasV/resolve/bf63d35fb4a5a63551078880b2bd1c0bd5183507/app.py
1.96 kB
| from transformers import AutoTokenizer, AutoModelForCausalLM | |
| import transformers | |
| import torch | |
| # model = "tiiuae/falcon-40b-instruct" | |
| model = "tiiuae/falcon-7b-instruct" | |
| tokenizer = AutoTokenizer.from_pretrained(model, offload_folder="offload", offload_state_dict = True, ) | |
| pipeline = transformers.pipeline( | |
| "text-generation", | |
| model=model, | |
| tokenizer=tokenizer, | |
| # torch_dtype=torch.bfloat16, | |
| trust_remote_code=True, | |
| device_map="auto", | |
| ) | |
| def format_chat_prompt(message, chat_history): | |
| prompt = "" | |
| for turn in chat_history: | |
| user_message, bot_message = turn | |
| prompt = f"{prompt}\nUser: {user_message}\nAssistant: {bot_message}" | |
| prompt = f"{prompt}\nUser: {message}\nAssistant:" | |
| return prompt | |
| def respond(message, chat_history): | |
| formatted_prompt = format_chat_prompt(message, chat_history) | |
| # print(formatted_prompt) | |
| bot_message = generate_seqs(prompt = formatted_prompt, | |
| max_new_tokens=1024, | |
| stop_sequence=["\nUser:", "<|endoftext|>"]).split('Assistant: ')[-1] | |
| chat_history.append((message, bot_message)) | |
| return "", chat_history | |
| def generate_seqs(prompt, max_new_tokens=None, stop_sequence=None): | |
| output = pipeline(prompt, | |
| max_length=200, | |
| max_new_tokens = max_new_tokens, | |
| stop_sequence = stop_sequence, | |
| do_sample=True, | |
| top_k=10, | |
| num_return_sequences=1, | |
| eos_token_id=tokenizer.eos_token_id) | |
| return output[0]['generated_text'] | |
| with gr.Blocks() as demo: | |
| chatbot = gr.Chatbot(height=240) #just to fit the notebook | |
| msg = gr.Textbox(label="Prompt") | |
| btn = gr.Button("Submit") | |
| clear = gr.ClearButton(components=[msg, chatbot], value="Clear console") | |
| btn.click(respond, inputs=[msg, chatbot], outputs=[msg, chatbot]) | |
| msg.submit(respond, inputs=[msg, chatbot], outputs=[msg, chatbot]) #Press enter to submit | |
| demo.launch() |