pull/286/head
Kye 1 year ago
parent a4aab51655
commit b4e614ce51

@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
[tool.poetry]
name = "swarms"
version = "2.6.2"
version = "2.6.4"
description = "Swarms - Pytorch"
license = "MIT"
authors = ["Kye Gomez <kye@apac.ai>"]
@ -95,7 +95,7 @@ preview = true
[tool.poetry.scripts]
swarms = "swarms.cli._cli:run_file"
swarms = "swarms.cli.run_file:run_file"

@ -59,7 +59,7 @@ def run_file():
parser.add_argument(
"-z", "--logs", help="Get a deployment's logs"
)
# Parse the arguments
args = parser.parse_args()
@ -73,4 +73,3 @@ def run_file():
except Exception as e:
print(f"Error executing file '{args.file_name}': {e}")
sys.exit(1)

@ -1,11 +1,12 @@
import sys
import subprocess
def run_file():
"""Run a given file.
Usage: swarms run file_name.py
"""
if len(sys.argv) != 3 or sys.argv[1] != "run":
print("Usage: swarms run file_name.py")

@ -1,106 +0,0 @@
from abc import ABC, abstractmethod
from typing import Any, Dict, List
from chromadb.utils import embedding_functions
from httpx import RequestError
import chromadb
from swarms.memory.base_vector_db import VectorDatabase
class ChromaClient(VectorDatabase):
def __init__(
self,
collection_name: str = "chromadb-collection",
model_name: str = "BAAI/bge-small-en-v1.5",
):
try:
self.client = chromadb.Client()
self.collection_name = collection_name
self.model = None
self.collection = None
self._load_embedding_model(model_name)
self._setup_collection()
except RequestError as e:
print(f"Error setting up QdrantClient: {e}")
def _load_embedding_model(self, model_name: str):
"""
Loads the sentence embedding model specified by the model name.
Args:
model_name (str): The name of the model to load for generating embeddings.
"""
try:
self.model =embedding_functions.SentenceTransformerEmbeddingFunction(model_name=model_name)
except Exception as e:
print(f"Error loading embedding model: {e}")
def _setup_collection(self):
try:
self.collection = self.client.get_collection(name=self.collection_name, embedding_function=self.model)
except Exception as e:
print(f"{e}. Creating new collection: {self.collection}")
self.collection = self.client.create_collection(name=self.collection_name, embedding_function=self.model)
def add_vectors(self, docs: List[str]):
"""
Adds vector representations of documents to the Qdrant collection.
Args:
docs (List[dict]): A list of documents where each document is a dictionary with at least a 'page_content' key.
Returns:
OperationResponse or None: Returns the operation information if successful, otherwise None.
"""
points = []
ids = []
for i, doc in enumerate(docs):
try:
points.append(doc)
ids.append("id"+str(i))
except Exception as e:
print(f"Error processing document at index {i}: {e}")
try:
self.collection.add(
documents=points,
ids=ids
)
except Exception as e:
print(f"Error adding vectors: {e}")
return None
def search_vectors(self, query: str, limit: int = 2):
"""
Searches the collection for vectors similar to the query vector.
Args:
query (str): The query string to be converted into a vector and used for searching.
limit (int): The number of search results to return. Defaults to 3.
Returns:
SearchResult or None: Returns the search results if successful, otherwise None.
"""
try:
search_result = self.collection.query(
query_texts=query,
n_results=limit,
)
return search_result
except Exception as e:
print(f"Error searching vectors: {e}")
return None
def add(self, vector: Dict[str, Any], metadata: Dict[str, Any]) -> None:
pass
def query(self, vector: Dict[str, Any], num_results: int) -> Dict[str, Any]:
pass
def delete(self, vector_id: str) -> None:
pass
def update(self, vector_id: str, vector: Dict[str, Any], metadata: Dict[str, Any]) -> None:
pass
Loading…
Cancel
Save