is2win commited on
Commit
4559178
·
1 Parent(s): 015d070

Newfeatures

Browse files
Files changed (2) hide show
  1. app.py +69 -0
  2. requirements.txt +3 -1
app.py CHANGED
@@ -1,4 +1,73 @@
1
  import gradio as gr
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  def greet(name):
4
  return "Hello " + name + "!!"
 
1
  import gradio as gr
2
+ from langchain.prompts import PromptTemplate
3
+ from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer
4
+ from langchain.llms import HuggingFacePipeline
5
+ from langchain_community.llms import LlamaCpp
6
+ from langchain_core.callbacks import CallbackManager, StreamingStdOutCallbackHandler
7
+ from langchain_core.prompts import PromptTemplate
8
+ import os
9
+ from huggingface_hub import hf_hub_download
10
+
11
+ # Указываю имя репозитория и название скачиваемой модели
12
+ # model_name = "second-state/Mistral-Nemo-Instruct-2407-GGUF"
13
+ model_name = "lmstudio-community/Meta-Llama-3.1-8B-Instruct-GGUF"
14
+ model_file = "Meta-Llama-3.1-8B-Instruct-Q8_0.gguf"
15
+
16
+
17
+ # Загрузка с Hugging Face Hub
18
+ model_path = hf_hub_download(
19
+ model_name,
20
+ filename=model_file,
21
+ local_dir='models/', # Загрузку сделаем в папку "models" - опционально
22
+ token="token" #тут указываем ваш токен доступа с huggingface (Setting -> Access Toekns -> New token -> Generate Token)
23
+ )
24
+
25
+ print("My model path:", model_path)
26
+ # Путь до модели
27
+ # model_path = "/kaggle/working/models/Meta-Llama-3.1-8B-Instruct-Q8_0.gguf"
28
+
29
+ # Инициализирую модель через LlamaCpp
30
+ llm = LlamaCpp(
31
+ model_path=model_path,
32
+ temperature=0.5,
33
+ max_tokens=4000,
34
+ n_ctx=4000,
35
+ n_gpu_layers=-1,
36
+ )
37
+
38
+ prompt_template = """
39
+ <|start_header_id|>system<|end_header_id|>
40
+ Вы личный ассистент по моде.
41
+ ЗАПРЕЩАЮ ВЫДУМЫВАТЬ и вредить людям
42
+ <|eot_id|>
43
+ <|start_header_id|>контекст<|end_header_id|>
44
+ {context_info}
45
+ <|eot_id|>
46
+ <|start_header_id|>user<|end_header_id|>
47
+ Используй максимально emoji
48
+ Ответь на вопросы строго на основе предоставленного Контекста.
49
+ Если информация в контексте отсутствует, напиши сообщение "Ответа нет".
50
+ Вопрос: {question_info}
51
+ <|eom_id|>
52
+ <|start_header_id|>assistant<|end_header_id|>
53
+
54
+ """
55
+ prompt = PromptTemplate.from_template(prompt_template)
56
+ llm_chain = prompt | llm
57
+
58
+ context_info = """
59
+ Боб с боковым пробором Очень стильно выглядит стрижка мужской боб. Особенности прически: объем на макушке и в теменной зоне; боковые пряди спадают на виски; длинная челка, которую зачесывают на лоб или укладывают с пробором. В 2024 году стильную стрижку рекомендуют сочетать с боковым пробором. Такую прическу могут носить мужчины в любом возрасте. Боковой пробор невероятно популярен у современных бизнесменов. Подобный вариант укладки выглядит строго и презентабельно, подходит мужчинам, которые желают всегда выглядеть безупречно и собранно.
60
+ Используем только средство для укладки - Barbara 100
61
+ """
62
+
63
+ question_info= """Боб это?"""
64
+
65
+
66
+
67
+ output = llm_chain.invoke({"context_info": context_info, 'question_info':question_info}, config={"max_tokens": 5000})
68
+ # output = llm.invoke(prompt_template)
69
+ print(output)
70
+
71
 
72
  def greet(name):
73
  return "Hello " + name + "!!"
requirements.txt CHANGED
@@ -1,3 +1,5 @@
1
  gradio
2
  transformers
3
- tensorflow
 
 
 
1
  gradio
2
  transformers
3
+ tensorflow
4
+ langchain
5
+ llama-cpp-python