Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import os, re, gc, time, sys, subprocess, typing, shutil, json, datetime, tempfile, safetensors, torch, threading, spaces | |
| import numpy as np | |
| from transformers import AutoTokenizer, AutoModelForCausalLM | |
| from accelerate import Accelerator | |
| from huggingface_hub import login | |
| HF_TOKEN=os.environ.get('HF_TOKEN') | |
| login(token=HF_TOKEN) | |
| os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "expandable_segments:True" | |
| os.environ["ZERO_GPU_PATCH_TORCH_DEVICE"] = "True" | |
| device = "cuda" if torch.cuda.is_available() else "cpu" | |
| accelerator=Accelerator() | |
| TOKENIZER = accelerator.prepare(AutoTokenizer.from_pretrained("ByteDance-Seed/Seed-Coder-8B-Instruct")) | |
| MODEL = accelerator.prepare(AutoModelForCausalLM.from_pretrained("ByteDance-Seed/Seed-Coder-8B-Instruct", torch_dtype=torch.bfloat16,)) | |
| def plex(pmpt, input_text): | |
| model_inputs="" | |
| generated_text="" | |
| prompt = f"{pmpt}. The code: {input_text}" | |
| messages = [{"role": "system", "content": "Acting as an expert AI Web Development and Programming model. As an expert AI Web Development and Programming model, correct/modify/create/generate/complete the user provided code based on user request, output the code without comments. Only output code without additional prefixed or suffixed messages/comments/wrapping or additional text."}, {"role": "user", "content": prompt}] | |
| text = TOKENIZER.apply_chat_template(messages,tokenize=False,add_generation_prompt=True) | |
| model_inputs = TOKENIZER([text], return_tensors="pt", return_token_type_ids=False).to(device) | |
| generated_text = "" | |
| for new_text in TOKENIZER.decode(MODEL.generate(**model_inputs, max_new_tokens=8192, do_sample=True, temperature=0.7, top_k=30, top_p=0.8,)[0][len(model_inputs.input_ids[0]):], skip_special_tokens=True): | |
| generated_text += new_text | |
| yield generated_text.strip() | |
| yield generated_text.strip() | |
| with gr.Blocks() as iface: | |
| ins=gr.Code(lines=30,placeholder="Paste the code you'd like to modify/fix/extend/edit here.. or start coding.. get assistance when/if required.") | |
| pmpt=gr.Textbox(label="Prompt") | |
| btn=gr.Button("Assist") | |
| btn.click(plex,[pmpt,ins],[ins]) | |
| iface.queue() | |
| iface.launch(ssr_mode=False,share=False) |