LLM Providers #52

Merged
Nunzi99 merged 8 commits from 29-aggiungere-llm-providers into main 2025-10-27 21:07:30 +01:00
3 changed files with 9 additions and 8 deletions
Showing only changes of commit 123ef05ac4 - Show all commits

View File

@@ -25,9 +25,6 @@ models:
deepseek: deepseek:
- name: deepseek-chat - name: deepseek-chat
label: DeepSeek label: DeepSeek
xai:
- name: grok-3
label: xAI
mistral: mistral:
- name: mistral-large-latest - name: mistral-large-latest
label: Mistral label: Mistral

View File

@@ -10,6 +10,7 @@ requires-python = "==3.12.*"
# Per ogni roba ho fatto un commento per evitare di dimenticarmi cosa fa chi. # Per ogni roba ho fatto un commento per evitare di dimenticarmi cosa fa chi.
# Inoltre ho messo una emoji per indicare se è raccomandato o meno. # Inoltre ho messo una emoji per indicare se è raccomandato o meno.
dependencies = [ dependencies = [
"pytest", # Test "pytest", # Test
"dotenv", # Gestire variabili d'ambiente (generalmente API keys od opzioni) "dotenv", # Gestire variabili d'ambiente (generalmente API keys od opzioni)
"gradio", # UI web semplice con user_input e output "gradio", # UI web semplice con user_input e output
@@ -27,7 +28,8 @@ dependencies = [
"openai", "openai",
"mistralai", "mistralai",
"deepseek", "deepseek",
"xai",
# API di exchange di criptovalute # API di exchange di criptovalute
"coinbase-advanced-py", "coinbase-advanced-py",
@@ -45,6 +47,8 @@ dependencies = [
# Per telegram bot # Per telegram bot
"python-telegram-bot", # Interfaccia Telegram Bot "python-telegram-bot", # Interfaccia Telegram Bot
"markdown-pdf", # Per convertire markdown in pdf "markdown-pdf", # Per convertire markdown in pdf
] ]
[tool.pytest.ini_options] [tool.pytest.ini_options]

View File

@@ -13,7 +13,7 @@ from agno.models.ollama import Ollama
from agno.models.openai import OpenAIChat from agno.models.openai import OpenAIChat
from agno.models.mistral import MistralChat from agno.models.mistral import MistralChat
from agno.models.deepseek import DeepSeek from agno.models.deepseek import DeepSeek
from agno.models.xai import xAI # from agno.models.xai import xAI
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@@ -80,12 +80,12 @@ class ModelsConfig(BaseModel):
gpt: list[AppModel] = [AppModel(name="gpt-4o", label="OpenAIChat")] gpt: list[AppModel] = [AppModel(name="gpt-4o", label="OpenAIChat")]
mistral: list[AppModel] = [AppModel(name="mistral-large-latest", label="Mistral")] mistral: list[AppModel] = [AppModel(name="mistral-large-latest", label="Mistral")]
deepseek: list[AppModel] = [AppModel(name="deepseek-chat", label="DeepSeek")] deepseek: list[AppModel] = [AppModel(name="deepseek-chat", label="DeepSeek")]
xai: list[AppModel] = [AppModel(name="grok-3", label="xAI")] # xai: list[AppModel] = [AppModel(name="grok-3", label="xAI")]
ollama: list[AppModel] = [] ollama: list[AppModel] = []
@property @property
def all_models(self) -> list[AppModel]: def all_models(self) -> list[AppModel]:
return self.gemini + self.ollama + self.gpt + self.mistral + self.deepseek + self.xai return self.gemini + self.ollama + self.gpt + self.mistral + self.deepseek # + self.xai
def validate_models(self) -> None: def validate_models(self) -> None:
""" """
@@ -95,7 +95,7 @@ class ModelsConfig(BaseModel):
self.__validate_online_models(self.gpt, clazz=OpenAIChat, key="OPENAI_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.mistral, clazz=MistralChat, key="MISTRAL_API_KEY")
self.__validate_online_models(self.deepseek, clazz=DeepSeek, key="DEEPSEEK_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_online_models(self.xai, clazz=xAI, key="XAI_API_KEY")
self.__validate_ollama_models() self.__validate_ollama_models()