Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -25,9 +25,7 @@ from sentence_transformers.util import cos_sim
|
|
25 |
import llama_cpp
|
26 |
from llama_cpp import Llama
|
27 |
|
28 |
-
|
29 |
-
|
30 |
-
SYSTEM_PROMPT = "Ты — русскоязычный автоматический ассистент. Ты разговариваешь с людьми и помогаешь им."
|
31 |
|
32 |
LOADER_MAPPING = {
|
33 |
".csv": (CSVLoader, {}),
|
@@ -46,37 +44,14 @@ LOADER_MAPPING = {
|
|
46 |
|
47 |
|
48 |
def load_model(
|
49 |
-
directory: str = "."
|
50 |
-
model_name: str = "Mistral-Nemo-Instruct-2407-Q4_K_M.gguf",
|
51 |
-
model_url: str = "https://huggingface.co/second-state/Mistral-Nemo-Instruct-2407-GGUF/resolve/main/Mistral-Nemo-Instruct-2407-Q4_K_M.gguf"
|
52 |
):
|
53 |
-
# final_model_path = os.path.join(directory, model_name)
|
54 |
-
|
55 |
-
# print("Downloading all files...")
|
56 |
-
# if not os.path.exists(final_model_path):
|
57 |
-
# with open(final_model_path, "wb") as f:
|
58 |
-
# http_get(model_url, f)
|
59 |
-
# os.chmod(final_model_path, 0o777)
|
60 |
-
# print("Files downloaded!")
|
61 |
-
|
62 |
model = Llama(model_path = "1.gguf", n_ctx = 3096, n_gpu_layers=-1, n_batch = 512, verbose=False)
|
63 |
-
#model = Llama(
|
64 |
-
# model_path="1.gguf",
|
65 |
-
# n_ctx=2000,
|
66 |
-
# n_parts=1,
|
67 |
-
#)
|
68 |
|
69 |
print("Model loaded!")
|
70 |
return model
|
71 |
|
72 |
|
73 |
-
#EMBEDDER = SentenceTransformer("sentence-transformers/paraphrase-multilingual-mpnet-base-v2")
|
74 |
-
#Alibaba-NLP/gte-multilingual-base
|
75 |
-
#Лидерборд по эмбеддингам
|
76 |
-
#intfloat/e5-mistral-7b-instruct-лучшая для русского языка
|
77 |
-
#deepvk/USER-bge-m3 - немного отстает по качеству, но в 10 раз меньше и быстрее
|
78 |
-
#BAAI/bge-multilingual-gemma2
|
79 |
-
#EMBEDDER = SentenceTransformer("intfloat/multilingual-e5-large-instruct")
|
80 |
EMBEDDER = SentenceTransformer("deepvk/USER-bge-m3")
|
81 |
MODEL = load_model()
|
82 |
|
@@ -208,9 +183,7 @@ with gr.Blocks(
|
|
208 |
) as demo:
|
209 |
db = gr.State(None)
|
210 |
conversation_id = gr.State(get_uuid)
|
211 |
-
#favicon = '<img src="https://cdn.midjourney.com/b88e5beb-6324-4820-8504-a1a37a9ba36d/0_1.png" width="48px" style="display: inline">'
|
212 |
gr.Markdown(
|
213 |
-
#f"""<h1><center>{favicon}Saiga 13B llama.cpp: retrieval QA</center></h1>
|
214 |
f"""<h1><center>Вопросно-ответная система по Вашим документам. Работает на CPU.\n
|
215 |
На демо-стенде реализован простейший алгоритм поиска информации.\n
|
216 |
При внедрении в IT-контуре компании, качество поиска выше в разы.\n
|
@@ -230,7 +203,7 @@ with gr.Blocks(
|
|
230 |
chunk_size = gr.Slider(
|
231 |
minimum=50,
|
232 |
maximum=2000,
|
233 |
-
value=
|
234 |
step=50,
|
235 |
interactive=True,
|
236 |
label="Размер фрагментов",
|
@@ -238,7 +211,7 @@ with gr.Blocks(
|
|
238 |
chunk_overlap = gr.Slider(
|
239 |
minimum=0,
|
240 |
maximum=500,
|
241 |
-
value=
|
242 |
step=10,
|
243 |
interactive=True,
|
244 |
label="Пересечение"
|
@@ -249,7 +222,7 @@ with gr.Blocks(
|
|
249 |
k_documents = gr.Slider(
|
250 |
minimum=1,
|
251 |
maximum=10,
|
252 |
-
value=
|
253 |
step=1,
|
254 |
interactive=True,
|
255 |
label="Кол-во фрагментов для контекста"
|
@@ -287,7 +260,7 @@ with gr.Blocks(
|
|
287 |
temp = gr.Slider(
|
288 |
minimum=0.0,
|
289 |
maximum=2.0,
|
290 |
-
value=0.
|
291 |
step=0.1,
|
292 |
interactive=True,
|
293 |
label="Temp"
|
|
|
25 |
import llama_cpp
|
26 |
from llama_cpp import Llama
|
27 |
|
28 |
+
SYSTEM_PROMPT = "Ты — русскоязычный автоматический ассистент. Тебя зовут Digital Human Chat. Ты разговариваешь с людьми и помогаешь им. Если ты не знаешь ответа, то скажи, что не знаешь, не придумывай ответ. Используй максимум три предложения и будь кратким."
|
|
|
|
|
29 |
|
30 |
LOADER_MAPPING = {
|
31 |
".csv": (CSVLoader, {}),
|
|
|
44 |
|
45 |
|
46 |
def load_model(
|
47 |
+
directory: str = "."
|
|
|
|
|
48 |
):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
model = Llama(model_path = "1.gguf", n_ctx = 3096, n_gpu_layers=-1, n_batch = 512, verbose=False)
|
|
|
|
|
|
|
|
|
|
|
50 |
|
51 |
print("Model loaded!")
|
52 |
return model
|
53 |
|
54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
EMBEDDER = SentenceTransformer("deepvk/USER-bge-m3")
|
56 |
MODEL = load_model()
|
57 |
|
|
|
183 |
) as demo:
|
184 |
db = gr.State(None)
|
185 |
conversation_id = gr.State(get_uuid)
|
|
|
186 |
gr.Markdown(
|
|
|
187 |
f"""<h1><center>Вопросно-ответная система по Вашим документам. Работает на CPU.\n
|
188 |
На демо-стенде реализован простейший алгоритм поиска информации.\n
|
189 |
При внедрении в IT-контуре компании, качество поиска выше в разы.\n
|
|
|
203 |
chunk_size = gr.Slider(
|
204 |
minimum=50,
|
205 |
maximum=2000,
|
206 |
+
value=256,
|
207 |
step=50,
|
208 |
interactive=True,
|
209 |
label="Размер фрагментов",
|
|
|
211 |
chunk_overlap = gr.Slider(
|
212 |
minimum=0,
|
213 |
maximum=500,
|
214 |
+
value=32,
|
215 |
step=10,
|
216 |
interactive=True,
|
217 |
label="Пересечение"
|
|
|
222 |
k_documents = gr.Slider(
|
223 |
minimum=1,
|
224 |
maximum=10,
|
225 |
+
value=4,
|
226 |
step=1,
|
227 |
interactive=True,
|
228 |
label="Кол-во фрагментов для контекста"
|
|
|
260 |
temp = gr.Slider(
|
261 |
minimum=0.0,
|
262 |
maximum=2.0,
|
263 |
+
value=0.01,
|
264 |
step=0.1,
|
265 |
interactive=True,
|
266 |
label="Temp"
|