Severian commited on
Commit
6910501
1 Parent(s): d22d4be

Update llm_handler.py

Browse files
Files changed (1) hide show
  1. llm_handler.py +19 -43
llm_handler.py CHANGED
@@ -2,15 +2,18 @@ import requests
2
  import json
3
  from openai import OpenAI
4
  from params import OPENAI_MODEL, OPENAI_API_KEY
5
- from llama_cpp import Llama
6
- from llama_cpp_agent import LlamaCppAgent
7
- from llama_cpp_agent import MessagesFormatterType
8
- from llama_cpp_agent.providers import LlamaCppPythonProvider
9
 
10
  # Add this at the top of the file
11
  local_model_base_url = "http://localhost:11434/v1"
12
  anything_llm_workspace = "<input-workspace-name-here>"
13
 
 
 
 
 
 
 
14
  def set_local_model_base_url(url):
15
  global local_model_base_url
16
  local_model_base_url = url
@@ -19,35 +22,22 @@ def set_anything_llm_workspace(workspace):
19
  global anything_llm_workspace
20
  anything_llm_workspace = workspace
21
 
22
- # Create an instance of the OpenAI class for the local model
23
- client = OpenAI(api_key="local-model", base_url=local_model_base_url)
24
-
25
- # Initialize LlamaCpp model and agent
26
- llama_model = Llama("Arcee-Spark-GGUF/Arcee-Spark-Q4_K_M.gguf", n_batch=1024, n_threads=24, n_gpu_layers=33, n_ctx=4098, verbose=False)
27
- provider = LlamaCppPythonProvider(llama_model)
28
- llama_agent = LlamaCppAgent(
29
- provider,
30
- system_prompt="You are a helpful assistant.",
31
- predefined_messages_formatter_type=MessagesFormatterType.MISTRAL,
32
- debug_output=True
33
- )
34
-
35
- # Configure provider settings
36
- settings = provider.get_provider_default_settings()
37
- settings.max_tokens = 2000
38
- settings.stream = True
39
-
40
  def send_to_chatgpt(msg_list):
41
  try:
42
- # Update the send_to_chatgpt function to use the dynamic base_url
43
- client = OpenAI(api_key="local-model", base_url=local_model_base_url)
44
  completion = client.chat.completions.create(
45
- model=OPENAI_MODEL,
 
46
  temperature=0.6,
47
- messages=msg_list
48
  )
49
- chatgpt_response = completion.choices[0].message.content
50
- chatgpt_usage = completion.usage
 
 
 
 
 
 
51
  return chatgpt_response, chatgpt_usage
52
  except Exception as e:
53
  print(f"Error in send_to_chatgpt: {str(e)}")
@@ -77,24 +67,10 @@ def send_to_anything_llm(msg_list):
77
  print(f"Error in send_to_anything_llm: {str(e)}")
78
  return f"Error: {str(e)}", None
79
 
80
- def send_to_llamacpp(msg_list):
81
- try:
82
- # Convert the message list to the format expected by LlamaCppAgent
83
- formatted_messages = [{"role": msg["role"], "content": msg["content"]} for msg in msg_list]
84
- response = llama_agent(formatted_messages, settings=settings)
85
- chatgpt_response = response.message.content
86
- chatgpt_usage = {"prompt_tokens": response.usage.prompt_tokens, "completion_tokens": response.usage.completion_tokens, "total_tokens": response.usage.total_tokens}
87
- return chatgpt_response, chatgpt_usage
88
- except Exception as e:
89
- print(f"Error in send_to_llamacpp: {str(e)}")
90
- return f"Error: {str(e)}", None
91
-
92
  def send_to_llm(provider, msg_list):
93
  if provider == "local-model":
94
  return send_to_chatgpt(msg_list)
95
  elif provider == "anything-llm":
96
  return send_to_anything_llm(msg_list)
97
- elif provider == "llamacpp":
98
- return send_to_llamacpp(msg_list)
99
  else:
100
- raise ValueError(f"Unknown provider: {provider}")
 
2
  import json
3
  from openai import OpenAI
4
  from params import OPENAI_MODEL, OPENAI_API_KEY
5
+ import llamanet
 
 
 
6
 
7
  # Add this at the top of the file
8
  local_model_base_url = "http://localhost:11434/v1"
9
  anything_llm_workspace = "<input-workspace-name-here>"
10
 
11
+ # Initialize llamanet
12
+ llamanet.run()
13
+
14
+ # Create an instance of the OpenAI class
15
+ client = OpenAI()
16
+
17
  def set_local_model_base_url(url):
18
  global local_model_base_url
19
  local_model_base_url = url
 
22
  global anything_llm_workspace
23
  anything_llm_workspace = workspace
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  def send_to_chatgpt(msg_list):
26
  try:
 
 
27
  completion = client.chat.completions.create(
28
+ model='https://huggingface.co/arcee-ai/Arcee-Spark-GGUF/blob/main/Arcee-Spark-IQ4_XS.gguf', # This will use the llamanet model
29
+ messages=msg_list,
30
  temperature=0.6,
31
+ stream=True
32
  )
33
+
34
+ chatgpt_response = ""
35
+ for chunk in completion:
36
+ if chunk.choices[0].delta.content is not None:
37
+ chatgpt_response += chunk.choices[0].delta.content
38
+
39
+ # Note: Usage information might not be available with llamanet
40
+ chatgpt_usage = None
41
  return chatgpt_response, chatgpt_usage
42
  except Exception as e:
43
  print(f"Error in send_to_chatgpt: {str(e)}")
 
67
  print(f"Error in send_to_anything_llm: {str(e)}")
68
  return f"Error: {str(e)}", None
69
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  def send_to_llm(provider, msg_list):
71
  if provider == "local-model":
72
  return send_to_chatgpt(msg_list)
73
  elif provider == "anything-llm":
74
  return send_to_anything_llm(msg_list)
 
 
75
  else:
76
+ raise ValueError(f"Unknown provider: {provider}")