feat: refactoring of abstract graph

This commit is contained in:
Marco Vinciguerra 2024-06-04 19:41:11 +02:00
parent 58cd523bc5
commit fff89f431f
31 changed files with 146 additions and 29 deletions

View File

@ -1 +1 @@
OPENAI_APIKEY="your openai api key" DEEPSEEK_APIKEY="your api key"

View File

@ -30,6 +30,11 @@ graph_config = {
"model": "deepseek-chat", "model": "deepseek-chat",
"openai_api_key": deepseek_key, "openai_api_key": deepseek_key,
"openai_api_base": 'https://api.deepseek.com/v1', "openai_api_base": 'https://api.deepseek.com/v1',
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
} }

View File

@ -30,6 +30,11 @@ graph_config = {
"model": "deepseek-chat", "model": "deepseek-chat",
"openai_api_key": deepseek_key, "openai_api_key": deepseek_key,
"openai_api_base": 'https://api.deepseek.com/v1', "openai_api_base": 'https://api.deepseek.com/v1',
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
} }

View File

@ -20,6 +20,11 @@ graph_config = {
"model": "deepseek-chat", "model": "deepseek-chat",
"openai_api_key": deepseek_key, "openai_api_key": deepseek_key,
"openai_api_base": 'https://api.deepseek.com/v1', "openai_api_base": 'https://api.deepseek.com/v1',
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
} }

View File

@ -29,6 +29,11 @@ graph_config = {
"model": "deepseek-chat", "model": "deepseek-chat",
"openai_api_key": deepseek_key, "openai_api_key": deepseek_key,
"openai_api_base": 'https://api.deepseek.com/v1', "openai_api_base": 'https://api.deepseek.com/v1',
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
} }

View File

@ -15,6 +15,11 @@ graph_config = {
"model": "deepseek-chat", "model": "deepseek-chat",
"openai_api_key": deepseek_key, "openai_api_key": deepseek_key,
"openai_api_base": 'https://api.deepseek.com/v1', "openai_api_base": 'https://api.deepseek.com/v1',
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
} }

View File

@ -20,6 +20,11 @@ graph_config = {
"model": "deepseek-chat", "model": "deepseek-chat",
"openai_api_key": deepseek_key, "openai_api_key": deepseek_key,
"openai_api_base": 'https://api.deepseek.com/v1', "openai_api_base": 'https://api.deepseek.com/v1',
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
} }

View File

@ -15,6 +15,11 @@ graph_config = {
"model": "deepseek-chat", "model": "deepseek-chat",
"openai_api_key": deepseek_key, "openai_api_key": deepseek_key,
"openai_api_base": 'https://api.deepseek.com/v1', "openai_api_base": 'https://api.deepseek.com/v1',
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
} }

View File

@ -31,6 +31,11 @@ graph_config = {
"model": "deepseek-chat", "model": "deepseek-chat",
"openai_api_key": deepseek_key, "openai_api_key": deepseek_key,
"openai_api_base": 'https://api.deepseek.com/v1', "openai_api_base": 'https://api.deepseek.com/v1',
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
} }

View File

@ -20,6 +20,11 @@ graph_config = {
"model": "deepseek-chat", "model": "deepseek-chat",
"openai_api_key": deepseek_key, "openai_api_key": deepseek_key,
"openai_api_base": 'https://api.deepseek.com/v1', "openai_api_base": 'https://api.deepseek.com/v1',
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"library": "beautifulsoup" "library": "beautifulsoup"
} }

View File

@ -19,6 +19,11 @@ graph_config = {
"model": "deepseek-chat", "model": "deepseek-chat",
"openai_api_key": deepseek_key, "openai_api_key": deepseek_key,
"openai_api_base": 'https://api.deepseek.com/v1', "openai_api_base": 'https://api.deepseek.com/v1',
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"max_results": 2, "max_results": 2,
"verbose": True, "verbose": True,

View File

@ -21,6 +21,11 @@ graph_config = {
"model": "deepseek-chat", "model": "deepseek-chat",
"openai_api_key": deepseek_key, "openai_api_key": deepseek_key,
"openai_api_base": 'https://api.deepseek.com/v1', "openai_api_base": 'https://api.deepseek.com/v1',
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
} }

View File

@ -41,6 +41,11 @@ graph_config = {
"model": "deepseek-chat", "model": "deepseek-chat",
"openai_api_key": deepseek_key, "openai_api_key": deepseek_key,
"openai_api_base": 'https://api.deepseek.com/v1', "openai_api_base": 'https://api.deepseek.com/v1',
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
} }

View File

@ -31,6 +31,11 @@ graph_config = {
"model": "deepseek-chat", "model": "deepseek-chat",
"openai_api_key": deepseek_key, "openai_api_key": deepseek_key,
"openai_api_base": 'https://api.deepseek.com/v1', "openai_api_base": 'https://api.deepseek.com/v1',
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
} }

View File

@ -30,6 +30,11 @@ graph_config = {
"model": "deepseek-chat", "model": "deepseek-chat",
"openai_api_key": deepseek_key, "openai_api_key": deepseek_key,
"openai_api_base": 'https://api.deepseek.com/v1', "openai_api_base": 'https://api.deepseek.com/v1',
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
} }

View File

@ -30,6 +30,11 @@ graph_config = {
"model": "groq/gemma-7b-it", "model": "groq/gemma-7b-it",
"api_key": groq_key, "api_key": groq_key,
"temperature": 0 "temperature": 0
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"headless": False "headless": False
} }

View File

@ -31,6 +31,11 @@ graph_config = {
"api_key": groq_key, "api_key": groq_key,
"temperature": 0 "temperature": 0
}, },
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
},
} }
# ************************************************ # ************************************************
# Create the CSVScraperGraph instance and run it # Create the CSVScraperGraph instance and run it

View File

@ -19,6 +19,11 @@ graph_config = {
"model": "groq/gemma-7b-it", "model": "groq/gemma-7b-it",
"api_key": groq_key, "api_key": groq_key,
"temperature": 0 "temperature": 0
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
"headless": False "headless": False

View File

@ -30,6 +30,11 @@ graph_config = {
"model": "groq/gemma-7b-it", "model": "groq/gemma-7b-it",
"api_key": groq_key, "api_key": groq_key,
"temperature": 0 "temperature": 0
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
"headless": False "headless": False

View File

@ -15,6 +15,11 @@ graph_config = {
"model": "groq/gemma-7b-it", "model": "groq/gemma-7b-it",
"api_key": groq_key, "api_key": groq_key,
"temperature": 0 "temperature": 0
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"library": "beautifulsoup" "library": "beautifulsoup"
} }

View File

@ -18,6 +18,11 @@ graph_config = {
"model": "groq/gemma-7b-it", "model": "groq/gemma-7b-it",
"api_key": groq_key, "api_key": groq_key,
"temperature": 0 "temperature": 0
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
} }

View File

@ -14,6 +14,11 @@ graph_config = {
"model": "groq/gemma-7b-it", "model": "groq/gemma-7b-it",
"api_key": groq_key, "api_key": groq_key,
"temperature": 0 "temperature": 0
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"library": "beautifulsoup" "library": "beautifulsoup"
} }

View File

@ -32,6 +32,11 @@ graph_config = {
"model": "groq/gemma-7b-it", "model": "groq/gemma-7b-it",
"api_key": groq_key, "api_key": groq_key,
"temperature": 0 "temperature": 0
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
"headless": False "headless": False

View File

@ -19,6 +19,11 @@ graph_config = {
"model": "groq/gemma-7b-it", "model": "groq/gemma-7b-it",
"api_key": groq_key, "api_key": groq_key,
"temperature": 0 "temperature": 0
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"library": "beautifulsoup" "library": "beautifulsoup"
} }

View File

@ -21,6 +21,11 @@ graph_config = {
"model": "groq/gemma-7b-it", "model": "groq/gemma-7b-it",
"api_key": groq_key, "api_key": groq_key,
"temperature": 0 "temperature": 0
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"headless": False "headless": False
} }

View File

@ -22,10 +22,10 @@ graph_config = {
"api_key": groq_key, "api_key": groq_key,
"temperature": 0 "temperature": 0
}, },
"embeddings": { "embeddings": {
"model": "ollama/nomic-embed-text", "model": "ollama/nomic-embed-text",
"temperature": 0, "temperature": 0,
"base_url": "http://localhost:11434", # set ollama URL arbitrarily # "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"headless": False "headless": False
} }

View File

@ -19,6 +19,11 @@ graph_config = {
"model": "groq/gemma-7b-it", "model": "groq/gemma-7b-it",
"api_key": groq_key, "api_key": groq_key,
"temperature": 0 "temperature": 0
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
"headless": False "headless": False

View File

@ -41,6 +41,11 @@ graph_config = {
"model": "groq/gemma-7b-it", "model": "groq/gemma-7b-it",
"api_key": groq_key, "api_key": groq_key,
"temperature": 0 "temperature": 0
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"headless": False "headless": False
} }

View File

@ -30,6 +30,11 @@ graph_config = {
"model": "groq/gemma-7b-it", "model": "groq/gemma-7b-it",
"api_key": groq_key, "api_key": groq_key,
"temperature": 0 "temperature": 0
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"headless": False "headless": False
} }

View File

@ -30,6 +30,11 @@ graph_config = {
"model": "groq/gemma-7b-it", "model": "groq/gemma-7b-it",
"api_key": groq_key, "api_key": groq_key,
"temperature": 0 "temperature": 0
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
# "base_url": "http://localhost:11434", # set ollama URL arbitrarily
}, },
"verbose": True, "verbose": True,
"headless": False "headless": False

View File

@ -69,8 +69,7 @@ class AbstractGraph(ABC):
self.config = config self.config = config
self.schema = schema self.schema = schema
self.llm_model = self._create_llm(config["llm"], chat=True) self.llm_model = self._create_llm(config["llm"], chat=True)
self.embedder_model = self._create_default_embedder(llm_config=config["llm"] self.embedder_model = self._create_default_embedder(llm_config=config["llm"] ) if "embeddings" not in config else self._create_embedder(
) if "embeddings" not in config else self._create_embedder(
config["embeddings"]) config["embeddings"])
self.verbose = False if config is None else config.get( self.verbose = False if config is None else config.get(
"verbose", False) "verbose", False)
@ -102,6 +101,7 @@ class AbstractGraph(ABC):
"llm_model": self.llm_model, "llm_model": self.llm_model,
"embedder_model": self.embedder_model "embedder_model": self.embedder_model
} }
self.set_common_params(common_params, overwrite=False) self.set_common_params(common_params, overwrite=False)
# set burr config # set burr config
@ -125,27 +125,6 @@ class AbstractGraph(ABC):
for node in self.graph.nodes: for node in self.graph.nodes:
node.update_config(params, overwrite) node.update_config(params, overwrite)
def _set_model_token(self, llm):
if "Azure" in str(type(llm)):
try:
self.model_token = models_tokens["azure"][llm.model_name]
except KeyError:
raise KeyError("Model not supported")
elif "HuggingFaceEndpoint" in str(type(llm)):
if "mistral" in llm.repo_id:
try:
self.model_token = models_tokens["mistral"][llm.repo_id]
except KeyError:
raise KeyError("Model not supported")
elif "Google" in str(type(llm)):
try:
if "gemini" in llm.model:
self.model_token = models_tokens["gemini"][llm.model]
except KeyError:
raise KeyError("Model not supported")
def _create_llm(self, llm_config: dict, chat=False) -> object: def _create_llm(self, llm_config: dict, chat=False) -> object:
""" """
Create a large language model instance based on the configuration provided. Create a large language model instance based on the configuration provided.
@ -165,8 +144,6 @@ class AbstractGraph(ABC):
# If model instance is passed directly instead of the model details # If model instance is passed directly instead of the model details
if "model_instance" in llm_params: if "model_instance" in llm_params:
if chat:
self._set_model_token(llm_params["model_instance"])
return llm_params["model_instance"] return llm_params["model_instance"]
# Instantiate the language model based on the model name # Instantiate the language model based on the model name