enricorampazzo commited on
Commit
54c5926
1 Parent(s): a823c3f

this should activate lfs file support

Browse files
Files changed (4) hide show
  1. .gitattributes +1 -0
  2. app.py +2 -37
  3. repository/intel_npu.py +30 -31
  4. requirements.txt +2 -1
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ deps/intel_npu_acceleration_library-1.3.0-cp310-cp310-win_amd64.whl filter=lfs diff=lfs merge=lfs -text
app.py CHANGED
@@ -16,43 +16,9 @@ user_msg = "Please describe what you need to do. To get the best results try to
16
  def check_for_missing_answers(parsed_questions: dict[int, str]):
17
  return [k for k in parsed_questions if parsed_questions[k] is None]
18
 
19
-
20
- def ask_again(missing_questions: list[int], user_questions: list[str], parsed_questions: dict[int, str]):
21
- for id_ in missing_questions:
22
- new_answer = input(f"I could not find the answer to this question: {user_questions[id_].lower()}")
23
- parsed_questions[id_] = new_answer
24
-
25
-
26
- def use_command_line():
27
- prompts_manager = PromptsManager()
28
- user_prompt = input(f"{user_msg}\n{'\n'.join(prompts_manager.questions)}\n\n>")
29
-
30
- repository = get_repository("intel_npu", Model("meta-llama/Meta-Llama-3-8B-Instruct",
31
- ModelRoles("system", "user", "assistant")),
32
- prompts_manager.system_prompt, Path("llm_log.txt"))
33
- repository.init()
34
- # repository.send_prompt(prompts_manager.ingest_user_answers(user_prompt))
35
- answer = repository.send_prompt(prompts_manager.verify_user_input_prompt(user_prompt))
36
- answers = LlmParser.parse_verification_prompt_answers(answer['content'])
37
-
38
- missing_answers = check_for_missing_answers(answers)
39
- while missing_answers:
40
- ask_again(missing_answers, prompts_manager.questions, answers)
41
- missing_answers = check_for_missing_answers(answers)
42
- answer = repository.send_prompt(prompts_manager.get_work_category(answers[1]))
43
- categories = LlmParser.parse_get_categories_answer(answer['content'])
44
-
45
- form_data = build_form_data_from_answers(answers, categories, f"{Path(__file__, "..", "signature.png")}")
46
- write_pdf_form(form_data, Path("signed_form1.pdf"))
47
-
48
-
49
- def update_answer (answers, missing_answer):
50
- answers[missing_answer] = getattr(st.session_state, f"ma_{missing_answer}")
51
-
52
-
53
  def use_streamlit():
54
  pm = PromptsManager()
55
- help_ = f"{user_msg}\n\n{'\n'.join(pm.questions)}"
56
  repository = get_repository("ondemand", Model("ondemand-gpt-3.5-turbo", ModelRoles("system", "user", "assistant")))
57
  if not st.session_state.get("step"):
58
  with st.form("Please describe your request"):
@@ -100,7 +66,7 @@ def use_streamlit():
100
 
101
  with st.status("categories found, creating PDF form"):
102
 
103
- form_filename = f"{st.session_state["session_id"]}_form.pdf"
104
  st.session_state["form_filename"] = form_filename
105
  form_data = build_form_data_from_answers(st.session_state["answers"], categories,
106
  st.session_state.get("signature"))
@@ -116,4 +82,3 @@ def use_streamlit():
116
 
117
 
118
  use_streamlit()
119
- #use_command_line()
 
16
  def check_for_missing_answers(parsed_questions: dict[int, str]):
17
  return [k for k in parsed_questions if parsed_questions[k] is None]
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  def use_streamlit():
20
  pm = PromptsManager()
21
+ help_ = f"{user_msg}\n\n" + '\n'.join(pm.questions)
22
  repository = get_repository("ondemand", Model("ondemand-gpt-3.5-turbo", ModelRoles("system", "user", "assistant")))
23
  if not st.session_state.get("step"):
24
  with st.form("Please describe your request"):
 
66
 
67
  with st.status("categories found, creating PDF form"):
68
 
69
+ form_filename = f"{st.session_state['session_id']}_form.pdf"
70
  st.session_state["form_filename"] = form_filename
71
  form_data = build_form_data_from_answers(st.session_state["answers"], categories,
72
  st.session_state.get("signature"))
 
82
 
83
 
84
  use_streamlit()
 
repository/intel_npu.py CHANGED
@@ -1,8 +1,8 @@
1
  import json
2
  from pathlib import Path
3
 
4
- # from intel_npu_acceleration_library import NPUModelForCausalLM, int4
5
- # from intel_npu_acceleration_library.compiler import CompilerConfig
6
  from transformers import AutoTokenizer
7
 
8
  from repository.repository_abc import Repository, Model
@@ -25,35 +25,34 @@ class IntelNpuRepository(Repository):
25
  return self.message_history
26
 
27
  def init(self):
28
- pass
29
- # compiler_conf = CompilerConfig(dtype=int4)
30
- # self.model = NPUModelForCausalLM.from_pretrained(self.model_info.name, use_cache=True, config=compiler_conf,
31
- # export=True, temperature=0).eval()
32
- # self.tokenizer = AutoTokenizer.from_pretrained(self.model_info.name)
33
- # self.terminators = [self.tokenizer.eos_token_id, self.tokenizer.convert_tokens_to_ids("<|eot_id|>")]
34
 
35
  def send_prompt(self, prompt: str, add_to_history: bool = True) -> dict[str, str]:
36
  pass
37
- # print("prompt to be sent: " + prompt)
38
- # user_prompt = {"role": self.model_info.roles.user_role, "content": prompt}
39
- # if self.log_to_file:
40
- # with open(self.log_to_file, "a+") as log_file:
41
- # log_file.write(json.dumps(user_prompt, indent=2))
42
- # log_file.write("\n")
43
- # self.get_message_history().append(user_prompt)
44
- # input_ids = (self.tokenizer.apply_chat_template(self.get_message_history(), add_generation_prompt=True,
45
- # return_tensors="pt")
46
- # .to(self.model.device))
47
- # outputs = self.model.generate(input_ids, eos_token_id=self.terminators, do_sample=True, max_new_tokens=2000, cache_position=None)
48
- # generated_token_array = outputs[0][len(input_ids[0]):]
49
- # generated_tokens = "".join(self.tokenizer.batch_decode(generated_token_array, skip_special_tokens=True))
50
- # answer = {"role": self.get_model_info().roles.ai_role, "content": generated_tokens}
51
- # if self.log_to_file:
52
- # with open(self.log_to_file, "a+") as log_file:
53
- # log_file.write(json.dumps(answer, indent=2))
54
- # log_file.write("\n")
55
- # if add_to_history:
56
- # self.message_history.append(answer)
57
- # else:
58
- # self.message_history.pop()
59
- # return answer
 
1
  import json
2
  from pathlib import Path
3
 
4
+ from intel_npu_acceleration_library import NPUModelForCausalLM, int4
5
+ from intel_npu_acceleration_library.compiler import CompilerConfig
6
  from transformers import AutoTokenizer
7
 
8
  from repository.repository_abc import Repository, Model
 
25
  return self.message_history
26
 
27
  def init(self):
28
+ compiler_conf = CompilerConfig(dtype=int4)
29
+ self.model = NPUModelForCausalLM.from_pretrained(self.model_info.name, use_cache=True, config=compiler_conf,
30
+ export=True, temperature=0).eval()
31
+ self.tokenizer = AutoTokenizer.from_pretrained(self.model_info.name)
32
+ self.terminators = [self.tokenizer.eos_token_id, self.tokenizer.convert_tokens_to_ids("<|eot_id|>")]
 
33
 
34
  def send_prompt(self, prompt: str, add_to_history: bool = True) -> dict[str, str]:
35
  pass
36
+ print("prompt to be sent: " + prompt)
37
+ user_prompt = {"role": self.model_info.roles.user_role, "content": prompt}
38
+ if self.log_to_file:
39
+ with open(self.log_to_file, "a+") as log_file:
40
+ log_file.write(json.dumps(user_prompt, indent=2))
41
+ log_file.write("\n")
42
+ self.get_message_history().append(user_prompt)
43
+ input_ids = (self.tokenizer.apply_chat_template(self.get_message_history(), add_generation_prompt=True,
44
+ return_tensors="pt")
45
+ .to(self.model.device))
46
+ outputs = self.model.generate(input_ids, eos_token_id=self.terminators, do_sample=True, max_new_tokens=2000, cache_position=None)
47
+ generated_token_array = outputs[0][len(input_ids[0]):]
48
+ generated_tokens = "".join(self.tokenizer.batch_decode(generated_token_array, skip_special_tokens=True))
49
+ answer = {"role": self.get_model_info().roles.ai_role, "content": generated_tokens}
50
+ if self.log_to_file:
51
+ with open(self.log_to_file, "a+") as log_file:
52
+ log_file.write(json.dumps(answer, indent=2))
53
+ log_file.write("\n")
54
+ if add_to_history:
55
+ self.message_history.append(answer)
56
+ else:
57
+ self.message_history.pop()
58
+ return answer
requirements.txt CHANGED
@@ -1,4 +1,5 @@
1
  PyPDFForm
2
  ollama
3
  transformers
4
- # intel-npu-acceleration-library
 
 
1
  PyPDFForm
2
  ollama
3
  transformers
4
+ streamlit
5
+ deps/intel_npu_acceleration_library-1.3.0-cp310-cp310-win_amd64.whl