Severian commited on
Commit
dd34b85
1 Parent(s): 986d083

Update llm_handler.py

Browse files
Files changed (1) hide show
  1. llm_handler.py +49 -2
llm_handler.py CHANGED
@@ -2,12 +2,45 @@ import requests
2
  import json
3
  from openai import OpenAI
4
  from params import OPENAI_MODEL, OPENAI_API_KEY
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
  # Create an instance of the OpenAI class for the local model
7
- client = OpenAI(api_key="local-model", base_url="http://localhost:11434/v1")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
  def send_to_chatgpt(msg_list):
10
  try:
 
 
11
  completion = client.chat.completions.create(
12
  model=OPENAI_MODEL,
13
  temperature=0.6,
@@ -21,7 +54,7 @@ def send_to_chatgpt(msg_list):
21
  return f"Error: {str(e)}", None
22
 
23
  def send_to_anything_llm(msg_list):
24
- url = 'http://localhost:3001/api/v1/workspace/mycoworks/chat'
25
  headers = {
26
  'accept': 'application/json',
27
  'Authorization': 'Bearer 0MACR41-7804XQB-MGC1GS0-FGSKB44',
@@ -44,10 +77,24 @@ def send_to_anything_llm(msg_list):
44
  print(f"Error in send_to_anything_llm: {str(e)}")
45
  return f"Error: {str(e)}", None
46
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  def send_to_llm(provider, msg_list):
48
  if provider == "local-model":
49
  return send_to_chatgpt(msg_list)
50
  elif provider == "anything-llm":
51
  return send_to_anything_llm(msg_list)
 
 
52
  else:
53
  raise ValueError(f"Unknown provider: {provider}")
 
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
17
+
18
+ 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("/Users/anima/.cache/lm-studio/models/arcee-ai/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,
 
54
  return f"Error: {str(e)}", None
55
 
56
  def send_to_anything_llm(msg_list):
57
+ url = f'http://localhost:3001/api/v1/workspace/{anything_llm_workspace}/chat'
58
  headers = {
59
  'accept': 'application/json',
60
  'Authorization': 'Bearer 0MACR41-7804XQB-MGC1GS0-FGSKB44',
 
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}")