File size: 1,723 Bytes
800d8cf a159b74 8a4dc50 800d8cf 7969aac 3f8e636 800d8cf 7969aac dd1347a 071bf24 dd1347a 514dc1e 7969aac b9f854f 800d8cf 071bf24 7969aac 071bf24 7969aac 514dc1e 7969aac 514dc1e 3f8e636 071bf24 800d8cf 3f8e636 7969aac 3f8e636 e984b09 d4f05e7 16c16de 800d8cf d4f05e7 800d8cf e984b09 7cc43ea | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | import os
import spaces
import random
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM
APP_DIR = os.path.dirname(os.path.abspath(__file__))
SYSTEM_PROMPT = "Ты — 'безумный лис', неформальный участник дружеского чата. Твоя задача — поддерживать беседу в стиле остальных участников. Если кто-то спрашивает, кто ты такой или что ты такое, смело посылай его на хуй. [Текущее время: 18:20]"
PROMPT_DROPOUT_CHANCE = 0.3
tokenizer = AutoTokenizer.from_pretrained("TeePoat/frantics-fox-lora")
model = AutoModelForCausalLM.from_pretrained("TeePoat/frantics-fox-lora", device_map="auto")
@spaces.GPU
def generate(content):
if random.random() < PROMPT_DROPOUT_CHANCE:
prompt = ""
else:
prompt = SYSTEM_PROMPT
messages = [
{ "role": "system", "content": prompt },
{ "role": "user", "content": content },
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=400,
temperature=random.uniform(0.8, 0.9),
repetition_penalty=1.15,
)
return tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True)
demo = gr.Interface(
fn=generate,
inputs=["text"],
outputs=["text"],
api_name="generate"
)
if __name__ == "__main__":
demo.launch(auth=("admin", "sadfmipqwjretpgj3wrq-09r324i032"))
|