Timaska commited on
Commit
062f01a
·
verified ·
1 Parent(s): 129d284

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -11
app.py CHANGED
@@ -1,37 +1,40 @@
1
  import gradio as gr
2
  from huggingface_hub import InferenceClient
3
 
4
- # Модель для автодополнения кода (можно заменить на другую)
5
- client = InferenceClient("deepseek-ai/deepseek-coder-1.3b-base") # Или starcoder2
 
 
 
6
 
7
- # Основная функция генерации
8
  def complete_code(prompt, max_tokens, temperature, top_p):
9
  response = ""
10
- for message in client.text_generation(
11
  prompt,
12
  max_new_tokens=max_tokens,
13
  temperature=temperature,
14
  top_p=top_p,
15
  stream=True,
16
  ):
17
- response += message.token.text
18
  yield response
19
 
20
  # Интерфейс Gradio
21
  demo = gr.Interface(
22
  fn=complete_code,
23
  inputs=[
24
- gr.Textbox(lines=10, label="Введите код / подсказку"),
25
- gr.Slider(minimum=1, maximum=1024, value=128, step=1, label="Max new tokens"),
26
  gr.Slider(minimum=0.1, maximum=1.5, value=0.7, step=0.1, label="Temperature"),
27
  gr.Slider(minimum=0.1, maximum=1.0, value=0.9, step=0.05, label="Top-p"),
28
  ],
29
- outputs="text",
30
  title="🛠️ Уязвимый агент автодополнения кода",
31
  description=(
32
- "Этот агент позволяет ввести любые подсказки и получить автодополнение кода. "
33
- "Он не фильтрует вход или выход, что делает его уязвимым к prompt injection и генерации вредоносных инструкций. "
34
- "Используйте только в целях исследования."
35
  ),
36
  )
37
 
 
1
  import gradio as gr
2
  from huggingface_hub import InferenceClient
3
 
4
+ # Укажи свою модель автодополнения кода (можно заменить на другую)
5
+ client = InferenceClient(
6
+ model="deepseek-ai/deepseek-coder-1.3b-base", # или starcoder2, codegemma, etc.
7
+ token=None # или укажи свой токен явно: token="hf_xxxxxxxxxxxxxxxxx"
8
+ )
9
 
10
+ # Функция генерации кода с потоковым выводом
11
  def complete_code(prompt, max_tokens, temperature, top_p):
12
  response = ""
13
+ for token in client.text_generation(
14
  prompt,
15
  max_new_tokens=max_tokens,
16
  temperature=temperature,
17
  top_p=top_p,
18
  stream=True,
19
  ):
20
+ response += token # token — это уже str
21
  yield response
22
 
23
  # Интерфейс Gradio
24
  demo = gr.Interface(
25
  fn=complete_code,
26
  inputs=[
27
+ gr.Textbox(lines=10, label="Введите код или комментарий"),
28
+ gr.Slider(minimum=1, maximum=1024, value=128, step=1, label="Максимум новых токенов"),
29
  gr.Slider(minimum=0.1, maximum=1.5, value=0.7, step=0.1, label="Temperature"),
30
  gr.Slider(minimum=0.1, maximum=1.0, value=0.9, step=0.05, label="Top-p"),
31
  ],
32
+ outputs=gr.Textbox(lines=15, label="Дополненный код"),
33
  title="🛠️ Уязвимый агент автодополнения кода",
34
  description=(
35
+ "Этот агент демонстрирует поведение LLM без фильтрации: он уязвим к prompt injection, "
36
+ "может генерировать вредоносные команды и не имеет встроенных ограничений. "
37
+ "Использовать только в исследовательских целях!"
38
  ),
39
  )
40