camel-ai 0.2.61__tar.gz → 0.2.64__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.61 → camel_ai-0.2.64}/PKG-INFO +9 -1
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/__init__.py +1 -1
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/chat_agent.py +75 -16
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/mcp_agent.py +10 -6
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/__init__.py +3 -0
- camel_ai-0.2.64/camel/configs/crynux_config.py +94 -0
- {camel_ai-0.2.61/camel/data_collector → camel_ai-0.2.64/camel/data_collectors}/alpaca_collector.py +1 -1
- {camel_ai-0.2.61/camel/data_collector → camel_ai-0.2.64/camel/data_collectors}/sharegpt_collector.py +1 -1
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/interpreters/base.py +14 -1
- camel_ai-0.2.64/camel/interpreters/docker/Dockerfile +68 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/interpreters/docker_interpreter.py +65 -7
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/interpreters/e2b_interpreter.py +23 -8
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/interpreters/internal_python_interpreter.py +30 -2
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/interpreters/ipython_interpreter.py +21 -3
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/interpreters/subprocess_interpreter.py +34 -2
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/memories/records.py +5 -3
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/__init__.py +2 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/azure_openai_model.py +101 -25
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/cohere_model.py +65 -0
- camel_ai-0.2.64/camel/models/crynux_model.py +94 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/deepseek_model.py +43 -1
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/gemini_model.py +50 -4
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/litellm_model.py +38 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/mistral_model.py +66 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/model_factory.py +10 -1
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/openai_compatible_model.py +81 -17
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/openai_model.py +86 -16
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/reka_model.py +69 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/samba_model.py +69 -2
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/sglang_model.py +74 -2
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/watsonx_model.py +62 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/retrievers/auto_retriever.py +20 -1
- {camel_ai-0.2.61/camel/runtime → camel_ai-0.2.64/camel/runtimes}/daytona_runtime.py +1 -1
- {camel_ai-0.2.61/camel/runtime → camel_ai-0.2.64/camel/runtimes}/docker_runtime.py +1 -1
- {camel_ai-0.2.61/camel/runtime → camel_ai-0.2.64/camel/runtimes}/llm_guard_runtime.py +2 -2
- {camel_ai-0.2.61/camel/runtime → camel_ai-0.2.64/camel/runtimes}/remote_http_runtime.py +1 -1
- {camel_ai-0.2.61/camel/runtime → camel_ai-0.2.64/camel/runtimes}/ubuntu_docker_runtime.py +1 -1
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/societies/workforce/base.py +7 -3
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/societies/workforce/role_playing_worker.py +2 -2
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/societies/workforce/single_agent_worker.py +25 -1
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/societies/workforce/worker.py +5 -3
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/societies/workforce/workforce.py +409 -7
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/__init__.py +2 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/vectordb_storages/__init__.py +2 -0
- camel_ai-0.2.64/camel/storages/vectordb_storages/weaviate.py +714 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/tasks/task.py +19 -10
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/__init__.py +2 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/code_execution.py +37 -8
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/file_write_toolkit.py +4 -2
- camel_ai-0.2.64/camel/toolkits/mcp_toolkit.py +625 -0
- camel_ai-0.2.64/camel/toolkits/pptx_toolkit.py +777 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/types/enums.py +56 -1
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/types/unified_model_type.py +5 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/utils/__init__.py +16 -0
- camel_ai-0.2.64/camel/utils/langfuse.py +258 -0
- camel_ai-0.2.64/camel/utils/mcp_client.py +1046 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/pyproject.toml +11 -1
- camel_ai-0.2.61/camel/interpreters/docker/Dockerfile +0 -12
- camel_ai-0.2.61/camel/toolkits/mcp_toolkit.py +0 -878
- {camel_ai-0.2.61 → camel_ai-0.2.64}/.gitignore +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/LICENSE +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/README.md +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/_types.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/_utils.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/critic_agent.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/deductive_reasoner_agent.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/embodied_agent.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/knowledge_graph_agent.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/multi_hop_generator_agent.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/programmed_agent_instruction.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/repo_agent.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/role_assignment_agent.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/search_agent.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/task_agent.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/tool_agents/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/tool_agents/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/agents/tool_agents/hugging_face_tool_agent.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/benchmarks/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/benchmarks/apibank.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/benchmarks/apibench.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/benchmarks/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/benchmarks/browsecomp.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/benchmarks/gaia.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/benchmarks/nexus.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/benchmarks/ragbench.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/bots/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/bots/discord/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/bots/discord/discord_app.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/bots/discord/discord_installation.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/bots/discord/discord_store.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/bots/slack/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/bots/slack/models.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/bots/slack/slack_app.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/bots/telegram_bot.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/aiml_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/anthropic_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/base_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/bedrock_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/cohere_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/deepseek_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/gemini_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/groq_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/internlm_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/litellm_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/lmstudio_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/mistral_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/modelscope_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/moonshot_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/netmind_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/novita_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/nvidia_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/ollama_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/openai_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/openrouter_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/ppio_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/qwen_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/reka_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/samba_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/sglang_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/siliconflow_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/togetherai_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/vllm_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/watsonx_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/yi_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/configs/zhipuai_config.py +0 -0
- {camel_ai-0.2.61/camel/data_collector → camel_ai-0.2.64/camel/data_collectors}/__init__.py +0 -0
- {camel_ai-0.2.61/camel/data_collector → camel_ai-0.2.64/camel/data_collectors}/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/cot_datagen.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/evol_instruct/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/evol_instruct/evol_instruct.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/evol_instruct/scorer.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/evol_instruct/templates.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/self_improving_cot.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/self_instruct/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/self_instruct/filter/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/self_instruct/filter/filter_function.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/self_instruct/filter/filter_registry.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/self_instruct/filter/instruction_filter.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/self_instruct/self_instruct.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/self_instruct/templates.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/source2synth/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/source2synth/data_processor.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/source2synth/models.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datagen/source2synth/user_data_processor_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datahubs/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datahubs/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datahubs/huggingface.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datahubs/models.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datasets/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datasets/base_generator.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datasets/few_shot_generator.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datasets/models.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datasets/self_instruct_generator.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/datasets/static_dataset.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/embeddings/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/embeddings/azure_embedding.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/embeddings/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/embeddings/gemini_embedding.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/embeddings/jina_embedding.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/embeddings/mistral_embedding.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/embeddings/openai_compatible_embedding.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/embeddings/openai_embedding.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/embeddings/sentence_transformers_embeddings.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/embeddings/together_embedding.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/embeddings/vlm_embedding.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/environments/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/environments/models.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/environments/multi_step.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/environments/single_step.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/environments/tic_tac_toe.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/extractors/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/extractors/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/extractors/python_strategies.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/generators.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/human.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/interpreters/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/interpreters/interpreter_error.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/loaders/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/loaders/apify_reader.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/loaders/base_io.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/loaders/chunkr_reader.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/loaders/crawl4ai_reader.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/loaders/firecrawl_reader.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/loaders/jina_url_reader.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/loaders/markitdown.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/loaders/mineru_extractor.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/loaders/mistral_reader.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/loaders/pandas_reader.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/loaders/scrapegraph_reader.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/loaders/unstructured_io.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/logger.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/memories/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/memories/agent_memories.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/memories/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/memories/blocks/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/memories/blocks/chat_history_block.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/memories/blocks/vectordb_block.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/memories/context_creators/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/memories/context_creators/score_based.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/messages/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/messages/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/messages/conversion/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/messages/conversion/alpaca.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/messages/conversion/conversation_models.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/messages/conversion/sharegpt/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/messages/conversion/sharegpt/function_call_formatter.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/messages/conversion/sharegpt/hermes/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/messages/func_message.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/_utils.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/aiml_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/anthropic_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/aws_bedrock_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/base_audio_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/base_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/fish_audio_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/groq_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/internlm_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/lmstudio_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/model_manager.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/modelscope_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/moonshot_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/nemotron_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/netmind_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/novita_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/nvidia_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/ollama_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/openai_audio_models.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/openrouter_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/ppio_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/qwen_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/reward/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/reward/base_reward_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/reward/evaluator.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/reward/nemotron_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/reward/skywork_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/siliconflow_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/stub_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/togetherai_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/vllm_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/volcano_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/yi_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/models/zhipuai_model.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/personas/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/personas/persona.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/personas/persona_hub.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/ai_society.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/code.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/evaluation.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/generate_text_embedding_data.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/image_craft.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/misalignment.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/multi_condition_image_craft.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/object_recognition.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/persona_hub.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/prompt_templates.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/role_description_prompt_template.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/solution_extraction.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/task_prompt_template.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/translation.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/prompts/video_description_prompt.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/py.typed +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/responses/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/responses/agent_responses.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/retrievers/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/retrievers/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/retrievers/bm25_retriever.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/retrievers/cohere_rerank_retriever.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/retrievers/hybrid_retrival.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/retrievers/vector_retriever.py +0 -0
- {camel_ai-0.2.61/camel/runtime → camel_ai-0.2.64/camel/runtimes}/__init__.py +0 -0
- {camel_ai-0.2.61/camel/runtime → camel_ai-0.2.64/camel/runtimes}/api.py +0 -0
- {camel_ai-0.2.61/camel/runtime → camel_ai-0.2.64/camel/runtimes}/base.py +0 -0
- {camel_ai-0.2.61/camel/runtime → camel_ai-0.2.64/camel/runtimes}/configs.py +0 -0
- {camel_ai-0.2.61/camel/runtime → camel_ai-0.2.64/camel/runtimes}/utils/__init__.py +0 -0
- {camel_ai-0.2.61/camel/runtime → camel_ai-0.2.64/camel/runtimes}/utils/function_risk_toolkit.py +0 -0
- {camel_ai-0.2.61/camel/runtime → camel_ai-0.2.64/camel/runtimes}/utils/ignore_risk_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/schemas/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/schemas/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/schemas/openai_converter.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/schemas/outlines_converter.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/societies/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/societies/babyagi_playing.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/societies/role_playing.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/societies/workforce/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/societies/workforce/prompts.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/societies/workforce/task_channel.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/societies/workforce/utils.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/graph_storages/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/graph_storages/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/graph_storages/graph_element.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/graph_storages/nebula_graph.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/graph_storages/neo4j_graph.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/key_value_storages/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/key_value_storages/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/key_value_storages/in_memory.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/key_value_storages/json.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/key_value_storages/mem0_cloud.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/key_value_storages/redis.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/object_storages/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/object_storages/amazon_s3.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/object_storages/azure_blob.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/object_storages/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/object_storages/google_cloud.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/vectordb_storages/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/vectordb_storages/faiss.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/vectordb_storages/milvus.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/vectordb_storages/oceanbase.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/vectordb_storages/qdrant.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/storages/vectordb_storages/tidb.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/tasks/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/tasks/task_prompt.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/terminators/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/terminators/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/terminators/response_terminator.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/terminators/token_limit_terminator.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/aci_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/arxiv_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/ask_news_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/async_browser_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/audio_analysis_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/bohrium_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/browser_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/browser_toolkit_commons.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/dalle_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/dappier_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/data_commons_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/excel_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/function_tool.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/github_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/google_calendar_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/google_maps_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/google_scholar_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/human_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/image_analysis_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/jina_reranker_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/klavis_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/linkedin_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/math_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/memory_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/meshy_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/mineru_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/networkx_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/notion_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/biztoc/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/biztoc/ai-plugin.json +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/biztoc/openapi.yaml +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/coursera/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/coursera/openapi.yaml +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/create_qr_code/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/create_qr_code/openapi.yaml +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/klarna/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/klarna/openapi.yaml +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/nasa_apod/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/nasa_apod/openapi.yaml +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/outschool/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/outschool/ai-plugin.json +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/outschool/openapi.yaml +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/outschool/paths/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/outschool/paths/get_classes.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/security_config.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/speak/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/speak/openapi.yaml +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/web_scraper/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/web_scraper/openapi.yaml +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/open_api_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/openai_agent_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/openbb_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/page_script.js +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/playwright_mcp_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/pubmed_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/pulse_mcp_search_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/pyautogui_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/reddit_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/retrieval_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/search_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/searxng_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/semantic_scholar_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/slack_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/stripe_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/sympy_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/terminal_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/thinking_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/twitter_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/video_analysis_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/video_download_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/weather_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/whatsapp_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/wolfram_alpha_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/toolkits/zapier_toolkit.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/types/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/types/agents/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/types/agents/tool_calling_record.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/types/mcp_registries.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/types/openai_types.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/utils/async_func.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/utils/chunker/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/utils/chunker/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/utils/chunker/code_chunker.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/utils/chunker/uio_chunker.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/utils/commons.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/utils/constants.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/utils/deduplication.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/utils/filename.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/utils/mcp.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/utils/response_format.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/utils/token_counting.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/verifiers/__init__.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/verifiers/base.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/verifiers/math_verifier.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/verifiers/models.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/camel/verifiers/physics_verifier.py +0 -0
- {camel_ai-0.2.61 → camel_ai-0.2.64}/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.64
|
|
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
|
|
@@ -66,6 +66,7 @@ Requires-Dist: ibm-watsonx-ai>=1.3.11; extra == 'all'
|
|
|
66
66
|
Requires-Dist: imageio[pyav]<3,>=2.34.2; extra == 'all'
|
|
67
67
|
Requires-Dist: ipykernel<7,>=6.0.0; extra == 'all'
|
|
68
68
|
Requires-Dist: jupyter-client<9,>=8.6.2; extra == 'all'
|
|
69
|
+
Requires-Dist: langfuse>=2.60.5; extra == 'all'
|
|
69
70
|
Requires-Dist: linkup-sdk<0.3,>=0.2.1; extra == 'all'
|
|
70
71
|
Requires-Dist: litellm<2,>=1.38.1; extra == 'all'
|
|
71
72
|
Requires-Dist: markitdown==0.1.1; extra == 'all'
|
|
@@ -103,6 +104,7 @@ Requires-Dist: pytelegrambotapi<5,>=4.18.0; extra == 'all'
|
|
|
103
104
|
Requires-Dist: pytest-asyncio<0.24,>=0.23.0; extra == 'all'
|
|
104
105
|
Requires-Dist: pytest-cov<5,>=4; extra == 'all'
|
|
105
106
|
Requires-Dist: pytest<8,>=7; extra == 'all'
|
|
107
|
+
Requires-Dist: python-pptx>=1.0.2; extra == 'all'
|
|
106
108
|
Requires-Dist: pytidb-experimental==0.0.1.dev4; extra == 'all'
|
|
107
109
|
Requires-Dist: qdrant-client<2,>=1.9.0; extra == 'all'
|
|
108
110
|
Requires-Dist: rank-bm25<0.3,>=0.2.2; extra == 'all'
|
|
@@ -135,6 +137,7 @@ Requires-Dist: types-requests<3,>=2.31.0; extra == 'all'
|
|
|
135
137
|
Requires-Dist: types-setuptools<70,>=69.2.0; extra == 'all'
|
|
136
138
|
Requires-Dist: types-tqdm<5,>=4.66.0; extra == 'all'
|
|
137
139
|
Requires-Dist: unstructured==0.16.20; extra == 'all'
|
|
140
|
+
Requires-Dist: weaviate-client>=4.15.0; extra == 'all'
|
|
138
141
|
Requires-Dist: wikipedia<2,>=1; extra == 'all'
|
|
139
142
|
Requires-Dist: wolframalpha<6,>=5.0.0; extra == 'all'
|
|
140
143
|
Requires-Dist: xls2xlsx>=0.2.0; extra == 'all'
|
|
@@ -183,6 +186,7 @@ Requires-Dist: docker<8,>=7.1.0; extra == 'dev-tools'
|
|
|
183
186
|
Requires-Dist: e2b-code-interpreter<2,>=1.0.3; extra == 'dev-tools'
|
|
184
187
|
Requires-Dist: ipykernel<7,>=6.0.0; extra == 'dev-tools'
|
|
185
188
|
Requires-Dist: jupyter-client<9,>=8.6.2; extra == 'dev-tools'
|
|
189
|
+
Requires-Dist: langfuse>=2.60.5; extra == 'dev-tools'
|
|
186
190
|
Requires-Dist: mcp>=1.3.0; extra == 'dev-tools'
|
|
187
191
|
Requires-Dist: tree-sitter-python<0.24,>=0.23.6; extra == 'dev-tools'
|
|
188
192
|
Requires-Dist: tree-sitter<0.24,>=0.23.2; extra == 'dev-tools'
|
|
@@ -209,6 +213,7 @@ Requires-Dist: pandasai<3,>=2.3.0; extra == 'document-tools'
|
|
|
209
213
|
Requires-Dist: prance<24,>=23.6.21.0; extra == 'document-tools'
|
|
210
214
|
Requires-Dist: pylatex>=1.4.2; extra == 'document-tools'
|
|
211
215
|
Requires-Dist: pymupdf<2,>=1.22.5; extra == 'document-tools'
|
|
216
|
+
Requires-Dist: python-pptx>=1.0.2; extra == 'document-tools'
|
|
212
217
|
Requires-Dist: tabulate>=0.9.0; extra == 'document-tools'
|
|
213
218
|
Requires-Dist: unstructured==0.16.20; extra == 'document-tools'
|
|
214
219
|
Requires-Dist: xls2xlsx>=0.2.0; extra == 'document-tools'
|
|
@@ -268,6 +273,7 @@ Requires-Dist: pydub<0.26,>=0.25.1; extra == 'owl'
|
|
|
268
273
|
Requires-Dist: pylatex>=1.4.2; extra == 'owl'
|
|
269
274
|
Requires-Dist: pymupdf<2,>=1.22.5; extra == 'owl'
|
|
270
275
|
Requires-Dist: python-dotenv<2,>=1.0.0; extra == 'owl'
|
|
276
|
+
Requires-Dist: python-pptx>=1.0.2; extra == 'owl'
|
|
271
277
|
Requires-Dist: requests-oauthlib<2,>=1.3.1; extra == 'owl'
|
|
272
278
|
Requires-Dist: rouge<2,>=1.0.1; extra == 'owl'
|
|
273
279
|
Requires-Dist: scenedetect>=0.6.5.2; extra == 'owl'
|
|
@@ -300,6 +306,7 @@ Requires-Dist: qdrant-client<2,>=1.9.0; extra == 'rag'
|
|
|
300
306
|
Requires-Dist: rank-bm25<0.3,>=0.2.2; extra == 'rag'
|
|
301
307
|
Requires-Dist: sentence-transformers<4,>=3.0.1; extra == 'rag'
|
|
302
308
|
Requires-Dist: unstructured==0.16.20; extra == 'rag'
|
|
309
|
+
Requires-Dist: weaviate-client>=4.15.0; extra == 'rag'
|
|
303
310
|
Provides-Extra: research-tools
|
|
304
311
|
Requires-Dist: arxiv2text<0.2,>=0.1.14; extra == 'research-tools'
|
|
305
312
|
Requires-Dist: arxiv<3,>=2.1.3; extra == 'research-tools'
|
|
@@ -317,6 +324,7 @@ Requires-Dist: pyobvector>=0.1.18; extra == 'storage'
|
|
|
317
324
|
Requires-Dist: pytidb-experimental==0.0.1.dev4; extra == 'storage'
|
|
318
325
|
Requires-Dist: qdrant-client<2,>=1.9.0; extra == 'storage'
|
|
319
326
|
Requires-Dist: redis<6,>=5.0.6; extra == 'storage'
|
|
327
|
+
Requires-Dist: weaviate-client>=4.15.0; extra == 'storage'
|
|
320
328
|
Provides-Extra: test
|
|
321
329
|
Requires-Dist: mock<6,>=5; extra == 'test'
|
|
322
330
|
Requires-Dist: pytest-asyncio<0.24,>=0.23.0; extra == 'test'
|
|
@@ -19,7 +19,6 @@ import textwrap
|
|
|
19
19
|
import threading
|
|
20
20
|
import uuid
|
|
21
21
|
from collections import defaultdict
|
|
22
|
-
from datetime import datetime
|
|
23
22
|
from pathlib import Path
|
|
24
23
|
from typing import (
|
|
25
24
|
TYPE_CHECKING,
|
|
@@ -79,6 +78,7 @@ from camel.utils import (
|
|
|
79
78
|
get_model_encoding,
|
|
80
79
|
model_from_json_schema,
|
|
81
80
|
)
|
|
81
|
+
from camel.utils.commons import dependencies_required
|
|
82
82
|
|
|
83
83
|
if TYPE_CHECKING:
|
|
84
84
|
from camel.terminators import ResponseTerminator
|
|
@@ -96,6 +96,15 @@ try:
|
|
|
96
96
|
except (ImportError, AttributeError):
|
|
97
97
|
from camel.utils import track_agent
|
|
98
98
|
|
|
99
|
+
# Langfuse decorator setting
|
|
100
|
+
if os.environ.get("LANGFUSE_ENABLED", "False").lower() == "true":
|
|
101
|
+
try:
|
|
102
|
+
from langfuse.decorators import observe
|
|
103
|
+
except ImportError:
|
|
104
|
+
from camel.utils import observe
|
|
105
|
+
else:
|
|
106
|
+
from camel.utils import observe
|
|
107
|
+
|
|
99
108
|
|
|
100
109
|
SIMPLE_FORMAT_PROMPT = TextPrompt(
|
|
101
110
|
textwrap.dedent(
|
|
@@ -509,7 +518,7 @@ class ChatAgent(BaseAgent):
|
|
|
509
518
|
memory record. If None, current timestamp will be used.
|
|
510
519
|
(default: :obj:`None`)
|
|
511
520
|
"""
|
|
512
|
-
|
|
521
|
+
import time
|
|
513
522
|
|
|
514
523
|
self.memory.write_record(
|
|
515
524
|
MemoryRecord(
|
|
@@ -517,7 +526,7 @@ class ChatAgent(BaseAgent):
|
|
|
517
526
|
role_at_backend=role,
|
|
518
527
|
timestamp=timestamp
|
|
519
528
|
if timestamp is not None
|
|
520
|
-
else
|
|
529
|
+
else time.time_ns() / 1_000_000_000, # Nanosecond precision
|
|
521
530
|
agent_id=self.agent_id,
|
|
522
531
|
)
|
|
523
532
|
)
|
|
@@ -731,6 +740,7 @@ class ChatAgent(BaseAgent):
|
|
|
731
740
|
message.content = response.output_messages[0].content
|
|
732
741
|
self._try_format_message(message, response_format)
|
|
733
742
|
|
|
743
|
+
@observe()
|
|
734
744
|
def step(
|
|
735
745
|
self,
|
|
736
746
|
input_message: Union[BaseMessage, str],
|
|
@@ -753,6 +763,14 @@ class ChatAgent(BaseAgent):
|
|
|
753
763
|
flag, and session information.
|
|
754
764
|
"""
|
|
755
765
|
|
|
766
|
+
# Set Langfuse session_id using agent_id for trace grouping
|
|
767
|
+
try:
|
|
768
|
+
from camel.utils.langfuse import set_current_agent_session_id
|
|
769
|
+
|
|
770
|
+
set_current_agent_session_id(self.agent_id)
|
|
771
|
+
except ImportError:
|
|
772
|
+
pass # Langfuse not available
|
|
773
|
+
|
|
756
774
|
# Convert input message to BaseMessage if necessary
|
|
757
775
|
if isinstance(input_message, str):
|
|
758
776
|
input_message = BaseMessage.make_user_message(
|
|
@@ -847,6 +865,7 @@ class ChatAgent(BaseAgent):
|
|
|
847
865
|
openai_messages, _ = self.memory.get_context()
|
|
848
866
|
return openai_messages
|
|
849
867
|
|
|
868
|
+
@observe()
|
|
850
869
|
async def astep(
|
|
851
870
|
self,
|
|
852
871
|
input_message: Union[BaseMessage, str],
|
|
@@ -873,6 +892,13 @@ class ChatAgent(BaseAgent):
|
|
|
873
892
|
a boolean indicating whether the chat session has terminated,
|
|
874
893
|
and information about the chat session.
|
|
875
894
|
"""
|
|
895
|
+
try:
|
|
896
|
+
from camel.utils.langfuse import set_current_agent_session_id
|
|
897
|
+
|
|
898
|
+
set_current_agent_session_id(self.agent_id)
|
|
899
|
+
except ImportError:
|
|
900
|
+
pass # Langfuse not available
|
|
901
|
+
|
|
876
902
|
if isinstance(input_message, str):
|
|
877
903
|
input_message = BaseMessage.make_user_message(
|
|
878
904
|
role_name="User", content=input_message
|
|
@@ -1331,6 +1357,13 @@ class ChatAgent(BaseAgent):
|
|
|
1331
1357
|
"""
|
|
1332
1358
|
output_messages: List[BaseMessage] = []
|
|
1333
1359
|
for choice in response.choices:
|
|
1360
|
+
# Skip messages with no meaningful content
|
|
1361
|
+
if (
|
|
1362
|
+
choice.message.content is None
|
|
1363
|
+
or choice.message.content.strip() == ""
|
|
1364
|
+
) and not choice.message.tool_calls:
|
|
1365
|
+
continue
|
|
1366
|
+
|
|
1334
1367
|
meta_dict = {}
|
|
1335
1368
|
if logprobs_info := handle_logprobs(choice):
|
|
1336
1369
|
meta_dict["logprobs_info"] = logprobs_info
|
|
@@ -1560,8 +1593,32 @@ class ChatAgent(BaseAgent):
|
|
|
1560
1593
|
args = tool_call_request.args
|
|
1561
1594
|
tool_call_id = tool_call_request.tool_call_id
|
|
1562
1595
|
tool = self._internal_tools[func_name]
|
|
1596
|
+
import asyncio
|
|
1597
|
+
|
|
1563
1598
|
try:
|
|
1564
|
-
|
|
1599
|
+
# Try different invocation paths in order of preference
|
|
1600
|
+
if hasattr(tool, 'func') and hasattr(tool.func, 'async_call'):
|
|
1601
|
+
# Case: FunctionTool wrapping an MCP tool
|
|
1602
|
+
result = await tool.func.async_call(**args)
|
|
1603
|
+
|
|
1604
|
+
elif hasattr(tool, 'async_call') and callable(tool.async_call):
|
|
1605
|
+
# Case: tool itself has async_call
|
|
1606
|
+
result = await tool.async_call(**args)
|
|
1607
|
+
|
|
1608
|
+
elif hasattr(tool, 'func') and asyncio.iscoroutinefunction(
|
|
1609
|
+
tool.func
|
|
1610
|
+
):
|
|
1611
|
+
# Case: tool wraps a direct async function
|
|
1612
|
+
result = await tool.func(**args)
|
|
1613
|
+
|
|
1614
|
+
elif asyncio.iscoroutinefunction(tool):
|
|
1615
|
+
# Case: tool is itself a coroutine function
|
|
1616
|
+
result = await tool(**args)
|
|
1617
|
+
|
|
1618
|
+
else:
|
|
1619
|
+
# Fallback: synchronous call
|
|
1620
|
+
result = tool(**args)
|
|
1621
|
+
|
|
1565
1622
|
except Exception as e:
|
|
1566
1623
|
# Capture the error message to prevent framework crash
|
|
1567
1624
|
error_msg = f"Error executing async tool '{func_name}': {e!s}"
|
|
@@ -1599,17 +1656,24 @@ class ChatAgent(BaseAgent):
|
|
|
1599
1656
|
tool_call_id=tool_call_id,
|
|
1600
1657
|
)
|
|
1601
1658
|
|
|
1602
|
-
# Use
|
|
1659
|
+
# Use precise timestamps to ensure correct ordering
|
|
1603
1660
|
# This ensures the assistant message (tool call) always appears before
|
|
1604
1661
|
# the function message (tool result) in the conversation context
|
|
1605
|
-
|
|
1662
|
+
# Use time.time_ns() for nanosecond precision to avoid collisions
|
|
1663
|
+
import time
|
|
1664
|
+
|
|
1665
|
+
current_time_ns = time.time_ns()
|
|
1666
|
+
base_timestamp = current_time_ns / 1_000_000_000 # Convert to seconds
|
|
1667
|
+
|
|
1606
1668
|
self.update_memory(
|
|
1607
|
-
assist_msg, OpenAIBackendRole.ASSISTANT, timestamp=
|
|
1669
|
+
assist_msg, OpenAIBackendRole.ASSISTANT, timestamp=base_timestamp
|
|
1608
1670
|
)
|
|
1671
|
+
|
|
1672
|
+
# Add minimal increment to ensure function message comes after
|
|
1609
1673
|
self.update_memory(
|
|
1610
1674
|
func_msg,
|
|
1611
1675
|
OpenAIBackendRole.FUNCTION,
|
|
1612
|
-
timestamp=
|
|
1676
|
+
timestamp=base_timestamp + 1e-6,
|
|
1613
1677
|
)
|
|
1614
1678
|
|
|
1615
1679
|
# Record information about this tool call
|
|
@@ -1714,6 +1778,7 @@ class ChatAgent(BaseAgent):
|
|
|
1714
1778
|
f"ChatAgent({self.role_name}, {self.role_type}, {self.model_type})"
|
|
1715
1779
|
)
|
|
1716
1780
|
|
|
1781
|
+
@dependencies_required("mcp")
|
|
1717
1782
|
def to_mcp(
|
|
1718
1783
|
self,
|
|
1719
1784
|
name: str = "CAMEL-ChatAgent",
|
|
@@ -1740,13 +1805,7 @@ class ChatAgent(BaseAgent):
|
|
|
1740
1805
|
Returns:
|
|
1741
1806
|
FastMCP: An MCP server instance that can be run.
|
|
1742
1807
|
"""
|
|
1743
|
-
|
|
1744
|
-
from mcp.server.fastmcp import FastMCP
|
|
1745
|
-
except ImportError:
|
|
1746
|
-
raise ImportError(
|
|
1747
|
-
"The 'mcp' package is required to use the to_mcp method. "
|
|
1748
|
-
"Install it with 'pip install mcp'."
|
|
1749
|
-
)
|
|
1808
|
+
from mcp.server.fastmcp import FastMCP
|
|
1750
1809
|
|
|
1751
1810
|
# Combine dependencies
|
|
1752
1811
|
all_dependencies = ["camel-ai[all]"]
|
|
@@ -1837,7 +1896,7 @@ class ChatAgent(BaseAgent):
|
|
|
1837
1896
|
"description": tool.get_function_description() or "",
|
|
1838
1897
|
"parameters": [
|
|
1839
1898
|
{"name": param_name, "type": str(param_type)}
|
|
1840
|
-
for param_name, param_type in tool.
|
|
1899
|
+
for param_name, param_type in tool.parameters.items()
|
|
1841
1900
|
],
|
|
1842
1901
|
}
|
|
1843
1902
|
return tool_info
|
|
@@ -125,6 +125,7 @@ class MCPAgent(ChatAgent):
|
|
|
125
125
|
local_config_path: Optional[str] = None,
|
|
126
126
|
tools: Optional[List[Union[FunctionTool, Callable]]] = None,
|
|
127
127
|
function_calling_available: bool = True,
|
|
128
|
+
strict: bool = False,
|
|
128
129
|
**kwargs,
|
|
129
130
|
):
|
|
130
131
|
if model is None:
|
|
@@ -144,6 +145,7 @@ class MCPAgent(ChatAgent):
|
|
|
144
145
|
|
|
145
146
|
self.local_config = local_config
|
|
146
147
|
self.function_calling_available = function_calling_available
|
|
148
|
+
self.strict = strict
|
|
147
149
|
|
|
148
150
|
if function_calling_available:
|
|
149
151
|
sys_msg_content = "You are a helpful assistant, and you prefer "
|
|
@@ -177,7 +179,7 @@ class MCPAgent(ChatAgent):
|
|
|
177
179
|
if self.local_config:
|
|
178
180
|
config_dict.update(self.local_config)
|
|
179
181
|
|
|
180
|
-
return MCPToolkit(config_dict=config_dict)
|
|
182
|
+
return MCPToolkit(config_dict=config_dict, strict=self.strict)
|
|
181
183
|
|
|
182
184
|
def add_registry(self, registry_config: BaseMCPRegistryConfig) -> None:
|
|
183
185
|
r"""Add a new registry configuration to the agent.
|
|
@@ -191,7 +193,7 @@ class MCPAgent(ChatAgent):
|
|
|
191
193
|
self.mcp_toolkit = self._initialize_mcp_toolkit()
|
|
192
194
|
|
|
193
195
|
# If already connected, reconnect to apply changes
|
|
194
|
-
if self.mcp_toolkit and self.mcp_toolkit.is_connected
|
|
196
|
+
if self.mcp_toolkit and self.mcp_toolkit.is_connected:
|
|
195
197
|
try:
|
|
196
198
|
asyncio.run(self.disconnect())
|
|
197
199
|
asyncio.run(self.connect())
|
|
@@ -211,6 +213,7 @@ class MCPAgent(ChatAgent):
|
|
|
211
213
|
] = None,
|
|
212
214
|
model: Optional[BaseModelBackend] = None,
|
|
213
215
|
function_calling_available: bool = False,
|
|
216
|
+
strict: bool = False,
|
|
214
217
|
**kwargs,
|
|
215
218
|
) -> "MCPAgent":
|
|
216
219
|
r"""Create and connect an MCPAgent instance.
|
|
@@ -276,6 +279,7 @@ class MCPAgent(ChatAgent):
|
|
|
276
279
|
registry_configs=final_registry_configs,
|
|
277
280
|
model=model,
|
|
278
281
|
function_calling_available=function_calling_available,
|
|
282
|
+
strict=strict,
|
|
279
283
|
**kwargs,
|
|
280
284
|
)
|
|
281
285
|
|
|
@@ -325,7 +329,7 @@ class MCPAgent(ChatAgent):
|
|
|
325
329
|
Returns:
|
|
326
330
|
ChatAgentResponse: The response from the agent.
|
|
327
331
|
"""
|
|
328
|
-
if self.mcp_toolkit and not self.mcp_toolkit.is_connected
|
|
332
|
+
if self.mcp_toolkit and not self.mcp_toolkit.is_connected:
|
|
329
333
|
await self.connect()
|
|
330
334
|
|
|
331
335
|
if self.function_calling_available:
|
|
@@ -378,14 +382,14 @@ class MCPAgent(ChatAgent):
|
|
|
378
382
|
if (
|
|
379
383
|
not isinstance(server_idx, int)
|
|
380
384
|
or server_idx < 0
|
|
381
|
-
or server_idx >= len(self.mcp_toolkit.
|
|
385
|
+
or server_idx >= len(self.mcp_toolkit.clients)
|
|
382
386
|
):
|
|
383
387
|
logger.warning(
|
|
384
388
|
f"Invalid server index: {server_idx}"
|
|
385
389
|
)
|
|
386
390
|
continue
|
|
387
391
|
|
|
388
|
-
server = self.mcp_toolkit.
|
|
392
|
+
server = self.mcp_toolkit.clients[server_idx]
|
|
389
393
|
result = await server.call_tool(tool_name, tool_args)
|
|
390
394
|
|
|
391
395
|
# Safely access content
|
|
@@ -431,7 +435,7 @@ class MCPAgent(ChatAgent):
|
|
|
431
435
|
# Use create_task and run with a future
|
|
432
436
|
coro = self.astep(input_message, *args, **kwargs)
|
|
433
437
|
future = asyncio.ensure_future(coro)
|
|
434
|
-
return asyncio.run_coroutine_threadsafe(future, loop).result()
|
|
438
|
+
return asyncio.run_coroutine_threadsafe(future, loop).result() # type: ignore [arg-type]
|
|
435
439
|
else:
|
|
436
440
|
# Safe to run normally
|
|
437
441
|
return asyncio.run(self.astep(input_message, *args, **kwargs))
|
|
@@ -16,6 +16,7 @@ from .anthropic_config import ANTHROPIC_API_PARAMS, AnthropicConfig
|
|
|
16
16
|
from .base_config import BaseConfig
|
|
17
17
|
from .bedrock_config import BEDROCK_API_PARAMS, BedrockConfig
|
|
18
18
|
from .cohere_config import COHERE_API_PARAMS, CohereConfig
|
|
19
|
+
from .crynux_config import CRYNUX_API_PARAMS, CrynuxConfig
|
|
19
20
|
from .deepseek_config import DEEPSEEK_API_PARAMS, DeepSeekConfig
|
|
20
21
|
from .gemini_config import Gemini_API_PARAMS, GeminiConfig
|
|
21
22
|
from .groq_config import GROQ_API_PARAMS, GroqConfig
|
|
@@ -112,4 +113,6 @@ __all__ = [
|
|
|
112
113
|
'LMStudioConfig',
|
|
113
114
|
'WatsonXConfig',
|
|
114
115
|
'WATSONX_API_PARAMS',
|
|
116
|
+
'CrynuxConfig',
|
|
117
|
+
'CRYNUX_API_PARAMS',
|
|
115
118
|
]
|
|
@@ -0,0 +1,94 @@
|
|
|
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, Optional, Sequence, Type, Union
|
|
17
|
+
|
|
18
|
+
from pydantic import BaseModel
|
|
19
|
+
|
|
20
|
+
from camel.configs.base_config import BaseConfig
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class CrynuxConfig(BaseConfig):
|
|
24
|
+
r"""Defines the parameters for generating chat completions using the
|
|
25
|
+
OpenAI API.
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
temperature (float, optional): Sampling temperature to use, between
|
|
29
|
+
:obj:`0` and :obj:`2`. Higher values make the output more random,
|
|
30
|
+
while lower values make it more focused and deterministic.
|
|
31
|
+
(default: :obj:`None`)
|
|
32
|
+
top_p (float, optional): An alternative to sampling with temperature,
|
|
33
|
+
called nucleus sampling, where the model considers the results of
|
|
34
|
+
the tokens with top_p probability mass. So :obj:`0.1` means only
|
|
35
|
+
the tokens comprising the top 10% probability mass are considered.
|
|
36
|
+
(default: :obj:`None`)
|
|
37
|
+
n (int, optional): How many chat completion choices to generate for
|
|
38
|
+
each input message. (default: :obj:`None`)
|
|
39
|
+
response_format (object, optional): An object specifying the format
|
|
40
|
+
that the model must output. Compatible with GPT-4 Turbo and all
|
|
41
|
+
GPT-3.5 Turbo models newer than gpt-3.5-turbo-1106. Setting to
|
|
42
|
+
{"type": "json_object"} enables JSON mode, which guarantees the
|
|
43
|
+
message the model generates is valid JSON. Important: when using
|
|
44
|
+
JSON mode, you must also instruct the model to produce JSON
|
|
45
|
+
yourself via a system or user message. Without this, the model
|
|
46
|
+
may generate an unending stream of whitespace until the generation
|
|
47
|
+
reaches the token limit, resulting in a long-running and seemingly
|
|
48
|
+
"stuck" request. Also note that the message content may be
|
|
49
|
+
partially cut off if finish_reason="length", which indicates the
|
|
50
|
+
generation exceeded max_tokens or the conversation exceeded the
|
|
51
|
+
max context length.
|
|
52
|
+
stream (bool, optional): If True, partial message deltas will be sent
|
|
53
|
+
as data-only server-sent events as they become available.
|
|
54
|
+
(default: :obj:`None`)
|
|
55
|
+
stop (str or list, optional): Up to :obj:`4` sequences where the API
|
|
56
|
+
will stop generating further tokens. (default: :obj:`None`)
|
|
57
|
+
max_tokens (int, optional): The maximum number of tokens to generate
|
|
58
|
+
in the chat completion. The total length of input tokens and
|
|
59
|
+
generated tokens is limited by the model's context length.
|
|
60
|
+
(default: :obj:`None`)
|
|
61
|
+
presence_penalty (float, optional): Number between :obj:`-2.0` and
|
|
62
|
+
:obj:`2.0`. Positive values penalize new tokens based on whether
|
|
63
|
+
they appear in the text so far, increasing the model's likelihood
|
|
64
|
+
to talk about new topics. See more information about frequency and
|
|
65
|
+
presence penalties. (default: :obj:`None`)
|
|
66
|
+
frequency_penalty (float, optional): Number between :obj:`-2.0` and
|
|
67
|
+
:obj:`2.0`. Positive values penalize new tokens based on their
|
|
68
|
+
existing frequency in the text so far, decreasing the model's
|
|
69
|
+
likelihood to repeat the same line verbatim. See more information
|
|
70
|
+
about frequency and presence penalties. (default: :obj:`None`)
|
|
71
|
+
logit_bias (dict, optional): Modify the likelihood of specified tokens
|
|
72
|
+
appearing in the completion. Accepts a json object that maps tokens
|
|
73
|
+
(specified by their token ID in the tokenizer) to an associated
|
|
74
|
+
bias value from :obj:`-100` to :obj:`100`. Mathematically, the bias
|
|
75
|
+
is added to the logits generated by the model prior to sampling.
|
|
76
|
+
The exact effect will vary per model, but values between:obj:` -1`
|
|
77
|
+
and :obj:`1` should decrease or increase likelihood of selection;
|
|
78
|
+
values like :obj:`-100` or :obj:`100` should result in a ban or
|
|
79
|
+
exclusive selection of the relevant token. (default: :obj:`None`)
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
temperature: Optional[float] = None
|
|
83
|
+
top_p: Optional[float] = None
|
|
84
|
+
n: Optional[int] = None
|
|
85
|
+
stream: Optional[bool] = None
|
|
86
|
+
stop: Optional[Union[str, Sequence[str]]] = None
|
|
87
|
+
max_tokens: Optional[int] = None
|
|
88
|
+
presence_penalty: Optional[float] = None
|
|
89
|
+
response_format: Optional[Union[Type[BaseModel], Dict]] = None
|
|
90
|
+
frequency_penalty: Optional[float] = None
|
|
91
|
+
logit_bias: Optional[Dict] = None
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
CRYNUX_API_PARAMS = {param for param in CrynuxConfig.model_fields.keys()}
|
{camel_ai-0.2.61/camel/data_collector → camel_ai-0.2.64/camel/data_collectors}/alpaca_collector.py
RENAMED
|
@@ -17,7 +17,7 @@ from typing import Any, Dict, List, Optional, Union
|
|
|
17
17
|
from typing_extensions import Self
|
|
18
18
|
|
|
19
19
|
from camel.agents import ChatAgent
|
|
20
|
-
from camel.
|
|
20
|
+
from camel.data_collectors.base import BaseDataCollector
|
|
21
21
|
from camel.messages import AlpacaItem, BaseMessage
|
|
22
22
|
from camel.schemas import OpenAISchemaConverter
|
|
23
23
|
|
{camel_ai-0.2.61/camel/data_collector → camel_ai-0.2.64/camel/data_collectors}/sharegpt_collector.py
RENAMED
|
@@ -19,7 +19,7 @@ from pydantic import BaseModel
|
|
|
19
19
|
from typing_extensions import Self
|
|
20
20
|
|
|
21
21
|
from camel.agents import ChatAgent
|
|
22
|
-
from camel.
|
|
22
|
+
from camel.data_collectors.base import BaseDataCollector
|
|
23
23
|
from camel.messages import BaseMessage
|
|
24
24
|
from camel.messages.conversion.conversation_models import (
|
|
25
25
|
ShareGPTConversation,
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# limitations under the License.
|
|
13
13
|
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
from abc import ABC, abstractmethod
|
|
15
|
-
from typing import Any, Dict, List
|
|
15
|
+
from typing import Any, Dict, List, Tuple, Union
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
class BaseInterpreter(ABC):
|
|
@@ -47,3 +47,16 @@ class BaseInterpreter(ABC):
|
|
|
47
47
|
def update_action_space(self, action_space: Dict[str, Any]) -> None:
|
|
48
48
|
r"""Updates action space for *python* interpreter"""
|
|
49
49
|
pass
|
|
50
|
+
|
|
51
|
+
@abstractmethod
|
|
52
|
+
def execute_command(self, command: str) -> Union[str, Tuple[str, str]]:
|
|
53
|
+
r"""Executes a command in the interpreter.
|
|
54
|
+
|
|
55
|
+
Args:
|
|
56
|
+
command (str): The command to execute.
|
|
57
|
+
|
|
58
|
+
Returns:
|
|
59
|
+
Tuple[str, str]: A tuple containing the stdout and stderr of the
|
|
60
|
+
command execution.
|
|
61
|
+
"""
|
|
62
|
+
pass
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# syntax=docker/dockerfile:1
|
|
2
|
+
|
|
3
|
+
FROM ubuntu:22.04
|
|
4
|
+
|
|
5
|
+
# Set environment variable to avoid interactive prompts
|
|
6
|
+
ENV DEBIAN_FRONTEND=noninteractive
|
|
7
|
+
|
|
8
|
+
# Update and install base utilities
|
|
9
|
+
RUN apt-get update && apt-get install -y \
|
|
10
|
+
build-essential \
|
|
11
|
+
software-properties-common \
|
|
12
|
+
curl \
|
|
13
|
+
wget \
|
|
14
|
+
git \
|
|
15
|
+
git-lfs \
|
|
16
|
+
netcat \
|
|
17
|
+
sudo \
|
|
18
|
+
tzdata \
|
|
19
|
+
&& rm -rf /var/lib/apt/lists/* \
|
|
20
|
+
&& apt-get clean \
|
|
21
|
+
&& apt-get autoremove -y
|
|
22
|
+
|
|
23
|
+
# Install Python 3.10 and its dependencies
|
|
24
|
+
RUN add-apt-repository ppa:deadsnakes/ppa && \
|
|
25
|
+
apt-get update && \
|
|
26
|
+
apt-get install -y \
|
|
27
|
+
python3.10 \
|
|
28
|
+
python3.10-venv \
|
|
29
|
+
python3.10-dev \
|
|
30
|
+
python3.10-distutils \
|
|
31
|
+
python3-pip \
|
|
32
|
+
&& ln -s /usr/bin/python3.10 /usr/bin/python \
|
|
33
|
+
&& rm -rf /var/lib/apt/lists/* \
|
|
34
|
+
&& apt-get clean \
|
|
35
|
+
&& apt-get autoremove -y
|
|
36
|
+
|
|
37
|
+
# Install R
|
|
38
|
+
RUN apt-get update && \
|
|
39
|
+
apt-get install -y r-base && \
|
|
40
|
+
rm -rf /var/lib/apt/lists/* && \
|
|
41
|
+
apt-get clean && \
|
|
42
|
+
apt-get autoremove -y
|
|
43
|
+
|
|
44
|
+
# Install NodeJS 22.x
|
|
45
|
+
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \
|
|
46
|
+
apt-get install -y nodejs && \
|
|
47
|
+
rm -rf /var/lib/apt/lists/* && \
|
|
48
|
+
apt-get clean && \
|
|
49
|
+
apt-get autoremove -y
|
|
50
|
+
|
|
51
|
+
# Install Poetry
|
|
52
|
+
RUN curl -fsSL https://install.python-poetry.org | python3.10 - && \
|
|
53
|
+
ln -s ~/.local/bin/poetry /usr/local/bin/poetry
|
|
54
|
+
|
|
55
|
+
# Upgrade pip and install base Python packages
|
|
56
|
+
RUN python3.10 -m pip install --upgrade pip setuptools wheel
|
|
57
|
+
|
|
58
|
+
# Install uv
|
|
59
|
+
RUN curl -LsSf https://astral.sh/uv/install.sh | sh && \
|
|
60
|
+
mv /root/.local/bin/uv /usr/local/bin/uv && \
|
|
61
|
+
mv /root/.local/bin/uvx /usr/local/bin/uvx && \
|
|
62
|
+
chmod +x /usr/local/bin/uv /usr/local/bin/uvx
|
|
63
|
+
|
|
64
|
+
# Setup working directory
|
|
65
|
+
WORKDIR /workspace
|
|
66
|
+
|
|
67
|
+
# Set default shell
|
|
68
|
+
CMD ["/bin/bash"]
|