camel-ai 0.2.47__tar.gz → 0.2.49__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.
Potentially problematic release.
This version of camel-ai might be problematic. Click here for more details.
- {camel_ai-0.2.47 → camel_ai-0.2.49}/PKG-INFO +2 -2
- {camel_ai-0.2.47 → camel_ai-0.2.49}/README.md +1 -1
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/__init__.py +1 -1
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/chat_agent.py +5 -5
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/__init__.py +3 -0
- camel_ai-0.2.49/camel/configs/netmind_config.py +82 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/__init__.py +2 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/model_factory.py +3 -0
- camel_ai-0.2.49/camel/models/netmind_model.py +96 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/societies/workforce/role_playing_worker.py +1 -1
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/societies/workforce/single_agent_worker.py +3 -1
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/vectordb_storages/milvus.py +9 -8
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/dalle_toolkit.py +20 -6
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/types/enums.py +43 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/types/unified_model_type.py +5 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/utils/mcp.py +1 -1
- {camel_ai-0.2.47 → camel_ai-0.2.49}/pyproject.toml +1 -1
- {camel_ai-0.2.47 → camel_ai-0.2.49}/.gitignore +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/LICENSE +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/_types.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/_utils.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/critic_agent.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/deductive_reasoner_agent.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/embodied_agent.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/knowledge_graph_agent.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/multi_hop_generator_agent.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/programmed_agent_instruction.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/repo_agent.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/role_assignment_agent.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/search_agent.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/task_agent.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/tool_agents/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/tool_agents/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/agents/tool_agents/hugging_face_tool_agent.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/benchmarks/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/benchmarks/apibank.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/benchmarks/apibench.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/benchmarks/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/benchmarks/gaia.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/benchmarks/nexus.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/benchmarks/ragbench.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/bots/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/bots/discord/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/bots/discord/discord_app.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/bots/discord/discord_installation.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/bots/discord/discord_store.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/bots/slack/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/bots/slack/models.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/bots/slack/slack_app.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/bots/telegram_bot.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/aiml_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/anthropic_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/base_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/bedrock_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/cohere_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/deepseek_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/gemini_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/groq_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/internlm_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/litellm_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/lmstudio_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/mistral_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/modelscope_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/moonshot_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/nvidia_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/ollama_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/openai_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/openrouter_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/ppio_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/qwen_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/reka_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/samba_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/sglang_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/siliconflow_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/togetherai_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/vllm_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/yi_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/configs/zhipuai_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/data_collector/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/data_collector/alpaca_collector.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/data_collector/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/data_collector/sharegpt_collector.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/cot_datagen.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/evol_instruct/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/evol_instruct/evol_instruct.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/evol_instruct/scorer.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/evol_instruct/templates.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/self_improving_cot.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/self_instruct/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/self_instruct/filter/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/self_instruct/filter/filter_function.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/self_instruct/filter/filter_registry.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/self_instruct/filter/instruction_filter.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/self_instruct/self_instruct.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/self_instruct/templates.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/source2synth/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/source2synth/data_processor.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/source2synth/models.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datagen/source2synth/user_data_processor_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datahubs/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datahubs/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datahubs/huggingface.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datahubs/models.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datasets/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datasets/base_generator.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datasets/few_shot_generator.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datasets/models.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datasets/self_instruct_generator.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/datasets/static_dataset.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/embeddings/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/embeddings/azure_embedding.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/embeddings/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/embeddings/jina_embedding.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/embeddings/mistral_embedding.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/embeddings/openai_compatible_embedding.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/embeddings/openai_embedding.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/embeddings/sentence_transformers_embeddings.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/embeddings/together_embedding.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/embeddings/vlm_embedding.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/environments/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/environments/models.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/environments/multi_step.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/environments/single_step.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/environments/tic_tac_toe.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/extractors/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/extractors/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/extractors/python_strategies.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/generators.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/human.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/interpreters/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/interpreters/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/interpreters/docker/Dockerfile +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/interpreters/docker_interpreter.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/interpreters/e2b_interpreter.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/interpreters/internal_python_interpreter.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/interpreters/interpreter_error.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/interpreters/ipython_interpreter.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/interpreters/subprocess_interpreter.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/loaders/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/loaders/apify_reader.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/loaders/base_io.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/loaders/chunkr_reader.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/loaders/crawl4ai_reader.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/loaders/firecrawl_reader.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/loaders/jina_url_reader.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/loaders/mineru_extractor.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/loaders/pandas_reader.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/loaders/scrapegraph_reader.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/loaders/unstructured_io.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/logger.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/memories/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/memories/agent_memories.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/memories/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/memories/blocks/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/memories/blocks/chat_history_block.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/memories/blocks/vectordb_block.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/memories/context_creators/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/memories/context_creators/score_based.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/memories/records.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/messages/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/messages/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/messages/conversion/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/messages/conversion/alpaca.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/messages/conversion/conversation_models.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/messages/conversion/sharegpt/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/messages/conversion/sharegpt/function_call_formatter.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/messages/conversion/sharegpt/hermes/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/messages/func_message.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/_utils.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/aiml_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/anthropic_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/aws_bedrock_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/azure_openai_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/base_audio_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/base_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/cohere_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/deepseek_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/fish_audio_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/gemini_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/groq_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/internlm_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/litellm_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/lmstudio_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/mistral_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/model_manager.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/modelscope_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/moonshot_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/nemotron_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/nvidia_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/ollama_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/openai_audio_models.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/openai_compatible_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/openai_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/openrouter_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/ppio_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/qwen_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/reka_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/reward/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/reward/base_reward_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/reward/evaluator.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/reward/nemotron_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/reward/skywork_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/samba_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/sglang_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/siliconflow_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/stub_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/togetherai_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/vllm_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/volcano_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/yi_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/models/zhipuai_model.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/personas/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/personas/persona.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/personas/persona_hub.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/ai_society.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/code.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/evaluation.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/generate_text_embedding_data.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/image_craft.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/misalignment.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/multi_condition_image_craft.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/object_recognition.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/persona_hub.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/prompt_templates.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/role_description_prompt_template.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/solution_extraction.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/task_prompt_template.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/translation.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/prompts/video_description_prompt.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/py.typed +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/responses/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/responses/agent_responses.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/retrievers/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/retrievers/auto_retriever.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/retrievers/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/retrievers/bm25_retriever.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/retrievers/cohere_rerank_retriever.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/retrievers/hybrid_retrival.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/retrievers/vector_retriever.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/runtime/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/runtime/api.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/runtime/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/runtime/configs.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/runtime/docker_runtime.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/runtime/llm_guard_runtime.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/runtime/remote_http_runtime.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/runtime/ubuntu_docker_runtime.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/runtime/utils/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/runtime/utils/function_risk_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/runtime/utils/ignore_risk_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/schemas/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/schemas/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/schemas/openai_converter.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/schemas/outlines_converter.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/societies/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/societies/babyagi_playing.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/societies/role_playing.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/societies/workforce/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/societies/workforce/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/societies/workforce/prompts.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/societies/workforce/task_channel.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/societies/workforce/utils.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/societies/workforce/worker.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/societies/workforce/workforce.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/graph_storages/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/graph_storages/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/graph_storages/graph_element.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/graph_storages/nebula_graph.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/graph_storages/neo4j_graph.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/key_value_storages/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/key_value_storages/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/key_value_storages/in_memory.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/key_value_storages/json.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/key_value_storages/mem0_cloud.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/key_value_storages/redis.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/object_storages/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/object_storages/amazon_s3.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/object_storages/azure_blob.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/object_storages/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/object_storages/google_cloud.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/vectordb_storages/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/vectordb_storages/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/vectordb_storages/oceanbase.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/vectordb_storages/qdrant.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/storages/vectordb_storages/tidb.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/tasks/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/tasks/task.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/tasks/task_prompt.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/terminators/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/terminators/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/terminators/response_terminator.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/terminators/token_limit_terminator.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/arxiv_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/ask_news_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/audio_analysis_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/browser_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/code_execution.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/dappier_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/data_commons_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/excel_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/file_write_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/function_tool.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/github_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/google_calendar_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/google_maps_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/google_scholar_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/human_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/image_analysis_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/jina_reranker_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/linkedin_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/math_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/mcp_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/memory_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/meshy_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/mineru_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/networkx_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/notion_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/biztoc/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/biztoc/ai-plugin.json +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/biztoc/openapi.yaml +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/coursera/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/coursera/openapi.yaml +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/create_qr_code/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/create_qr_code/openapi.yaml +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/klarna/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/klarna/openapi.yaml +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/nasa_apod/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/nasa_apod/openapi.yaml +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/outschool/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/outschool/ai-plugin.json +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/outschool/openapi.yaml +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/outschool/paths/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/outschool/paths/get_classes.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/security_config.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/speak/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/speak/openapi.yaml +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/web_scraper/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/web_scraper/openapi.yaml +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/open_api_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/openai_agent_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/openbb_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/page_script.js +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/pubmed_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/pyautogui_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/reddit_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/retrieval_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/search_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/searxng_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/semantic_scholar_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/slack_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/stripe_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/sympy_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/terminal_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/thinking_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/twitter_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/video_analysis_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/video_download_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/weather_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/whatsapp_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/toolkits/zapier_toolkit.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/types/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/types/agents/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/types/agents/tool_calling_record.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/types/openai_types.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/utils/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/utils/async_func.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/utils/chunker/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/utils/chunker/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/utils/chunker/code_chunker.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/utils/chunker/uio_chunker.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/utils/commons.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/utils/constants.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/utils/deduplication.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/utils/response_format.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/utils/token_counting.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/verifiers/__init__.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/verifiers/base.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/verifiers/math_verifier.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/verifiers/models.py +0 -0
- {camel_ai-0.2.47 → camel_ai-0.2.49}/camel/verifiers/python_verifier.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: camel-ai
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.49
|
|
4
4
|
Summary: Communicative Agents for AI Society Study
|
|
5
5
|
Project-URL: Homepage, https://www.camel-ai.org/
|
|
6
6
|
Project-URL: Repository, https://github.com/camel-ai/camel
|
|
@@ -750,7 +750,7 @@ For more information please contact camel-ai@eigent.ai
|
|
|
750
750
|
- **WeChat Community:** Scan the QR code below to join our WeChat community.
|
|
751
751
|
|
|
752
752
|
<div align="center">
|
|
753
|
-
<img src="misc/wechat.
|
|
753
|
+
<img src="misc/wechat.jpeg" alt="WeChat QR Code" width="200">
|
|
754
754
|
</div>
|
|
755
755
|
|
|
756
756
|
|
|
@@ -422,7 +422,7 @@ For more information please contact camel-ai@eigent.ai
|
|
|
422
422
|
- **WeChat Community:** Scan the QR code below to join our WeChat community.
|
|
423
423
|
|
|
424
424
|
<div align="center">
|
|
425
|
-
<img src="misc/wechat.
|
|
425
|
+
<img src="misc/wechat.jpeg" alt="WeChat QR Code" width="200">
|
|
426
426
|
</div>
|
|
427
427
|
|
|
428
428
|
|
|
@@ -715,11 +715,11 @@ class ChatAgent(BaseAgent):
|
|
|
715
715
|
if external_tool_call_requests is None:
|
|
716
716
|
external_tool_call_requests = []
|
|
717
717
|
external_tool_call_requests.append(tool_call_request)
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
718
|
+
else:
|
|
719
|
+
tool_call_record = await self._aexecute_tool(
|
|
720
|
+
tool_call_request
|
|
721
|
+
)
|
|
722
|
+
tool_call_records.append(tool_call_record)
|
|
723
723
|
|
|
724
724
|
# If we found an external tool call, break the loop
|
|
725
725
|
if external_tool_call_requests:
|
|
@@ -25,6 +25,7 @@ from .lmstudio_config import LMSTUDIO_API_PARAMS, LMStudioConfig
|
|
|
25
25
|
from .mistral_config import MISTRAL_API_PARAMS, MistralConfig
|
|
26
26
|
from .modelscope_config import MODELSCOPE_API_PARAMS, ModelScopeConfig
|
|
27
27
|
from .moonshot_config import MOONSHOT_API_PARAMS, MoonshotConfig
|
|
28
|
+
from .netmind_config import NETMIND_API_PARAMS, NetmindConfig
|
|
28
29
|
from .nvidia_config import NVIDIA_API_PARAMS, NvidiaConfig
|
|
29
30
|
from .ollama_config import OLLAMA_API_PARAMS, OllamaConfig
|
|
30
31
|
from .openai_config import OPENAI_API_PARAMS, ChatGPTConfig
|
|
@@ -55,6 +56,8 @@ __all__ = [
|
|
|
55
56
|
'GroqConfig',
|
|
56
57
|
'LiteLLMConfig',
|
|
57
58
|
'LITELLM_API_PARAMS',
|
|
59
|
+
'NetmindConfig',
|
|
60
|
+
'NETMIND_API_PARAMS',
|
|
58
61
|
'NvidiaConfig',
|
|
59
62
|
'NVIDIA_API_PARAMS',
|
|
60
63
|
'OllamaConfig',
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
# you may not use this file except in compliance with the License.
|
|
4
|
+
# You may obtain a copy of the License at
|
|
5
|
+
#
|
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
#
|
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
# See the License for the specific language governing permissions and
|
|
12
|
+
# limitations under the License.
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
from typing import Dict, List, Optional, Union
|
|
17
|
+
|
|
18
|
+
from pydantic import Field
|
|
19
|
+
|
|
20
|
+
from camel.configs.base_config import BaseConfig
|
|
21
|
+
from camel.types import NotGiven
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class NetmindConfig(BaseConfig):
|
|
25
|
+
r"""Defines the parameters for generating chat completions using OpenAI
|
|
26
|
+
compatibility.
|
|
27
|
+
|
|
28
|
+
Reference: https://netmind-power.gitbook.io/netmind-power-documentation/
|
|
29
|
+
api/inference/chat
|
|
30
|
+
|
|
31
|
+
Args:
|
|
32
|
+
presence_penalty (float, optional): Number between :obj:`-2.0` and
|
|
33
|
+
:obj:`2.0`. Positive values penalize new tokens based on whether
|
|
34
|
+
they appear in the text so far, increasing the model's likelihood
|
|
35
|
+
to talk about new topics. See more information about frequency and
|
|
36
|
+
presence penalties. (default: :obj:`None`)
|
|
37
|
+
frequency_penalty (float, optional): Number between :obj:`-2.0` and
|
|
38
|
+
:obj:`2.0`. Positive values penalize new tokens based on their
|
|
39
|
+
existing frequency in the text so far, decreasing the model's
|
|
40
|
+
likelihood to repeat the same line verbatim. See more information
|
|
41
|
+
about frequency and presence penalties. (default: :obj:`None`)
|
|
42
|
+
repetition_penalty (float, optional): Penalizes new tokens based on
|
|
43
|
+
their appearance in the prompt and generated text.
|
|
44
|
+
(default: :obj:`None`)
|
|
45
|
+
stream (bool, optional): Whether to stream the response.
|
|
46
|
+
(default: :obj:`None`)
|
|
47
|
+
temperature (float, optional): Controls randomness in the response.
|
|
48
|
+
Higher values make output more random, lower values make it more
|
|
49
|
+
deterministic. Range: [0.0, 2.0]. (default: :obj:`None`)
|
|
50
|
+
top_p (float, optional): Controls diversity via nucleus sampling.
|
|
51
|
+
Range: [0.0, 1.0]. (default: :obj:`None`)
|
|
52
|
+
logit_bias (dict, optional): Modify the likelihood of specified tokens
|
|
53
|
+
appearing in the completion. Accepts a json object that maps tokens
|
|
54
|
+
(specified by their token ID in the tokenizer) to an associated
|
|
55
|
+
bias value from :obj:`-100` to :obj:`100`. Mathematically, the bias
|
|
56
|
+
is added to the logits generated by the model prior to sampling.
|
|
57
|
+
The exact effect will vary per model, but values between:obj:` -1`
|
|
58
|
+
and :obj:`1` should decrease or increase likelihood of selection;
|
|
59
|
+
values like :obj:`-100` or :obj:`100` should result in a ban or
|
|
60
|
+
exclusive selection of the relevant token. (default: :obj:`None`)
|
|
61
|
+
max_tokens (Union[int, NotGiven], optional): Maximum number of tokens
|
|
62
|
+
to generate. If not provided, model will use its default maximum.
|
|
63
|
+
(default: :obj:`None`)
|
|
64
|
+
stop (Optional[List[str]], optional): List of stop sequences.
|
|
65
|
+
(default: :obj:`None`)
|
|
66
|
+
n (Optional[int], optional): Number of chat completion choices to
|
|
67
|
+
generate for each input message. (default: :obj:`None`)
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
stream: Optional[bool] = Field(default=None)
|
|
71
|
+
temperature: Optional[float] = Field(default=None)
|
|
72
|
+
top_p: Optional[float] = Field(default=None)
|
|
73
|
+
presence_penalty: Optional[float] = Field(default=None)
|
|
74
|
+
frequency_penalty: Optional[float] = Field(default=None)
|
|
75
|
+
repetition_penalty: Optional[float] = Field(default=None)
|
|
76
|
+
max_tokens: Optional[Union[int, NotGiven]] = Field(default=None)
|
|
77
|
+
stop: Optional[List[str]] = Field(default=None)
|
|
78
|
+
n: Optional[int] = Field(default=None)
|
|
79
|
+
logit_bias: Optional[Dict[str, float]] = Field(default=None)
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
NETMIND_API_PARAMS = {param for param in NetmindConfig.model_fields.keys()}
|
|
@@ -31,6 +31,7 @@ from .model_manager import ModelManager, ModelProcessingError
|
|
|
31
31
|
from .modelscope_model import ModelScopeModel
|
|
32
32
|
from .moonshot_model import MoonshotModel
|
|
33
33
|
from .nemotron_model import NemotronModel
|
|
34
|
+
from .netmind_model import NetmindModel
|
|
34
35
|
from .nvidia_model import NvidiaModel
|
|
35
36
|
from .ollama_model import OllamaModel
|
|
36
37
|
from .openai_audio_models import OpenAIAudioModels
|
|
@@ -65,6 +66,7 @@ __all__ = [
|
|
|
65
66
|
'ModelManager',
|
|
66
67
|
'LiteLLMModel',
|
|
67
68
|
'OpenAIAudioModels',
|
|
69
|
+
'NetmindModel',
|
|
68
70
|
'NemotronModel',
|
|
69
71
|
'NvidiaModel',
|
|
70
72
|
'OllamaModel',
|
|
@@ -31,6 +31,7 @@ from camel.models.lmstudio_model import LMStudioModel
|
|
|
31
31
|
from camel.models.mistral_model import MistralModel
|
|
32
32
|
from camel.models.modelscope_model import ModelScopeModel
|
|
33
33
|
from camel.models.moonshot_model import MoonshotModel
|
|
34
|
+
from camel.models.netmind_model import NetmindModel
|
|
34
35
|
from camel.models.nvidia_model import NvidiaModel
|
|
35
36
|
from camel.models.ollama_model import OllamaModel
|
|
36
37
|
from camel.models.openai_compatible_model import OpenAICompatibleModel
|
|
@@ -123,6 +124,8 @@ class ModelFactory:
|
|
|
123
124
|
model_class = AIMLModel
|
|
124
125
|
elif model_platform.is_volcano:
|
|
125
126
|
model_class = VolcanoModel
|
|
127
|
+
elif model_platform.is_netmind:
|
|
128
|
+
model_class = NetmindModel
|
|
126
129
|
|
|
127
130
|
elif model_platform.is_openai and model_type.is_openai:
|
|
128
131
|
model_class = OpenAIModel
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
# you may not use this file except in compliance with the License.
|
|
4
|
+
# You may obtain a copy of the License at
|
|
5
|
+
#
|
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
#
|
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
# See the License for the specific language governing permissions and
|
|
12
|
+
# limitations under the License.
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
|
+
|
|
15
|
+
import os
|
|
16
|
+
from typing import Any, Dict, Optional, Union
|
|
17
|
+
|
|
18
|
+
from camel.configs import NETMIND_API_PARAMS, NetmindConfig
|
|
19
|
+
from camel.models.openai_compatible_model import OpenAICompatibleModel
|
|
20
|
+
from camel.types import ModelType
|
|
21
|
+
from camel.utils import (
|
|
22
|
+
BaseTokenCounter,
|
|
23
|
+
api_keys_required,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class NetmindModel(OpenAICompatibleModel):
|
|
28
|
+
r"""Constructor for Netmind backend with OpenAI compatibility.
|
|
29
|
+
|
|
30
|
+
Args:
|
|
31
|
+
model_type (Union[ModelType, str]): Model for which a backend is
|
|
32
|
+
created, supported model can be found here:
|
|
33
|
+
https://www.netmind.ai/modelsLibrary?expandList=Chat
|
|
34
|
+
model_config_dict (Optional[Dict[str, Any]], optional): A dictionary
|
|
35
|
+
that will be fed into:obj:`openai.ChatCompletion.create()`. If
|
|
36
|
+
:obj:`None`, :obj:`NetmindConfig().as_dict()` will be used.
|
|
37
|
+
(default: :obj:`None`)
|
|
38
|
+
api_key (Optional[str], optional): The API key for authenticating with
|
|
39
|
+
the Netmind service. (default: :obj:`None`)
|
|
40
|
+
url (Optional[str], optional): The url to the Netmind service.
|
|
41
|
+
If not provided, "https://api.netmind.ai/inference-api/openai/v1"
|
|
42
|
+
will be used.(default: :obj:`None`)
|
|
43
|
+
token_counter (Optional[BaseTokenCounter], optional): Token counter to
|
|
44
|
+
use for the model. If not provided, :obj:`OpenAITokenCounter(
|
|
45
|
+
ModelType.GPT_4O_MINI)` will be used.
|
|
46
|
+
timeout (Optional[float], optional): The timeout value in seconds for
|
|
47
|
+
API calls. If not provided, will fall back to the MODEL_TIMEOUT
|
|
48
|
+
environment variable or default to 180 seconds.
|
|
49
|
+
(default: :obj:`None`)
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
@api_keys_required(
|
|
53
|
+
[
|
|
54
|
+
("api_key", 'NETMIND_API_KEY'),
|
|
55
|
+
]
|
|
56
|
+
)
|
|
57
|
+
def __init__(
|
|
58
|
+
self,
|
|
59
|
+
model_type: Union[ModelType, str],
|
|
60
|
+
model_config_dict: Optional[Dict[str, Any]] = None,
|
|
61
|
+
api_key: Optional[str] = None,
|
|
62
|
+
url: Optional[str] = None,
|
|
63
|
+
token_counter: Optional[BaseTokenCounter] = None,
|
|
64
|
+
timeout: Optional[float] = None,
|
|
65
|
+
) -> None:
|
|
66
|
+
if model_config_dict is None:
|
|
67
|
+
model_config_dict = NetmindConfig().as_dict()
|
|
68
|
+
api_key = api_key or os.environ.get("NETMIND_API_KEY")
|
|
69
|
+
url = url or os.environ.get(
|
|
70
|
+
"NETMIND_API_BASE_URL",
|
|
71
|
+
"https://api.netmind.ai/inference-api/openai/v1",
|
|
72
|
+
)
|
|
73
|
+
timeout = timeout or float(os.environ.get("MODEL_TIMEOUT", 180))
|
|
74
|
+
super().__init__(
|
|
75
|
+
model_type=model_type,
|
|
76
|
+
model_config_dict=model_config_dict,
|
|
77
|
+
api_key=api_key,
|
|
78
|
+
url=url,
|
|
79
|
+
token_counter=token_counter,
|
|
80
|
+
timeout=timeout,
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
def check_model_config(self):
|
|
84
|
+
r"""Check whether the model configuration contains any
|
|
85
|
+
unexpected arguments to NETMIND API.
|
|
86
|
+
|
|
87
|
+
Raises:
|
|
88
|
+
ValueError: If the model configuration dictionary contains any
|
|
89
|
+
unexpected arguments to NETMIND API.
|
|
90
|
+
"""
|
|
91
|
+
for param in self.model_config_dict:
|
|
92
|
+
if param not in NETMIND_API_PARAMS:
|
|
93
|
+
raise ValueError(
|
|
94
|
+
f"Unexpected argument `{param}` is "
|
|
95
|
+
"input into NETMIND model backend."
|
|
96
|
+
)
|
|
@@ -112,7 +112,7 @@ class RolePlayingWorker(Worker):
|
|
|
112
112
|
chat_history = []
|
|
113
113
|
while n < self.chat_turn_limit:
|
|
114
114
|
n += 1
|
|
115
|
-
assistant_response, user_response = role_play_session.
|
|
115
|
+
assistant_response, user_response = await role_play_session.astep(
|
|
116
116
|
input_msg
|
|
117
117
|
)
|
|
118
118
|
|
|
@@ -72,7 +72,9 @@ class SingleAgentWorker(Worker):
|
|
|
72
72
|
additional_info=task.additional_info,
|
|
73
73
|
)
|
|
74
74
|
try:
|
|
75
|
-
response = self.worker.
|
|
75
|
+
response = await self.worker.astep(
|
|
76
|
+
prompt, response_format=TaskResult
|
|
77
|
+
)
|
|
76
78
|
except Exception as e:
|
|
77
79
|
print(
|
|
78
80
|
f"{Fore.RED}Error occurred while processing task {task.id}:"
|
|
@@ -359,15 +359,16 @@ class MilvusStorage(BaseVectorStorage):
|
|
|
359
359
|
**kwargs,
|
|
360
360
|
)
|
|
361
361
|
query_results = []
|
|
362
|
-
for
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
362
|
+
for points in search_result:
|
|
363
|
+
for point in points:
|
|
364
|
+
query_results.append(
|
|
365
|
+
VectorDBQueryResult.create(
|
|
366
|
+
similarity=point['distance'],
|
|
367
|
+
id=str(point['id']),
|
|
368
|
+
payload=(point['entity'].get('payload')),
|
|
369
|
+
vector=point['entity'].get('vector'),
|
|
370
|
+
)
|
|
369
371
|
)
|
|
370
|
-
)
|
|
371
372
|
|
|
372
373
|
return query_results
|
|
373
374
|
|
|
@@ -20,10 +20,13 @@ from typing import List, Optional
|
|
|
20
20
|
from openai import OpenAI
|
|
21
21
|
from PIL import Image
|
|
22
22
|
|
|
23
|
+
from camel.logger import get_logger
|
|
23
24
|
from camel.toolkits import FunctionTool
|
|
24
25
|
from camel.toolkits.base import BaseToolkit
|
|
25
26
|
from camel.utils import MCPServer
|
|
26
27
|
|
|
28
|
+
logger = get_logger(__name__)
|
|
29
|
+
|
|
27
30
|
|
|
28
31
|
@MCPServer()
|
|
29
32
|
class DalleToolkit(BaseToolkit):
|
|
@@ -63,7 +66,10 @@ class DalleToolkit(BaseToolkit):
|
|
|
63
66
|
image = Image.open(image_buffer)
|
|
64
67
|
return image
|
|
65
68
|
except Exception as e:
|
|
66
|
-
|
|
69
|
+
error_msg = (
|
|
70
|
+
f"An error occurred while converting base64 to image: {e}"
|
|
71
|
+
)
|
|
72
|
+
logger.error(error_msg)
|
|
67
73
|
return None
|
|
68
74
|
|
|
69
75
|
def image_path_to_base64(self, image_path: str) -> str:
|
|
@@ -80,10 +86,11 @@ class DalleToolkit(BaseToolkit):
|
|
|
80
86
|
with open(image_path, "rb") as image_file:
|
|
81
87
|
return base64.b64encode(image_file.read()).decode('utf-8')
|
|
82
88
|
except Exception as e:
|
|
83
|
-
|
|
89
|
+
error_msg = (
|
|
84
90
|
f"An error occurred while converting image path to base64: {e}"
|
|
85
91
|
)
|
|
86
|
-
|
|
92
|
+
logger.error(error_msg)
|
|
93
|
+
return error_msg
|
|
87
94
|
|
|
88
95
|
def image_to_base64(self, image: Image.Image) -> str:
|
|
89
96
|
r"""Converts an image into a base64-encoded string.
|
|
@@ -108,8 +115,9 @@ class DalleToolkit(BaseToolkit):
|
|
|
108
115
|
base64_str = base64.b64encode(image_bytes).decode('utf-8')
|
|
109
116
|
return base64_str
|
|
110
117
|
except Exception as e:
|
|
111
|
-
|
|
112
|
-
|
|
118
|
+
error_msg = f"An error occurred: {e}"
|
|
119
|
+
logger.error(error_msg)
|
|
120
|
+
return error_msg
|
|
113
121
|
|
|
114
122
|
def get_dalle_img(self, prompt: str, image_dir: str = "img") -> str:
|
|
115
123
|
r"""Generate an image using OpenAI's DALL-E model.
|
|
@@ -134,11 +142,17 @@ class DalleToolkit(BaseToolkit):
|
|
|
134
142
|
n=1, # NOTE: now dall-e-3 only supports n=1
|
|
135
143
|
response_format="b64_json",
|
|
136
144
|
)
|
|
145
|
+
if response.data is None or len(response.data) == 0:
|
|
146
|
+
error_msg = "No image data returned from DALL-E API."
|
|
147
|
+
logger.error(error_msg)
|
|
148
|
+
return error_msg
|
|
137
149
|
image_b64 = response.data[0].b64_json
|
|
138
150
|
image = self.base64_to_image(image_b64) # type: ignore[arg-type]
|
|
139
151
|
|
|
140
152
|
if image is None:
|
|
141
|
-
|
|
153
|
+
error_msg = "Failed to convert base64 string to image."
|
|
154
|
+
logger.error(error_msg)
|
|
155
|
+
return error_msg
|
|
142
156
|
|
|
143
157
|
os.makedirs(image_dir, exist_ok=True)
|
|
144
158
|
image_path = os.path.join(image_dir, f"{uuid.uuid4()}.png")
|
|
@@ -149,6 +149,18 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
149
149
|
CLAUDE_3_5_HAIKU = "claude-3-5-haiku-latest"
|
|
150
150
|
CLAUDE_3_7_SONNET = "claude-3-7-sonnet-latest"
|
|
151
151
|
|
|
152
|
+
# Netmind models
|
|
153
|
+
NETMIND_LLAMA_4_MAVERICK_17B_128E_INSTRUCT = (
|
|
154
|
+
"meta-llama/Llama-4-Maverick-17B-128E-Instruct"
|
|
155
|
+
)
|
|
156
|
+
NETMIND_LLAMA_4_SCOUT_17B_16E_INSTRUCT = (
|
|
157
|
+
"meta-llama/Llama-4-Scout-17B-16E-Instruct"
|
|
158
|
+
)
|
|
159
|
+
NETMIND_DEEPSEEK_R1 = "deepseek-ai/DeepSeek-R1"
|
|
160
|
+
NETMIND_DEEPSEEK_V3 = "deepseek-ai/DeepSeek-V3-0324"
|
|
161
|
+
NETMIND_DOUBAO_1_5_PRO = "doubao/Doubao-1.5-pro"
|
|
162
|
+
NETMIND_QWQ_32B = "Qwen/QwQ-32B"
|
|
163
|
+
|
|
152
164
|
# Nvidia models
|
|
153
165
|
NVIDIA_NEMOTRON_340B_INSTRUCT = "nvidia/nemotron-4-340b-instruct"
|
|
154
166
|
NVIDIA_NEMOTRON_340B_REWARD = "nvidia/nemotron-4-340b-reward"
|
|
@@ -606,6 +618,17 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
606
618
|
ModelType.DEEPSEEK_REASONER,
|
|
607
619
|
}
|
|
608
620
|
|
|
621
|
+
@property
|
|
622
|
+
def is_netmind(self) -> bool:
|
|
623
|
+
return self in {
|
|
624
|
+
ModelType.NETMIND_LLAMA_4_MAVERICK_17B_128E_INSTRUCT,
|
|
625
|
+
ModelType.NETMIND_LLAMA_4_SCOUT_17B_16E_INSTRUCT,
|
|
626
|
+
ModelType.NETMIND_DEEPSEEK_R1,
|
|
627
|
+
ModelType.NETMIND_DEEPSEEK_V3,
|
|
628
|
+
ModelType.NETMIND_DOUBAO_1_5_PRO,
|
|
629
|
+
ModelType.NETMIND_QWQ_32B,
|
|
630
|
+
}
|
|
631
|
+
|
|
609
632
|
@property
|
|
610
633
|
def is_ppio(self) -> bool:
|
|
611
634
|
return self in {
|
|
@@ -759,6 +782,11 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
759
782
|
ModelType.PPIO_YI_1_5_34B_CHAT,
|
|
760
783
|
}:
|
|
761
784
|
return 16_384
|
|
785
|
+
|
|
786
|
+
elif self in {
|
|
787
|
+
ModelType.NETMIND_DOUBAO_1_5_PRO,
|
|
788
|
+
}:
|
|
789
|
+
return 32_000
|
|
762
790
|
elif self in {
|
|
763
791
|
ModelType.MISTRAL_CODESTRAL,
|
|
764
792
|
ModelType.MISTRAL_7B,
|
|
@@ -814,6 +842,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
814
842
|
ModelType.PPIO_DEEPSEEK_R1,
|
|
815
843
|
ModelType.PPIO_DEEPSEEK_V3,
|
|
816
844
|
ModelType.AWS_DEEPSEEK_R1,
|
|
845
|
+
ModelType.NETMIND_QWQ_32B,
|
|
817
846
|
}:
|
|
818
847
|
return 64_000
|
|
819
848
|
elif self in {
|
|
@@ -863,6 +892,8 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
863
892
|
ModelType.AWS_LLAMA_3_3_70B_INSTRUCT,
|
|
864
893
|
ModelType.AWS_LLAMA_3_2_90B_INSTRUCT,
|
|
865
894
|
ModelType.AWS_LLAMA_3_2_11B_INSTRUCT,
|
|
895
|
+
ModelType.NETMIND_DEEPSEEK_R1,
|
|
896
|
+
ModelType.NETMIND_DEEPSEEK_V3,
|
|
866
897
|
}:
|
|
867
898
|
return 128_000
|
|
868
899
|
elif self in {
|
|
@@ -906,8 +937,14 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
906
937
|
ModelType.OPENROUTER_LLAMA_4_MAVERICK_FREE,
|
|
907
938
|
}:
|
|
908
939
|
return 256_000
|
|
940
|
+
|
|
941
|
+
elif self in {
|
|
942
|
+
ModelType.NETMIND_LLAMA_4_SCOUT_17B_16E_INSTRUCT,
|
|
943
|
+
}:
|
|
944
|
+
return 320_000
|
|
909
945
|
elif self in {
|
|
910
946
|
ModelType.OPENROUTER_LLAMA_4_SCOUT_FREE,
|
|
947
|
+
ModelType.NETMIND_LLAMA_4_MAVERICK_17B_128E_INSTRUCT,
|
|
911
948
|
}:
|
|
912
949
|
return 512_000
|
|
913
950
|
elif self in {
|
|
@@ -1121,6 +1158,7 @@ class ModelPlatformType(Enum):
|
|
|
1121
1158
|
SILICONFLOW = "siliconflow"
|
|
1122
1159
|
AIML = "aiml"
|
|
1123
1160
|
VOLCANO = "volcano"
|
|
1161
|
+
NETMIND = "netmind"
|
|
1124
1162
|
|
|
1125
1163
|
@classmethod
|
|
1126
1164
|
def from_name(cls, name):
|
|
@@ -1246,6 +1284,11 @@ class ModelPlatformType(Enum):
|
|
|
1246
1284
|
r"""Returns whether this platform is DeepSeek."""
|
|
1247
1285
|
return self is ModelPlatformType.DEEPSEEK
|
|
1248
1286
|
|
|
1287
|
+
@property
|
|
1288
|
+
def is_netmind(self) -> bool:
|
|
1289
|
+
r"""Returns whether this platform is Netmind."""
|
|
1290
|
+
return self is ModelPlatformType.NETMIND
|
|
1291
|
+
|
|
1249
1292
|
@property
|
|
1250
1293
|
def is_ppio(self) -> bool:
|
|
1251
1294
|
r"""Returns whether this platform is PPIO."""
|
|
@@ -113,6 +113,11 @@ class UnifiedModelType(str):
|
|
|
113
113
|
r"""Returns whether the model is a Mistral model."""
|
|
114
114
|
return True
|
|
115
115
|
|
|
116
|
+
@property
|
|
117
|
+
def is_netmind(self) -> bool:
|
|
118
|
+
r"""Returns whether the model is a Netmind model."""
|
|
119
|
+
return True
|
|
120
|
+
|
|
116
121
|
@property
|
|
117
122
|
def is_reka(self) -> bool:
|
|
118
123
|
r"""Returns whether the model is a Reka model."""
|
|
@@ -69,7 +69,7 @@ class MCPServer:
|
|
|
69
69
|
func = getattr(instance, name, None)
|
|
70
70
|
if func is None or not callable(func):
|
|
71
71
|
raise ValueError(
|
|
72
|
-
f"Method {name} not found in class {cls.
|
|
72
|
+
f"Method {name} not found in class {cls.__name__} or "
|
|
73
73
|
"cannot be called."
|
|
74
74
|
)
|
|
75
75
|
wrapper = self.make_wrapper(func)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|