Spaces:
Running
on
Zero
Running
on
Zero
| from transformers import AutoModelForSeq2SeqLM, AutoTokenizer | |
| import torch | |
| from transformers import pipeline | |
| import pandas as pd | |
| import gradio as gr | |
| import os | |
| import copy | |
| import spaces | |
| from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, TextStreamer, TextIteratorStreamer | |
| # quantization_config = BitsAndBytesConfig(load_in_4bit=True) | |
| torch_device = "cuda" if torch.cuda.is_available() else ("mps" if torch.mps.is_available() else "cpu") | |
| torch_dtype = torch.bfloat16 if torch_device in ["cuda", "mps"] else torch.float32 | |
| llama_model=AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.2-3B-Instruct", | |
| # quantization_config=quantization_config, | |
| torch_dtype=torch_dtype, | |
| device_map=torch_device, | |
| # load_in_4bit=True #for puny devices like mine. | |
| ) | |
| llama_tokenizer=AutoTokenizer.from_pretrained("meta-llama/Llama-3.2-3B-Instruct") | |
| # streamer = TextStreamer(llama_tokenizer) | |
| llama32_3b_pipe = pipeline( | |
| "text-generation", | |
| model=llama_model, | |
| tokenizer=llama_tokenizer, | |
| # streamer = streamer, | |
| ) | |
| def llama32_3b_chat(message) -> str: | |
| "simplifies pipeline output to only return generated text" | |
| input_history = [{"role": "system", "content": """You are now a LinkedIn post generator. I will just give you a fraction of an idea and you will convert it into a buzzing LinkedIn post full of emojis and excitement, just like every other LinkedIn post. | |
| """}] | |
| input_history.append({"role": "user", "content": f"{message}"}) | |
| ##add sth about context window here | |
| outputs = llama32_3b_pipe( | |
| input_history, | |
| max_new_tokens=512 | |
| ) | |
| return outputs[-1]['generated_text'][-1]['content'] | |
| # Create the Gradio interface | |
| def create_interface(): | |
| with gr.Blocks() as demo: | |
| with gr.Row(): | |
| text_input = gr.Textbox(label="input for Linkedin Post Generator", value = "I am sometimes tired at work") | |
| with gr.Row(): | |
| submit_btn = gr.Button("Generate LinkedIn Post") | |
| with gr.Row(): | |
| text_output = gr.Textbox(interactive=False) | |
| submit_btn.click( | |
| fn=llama32_3b_chat, | |
| inputs=[text_input], | |
| outputs=[text_output] | |
| ) | |
| return demo | |
| # Launch the app | |
| demo = create_interface() | |
| demo.launch() |