Zerx966 commited on
Commit
956c04c
1 Parent(s): ad5cb78

Create App.py

Browse files
Files changed (1) hide show
  1. App.py +71 -0
App.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import gradio as gr
3
+ import requests
4
+
5
+ # Получите токен из переменных окружения
6
+ HUGGINGFACE_TOKEN = os.getenv("HUGGINGFACE_TOKEN")
7
+
8
+ # Инициализация Hugging Face API
9
+ API_URL = "https://api-inference.huggingface.co/models/Orenguteng/Llama-3.1-8B-Lexi-Uncensored-V2"
10
+ headers = {"Authorization": f"Bearer {HUGGINGFACE_TOKEN}"}
11
+
12
+ def chat(message, history, system_message, max_tokens, temperature, top_p):
13
+ # Подготовка сообщений
14
+ messages = [{"role": "system", "content": system_message}]
15
+
16
+ for val in history:
17
+ if val[0]:
18
+ messages.append({"role": "user", "content": val[0]})
19
+ if val[1]:
20
+ messages.append({"role": "assistant", "content": val[1]})
21
+
22
+ messages.append({"role": "user", "content": message})
23
+
24
+ # Подготовка входных данных для модели
25
+ input_text = "\n".join([f"{msg['role']}: {msg['content']}" for msg in messages])
26
+
27
+ # Отправка запроса к Hugging Face API
28
+ response = requests.post(
29
+ API_URL,
30
+ headers=headers,
31
+ json={
32
+ "inputs": input_text,
33
+ "parameters": {
34
+ "max_new_tokens": max_tokens,
35
+ "temperature": temperature,
36
+ "top_p": top_p,
37
+ },
38
+ }
39
+ )
40
+
41
+ # Проверка статуса ответа
42
+ if response.status_code != 200:
43
+ return "Error with API call: " + response.text, history
44
+
45
+ # Возвращаем только последний ответ от модели
46
+ response_text = response.json()[0]['generated_text'].strip()
47
+
48
+ # Добавляем сообщение и ответ в историю
49
+ history.append((message, response_text))
50
+
51
+ return response_text, history
52
+
53
+ # Определение интерфейса Gradio
54
+ iface = gr.Interface(
55
+ fn=chat,
56
+ inputs=[
57
+ gr.Textbox(label="Message"),
58
+ gr.State([]), # Для хранения истории сообщений
59
+ gr.Textbox(value="You are a friendly Chatbot.", label="System Message"),
60
+ gr.Slider(minimum=1, maximum=2048, value=50, step=1, label="Max New Tokens"),
61
+ gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
62
+ gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)"),
63
+ ],
64
+ outputs=[
65
+ gr.Textbox(label="Response"),
66
+ gr.State([]) # Состояние должно быть также определено в выходных параметрах
67
+ ],
68
+ )
69
+
70
+ if __name__ == "__main__":
71
+ iface.launch()