LLM Providers #52
@@ -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
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|||||||
12
configs.yaml
12
configs.yaml
@@ -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
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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.
|
||||||
@@ -74,6 +77,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
|
||||||
@@ -85,6 +92,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:
|
||||||
|
|||||||
Reference in New Issue
Block a user