agno 2.3.3__tar.gz → 2.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agno-2.3.3 → agno-2.3.4}/PKG-INFO +1 -1
- {agno-2.3.3 → agno-2.3.4}/agno/db/postgres/async_postgres.py +5 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/aimlapi/aimlapi.py +18 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/anthropic/claude.py +3 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/cerebras/cerebras.py +7 -2
- {agno-2.3.3 → agno-2.3.4}/agno/models/cerebras/cerebras_openai.py +18 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/cohere/chat.py +10 -2
- {agno-2.3.3 → agno-2.3.4}/agno/models/cometapi/cometapi.py +19 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/deepinfra/deepinfra.py +19 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/fireworks/fireworks.py +19 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/google/gemini.py +5 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/groq/groq.py +5 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/huggingface/huggingface.py +5 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/ibm/watsonx.py +5 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/internlm/internlm.py +19 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/langdb/langdb.py +10 -0
- agno-2.3.4/agno/models/litellm/litellm_openai.py +43 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/meta/llama.py +5 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/meta/llama_openai.py +18 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/mistral/mistral.py +5 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/nvidia/nvidia.py +19 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/openai/chat.py +5 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/openai/responses.py +5 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/openrouter/openrouter.py +20 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/perplexity/perplexity.py +17 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/requesty/requesty.py +18 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/sambanova/sambanova.py +19 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/siliconflow/siliconflow.py +19 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/together/together.py +19 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/vercel/v0.py +19 -1
- {agno-2.3.3 → agno-2.3.4}/agno/models/xai/xai.py +18 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/schema.py +12 -0
- {agno-2.3.3 → agno-2.3.4}/agno/team/team.py +1 -0
- {agno-2.3.3 → agno-2.3.4}/agno.egg-info/PKG-INFO +1 -1
- {agno-2.3.3 → agno-2.3.4}/pyproject.toml +1 -1
- agno-2.3.3/agno/models/litellm/litellm_openai.py +0 -25
- {agno-2.3.3 → agno-2.3.4}/LICENSE +0 -0
- {agno-2.3.3 → agno-2.3.4}/README.md +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/agent/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/agent/agent.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/agent.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/api.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/evals.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/os.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/routes.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/schemas/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/schemas/agent.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/schemas/evals.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/schemas/os.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/schemas/response.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/schemas/team.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/schemas/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/schemas/workflows.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/settings.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/team.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/api/workflow.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/cloud/aws/base.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/cloud/aws/s3/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/cloud/aws/s3/api_client.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/cloud/aws/s3/bucket.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/cloud/aws/s3/object.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/compression/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/compression/manager.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/culture/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/culture/manager.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/async_postgres/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/base.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/dynamo/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/dynamo/dynamo.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/dynamo/schemas.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/dynamo/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/firestore/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/firestore/firestore.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/firestore/schemas.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/firestore/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/gcs_json/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/gcs_json/gcs_json_db.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/gcs_json/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/in_memory/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/in_memory/in_memory_db.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/in_memory/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/json/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/json/json_db.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/json/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/migrations/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/migrations/manager.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/migrations/v1_to_v2.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/migrations/versions/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/migrations/versions/v2_3_0.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/mongo/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/mongo/async_mongo.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/mongo/mongo.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/mongo/schemas.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/mongo/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/mysql/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/mysql/mysql.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/mysql/schemas.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/mysql/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/postgres/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/postgres/postgres.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/postgres/schemas.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/postgres/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/redis/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/redis/redis.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/redis/schemas.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/redis/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/schemas/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/schemas/culture.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/schemas/evals.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/schemas/knowledge.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/schemas/memory.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/schemas/metrics.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/singlestore/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/singlestore/schemas.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/singlestore/singlestore.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/singlestore/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/sqlite/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/sqlite/async_sqlite.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/sqlite/schemas.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/sqlite/sqlite.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/sqlite/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/surrealdb/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/surrealdb/metrics.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/surrealdb/models.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/surrealdb/queries.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/surrealdb/surrealdb.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/surrealdb/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/db/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/debug.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/eval/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/eval/accuracy.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/eval/performance.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/eval/reliability.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/eval/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/exceptions.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/filters.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/guardrails/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/guardrails/base.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/guardrails/openai.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/guardrails/pii.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/guardrails/prompt_injection.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/integrations/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/integrations/discord/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/integrations/discord/client.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/chunking/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/chunking/agentic.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/chunking/document.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/chunking/fixed.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/chunking/markdown.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/chunking/recursive.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/chunking/row.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/chunking/semantic.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/chunking/strategy.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/content.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/document/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/document/base.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/aws_bedrock.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/azure_openai.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/base.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/cohere.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/fastembed.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/fireworks.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/google.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/huggingface.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/jina.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/langdb.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/mistral.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/nebius.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/ollama.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/openai.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/sentence_transformer.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/together.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/vllm.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/embedder/voyageai.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/knowledge.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/arxiv_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/base.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/csv_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/docx_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/field_labeled_csv_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/firecrawl_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/json_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/markdown_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/pdf_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/pptx_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/reader_factory.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/s3_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/tavily_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/text_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/web_search_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/website_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/wikipedia_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reader/youtube_reader.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/remote_content/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/remote_content/remote_content.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reranker/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reranker/base.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reranker/cohere.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reranker/infinity.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/reranker/sentence_transformer.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/types.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/knowledge/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/media.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/memory/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/memory/manager.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/memory/strategies/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/memory/strategies/base.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/memory/strategies/summarize.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/memory/strategies/types.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/aimlapi/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/anthropic/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/aws/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/aws/bedrock.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/aws/claude.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/azure/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/azure/ai_foundry.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/azure/openai_chat.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/base.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/cerebras/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/cohere/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/cometapi/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/dashscope/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/dashscope/dashscope.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/deepinfra/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/deepseek/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/deepseek/deepseek.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/defaults.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/fireworks/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/google/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/groq/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/huggingface/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/ibm/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/internlm/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/langdb/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/litellm/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/litellm/chat.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/llama_cpp/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/llama_cpp/llama_cpp.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/lmstudio/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/lmstudio/lmstudio.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/message.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/meta/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/metrics.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/mistral/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/nebius/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/nebius/nebius.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/nexus/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/nexus/nexus.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/nvidia/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/ollama/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/ollama/chat.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/openai/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/openai/like.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/openrouter/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/perplexity/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/portkey/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/portkey/portkey.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/requesty/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/response.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/sambanova/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/siliconflow/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/together/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/vercel/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/vertexai/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/vertexai/claude.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/vllm/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/vllm/vllm.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/models/xai/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/app.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/auth.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/config.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/a2a/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/a2a/a2a.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/a2a/router.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/a2a/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/agui/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/agui/agui.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/agui/router.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/agui/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/base.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/slack/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/slack/router.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/slack/security.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/slack/slack.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/whatsapp/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/whatsapp/router.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/whatsapp/security.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/interfaces/whatsapp/whatsapp.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/mcp.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/middleware/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/middleware/jwt.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/router.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/evals/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/evals/evals.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/evals/schemas.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/evals/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/health.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/home.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/knowledge/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/knowledge/knowledge.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/knowledge/schemas.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/memory/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/memory/memory.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/memory/schemas.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/metrics/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/metrics/metrics.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/metrics/schemas.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/session/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/routers/session/session.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/settings.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/os/utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/py.typed +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/reasoning/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/reasoning/anthropic.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/reasoning/azure_ai_foundry.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/reasoning/deepseek.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/reasoning/default.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/reasoning/gemini.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/reasoning/groq.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/reasoning/helpers.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/reasoning/ollama.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/reasoning/openai.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/reasoning/step.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/reasoning/vertexai.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/run/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/run/agent.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/run/base.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/run/cancel.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/run/messages.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/run/team.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/run/workflow.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/session/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/session/agent.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/session/summary.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/session/team.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/session/workflow.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/team/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/agentql.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/airflow.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/api.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/apify.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/arxiv.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/aws_lambda.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/aws_ses.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/baidusearch.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/bitbucket.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/brandfetch.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/bravesearch.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/brightdata.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/browserbase.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/calcom.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/calculator.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/cartesia.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/clickup.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/confluence.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/crawl4ai.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/csv_toolkit.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/dalle.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/daytona.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/decorator.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/desi_vocal.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/discord.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/docker.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/duckdb.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/duckduckgo.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/e2b.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/eleven_labs.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/email.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/evm.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/exa.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/fal.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/file.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/file_generation.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/financial_datasets.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/firecrawl.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/function.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/giphy.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/github.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/gmail.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/google_bigquery.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/google_drive.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/google_maps.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/googlecalendar.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/googlesheets.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/hackernews.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/jina.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/jira.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/knowledge.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/linear.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/linkup.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/local_file_system.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/lumalab.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/mcp/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/mcp/mcp.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/mcp/multi_mcp.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/mcp/params.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/mcp_toolbox.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/mem0.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/memori.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/memory.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/mlx_transcribe.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/models/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/models/azure_openai.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/models/gemini.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/models/groq.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/models/morph.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/models/nebius.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/models_labs.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/moviepy_video.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/nano_banana.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/neo4j.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/newspaper.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/newspaper4k.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/notion.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/openai.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/openbb.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/opencv.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/openweather.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/oxylabs.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/pandas.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/parallel.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/postgres.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/pubmed.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/python.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/reasoning.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/reddit.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/replicate.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/resend.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/scrapegraph.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/searxng.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/serpapi.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/serper.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/shell.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/slack.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/sleep.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/spider.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/sql.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/streamlit/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/streamlit/components.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/tavily.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/telegram.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/todoist.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/tool_registry.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/toolkit.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/trafilatura.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/trello.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/twilio.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/user_control_flow.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/valyu.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/visualization.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/webbrowser.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/webex.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/website.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/webtools.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/whatsapp.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/wikipedia.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/workflow.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/x.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/yfinance.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/youtube.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/zendesk.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/zep.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/tools/zoom.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/agent.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/audio.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/certs.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/code_execution.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/common.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/dttm.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/enum.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/env.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/events.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/format_str.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/functions.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/gemini.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/hooks.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/http.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/json_schema.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/knowledge.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/location.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/log.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/mcp.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/media.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/merge_dict.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/message.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/models/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/models/ai_foundry.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/models/claude.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/models/cohere.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/models/llama.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/models/mistral.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/models/openai_responses.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/models/schema_utils.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/models/watsonx.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/openai.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/pickle.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/pprint.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/print_response/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/print_response/agent.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/print_response/team.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/print_response/workflow.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/prompts.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/reasoning.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/response.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/response_iterator.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/safe_formatter.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/serialize.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/shell.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/streamlit.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/string.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/team.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/timer.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/tokens.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/tools.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/web.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/whatsapp.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/utils/yaml_io.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/base.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/cassandra/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/cassandra/cassandra.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/cassandra/extra_param_mixin.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/cassandra/index.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/chroma/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/chroma/chromadb.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/clickhouse/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/clickhouse/clickhousedb.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/clickhouse/index.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/couchbase/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/couchbase/couchbase.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/distance.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/lancedb/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/lancedb/lance_db.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/langchaindb/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/langchaindb/langchaindb.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/lightrag/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/lightrag/lightrag.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/llamaindex/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/llamaindex/llamaindexdb.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/milvus/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/milvus/milvus.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/mongodb/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/mongodb/mongodb.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/pgvector/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/pgvector/index.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/pgvector/pgvector.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/pineconedb/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/pineconedb/pineconedb.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/qdrant/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/qdrant/qdrant.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/redis/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/redis/redisdb.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/search.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/singlestore/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/singlestore/index.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/singlestore/singlestore.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/surrealdb/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/surrealdb/surrealdb.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/upstashdb/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/upstashdb/upstashdb.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/weaviate/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/weaviate/index.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/vectordb/weaviate/weaviate.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/workflow/__init__.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/workflow/agent.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/workflow/condition.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/workflow/loop.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/workflow/parallel.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/workflow/router.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/workflow/step.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/workflow/steps.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/workflow/types.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno/workflow/workflow.py +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno.egg-info/SOURCES.txt +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno.egg-info/dependency_links.txt +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno.egg-info/requires.txt +0 -0
- {agno-2.3.3 → agno-2.3.4}/agno.egg-info/top_level.txt +0 -0
- {agno-2.3.3 → agno-2.3.4}/setup.cfg +0 -0
|
@@ -821,7 +821,7 @@ class AsyncPostgresDb(AsyncBaseDb):
|
|
|
821
821
|
except Exception as e:
|
|
822
822
|
log_error(f"Error deleting user memory: {e}")
|
|
823
823
|
|
|
824
|
-
async def delete_user_memories(self, memory_ids: List[str]) -> None:
|
|
824
|
+
async def delete_user_memories(self, memory_ids: List[str], user_id: Optional[str] = None) -> None:
|
|
825
825
|
"""Delete user memories from the database.
|
|
826
826
|
|
|
827
827
|
Args:
|
|
@@ -835,6 +835,10 @@ class AsyncPostgresDb(AsyncBaseDb):
|
|
|
835
835
|
|
|
836
836
|
async with self.async_session_factory() as sess, sess.begin():
|
|
837
837
|
delete_stmt = table.delete().where(table.c.memory_id.in_(memory_ids))
|
|
838
|
+
|
|
839
|
+
if user_id is not None:
|
|
840
|
+
delete_stmt = delete_stmt.where(table.c.user_id == user_id)
|
|
841
|
+
|
|
838
842
|
result = await sess.execute(delete_stmt)
|
|
839
843
|
|
|
840
844
|
if result.rowcount == 0: # type: ignore
|
|
@@ -2,6 +2,7 @@ from dataclasses import dataclass, field
|
|
|
2
2
|
from os import getenv
|
|
3
3
|
from typing import Any, Dict, Optional
|
|
4
4
|
|
|
5
|
+
from agno.exceptions import ModelProviderError
|
|
5
6
|
from agno.models.message import Message
|
|
6
7
|
from agno.models.openai.like import OpenAILike
|
|
7
8
|
|
|
@@ -28,6 +29,23 @@ class AIMLAPI(OpenAILike):
|
|
|
28
29
|
base_url: str = "https://api.aimlapi.com/v1"
|
|
29
30
|
max_tokens: int = 4096
|
|
30
31
|
|
|
32
|
+
def _get_client_params(self) -> Dict[str, Any]:
|
|
33
|
+
"""
|
|
34
|
+
Returns client parameters for API requests, checking for AIMLAPI_API_KEY.
|
|
35
|
+
|
|
36
|
+
Returns:
|
|
37
|
+
Dict[str, Any]: A dictionary of client parameters for API requests.
|
|
38
|
+
"""
|
|
39
|
+
if not self.api_key:
|
|
40
|
+
self.api_key = getenv("AIMLAPI_API_KEY")
|
|
41
|
+
if not self.api_key:
|
|
42
|
+
raise ModelProviderError(
|
|
43
|
+
message="AIMLAPI_API_KEY not set. Please set the AIMLAPI_API_KEY environment variable.",
|
|
44
|
+
model_name=self.name,
|
|
45
|
+
model_id=self.id,
|
|
46
|
+
)
|
|
47
|
+
return super()._get_client_params()
|
|
48
|
+
|
|
31
49
|
def _format_message(self, message: Message) -> Dict[str, Any]:
|
|
32
50
|
"""
|
|
33
51
|
Minimal additional formatter that only replaces None with empty string.
|
|
@@ -154,7 +154,9 @@ class Claude(Model):
|
|
|
154
154
|
|
|
155
155
|
self.api_key = self.api_key or getenv("ANTHROPIC_API_KEY")
|
|
156
156
|
if not self.api_key:
|
|
157
|
-
|
|
157
|
+
raise ModelProviderError(
|
|
158
|
+
"ANTHROPIC_API_KEY not set. Please set the ANTHROPIC_API_KEY environment variable."
|
|
159
|
+
)
|
|
158
160
|
|
|
159
161
|
# Add API key to client parameters
|
|
160
162
|
client_params["api_key"] = self.api_key
|
|
@@ -7,13 +7,14 @@ from typing import Any, Dict, Iterator, List, Optional, Type, Union
|
|
|
7
7
|
import httpx
|
|
8
8
|
from pydantic import BaseModel
|
|
9
9
|
|
|
10
|
+
from agno.exceptions import ModelProviderError
|
|
10
11
|
from agno.models.base import Model
|
|
11
12
|
from agno.models.message import Message
|
|
12
13
|
from agno.models.metrics import Metrics
|
|
13
14
|
from agno.models.response import ModelResponse
|
|
14
15
|
from agno.run.agent import RunOutput
|
|
15
16
|
from agno.utils.http import get_default_async_client, get_default_sync_client
|
|
16
|
-
from agno.utils.log import log_debug,
|
|
17
|
+
from agno.utils.log import log_debug, log_warning
|
|
17
18
|
|
|
18
19
|
try:
|
|
19
20
|
from cerebras.cloud.sdk import AsyncCerebras as AsyncCerebrasClient
|
|
@@ -77,7 +78,11 @@ class Cerebras(Model):
|
|
|
77
78
|
if not self.api_key:
|
|
78
79
|
self.api_key = getenv("CEREBRAS_API_KEY")
|
|
79
80
|
if not self.api_key:
|
|
80
|
-
|
|
81
|
+
raise ModelProviderError(
|
|
82
|
+
message="CEREBRAS_API_KEY not set. Please set the CEREBRAS_API_KEY environment variable.",
|
|
83
|
+
model_name=self.name,
|
|
84
|
+
model_id=self.id,
|
|
85
|
+
)
|
|
81
86
|
|
|
82
87
|
# Define base client params
|
|
83
88
|
base_params = {
|
|
@@ -5,6 +5,7 @@ from typing import Any, Dict, List, Optional, Type, Union
|
|
|
5
5
|
|
|
6
6
|
from pydantic import BaseModel
|
|
7
7
|
|
|
8
|
+
from agno.exceptions import ModelProviderError
|
|
8
9
|
from agno.models.message import Message
|
|
9
10
|
from agno.models.openai.like import OpenAILike
|
|
10
11
|
from agno.utils.log import log_debug
|
|
@@ -20,6 +21,23 @@ class CerebrasOpenAI(OpenAILike):
|
|
|
20
21
|
base_url: str = "https://api.cerebras.ai/v1"
|
|
21
22
|
api_key: Optional[str] = field(default_factory=lambda: getenv("CEREBRAS_API_KEY", None))
|
|
22
23
|
|
|
24
|
+
def _get_client_params(self) -> Dict[str, Any]:
|
|
25
|
+
"""
|
|
26
|
+
Returns client parameters for API requests, checking for CEREBRAS_API_KEY.
|
|
27
|
+
|
|
28
|
+
Returns:
|
|
29
|
+
Dict[str, Any]: A dictionary of client parameters for API requests.
|
|
30
|
+
"""
|
|
31
|
+
if not self.api_key:
|
|
32
|
+
self.api_key = getenv("CEREBRAS_API_KEY")
|
|
33
|
+
if not self.api_key:
|
|
34
|
+
raise ModelProviderError(
|
|
35
|
+
message="CEREBRAS_API_KEY not set. Please set the CEREBRAS_API_KEY environment variable.",
|
|
36
|
+
model_name=self.name,
|
|
37
|
+
model_id=self.id,
|
|
38
|
+
)
|
|
39
|
+
return super()._get_client_params()
|
|
40
|
+
|
|
23
41
|
def get_request_params(
|
|
24
42
|
self,
|
|
25
43
|
response_format: Optional[Union[Dict, Type[BaseModel]]] = None,
|
|
@@ -65,7 +65,11 @@ class Cohere(Model):
|
|
|
65
65
|
|
|
66
66
|
self.api_key = self.api_key or getenv("CO_API_KEY")
|
|
67
67
|
if not self.api_key:
|
|
68
|
-
|
|
68
|
+
raise ModelProviderError(
|
|
69
|
+
message="CO_API_KEY not set. Please set the CO_API_KEY environment variable.",
|
|
70
|
+
model_name=self.name,
|
|
71
|
+
model_id=self.id,
|
|
72
|
+
)
|
|
69
73
|
|
|
70
74
|
_client_params["api_key"] = self.api_key
|
|
71
75
|
|
|
@@ -92,7 +96,11 @@ class Cohere(Model):
|
|
|
92
96
|
self.api_key = self.api_key or getenv("CO_API_KEY")
|
|
93
97
|
|
|
94
98
|
if not self.api_key:
|
|
95
|
-
|
|
99
|
+
raise ModelProviderError(
|
|
100
|
+
message="CO_API_KEY not set. Please set the CO_API_KEY environment variable.",
|
|
101
|
+
model_name=self.name,
|
|
102
|
+
model_id=self.id,
|
|
103
|
+
)
|
|
96
104
|
|
|
97
105
|
_client_params["api_key"] = self.api_key
|
|
98
106
|
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
from dataclasses import dataclass, field
|
|
2
2
|
from os import getenv
|
|
3
|
-
from typing import List, Optional
|
|
3
|
+
from typing import Any, Dict, List, Optional
|
|
4
4
|
|
|
5
5
|
import httpx
|
|
6
6
|
|
|
7
|
+
from agno.exceptions import ModelProviderError
|
|
7
8
|
from agno.models.openai.like import OpenAILike
|
|
8
9
|
from agno.utils.log import log_debug
|
|
9
10
|
|
|
@@ -26,6 +27,23 @@ class CometAPI(OpenAILike):
|
|
|
26
27
|
api_key: Optional[str] = field(default_factory=lambda: getenv("COMETAPI_KEY"))
|
|
27
28
|
base_url: str = "https://api.cometapi.com/v1"
|
|
28
29
|
|
|
30
|
+
def _get_client_params(self) -> Dict[str, Any]:
|
|
31
|
+
"""
|
|
32
|
+
Returns client parameters for API requests, checking for COMETAPI_KEY.
|
|
33
|
+
|
|
34
|
+
Returns:
|
|
35
|
+
Dict[str, Any]: A dictionary of client parameters for API requests.
|
|
36
|
+
"""
|
|
37
|
+
if not self.api_key:
|
|
38
|
+
self.api_key = getenv("COMETAPI_KEY")
|
|
39
|
+
if not self.api_key:
|
|
40
|
+
raise ModelProviderError(
|
|
41
|
+
message="COMETAPI_KEY not set. Please set the COMETAPI_KEY environment variable.",
|
|
42
|
+
model_name=self.name,
|
|
43
|
+
model_id=self.id,
|
|
44
|
+
)
|
|
45
|
+
return super()._get_client_params()
|
|
46
|
+
|
|
29
47
|
def get_available_models(self) -> List[str]:
|
|
30
48
|
"""
|
|
31
49
|
Fetch available chat models from CometAPI, filtering out non-chat models.
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from dataclasses import dataclass, field
|
|
2
2
|
from os import getenv
|
|
3
|
-
from typing import Optional
|
|
3
|
+
from typing import Any, Dict, Optional
|
|
4
4
|
|
|
5
|
+
from agno.exceptions import ModelProviderError
|
|
5
6
|
from agno.models.openai.like import OpenAILike
|
|
6
7
|
|
|
7
8
|
|
|
@@ -26,3 +27,20 @@ class DeepInfra(OpenAILike):
|
|
|
26
27
|
base_url: str = "https://api.deepinfra.com/v1/openai"
|
|
27
28
|
|
|
28
29
|
supports_native_structured_outputs: bool = False
|
|
30
|
+
|
|
31
|
+
def _get_client_params(self) -> Dict[str, Any]:
|
|
32
|
+
"""
|
|
33
|
+
Returns client parameters for API requests, checking for DEEPINFRA_API_KEY.
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
Dict[str, Any]: A dictionary of client parameters for API requests.
|
|
37
|
+
"""
|
|
38
|
+
if not self.api_key:
|
|
39
|
+
self.api_key = getenv("DEEPINFRA_API_KEY")
|
|
40
|
+
if not self.api_key:
|
|
41
|
+
raise ModelProviderError(
|
|
42
|
+
message="DEEPINFRA_API_KEY not set. Please set the DEEPINFRA_API_KEY environment variable.",
|
|
43
|
+
model_name=self.name,
|
|
44
|
+
model_id=self.id,
|
|
45
|
+
)
|
|
46
|
+
return super()._get_client_params()
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from dataclasses import dataclass, field
|
|
2
2
|
from os import getenv
|
|
3
|
-
from typing import Optional
|
|
3
|
+
from typing import Any, Dict, Optional
|
|
4
4
|
|
|
5
|
+
from agno.exceptions import ModelProviderError
|
|
5
6
|
from agno.models.openai import OpenAILike
|
|
6
7
|
|
|
7
8
|
|
|
@@ -24,3 +25,20 @@ class Fireworks(OpenAILike):
|
|
|
24
25
|
|
|
25
26
|
api_key: Optional[str] = field(default_factory=lambda: getenv("FIREWORKS_API_KEY"))
|
|
26
27
|
base_url: str = "https://api.fireworks.ai/inference/v1"
|
|
28
|
+
|
|
29
|
+
def _get_client_params(self) -> Dict[str, Any]:
|
|
30
|
+
"""
|
|
31
|
+
Returns client parameters for API requests, checking for FIREWORKS_API_KEY.
|
|
32
|
+
|
|
33
|
+
Returns:
|
|
34
|
+
Dict[str, Any]: A dictionary of client parameters for API requests.
|
|
35
|
+
"""
|
|
36
|
+
if not self.api_key:
|
|
37
|
+
self.api_key = getenv("FIREWORKS_API_KEY")
|
|
38
|
+
if not self.api_key:
|
|
39
|
+
raise ModelProviderError(
|
|
40
|
+
message="FIREWORKS_API_KEY not set. Please set the FIREWORKS_API_KEY environment variable.",
|
|
41
|
+
model_name=self.name,
|
|
42
|
+
model_id=self.id,
|
|
43
|
+
)
|
|
44
|
+
return super()._get_client_params()
|
|
@@ -141,7 +141,11 @@ class Gemini(Model):
|
|
|
141
141
|
if not vertexai:
|
|
142
142
|
self.api_key = self.api_key or getenv("GOOGLE_API_KEY")
|
|
143
143
|
if not self.api_key:
|
|
144
|
-
|
|
144
|
+
raise ModelProviderError(
|
|
145
|
+
message="GOOGLE_API_KEY not set. Please set the GOOGLE_API_KEY environment variable.",
|
|
146
|
+
model_name=self.name,
|
|
147
|
+
model_id=self.id,
|
|
148
|
+
)
|
|
145
149
|
client_params["api_key"] = self.api_key
|
|
146
150
|
else:
|
|
147
151
|
log_info("Using Vertex AI API")
|
|
@@ -74,7 +74,11 @@ class Groq(Model):
|
|
|
74
74
|
if not self.api_key:
|
|
75
75
|
self.api_key = getenv("GROQ_API_KEY")
|
|
76
76
|
if not self.api_key:
|
|
77
|
-
|
|
77
|
+
raise ModelProviderError(
|
|
78
|
+
message="GROQ_API_KEY not set. Please set the GROQ_API_KEY environment variable.",
|
|
79
|
+
model_name=self.name,
|
|
80
|
+
model_id=self.id,
|
|
81
|
+
)
|
|
78
82
|
|
|
79
83
|
# Define base client params
|
|
80
84
|
base_params = {
|
|
@@ -73,7 +73,11 @@ class HuggingFace(Model):
|
|
|
73
73
|
def get_client_params(self) -> Dict[str, Any]:
|
|
74
74
|
self.api_key = self.api_key or getenv("HF_TOKEN")
|
|
75
75
|
if not self.api_key:
|
|
76
|
-
|
|
76
|
+
raise ModelProviderError(
|
|
77
|
+
message="HF_TOKEN not set. Please set the HF_TOKEN environment variable.",
|
|
78
|
+
model_name=self.name,
|
|
79
|
+
model_id=self.id,
|
|
80
|
+
)
|
|
77
81
|
|
|
78
82
|
_client_params: Dict[str, Any] = {}
|
|
79
83
|
if self.api_key is not None:
|
|
@@ -59,7 +59,11 @@ class WatsonX(Model):
|
|
|
59
59
|
# Fetch API key and project ID from env if not already set
|
|
60
60
|
self.api_key = self.api_key or getenv("IBM_WATSONX_API_KEY")
|
|
61
61
|
if not self.api_key:
|
|
62
|
-
|
|
62
|
+
raise ModelProviderError(
|
|
63
|
+
message="IBM_WATSONX_API_KEY not set. Please set the IBM_WATSONX_API_KEY environment variable.",
|
|
64
|
+
model_name=self.name,
|
|
65
|
+
model_id=self.id,
|
|
66
|
+
)
|
|
63
67
|
|
|
64
68
|
self.project_id = self.project_id or getenv("IBM_WATSONX_PROJECT_ID")
|
|
65
69
|
if not self.project_id:
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from dataclasses import dataclass, field
|
|
2
2
|
from os import getenv
|
|
3
|
-
from typing import Optional
|
|
3
|
+
from typing import Any, Dict, Optional
|
|
4
4
|
|
|
5
|
+
from agno.exceptions import ModelProviderError
|
|
5
6
|
from agno.models.openai.like import OpenAILike
|
|
6
7
|
|
|
7
8
|
|
|
@@ -24,3 +25,20 @@ class InternLM(OpenAILike):
|
|
|
24
25
|
|
|
25
26
|
api_key: Optional[str] = field(default_factory=lambda: getenv("INTERNLM_API_KEY"))
|
|
26
27
|
base_url: Optional[str] = "https://internlm-chat.intern-ai.org.cn/puyu/api/v1/chat/completions"
|
|
28
|
+
|
|
29
|
+
def _get_client_params(self) -> Dict[str, Any]:
|
|
30
|
+
"""
|
|
31
|
+
Returns client parameters for API requests, checking for INTERNLM_API_KEY.
|
|
32
|
+
|
|
33
|
+
Returns:
|
|
34
|
+
Dict[str, Any]: A dictionary of client parameters for API requests.
|
|
35
|
+
"""
|
|
36
|
+
if not self.api_key:
|
|
37
|
+
self.api_key = getenv("INTERNLM_API_KEY")
|
|
38
|
+
if not self.api_key:
|
|
39
|
+
raise ModelProviderError(
|
|
40
|
+
message="INTERNLM_API_KEY not set. Please set the INTERNLM_API_KEY environment variable.",
|
|
41
|
+
model_name=self.name,
|
|
42
|
+
model_id=self.id,
|
|
43
|
+
)
|
|
44
|
+
return super()._get_client_params()
|
|
@@ -2,6 +2,7 @@ from dataclasses import dataclass, field
|
|
|
2
2
|
from os import getenv
|
|
3
3
|
from typing import Any, Dict, Optional
|
|
4
4
|
|
|
5
|
+
from agno.exceptions import ModelProviderError
|
|
5
6
|
from agno.models.openai.like import OpenAILike
|
|
6
7
|
|
|
7
8
|
|
|
@@ -32,6 +33,15 @@ class LangDB(OpenAILike):
|
|
|
32
33
|
default_headers: Optional[dict] = None
|
|
33
34
|
|
|
34
35
|
def _get_client_params(self) -> Dict[str, Any]:
|
|
36
|
+
if not self.api_key:
|
|
37
|
+
self.api_key = getenv("LANGDB_API_KEY")
|
|
38
|
+
if not self.api_key:
|
|
39
|
+
raise ModelProviderError(
|
|
40
|
+
message="LANGDB_API_KEY not set. Please set the LANGDB_API_KEY environment variable.",
|
|
41
|
+
model_name=self.name,
|
|
42
|
+
model_id=self.id,
|
|
43
|
+
)
|
|
44
|
+
|
|
35
45
|
if not self.project_id:
|
|
36
46
|
raise ValueError("LANGDB_PROJECT_ID not set in the environment")
|
|
37
47
|
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
from dataclasses import dataclass, field
|
|
2
|
+
from os import getenv
|
|
3
|
+
from typing import Any, Dict, Optional
|
|
4
|
+
|
|
5
|
+
from agno.exceptions import ModelProviderError
|
|
6
|
+
from agno.models.openai.like import OpenAILike
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class LiteLLMOpenAI(OpenAILike):
|
|
11
|
+
"""
|
|
12
|
+
A class for interacting with LiteLLM.
|
|
13
|
+
|
|
14
|
+
Attributes:
|
|
15
|
+
id (str): The id of the LiteLLM model. Default is "gpt-4o".
|
|
16
|
+
name (str): The name of this chat model instance. Default is "LiteLLM".
|
|
17
|
+
provider (str): The provider of the model. Default is "LiteLLM".
|
|
18
|
+
base_url (str): The base url to which the requests are sent.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
id: str = "gpt-4o"
|
|
22
|
+
name: str = "LiteLLM"
|
|
23
|
+
provider: str = "LiteLLM"
|
|
24
|
+
|
|
25
|
+
api_key: Optional[str] = field(default_factory=lambda: getenv("LITELLM_API_KEY"))
|
|
26
|
+
base_url: str = "http://0.0.0.0:4000"
|
|
27
|
+
|
|
28
|
+
def _get_client_params(self) -> Dict[str, Any]:
|
|
29
|
+
"""
|
|
30
|
+
Returns client parameters for API requests, checking for LITELLM_API_KEY.
|
|
31
|
+
|
|
32
|
+
Returns:
|
|
33
|
+
Dict[str, Any]: A dictionary of client parameters for API requests.
|
|
34
|
+
"""
|
|
35
|
+
if not self.api_key:
|
|
36
|
+
self.api_key = getenv("LITELLM_API_KEY")
|
|
37
|
+
if not self.api_key:
|
|
38
|
+
raise ModelProviderError(
|
|
39
|
+
message="LITELLM_API_KEY not set. Please set the LITELLM_API_KEY environment variable.",
|
|
40
|
+
model_name=self.name,
|
|
41
|
+
model_id=self.id,
|
|
42
|
+
)
|
|
43
|
+
return super()._get_client_params()
|
|
@@ -74,7 +74,11 @@ class Llama(Model):
|
|
|
74
74
|
if not self.api_key:
|
|
75
75
|
self.api_key = getenv("LLAMA_API_KEY")
|
|
76
76
|
if not self.api_key:
|
|
77
|
-
|
|
77
|
+
raise ModelProviderError(
|
|
78
|
+
message="LLAMA_API_KEY not set. Please set the LLAMA_API_KEY environment variable.",
|
|
79
|
+
model_name=self.name,
|
|
80
|
+
model_id=self.id,
|
|
81
|
+
)
|
|
78
82
|
|
|
79
83
|
# Define base client params
|
|
80
84
|
base_params = {
|
|
@@ -7,6 +7,7 @@ try:
|
|
|
7
7
|
except ImportError:
|
|
8
8
|
raise ImportError("`openai` not installed. Please install using `pip install openai`")
|
|
9
9
|
|
|
10
|
+
from agno.exceptions import ModelProviderError
|
|
10
11
|
from agno.models.meta.llama import Message
|
|
11
12
|
from agno.models.openai.like import OpenAILike
|
|
12
13
|
from agno.utils.models.llama import format_message
|
|
@@ -49,6 +50,23 @@ class LlamaOpenAI(OpenAILike):
|
|
|
49
50
|
# Cached async client
|
|
50
51
|
openai_async_client: Optional[AsyncOpenAIClient] = None
|
|
51
52
|
|
|
53
|
+
def _get_client_params(self) -> Dict[str, Any]:
|
|
54
|
+
"""
|
|
55
|
+
Returns client parameters for API requests, checking for LLAMA_API_KEY.
|
|
56
|
+
|
|
57
|
+
Returns:
|
|
58
|
+
Dict[str, Any]: A dictionary of client parameters for API requests.
|
|
59
|
+
"""
|
|
60
|
+
if not self.api_key:
|
|
61
|
+
self.api_key = getenv("LLAMA_API_KEY")
|
|
62
|
+
if not self.api_key:
|
|
63
|
+
raise ModelProviderError(
|
|
64
|
+
message="LLAMA_API_KEY not set. Please set the LLAMA_API_KEY environment variable.",
|
|
65
|
+
model_name=self.name,
|
|
66
|
+
model_id=self.id,
|
|
67
|
+
)
|
|
68
|
+
return super()._get_client_params()
|
|
69
|
+
|
|
52
70
|
def _format_message(self, message: Message) -> Dict[str, Any]:
|
|
53
71
|
"""
|
|
54
72
|
Format a message into the format expected by Llama API.
|
|
@@ -94,7 +94,11 @@ class MistralChat(Model):
|
|
|
94
94
|
|
|
95
95
|
self.api_key = self.api_key or getenv("MISTRAL_API_KEY")
|
|
96
96
|
if not self.api_key:
|
|
97
|
-
|
|
97
|
+
raise ModelProviderError(
|
|
98
|
+
message="MISTRAL_API_KEY not set. Please set the MISTRAL_API_KEY environment variable.",
|
|
99
|
+
model_name=self.name,
|
|
100
|
+
model_id=self.id,
|
|
101
|
+
)
|
|
98
102
|
|
|
99
103
|
client_params.update(
|
|
100
104
|
{
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from dataclasses import dataclass, field
|
|
2
2
|
from os import getenv
|
|
3
|
-
from typing import Optional
|
|
3
|
+
from typing import Any, Dict, Optional
|
|
4
4
|
|
|
5
|
+
from agno.exceptions import ModelProviderError
|
|
5
6
|
from agno.models.openai.like import OpenAILike
|
|
6
7
|
|
|
7
8
|
|
|
@@ -26,3 +27,20 @@ class Nvidia(OpenAILike):
|
|
|
26
27
|
base_url: str = "https://integrate.api.nvidia.com/v1"
|
|
27
28
|
|
|
28
29
|
supports_native_structured_outputs: bool = False
|
|
30
|
+
|
|
31
|
+
def _get_client_params(self) -> Dict[str, Any]:
|
|
32
|
+
"""
|
|
33
|
+
Returns client parameters for API requests, checking for NVIDIA_API_KEY.
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
Dict[str, Any]: A dictionary of client parameters for API requests.
|
|
37
|
+
"""
|
|
38
|
+
if not self.api_key:
|
|
39
|
+
self.api_key = getenv("NVIDIA_API_KEY")
|
|
40
|
+
if not self.api_key:
|
|
41
|
+
raise ModelProviderError(
|
|
42
|
+
message="NVIDIA_API_KEY not set. Please set the NVIDIA_API_KEY environment variable.",
|
|
43
|
+
model_name=self.name,
|
|
44
|
+
model_id=self.id,
|
|
45
|
+
)
|
|
46
|
+
return super()._get_client_params()
|
|
@@ -102,7 +102,11 @@ class OpenAIChat(Model):
|
|
|
102
102
|
if not self.api_key:
|
|
103
103
|
self.api_key = getenv("OPENAI_API_KEY")
|
|
104
104
|
if not self.api_key:
|
|
105
|
-
|
|
105
|
+
raise ModelProviderError(
|
|
106
|
+
message="OPENAI_API_KEY not set. Please set the OPENAI_API_KEY environment variable.",
|
|
107
|
+
model_name=self.name,
|
|
108
|
+
model_id=self.id,
|
|
109
|
+
)
|
|
106
110
|
|
|
107
111
|
# Define base client params
|
|
108
112
|
base_params = {
|
|
@@ -117,7 +117,11 @@ class OpenAIResponses(Model):
|
|
|
117
117
|
if not self.api_key:
|
|
118
118
|
self.api_key = getenv("OPENAI_API_KEY")
|
|
119
119
|
if not self.api_key:
|
|
120
|
-
|
|
120
|
+
raise ModelProviderError(
|
|
121
|
+
message="OPENAI_API_KEY not set. Please set the OPENAI_API_KEY environment variable.",
|
|
122
|
+
model_name=self.name,
|
|
123
|
+
model_id=self.id,
|
|
124
|
+
)
|
|
121
125
|
|
|
122
126
|
# Define base client params
|
|
123
127
|
base_params = {
|
|
@@ -4,6 +4,7 @@ from typing import Any, Dict, List, Optional, Type, Union
|
|
|
4
4
|
|
|
5
5
|
from pydantic import BaseModel
|
|
6
6
|
|
|
7
|
+
from agno.exceptions import ModelProviderError
|
|
7
8
|
from agno.models.openai.like import OpenAILike
|
|
8
9
|
from agno.run.agent import RunOutput
|
|
9
10
|
|
|
@@ -34,6 +35,25 @@ class OpenRouter(OpenAILike):
|
|
|
34
35
|
max_tokens: int = 1024
|
|
35
36
|
models: Optional[List[str]] = None # Dynamic model routing https://openrouter.ai/docs/features/model-routing
|
|
36
37
|
|
|
38
|
+
def _get_client_params(self) -> Dict[str, Any]:
|
|
39
|
+
"""
|
|
40
|
+
Returns client parameters for API requests, checking for OPENROUTER_API_KEY.
|
|
41
|
+
|
|
42
|
+
Returns:
|
|
43
|
+
Dict[str, Any]: A dictionary of client parameters for API requests.
|
|
44
|
+
"""
|
|
45
|
+
# Fetch API key from env if not already set
|
|
46
|
+
if not self.api_key:
|
|
47
|
+
self.api_key = getenv("OPENROUTER_API_KEY")
|
|
48
|
+
if not self.api_key:
|
|
49
|
+
raise ModelProviderError(
|
|
50
|
+
message="OPENROUTER_API_KEY not set. Please set the OPENROUTER_API_KEY environment variable.",
|
|
51
|
+
model_name=self.name,
|
|
52
|
+
model_id=self.id,
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
return super()._get_client_params()
|
|
56
|
+
|
|
37
57
|
def get_request_params(
|
|
38
58
|
self,
|
|
39
59
|
response_format: Optional[Union[Dict, Type[BaseModel]]] = None,
|
|
@@ -50,6 +50,23 @@ class Perplexity(OpenAILike):
|
|
|
50
50
|
supports_native_structured_outputs: bool = False
|
|
51
51
|
supports_json_schema_outputs: bool = True
|
|
52
52
|
|
|
53
|
+
def _get_client_params(self) -> Dict[str, Any]:
|
|
54
|
+
"""
|
|
55
|
+
Returns client parameters for API requests, checking for PERPLEXITY_API_KEY.
|
|
56
|
+
|
|
57
|
+
Returns:
|
|
58
|
+
Dict[str, Any]: A dictionary of client parameters for API requests.
|
|
59
|
+
"""
|
|
60
|
+
if not self.api_key:
|
|
61
|
+
self.api_key = getenv("PERPLEXITY_API_KEY")
|
|
62
|
+
if not self.api_key:
|
|
63
|
+
raise ModelProviderError(
|
|
64
|
+
message="PERPLEXITY_API_KEY not set. Please set the PERPLEXITY_API_KEY environment variable.",
|
|
65
|
+
model_name=self.name,
|
|
66
|
+
model_id=self.id,
|
|
67
|
+
)
|
|
68
|
+
return super()._get_client_params()
|
|
69
|
+
|
|
53
70
|
def get_request_params(
|
|
54
71
|
self,
|
|
55
72
|
response_format: Optional[Union[Dict, Type[BaseModel]]] = None,
|
|
@@ -4,6 +4,7 @@ from typing import Any, Dict, List, Optional, Type, Union
|
|
|
4
4
|
|
|
5
5
|
from pydantic import BaseModel
|
|
6
6
|
|
|
7
|
+
from agno.exceptions import ModelProviderError
|
|
7
8
|
from agno.models.openai.like import OpenAILike
|
|
8
9
|
from agno.run.agent import RunOutput
|
|
9
10
|
from agno.run.team import TeamRunOutput
|
|
@@ -30,6 +31,23 @@ class Requesty(OpenAILike):
|
|
|
30
31
|
base_url: str = "https://router.requesty.ai/v1"
|
|
31
32
|
max_tokens: int = 1024
|
|
32
33
|
|
|
34
|
+
def _get_client_params(self) -> Dict[str, Any]:
|
|
35
|
+
"""
|
|
36
|
+
Returns client parameters for API requests, checking for REQUESTY_API_KEY.
|
|
37
|
+
|
|
38
|
+
Returns:
|
|
39
|
+
Dict[str, Any]: A dictionary of client parameters for API requests.
|
|
40
|
+
"""
|
|
41
|
+
if not self.api_key:
|
|
42
|
+
self.api_key = getenv("REQUESTY_API_KEY")
|
|
43
|
+
if not self.api_key:
|
|
44
|
+
raise ModelProviderError(
|
|
45
|
+
message="REQUESTY_API_KEY not set. Please set the REQUESTY_API_KEY environment variable.",
|
|
46
|
+
model_name=self.name,
|
|
47
|
+
model_id=self.id,
|
|
48
|
+
)
|
|
49
|
+
return super()._get_client_params()
|
|
50
|
+
|
|
33
51
|
def get_request_params(
|
|
34
52
|
self,
|
|
35
53
|
response_format: Optional[Union[Dict, Type[BaseModel]]] = None,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from dataclasses import dataclass, field
|
|
2
2
|
from os import getenv
|
|
3
|
-
from typing import Optional
|
|
3
|
+
from typing import Any, Dict, Optional
|
|
4
4
|
|
|
5
|
+
from agno.exceptions import ModelProviderError
|
|
5
6
|
from agno.models.openai.like import OpenAILike
|
|
6
7
|
|
|
7
8
|
|
|
@@ -26,3 +27,20 @@ class Sambanova(OpenAILike):
|
|
|
26
27
|
base_url: str = "https://api.sambanova.ai/v1"
|
|
27
28
|
|
|
28
29
|
supports_native_structured_outputs: bool = False
|
|
30
|
+
|
|
31
|
+
def _get_client_params(self) -> Dict[str, Any]:
|
|
32
|
+
"""
|
|
33
|
+
Returns client parameters for API requests, checking for SAMBANOVA_API_KEY.
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
Dict[str, Any]: A dictionary of client parameters for API requests.
|
|
37
|
+
"""
|
|
38
|
+
if not self.api_key:
|
|
39
|
+
self.api_key = getenv("SAMBANOVA_API_KEY")
|
|
40
|
+
if not self.api_key:
|
|
41
|
+
raise ModelProviderError(
|
|
42
|
+
message="SAMBANOVA_API_KEY not set. Please set the SAMBANOVA_API_KEY environment variable.",
|
|
43
|
+
model_name=self.name,
|
|
44
|
+
model_id=self.id,
|
|
45
|
+
)
|
|
46
|
+
return super()._get_client_params()
|