feat(llm): implemented groq model

This commit is contained in:
EURAC\marperini 2024-04-30 02:32:14 +02:00
parent 6e0c001946
commit dbbf10fc77
5 changed files with 67 additions and 2812 deletions

View File

@ -0,0 +1,49 @@
"""
Basic example of scraping pipeline using SmartScraper
"""
import os
from dotenv import load_dotenv
from scrapegraphai.graphs import SmartScraperGraph
from scrapegraphai.utils import prettify_exec_info
load_dotenv()
# ************************************************
# Define the configuration for the graph
# ************************************************
groq_key = os.getenv("GROQ_APIKEY")
graph_config = {
"llm": {
"model": "groq/gemma-7b-it",
"api_key": groq_key,
"temperature": 0
},
"embeddings": {
"model": "ollama/nomic-embed-text",
"temperature": 0,
"base_url": "http://localhost:11434", # set ollama URL arbitrarily
}
}
# ************************************************
# Create the SmartScraperGraph instance and run it
# ************************************************
smart_scraper_graph = SmartScraperGraph(
prompt="List me all the projects with their description and the author.",
# also accepts a string with the already downloaded HTML code
source="https://perinim.github.io/projects",
config=graph_config
)
result = smart_scraper_graph.run()
print(result)
# ************************************************
# Get graph execution info
# ************************************************
graph_exec_info = smart_scraper_graph.get_execution_info()
print(prettify_exec_info(graph_exec_info))

2807
poetry.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@ Module having abstract class for creating all the graphs
"""
from abc import ABC, abstractmethod
from typing import Optional
from ..models import OpenAI, Gemini, Ollama, AzureOpenAI, HuggingFace
from ..models import OpenAI, Gemini, Ollama, AzureOpenAI, HuggingFace, Groq
from ..helpers import models_tokens
@ -20,7 +20,7 @@ class AbstractGraph(ABC):
self.source = source
self.config = config
self.llm_model = self._create_llm(config["llm"])
self.embedder_model = None if "embeddings" not in config else self._create_llm(
self.embedder_model = self.llm_model if "embeddings" not in config else self._create_llm(
config["embeddings"])
self.graph = self._create_graph()
self.final_state = None
@ -84,6 +84,14 @@ class AbstractGraph(ABC):
except KeyError:
raise KeyError("Model not supported")
return HuggingFace(llm_params)
elif "groq" in llm_params["model"]:
llm_params["model"] = llm_params["model"].split("/")[-1]
try:
self.model_token = models_tokens["groq"][llm_params["model"]]
except KeyError:
raise KeyError("Model not supported")
return Groq(llm_params)
else:
raise ValueError(
"Model provided by the configuration not supported")

View File

@ -32,7 +32,11 @@ models_tokens = {
"mistral-openorca": 32000,
"stablelm-zephyr": 8192
},
"gemma": {
"gemma": 8192,
}
"groq": {
"llama3-8b-8192": 8192,
"llama3-70b-8192": 8192,
"mixtral-8x7b-32768": 32768,
"gemma-7b-it": 8192,
},
}

View File

@ -9,3 +9,4 @@ from .openai_tts import OpenAITextToSpeech
from .gemini import Gemini
from .ollama import Ollama
from .hugging_face import HuggingFace
from .groq import Groq