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"))