AugustLight commited on
Commit
fe67270
·
verified ·
1 Parent(s): 464f8f9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +70 -20
app.py CHANGED
@@ -1,37 +1,87 @@
1
  import gradio as gr
2
  from ctransformers import AutoModelForCausalLM
 
 
 
3
 
4
  def load_model():
5
- model = AutoModelForCausalLM.from_pretrained(
6
- "Llight.Q8_0.gguf",
7
- model_type="llama",
8
- gpu_layers=0
9
- )
 
 
 
 
 
 
 
10
  return model
11
 
12
- def generate_response(prompt, max_tokens=128, temperature=0.7):
13
  try:
14
- model = load_model()
 
 
 
 
 
 
 
 
 
15
  response = model(
16
- prompt,
17
- max_tokens=max_tokens,
18
- temperature=temperature
 
 
19
  )
20
- return response
 
 
21
  except Exception as e:
22
  return f"Произошла ошибка: {str(e)}"
23
 
24
  # Создаем интерфейс
25
- demo = gr.Interface(
26
- fn=generate_response,
27
- inputs=[
28
- gr.Textbox(label="Введите ваш запрос", lines=3),
29
- gr.Slider(minimum=1, maximum=512, value=128, label="Max Tokens"),
30
- gr.Slider(minimum=0.1, maximum=2.0, value=0.7, label="Temperature"),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  ],
32
- outputs=gr.Textbox(label="Ответ модели", lines=5),
33
- title="LLight Model Demo",
34
- description="Демонстрация работы GGUF модели"
35
  )
36
 
37
  # Запускаем приложение
 
1
  import gradio as gr
2
  from ctransformers import AutoModelForCausalLM
3
+ import os
4
+
5
+ model = None
6
 
7
  def load_model():
8
+ global model
9
+ if model is None:
10
+ try:
11
+ model = AutoModelForCausalLM.from_pretrained(
12
+ "Llight.Q8_0.gguf",
13
+ model_type="llama",
14
+ gpu_layers=0,
15
+ context_length=2048
16
+ )
17
+ except Exception as e:
18
+ print(f"Ошибка загрузки модели: {str(e)}")
19
+ raise e
20
  return model
21
 
22
+ def respond(message, history, system_message, max_new_tokens, temperature, top_p):
23
  try:
24
+ if model is None:
25
+ load_model()
26
+
27
+ # Формируем контекст из истории
28
+ context = system_message + "\n\n"
29
+ for user_msg, assistant_msg in history:
30
+ context += f"User: {user_msg}\nAssistant: {assistant_msg}\n"
31
+ context += f"User: {message}\nAssistant: "
32
+
33
+ # Генерируем ответ
34
  response = model(
35
+ context,
36
+ max_tokens=max_new_tokens,
37
+ temperature=temperature,
38
+ top_p=top_p,
39
+ stop=["User:", "\n\n", "<|endoftext|>"]
40
  )
41
+
42
+ return response.strip()
43
+
44
  except Exception as e:
45
  return f"Произошла ошибка: {str(e)}"
46
 
47
  # Создаем интерфейс
48
+ demo = gr.ChatInterface(
49
+ respond,
50
+ additional_inputs=[
51
+ gr.Textbox(
52
+ value="Ты дружелюбный и полезный ассистент. Ты всегда отвечаешь кратко и по делу.",
53
+ label="System message"
54
+ ),
55
+ gr.Slider(
56
+ minimum=1,
57
+ maximum=2048,
58
+ value=512,
59
+ step=1,
60
+ label="Max new tokens"
61
+ ),
62
+ gr.Slider(
63
+ minimum=0.1,
64
+ maximum=4.0,
65
+ value=0.7,
66
+ step=0.1,
67
+ label="Temperature"
68
+ ),
69
+ gr.Slider(
70
+ minimum=0.1,
71
+ maximum=1.0,
72
+ value=0.95,
73
+ step=0.05,
74
+ label="Top-p (nucleus sampling)"
75
+ ),
76
+ ],
77
+ title="GGUF Chat Model",
78
+ description="Чат с GGUF моделью (Llight.Q8_0.gguf)",
79
+ examples=[
80
+ ["Привет! Как дела?"],
81
+ ["Расскажи мне о себе"],
82
+ ["Что ты умеешь делать?"]
83
  ],
84
+ cache_examples=False
 
 
85
  )
86
 
87
  # Запускаем приложение