Aggiunti Providers

This commit is contained in:
Nunzi99
2025-10-26 12:33:38 +01:00
committed by Berack96
parent d24459b9a7
commit ccfd4e6f1e
4 changed files with 33 additions and 2 deletions

View File

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

View File

@@ -19,6 +19,18 @@ models:
label: Gemini
# - name: gemini-2.0-pro # TODO Non funziona, ha un nome diverso
# 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:
- name: gpt-oss:latest
label: Ollama GPT

View File

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

View File

@@ -10,6 +10,10 @@ from agno.tools import Toolkit
from agno.models.base import Model
from agno.models.google import Gemini
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__)
@@ -19,7 +23,6 @@ class AppModel(BaseModel):
name: str = "gemini-2.0-flash"
label: str = "Gemini"
model: type[Model] | None = None
def get_model(self, instructions: str) -> Model:
"""
Restituisce un'istanza del modello specificato.
@@ -74,6 +77,10 @@ class Strategy(BaseModel):
class ModelsConfig(BaseModel):
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] = []
@property
@@ -85,6 +92,11 @@ class ModelsConfig(BaseModel):
Validate the configured models for each provider.
"""
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()
def __validate_online_models(self, models: list[AppModel], clazz: type[Model], key: str | None = None) -> None: