Sheshank Joshi commited on
Commit
554ef85
·
1 Parent(s): 541377c

important changes

Browse files
__pycache__/agent.cpython-312.pyc ADDED
Binary file (16.4 kB). View file
 
__pycache__/basic_tools.cpython-312.pyc ADDED
Binary file (5.2 kB). View file
 
agent.py CHANGED
@@ -14,11 +14,20 @@ from basic_tools import *
14
  from typing import List
15
  import numpy as np
16
  from datetime import datetime, timedelta
 
 
17
  import heapq
18
 
19
- # build a retriever
 
 
20
  embeddings = HuggingFaceEmbeddings(
21
- model_name="sentence-transformers/all-mpnet-base-v2") # dim=768
 
 
 
 
 
22
  vector_store: FAISS = FAISS.from_texts(
23
  texts=[],
24
  embedding=embeddings)
@@ -208,7 +217,8 @@ class BasicAgent:
208
  llm = ChatOpenAI(
209
  base_url="http://localhost:11432/v1", # default LM Studio endpoint
210
  api_key="not-used", # required by interface but ignored #type: ignore
211
- model="mistral-nemo-instruct-2407",
 
212
  temperature=0.2
213
  )
214
  elif provider == "openai":
 
14
  from typing import List
15
  import numpy as np
16
  from datetime import datetime, timedelta
17
+ from sentence_transformers import SentenceTransformer
18
+ import torch
19
  import heapq
20
 
21
+ os.environ['HF_HOME'] = os.path.join(
22
+ os.path.expanduser('~'), '.cache', "huggingface")
23
+
24
  embeddings = HuggingFaceEmbeddings(
25
+ model_name="sentence-transformers/all-mpnet-base-v2",
26
+ # hugging_face_api_key=os.getenv("HF_TOKEN"),
27
+ model_kwargs={"device": "gpu" if torch.cuda.is_available() else "cpu",
28
+ "token": os.getenv("HF_TOKEN")},
29
+ show_progress=True,
30
+ )
31
  vector_store: FAISS = FAISS.from_texts(
32
  texts=[],
33
  embedding=embeddings)
 
217
  llm = ChatOpenAI(
218
  base_url="http://localhost:11432/v1", # default LM Studio endpoint
219
  api_key="not-used", # required by interface but ignored #type: ignore
220
+ # model="mistral-nemo-instruct-2407",
221
+ model="llama-3.1-8b-claude-3.7-sonnet-reasoning-distilled",
222
  temperature=0.2
223
  )
224
  elif provider == "openai":
app.py CHANGED
@@ -3,7 +3,7 @@ import gradio as gr
3
  import requests
4
  import inspect
5
  import pandas as pd
6
- from agent import BasicAgent, embeddings, vector_store,
7
  from dotenv import load_dotenv
8
  import os
9
 
 
3
  import requests
4
  import inspect
5
  import pandas as pd
6
+ from agent import BasicAgent, embeddings, vector_store
7
  from dotenv import load_dotenv
8
  import os
9
 
basic_tools.py CHANGED
@@ -13,7 +13,7 @@ from langchain_community.vectorstores import SupabaseVectorStore
13
  from langchain_core.messages import SystemMessage, HumanMessage
14
  from langchain_core.tools import tool
15
  from langchain.tools.retriever import create_retriever_tool
16
- from langchain.requests import RequestsWrapper
17
 
18
  # from supabase.client import Client, create_client
19
  # from langchain.tools.requests.toolkit import RequestsToolkit # Added for RequestsToolKit
@@ -140,8 +140,8 @@ def arxiv_search(query: str) -> str:
140
  # return response.text
141
 
142
  # Adding request toolkits
143
- requests_get = RequestsGetTool(requests_wrapper=requests_wrapper)
144
- requests_post = RequestsPostTool(requests_wrapper=requests_wrapper)
145
 
146
  # @tool
147
  # def requests_post(url: str, data: dict = {}, json: dict = {}, headers: dict = {}) -> str:
 
13
  from langchain_core.messages import SystemMessage, HumanMessage
14
  from langchain_core.tools import tool
15
  from langchain.tools.retriever import create_retriever_tool
16
+ from langchain_community.utilities import RequestsWrapper
17
 
18
  # from supabase.client import Client, create_client
19
  # from langchain.tools.requests.toolkit import RequestsToolkit # Added for RequestsToolKit
 
140
  # return response.text
141
 
142
  # Adding request toolkits
143
+ requests_get = RequestsGetTool(requests_wrapper=requests_wrapper, allow_dangerous_requests=True)
144
+ requests_post = RequestsPostTool(requests_wrapper=requests_wrapper, allow_dangerous_requests=True)
145
 
146
  # @tool
147
  # def requests_post(url: str, data: dict = {}, json: dict = {}, headers: dict = {}) -> str:
local_gpu_embeddings.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Using local sentence transformers with GPU
2
+ # from langchain_community.embeddings import HuggingFaceEmbeddings
3
+ import torch
4
+ from sentence_transformers import SentenceTransformer
5
+ from langchain.embeddings.base import Embeddings
6
+ from typing import List
7
+
8
+
9
+ class LocalHuggingFaceEmbeddings(Embeddings):
10
+ """Use local SentenceTransformer embeddings"""
11
+
12
+ def __init__(self, model_name: str = "sentence-transformers/all-mpnet-base-v2"):
13
+ """Initialize the embeddings"""
14
+
15
+ # Determine device
16
+ if torch.cuda.is_available():
17
+ self.device = "cuda"
18
+ print("Using CUDA for embeddings")
19
+ elif hasattr(torch.backends, "mps") and torch.backends.mps.is_available():
20
+ self.device = "mps"
21
+ print("Using MPS for embeddings")
22
+ else:
23
+ self.device = "cpu"
24
+ print("Using CPU for embeddings")
25
+
26
+ # Load the model
27
+ self.model = SentenceTransformer(model_name, device=self.device)
28
+ self.model_name = model_name
29
+
30
+ def embed_query(self, text: str) -> List[float]:
31
+ """Embed a query"""
32
+ # Creates embedding for a single query
33
+ embedding = self.model.encode(text, show_progress_bar=False)
34
+ return embedding.tolist() # Convert numpy array to list
35
+
36
+ def embed_documents(self, texts: List[str]) -> List[List[float]]:
37
+ """Embed documents"""
38
+ # Creates embeddings for a list of documents
39
+ embeddings = self.model.encode(texts, show_progress_bar=True)
40
+ return embeddings.tolist() # Convert numpy arrays to lists
41
+
42
+
43
+ if __name__ == "__main__":
44
+ # Create the local embeddings model
45
+ embeddings = LocalHuggingFaceEmbeddings(
46
+ model_name="sentence-transformers/all-mpnet-base-v2")
47
+
48
+ print("Is CUDA Available? ", torch.cuda.is_available())
49
+ print("Is MPS Available? ", torch.backends.mps.is_available())
50
+
51
+ # Test embeddings
52
+ sentence = "Hello, how are you?"
53
+ embed = embeddings.embed_query(sentence)
54
+ print(f"Embedding length: {len(embed)}")
55
+ print(f"First few values: {embed[:5]}")
56
+
57
+ # Test with multiple sentences
58
+ sentences = ["Hello, how are you?", "I am fine, thank you.",
59
+ "What is the weather like today?"]
60
+ embeds = embeddings.embed_documents(sentences)
61
+ print(f"Number of embeddings: {len(embeds)}")
62
+ print(f"Embedding dimensions: {len(embeds[0])}")