Aggiunti Providers

This commit is contained in:
Nunzi99
2025-10-26 12:33:38 +01:00
parent 22715237e1
commit dab6d37acd
4 changed files with 33 additions and 2 deletions

View File

@@ -5,7 +5,10 @@
# https://makersuite.google.com/app/apikey # https://makersuite.google.com/app/apikey
GOOGLE_API_KEY= GOOGLE_API_KEY=
OPENAI_API_KEY=
MISTRAL_API_KEY=
DEEPSEEK_API_KEY=
XAI_API_KEY=
############################################################################### ###############################################################################
# Configurazioni per gli agenti di mercato # Configurazioni per gli agenti di mercato
############################################################################### ###############################################################################

View File

@@ -19,6 +19,18 @@ models:
label: Gemini label: Gemini
# - name: gemini-2.0-pro # TODO Non funziona, ha un nome diverso # - name: gemini-2.0-pro # TODO Non funziona, ha un nome diverso
# label: Gemini Pro # label: Gemini Pro
gpt:
- name: gpt-4o
label: OpenAIChat
deepseek:
- name: deepseek-chat
label: DeepSeek
xai:
- name: grok-3
label: xAI
mistral:
- name: mistral-large-latest
label: Mistral
ollama: ollama:
- name: gpt-oss:latest - name: gpt-oss:latest
label: Ollama GPT label: Ollama GPT

View File

@@ -24,6 +24,10 @@ dependencies = [
# Modelli supportati e installati (aggiungere qui sotto quelli che si vogliono usare) # Modelli supportati e installati (aggiungere qui sotto quelli che si vogliono usare)
"google-genai", "google-genai",
"ollama", "ollama",
"openai",
"mistralai",
"deepseek",
"xai",
# API di exchange di criptovalute # API di exchange di criptovalute
"coinbase-advanced-py", "coinbase-advanced-py",

View File

@@ -10,6 +10,10 @@ from agno.tools import Toolkit
from agno.models.base import Model from agno.models.base import Model
from agno.models.google import Gemini from agno.models.google import Gemini
from agno.models.ollama import Ollama from agno.models.ollama import Ollama
from agno.models.openai import OpenAIChat
from agno.models.mistral import MistralChat
from agno.models.deepseek import DeepSeek
from agno.models.xai import xAI
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@@ -19,7 +23,6 @@ class AppModel(BaseModel):
name: str = "gemini-2.0-flash" name: str = "gemini-2.0-flash"
label: str = "Gemini" label: str = "Gemini"
model: type[Model] | None = None model: type[Model] | None = None
def get_model(self, instructions: str) -> Model: def get_model(self, instructions: str) -> Model:
""" """
Restituisce un'istanza del modello specificato. Restituisce un'istanza del modello specificato.
@@ -71,6 +74,10 @@ class Strategy(BaseModel):
class ModelsConfig(BaseModel): class ModelsConfig(BaseModel):
gemini: list[AppModel] = [AppModel()] gemini: list[AppModel] = [AppModel()]
gpt: list[AppModel] = [AppModel(name="gpt-4o", label="OpenAIChat")]
mistral: list[AppModel] = [AppModel(name="mistral-large-latest", label="Mistral")]
deepseek: list[AppModel] = [AppModel(name="deepseek-chat", label="DeepSeek")]
xai: list[AppModel] = [AppModel(name="grok-3", label="xAI")]
ollama: list[AppModel] = [] ollama: list[AppModel] = []
@property @property
@@ -82,6 +89,11 @@ class ModelsConfig(BaseModel):
Validate the configured models for each provider. Validate the configured models for each provider.
""" """
self.__validate_online_models(self.gemini, clazz=Gemini, key="GOOGLE_API_KEY") self.__validate_online_models(self.gemini, clazz=Gemini, key="GOOGLE_API_KEY")
self.__validate_online_models(self.gpt, clazz=OpenAIChat, key="OPENAI_API_KEY")
self.__validate_online_models(self.mistral, clazz=MistralChat, key="MISTRAL_API_KEY")
self.__validate_online_models(self.deepseek, clazz=DeepSeek, key="DEEPSEEK_API_KEY")
self.__validate_online_models(self.xai, clazz=xAI, key="XAI_API_KEY")
self.__validate_ollama_models() self.__validate_ollama_models()
def __validate_online_models(self, models: list[AppModel], clazz: type[Model], key: str | None = None) -> None: def __validate_online_models(self, models: list[AppModel], clazz: type[Model], key: str | None = None) -> None: