camel-ai 0.2.74a0__tar.gz → 0.2.74a4__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.
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/PKG-INFO +2 -1
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/__init__.py +1 -1
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/societies/workforce/prompts.py +3 -19
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/societies/workforce/workforce.py +13 -8
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/search_toolkit.py +78 -29
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/terminal_toolkit.py +12 -2
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/pyproject.toml +2 -1
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/.gitignore +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/LICENSE +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/README.md +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/_types.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/_utils.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/chat_agent.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/critic_agent.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/deductive_reasoner_agent.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/embodied_agent.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/knowledge_graph_agent.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/mcp_agent.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/multi_hop_generator_agent.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/programmed_agent_instruction.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/repo_agent.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/role_assignment_agent.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/search_agent.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/task_agent.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/tool_agents/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/tool_agents/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/agents/tool_agents/hugging_face_tool_agent.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/benchmarks/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/benchmarks/apibank.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/benchmarks/apibench.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/benchmarks/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/benchmarks/browsecomp.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/benchmarks/gaia.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/benchmarks/mock_website/README.md +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/benchmarks/mock_website/mock_web.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/benchmarks/mock_website/requirements.txt +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/benchmarks/mock_website/shopping_mall/app.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/benchmarks/mock_website/task.json +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/benchmarks/nexus.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/benchmarks/ragbench.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/bots/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/bots/discord/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/bots/discord/discord_app.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/bots/discord/discord_installation.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/bots/discord/discord_store.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/bots/slack/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/bots/slack/models.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/bots/slack/slack_app.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/bots/telegram_bot.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/aiml_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/anthropic_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/base_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/bedrock_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/cohere_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/crynux_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/deepseek_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/gemini_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/groq_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/internlm_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/litellm_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/lmstudio_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/mistral_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/modelscope_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/moonshot_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/netmind_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/novita_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/nvidia_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/ollama_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/openai_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/openrouter_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/ppio_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/qianfan_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/qwen_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/reka_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/samba_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/sglang_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/siliconflow_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/togetherai_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/vllm_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/watsonx_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/yi_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/configs/zhipuai_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/data_collectors/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/data_collectors/alpaca_collector.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/data_collectors/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/data_collectors/sharegpt_collector.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/cot_datagen.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/evol_instruct/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/evol_instruct/evol_instruct.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/evol_instruct/scorer.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/evol_instruct/templates.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/self_improving_cot.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/self_instruct/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/self_instruct/filter/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/self_instruct/filter/filter_function.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/self_instruct/filter/filter_registry.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/self_instruct/filter/instruction_filter.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/self_instruct/self_instruct.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/self_instruct/templates.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/source2synth/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/source2synth/data_processor.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/source2synth/models.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datagen/source2synth/user_data_processor_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datahubs/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datahubs/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datahubs/huggingface.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datahubs/models.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datasets/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datasets/base_generator.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datasets/few_shot_generator.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datasets/models.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datasets/self_instruct_generator.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/datasets/static_dataset.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/embeddings/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/embeddings/azure_embedding.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/embeddings/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/embeddings/gemini_embedding.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/embeddings/jina_embedding.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/embeddings/mistral_embedding.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/embeddings/openai_compatible_embedding.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/embeddings/openai_embedding.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/embeddings/sentence_transformers_embeddings.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/embeddings/together_embedding.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/embeddings/vlm_embedding.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/environments/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/environments/models.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/environments/multi_step.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/environments/rlcards_env.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/environments/single_step.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/environments/tic_tac_toe.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/extractors/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/extractors/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/extractors/python_strategies.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/generators.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/human.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/interpreters/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/interpreters/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/interpreters/docker/Dockerfile +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/interpreters/docker_interpreter.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/interpreters/e2b_interpreter.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/interpreters/internal_python_interpreter.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/interpreters/interpreter_error.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/interpreters/ipython_interpreter.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/interpreters/subprocess_interpreter.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/loaders/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/loaders/apify_reader.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/loaders/base_io.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/loaders/base_loader.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/loaders/chunkr_reader.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/loaders/crawl4ai_reader.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/loaders/firecrawl_reader.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/loaders/jina_url_reader.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/loaders/markitdown.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/loaders/mineru_extractor.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/loaders/mistral_reader.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/loaders/pandas_reader.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/loaders/scrapegraph_reader.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/loaders/unstructured_io.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/logger.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/memories/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/memories/agent_memories.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/memories/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/memories/blocks/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/memories/blocks/chat_history_block.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/memories/blocks/vectordb_block.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/memories/context_creators/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/memories/context_creators/score_based.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/memories/records.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/messages/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/messages/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/messages/conversion/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/messages/conversion/alpaca.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/messages/conversion/conversation_models.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/messages/conversion/sharegpt/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/messages/conversion/sharegpt/function_call_formatter.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/messages/conversion/sharegpt/hermes/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/messages/func_message.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/_utils.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/aiml_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/anthropic_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/aws_bedrock_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/azure_openai_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/base_audio_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/base_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/cohere_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/crynux_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/deepseek_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/fish_audio_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/gemini_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/groq_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/internlm_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/litellm_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/lmstudio_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/mistral_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/model_factory.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/model_manager.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/modelscope_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/moonshot_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/nemotron_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/netmind_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/novita_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/nvidia_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/ollama_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/openai_audio_models.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/openai_compatible_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/openai_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/openrouter_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/ppio_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/qianfan_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/qwen_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/reka_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/reward/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/reward/base_reward_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/reward/evaluator.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/reward/nemotron_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/reward/skywork_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/samba_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/sglang_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/siliconflow_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/stub_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/togetherai_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/vllm_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/volcano_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/watsonx_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/yi_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/models/zhipuai_model.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/personas/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/personas/persona.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/personas/persona_hub.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/ai_society.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/code.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/evaluation.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/generate_text_embedding_data.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/image_craft.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/misalignment.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/multi_condition_image_craft.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/object_recognition.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/persona_hub.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/prompt_templates.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/role_description_prompt_template.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/solution_extraction.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/task_prompt_template.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/translation.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/prompts/video_description_prompt.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/py.typed +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/responses/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/responses/agent_responses.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/retrievers/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/retrievers/auto_retriever.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/retrievers/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/retrievers/bm25_retriever.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/retrievers/cohere_rerank_retriever.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/retrievers/hybrid_retrival.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/retrievers/vector_retriever.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/runtimes/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/runtimes/api.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/runtimes/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/runtimes/configs.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/runtimes/daytona_runtime.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/runtimes/docker_runtime.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/runtimes/llm_guard_runtime.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/runtimes/remote_http_runtime.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/runtimes/ubuntu_docker_runtime.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/runtimes/utils/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/runtimes/utils/function_risk_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/runtimes/utils/ignore_risk_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/schemas/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/schemas/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/schemas/openai_converter.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/schemas/outlines_converter.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/services/agent_openapi_server.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/societies/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/societies/babyagi_playing.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/societies/role_playing.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/societies/workforce/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/societies/workforce/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/societies/workforce/role_playing_worker.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/societies/workforce/single_agent_worker.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/societies/workforce/structured_output_handler.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/societies/workforce/task_channel.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/societies/workforce/utils.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/societies/workforce/worker.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/societies/workforce/workforce_logger.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/graph_storages/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/graph_storages/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/graph_storages/graph_element.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/graph_storages/nebula_graph.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/graph_storages/neo4j_graph.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/key_value_storages/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/key_value_storages/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/key_value_storages/in_memory.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/key_value_storages/json.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/key_value_storages/mem0_cloud.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/key_value_storages/redis.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/object_storages/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/object_storages/amazon_s3.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/object_storages/azure_blob.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/object_storages/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/object_storages/google_cloud.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/vectordb_storages/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/vectordb_storages/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/vectordb_storages/chroma.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/vectordb_storages/faiss.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/vectordb_storages/milvus.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/vectordb_storages/oceanbase.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/vectordb_storages/pgvector.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/vectordb_storages/qdrant.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/vectordb_storages/surreal.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/vectordb_storages/tidb.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/storages/vectordb_storages/weaviate.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/tasks/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/tasks/task.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/tasks/task_prompt.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/terminators/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/terminators/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/terminators/response_terminator.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/terminators/token_limit_terminator.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/aci_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/arxiv_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/ask_news_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/async_browser_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/audio_analysis_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/bohrium_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/browser_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/browser_toolkit_commons.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/code_execution.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/craw4ai_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/dappier_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/data_commons_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/edgeone_pages_mcp_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/excel_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/file_write_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/function_tool.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/github_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/google_calendar_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/google_drive_mcp_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/google_maps_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/google_scholar_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/human_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit/config_loader.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit/ts/package-lock.json +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit/ts/package.json +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit/ts/src/browser-scripts.js +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit/ts/src/browser-session.ts +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit/ts/src/index.ts +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit/ts/src/types.ts +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit/ts/tsconfig.json +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit/ts/websocket-server.js +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit_py/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit_py/actions.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit_py/agent.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit_py/browser_session.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit_py/config_loader.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit_py/snapshot.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit_py/stealth_script.js +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/hybrid_browser_toolkit_py/unified_analyzer.js +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/image_analysis_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/jina_reranker_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/klavis_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/linkedin_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/markitdown_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/math_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/mcp_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/memory_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/meshy_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/message_agent_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/message_integration.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/mineru_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/networkx_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/note_taking_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/notion_mcp_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/notion_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/biztoc/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/biztoc/ai-plugin.json +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/biztoc/openapi.yaml +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/coursera/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/coursera/openapi.yaml +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/create_qr_code/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/create_qr_code/openapi.yaml +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/klarna/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/klarna/openapi.yaml +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/nasa_apod/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/nasa_apod/openapi.yaml +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/outschool/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/outschool/ai-plugin.json +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/outschool/openapi.yaml +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/outschool/paths/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/outschool/paths/get_classes.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/security_config.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/speak/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/speak/openapi.yaml +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/web_scraper/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/web_scraper/openapi.yaml +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/open_api_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/openai_agent_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/openai_image_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/openbb_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/origene_mcp_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/page_script.js +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/playwright_mcp_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/pptx_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/pubmed_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/pulse_mcp_search_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/pyautogui_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/reddit_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/retrieval_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/screenshot_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/searxng_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/semantic_scholar_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/slack_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/stripe_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/sympy_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/task_planning_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/thinking_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/twitter_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/video_analysis_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/video_download_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/weather_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/web_deploy_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/whatsapp_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/wolfram_alpha_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/toolkits/zapier_toolkit.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/types/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/types/agents/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/types/agents/tool_calling_record.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/types/enums.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/types/mcp_registries.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/types/openai_types.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/types/unified_model_type.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/async_func.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/chunker/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/chunker/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/chunker/code_chunker.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/chunker/uio_chunker.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/commons.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/constants.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/deduplication.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/filename.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/langfuse.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/mcp.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/mcp_client.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/message_summarizer.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/response_format.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/token_counting.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/utils/tool_result.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/verifiers/__init__.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/verifiers/base.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/verifiers/math_verifier.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/verifiers/models.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/verifiers/physics_verifier.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/camel/verifiers/python_verifier.py +0 -0
- {camel_ai-0.2.74a0 → camel_ai-0.2.74a4}/hatch_build_npm.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.74a4
|
|
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
|
|
@@ -254,6 +254,7 @@ Requires-Dist: python-pptx>=1.0.2; extra == 'eigent'
|
|
|
254
254
|
Requires-Dist: reportlab>=4.4.2; extra == 'eigent'
|
|
255
255
|
Requires-Dist: requests-oauthlib<2,>=1.3.1; extra == 'eigent'
|
|
256
256
|
Requires-Dist: scenedetect>=0.6.5.2; extra == 'eigent'
|
|
257
|
+
Requires-Dist: slack-sdk<4,>=3.27.2; extra == 'eigent'
|
|
257
258
|
Requires-Dist: tabulate>=0.9.0; extra == 'eigent'
|
|
258
259
|
Requires-Dist: websockets<15.1,>=13.0; extra == 'eigent'
|
|
259
260
|
Requires-Dist: wikipedia<2,>=1; extra == 'eigent'
|
|
@@ -198,10 +198,9 @@ Now you should summarize the scenario and return the result of the task.
|
|
|
198
198
|
|
|
199
199
|
TASK_DECOMPOSE_PROMPT = r"""You need to either decompose a complex task or enhance a simple one, following these important principles to maximize efficiency and clarity for the executing agents:
|
|
200
200
|
|
|
201
|
-
0. **
|
|
202
|
-
* **If the task is
|
|
203
|
-
*
|
|
204
|
-
* **Only decompose if a task is truly complex**: A task is complex if it involves multiple distinct steps, requires different worker skills, or can be significantly sped up by running parts in parallel.
|
|
201
|
+
0. **Analyze Task Complexity**: First, evaluate if the task is a single, straightforward action or a complex one.
|
|
202
|
+
* **If the task is complex or could be decomposed into multiple subtasks run in parallel, decompose it.** A task is considered complex if it involves multiple distinct steps, requires different skills, or can be significantly sped up by running parts in parallel.
|
|
203
|
+
* **If the task is simple, do not decompose it.** Instead, **rewrite and enhance** it to produce a high-quality task with a clear, specific deliverable.
|
|
205
204
|
|
|
206
205
|
1. **Self-Contained Subtasks** (if decomposing): This is critical principle. Each subtask's description **must be fully self-sufficient and independently understandable**. The agent executing the subtask has **no knowledge** of the parent task, other subtasks, or the overall workflow.
|
|
207
206
|
* **DO NOT** use relative references like "the first task," "the paper mentioned above," or "the result from the previous step."
|
|
@@ -230,21 +229,6 @@ These principles aim to reduce overall completion time by maximizing concurrent
|
|
|
230
229
|
|
|
231
230
|
**EXAMPLE FORMAT ONLY** (DO NOT use this example content for actual task decomposition):
|
|
232
231
|
|
|
233
|
-
***
|
|
234
|
-
**Example 0: Simple Task (Enhance, Don't Decompose)**
|
|
235
|
-
|
|
236
|
-
* **Overall Task**: "Generate a report about camel-ai"
|
|
237
|
-
* **Available Workers**:
|
|
238
|
-
* `DocumentAgent`: A worker that can read documents and write summaries.
|
|
239
|
-
* **Correct Output**:
|
|
240
|
-
```xml
|
|
241
|
-
<tasks>
|
|
242
|
-
<task>Generate a comprehensive, well-structured report about camel-ai as one HTML file</task>
|
|
243
|
-
</tasks>
|
|
244
|
-
```
|
|
245
|
-
* **Reasoning**: The original task is simple but its details are vague. It is **enhanced** by consolidating all given details (output format, content focus) into a single, precise, and self-contained instruction. This follows the "Enhance Simple Tasks" principle and does not invent new information.
|
|
246
|
-
***
|
|
247
|
-
|
|
248
232
|
***
|
|
249
233
|
**Example 1: Sequential Task for a Single Worker**
|
|
250
234
|
|
|
@@ -84,7 +84,7 @@ logger = get_logger(__name__)
|
|
|
84
84
|
# Constants for configuration values
|
|
85
85
|
MAX_TASK_RETRIES = 3
|
|
86
86
|
MAX_PENDING_TASKS_LIMIT = 20
|
|
87
|
-
TASK_TIMEOUT_SECONDS =
|
|
87
|
+
TASK_TIMEOUT_SECONDS = 480.0
|
|
88
88
|
DEFAULT_WORKER_POOL_SIZE = 10
|
|
89
89
|
|
|
90
90
|
|
|
@@ -163,6 +163,11 @@ class Workforce(BaseNode):
|
|
|
163
163
|
for graceful shutdown when a task fails 3 times. During this
|
|
164
164
|
period, the workforce remains active for debugging.
|
|
165
165
|
Set to 0 for immediate shutdown. (default: :obj:`15.0`)
|
|
166
|
+
task_timeout_seconds (Optional[float], optional): The timeout in
|
|
167
|
+
seconds for waiting for tasks to be returned by workers. If None,
|
|
168
|
+
uses the global TASK_TIMEOUT_SECONDS value (600.0 seconds).
|
|
169
|
+
Increase this value for tasks that require more processing time.
|
|
170
|
+
(default: :obj:`None`)
|
|
166
171
|
share_memory (bool, optional): Whether to enable shared memory across
|
|
167
172
|
SingleAgentWorker instances in the workforce. When enabled, all
|
|
168
173
|
SingleAgentWorker instances, coordinator agent, and task planning
|
|
@@ -231,6 +236,7 @@ class Workforce(BaseNode):
|
|
|
231
236
|
graceful_shutdown_timeout: float = 15.0,
|
|
232
237
|
share_memory: bool = False,
|
|
233
238
|
use_structured_output_handler: bool = True,
|
|
239
|
+
task_timeout_seconds: Optional[float] = None,
|
|
234
240
|
) -> None:
|
|
235
241
|
super().__init__(description)
|
|
236
242
|
self._child_listening_tasks: Deque[
|
|
@@ -241,6 +247,9 @@ class Workforce(BaseNode):
|
|
|
241
247
|
self.graceful_shutdown_timeout = graceful_shutdown_timeout
|
|
242
248
|
self.share_memory = share_memory
|
|
243
249
|
self.use_structured_output_handler = use_structured_output_handler
|
|
250
|
+
self.task_timeout_seconds = (
|
|
251
|
+
task_timeout_seconds or TASK_TIMEOUT_SECONDS
|
|
252
|
+
)
|
|
244
253
|
if self.use_structured_output_handler:
|
|
245
254
|
self.structured_handler = StructuredOutputHandler()
|
|
246
255
|
self.metrics_logger = WorkforceLogger(workforce_id=self.node_id)
|
|
@@ -343,12 +352,7 @@ class Workforce(BaseNode):
|
|
|
343
352
|
# Set up task agent with default system message and required tools
|
|
344
353
|
task_sys_msg = BaseMessage.make_assistant_message(
|
|
345
354
|
role_name="Task Planner",
|
|
346
|
-
content="You are going to
|
|
347
|
-
"tasks that are sequential and require the same type of "
|
|
348
|
-
"agent together in one agent process. Only decompose tasks "
|
|
349
|
-
"that can be handled in parallel and require different types "
|
|
350
|
-
"of agents. This ensures efficient execution by minimizing "
|
|
351
|
-
"context switching between agents.",
|
|
355
|
+
content="You are going to handle tasks.",
|
|
352
356
|
)
|
|
353
357
|
task_planning_tools = TaskPlanningToolkit().get_tools()
|
|
354
358
|
|
|
@@ -2311,7 +2315,7 @@ class Workforce(BaseNode):
|
|
|
2311
2315
|
# Add timeout to prevent indefinite waiting
|
|
2312
2316
|
return await asyncio.wait_for(
|
|
2313
2317
|
self._channel.get_returned_task_by_publisher(self.node_id),
|
|
2314
|
-
timeout=
|
|
2318
|
+
timeout=self.task_timeout_seconds,
|
|
2315
2319
|
)
|
|
2316
2320
|
except Exception as e:
|
|
2317
2321
|
error_msg = (
|
|
@@ -3066,6 +3070,7 @@ class Workforce(BaseNode):
|
|
|
3066
3070
|
graceful_shutdown_timeout=self.graceful_shutdown_timeout,
|
|
3067
3071
|
share_memory=self.share_memory,
|
|
3068
3072
|
use_structured_output_handler=self.use_structured_output_handler,
|
|
3073
|
+
task_timeout_seconds=self.task_timeout_seconds,
|
|
3069
3074
|
)
|
|
3070
3075
|
|
|
3071
3076
|
for child in self._children:
|
|
@@ -35,24 +35,19 @@ class SearchToolkit(BaseToolkit):
|
|
|
35
35
|
def __init__(
|
|
36
36
|
self,
|
|
37
37
|
timeout: Optional[float] = None,
|
|
38
|
-
number_of_result_pages: int = 10,
|
|
39
38
|
exclude_domains: Optional[List[str]] = None,
|
|
40
39
|
):
|
|
41
|
-
r"""Initializes the
|
|
42
|
-
and delay.
|
|
40
|
+
r"""Initializes the SearchToolkit.
|
|
43
41
|
|
|
44
42
|
Args:
|
|
45
43
|
timeout (float): Timeout for API requests in seconds.
|
|
46
44
|
(default: :obj:`None`)
|
|
47
|
-
number_of_result_pages (int): The number of result pages to
|
|
48
|
-
retrieve. (default: :obj:`10`)
|
|
49
45
|
exclude_domains (Optional[List[str]]): List of domains to
|
|
50
46
|
exclude from search results. Currently only supported
|
|
51
47
|
by the `search_google` function.
|
|
52
48
|
(default: :obj:`None`)
|
|
53
49
|
"""
|
|
54
50
|
super().__init__(timeout=timeout)
|
|
55
|
-
self.number_of_result_pages = number_of_result_pages
|
|
56
51
|
self.exclude_domains = exclude_domains
|
|
57
52
|
|
|
58
53
|
@dependencies_required("wikipedia")
|
|
@@ -167,7 +162,10 @@ class SearchToolkit(BaseToolkit):
|
|
|
167
162
|
|
|
168
163
|
@dependencies_required("duckduckgo_search")
|
|
169
164
|
def search_duckduckgo(
|
|
170
|
-
self,
|
|
165
|
+
self,
|
|
166
|
+
query: str,
|
|
167
|
+
source: str = "text",
|
|
168
|
+
number_of_result_pages: int = 10,
|
|
171
169
|
) -> List[Dict[str, Any]]:
|
|
172
170
|
r"""Use DuckDuckGo search engine to search information for
|
|
173
171
|
the given query.
|
|
@@ -180,6 +178,10 @@ class SearchToolkit(BaseToolkit):
|
|
|
180
178
|
query (str): The query to be searched.
|
|
181
179
|
source (str): The type of information to query (e.g., "text",
|
|
182
180
|
"images", "videos"). Defaults to "text".
|
|
181
|
+
number_of_result_pages (int): The number of result pages to
|
|
182
|
+
retrieve. Adjust this based on your task - use fewer results
|
|
183
|
+
for focused searches and more for comprehensive searches.
|
|
184
|
+
(default: :obj:`10`)
|
|
183
185
|
|
|
184
186
|
Returns:
|
|
185
187
|
List[Dict[str, Any]]: A list of dictionaries where each dictionary
|
|
@@ -194,7 +196,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
194
196
|
if source == "text":
|
|
195
197
|
try:
|
|
196
198
|
results = ddgs.text(
|
|
197
|
-
keywords=query, max_results=
|
|
199
|
+
keywords=query, max_results=number_of_result_pages
|
|
198
200
|
)
|
|
199
201
|
except RequestException as e:
|
|
200
202
|
# Handle specific exceptions or general request exceptions
|
|
@@ -214,7 +216,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
214
216
|
elif source == "images":
|
|
215
217
|
try:
|
|
216
218
|
results = ddgs.images(
|
|
217
|
-
keywords=query, max_results=
|
|
219
|
+
keywords=query, max_results=number_of_result_pages
|
|
218
220
|
)
|
|
219
221
|
except RequestException as e:
|
|
220
222
|
# Handle specific exceptions or general request exceptions
|
|
@@ -235,7 +237,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
235
237
|
elif source == "videos":
|
|
236
238
|
try:
|
|
237
239
|
results = ddgs.videos(
|
|
238
|
-
keywords=query, max_results=
|
|
240
|
+
keywords=query, max_results=number_of_result_pages
|
|
239
241
|
)
|
|
240
242
|
except RequestException as e:
|
|
241
243
|
# Handle specific exceptions or general request exceptions
|
|
@@ -279,6 +281,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
279
281
|
units: Optional[str] = None,
|
|
280
282
|
extra_snippets: Optional[bool] = None,
|
|
281
283
|
summary: Optional[bool] = None,
|
|
284
|
+
number_of_result_pages: int = 10,
|
|
282
285
|
) -> Dict[str, Any]:
|
|
283
286
|
r"""This function queries the Brave search engine API and returns a
|
|
284
287
|
dictionary, representing a search result.
|
|
@@ -365,6 +368,10 @@ class SearchToolkit(BaseToolkit):
|
|
|
365
368
|
summary (Optional[bool]): This parameter enables summary key
|
|
366
369
|
generation in web search results. This is required for
|
|
367
370
|
summarizer to be enabled.
|
|
371
|
+
number_of_result_pages (int): The number of result pages to
|
|
372
|
+
retrieve. Adjust this based on your task - use fewer results
|
|
373
|
+
for focused searches and more for comprehensive searches.
|
|
374
|
+
(default: :obj:`10`)
|
|
368
375
|
|
|
369
376
|
Returns:
|
|
370
377
|
Dict[str, Any]: A dictionary representing a search result.
|
|
@@ -391,7 +398,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
391
398
|
"country": country,
|
|
392
399
|
"search_lang": search_lang,
|
|
393
400
|
"ui_lang": ui_lang,
|
|
394
|
-
"count":
|
|
401
|
+
"count": number_of_result_pages,
|
|
395
402
|
"offset": offset,
|
|
396
403
|
"safesearch": safesearch,
|
|
397
404
|
"freshness": freshness,
|
|
@@ -444,6 +451,8 @@ class SearchToolkit(BaseToolkit):
|
|
|
444
451
|
self,
|
|
445
452
|
query: str,
|
|
446
453
|
search_type: str = "web",
|
|
454
|
+
number_of_result_pages: int = 10,
|
|
455
|
+
start_page: int = 1,
|
|
447
456
|
) -> List[Dict[str, Any]]:
|
|
448
457
|
r"""Use Google search engine to search information for the given query.
|
|
449
458
|
|
|
@@ -451,6 +460,15 @@ class SearchToolkit(BaseToolkit):
|
|
|
451
460
|
query (str): The query to be searched.
|
|
452
461
|
search_type (str): The type of search to perform. Either "web" for
|
|
453
462
|
web pages or "image" for image search. (default: "web")
|
|
463
|
+
number_of_result_pages (int): The number of result pages to
|
|
464
|
+
retrieve. Adjust this based on your task - use fewer results
|
|
465
|
+
for focused searches and more for comprehensive searches.
|
|
466
|
+
(default: :obj:`10`)
|
|
467
|
+
start_page (int): The result page to start from. Use this for
|
|
468
|
+
pagination - e.g., start_page=1 for results 1-10,
|
|
469
|
+
start_page=11 for results 11-20, etc. This allows agents to
|
|
470
|
+
check initial results and continue searching if needed.
|
|
471
|
+
(default: :obj:`1`)
|
|
454
472
|
|
|
455
473
|
Returns:
|
|
456
474
|
List[Dict[str, Any]]: A list of dictionaries where each dictionary
|
|
@@ -503,8 +521,8 @@ class SearchToolkit(BaseToolkit):
|
|
|
503
521
|
# https://cse.google.com/cse/all
|
|
504
522
|
SEARCH_ENGINE_ID = os.getenv("SEARCH_ENGINE_ID")
|
|
505
523
|
|
|
506
|
-
# Using the
|
|
507
|
-
start_page_idx =
|
|
524
|
+
# Using the specified start page
|
|
525
|
+
start_page_idx = start_page
|
|
508
526
|
# Different language may get different result
|
|
509
527
|
search_language = "en"
|
|
510
528
|
|
|
@@ -522,7 +540,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
522
540
|
base_url = (
|
|
523
541
|
f"https://www.googleapis.com/customsearch/v1?"
|
|
524
542
|
f"key={GOOGLE_API_KEY}&cx={SEARCH_ENGINE_ID}&q={modified_query}&start="
|
|
525
|
-
f"{start_page_idx}&lr={search_language}&num={
|
|
543
|
+
f"{start_page_idx}&lr={search_language}&num={number_of_result_pages}"
|
|
526
544
|
)
|
|
527
545
|
|
|
528
546
|
# Add searchType parameter for image search
|
|
@@ -620,11 +638,17 @@ class SearchToolkit(BaseToolkit):
|
|
|
620
638
|
responses.append({"error": f"google search failed: {e!s}"})
|
|
621
639
|
return responses
|
|
622
640
|
|
|
623
|
-
def tavily_search(
|
|
641
|
+
def tavily_search(
|
|
642
|
+
self, query: str, number_of_result_pages: int = 10, **kwargs
|
|
643
|
+
) -> List[Dict[str, Any]]:
|
|
624
644
|
r"""Use Tavily Search API to search information for the given query.
|
|
625
645
|
|
|
626
646
|
Args:
|
|
627
647
|
query (str): The query to be searched.
|
|
648
|
+
number_of_result_pages (int): The number of result pages to
|
|
649
|
+
retrieve. Adjust this based on your task - use fewer results
|
|
650
|
+
for focused searches and more for comprehensive searches.
|
|
651
|
+
(default: :obj:`10`)
|
|
628
652
|
**kwargs: Additional optional parameters supported by Tavily's API:
|
|
629
653
|
- search_depth (str): "basic" or "advanced" search depth.
|
|
630
654
|
- topic (str): The search category, e.g., "general" or "news."
|
|
@@ -661,7 +685,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
661
685
|
|
|
662
686
|
try:
|
|
663
687
|
results = client.search(
|
|
664
|
-
query, max_results=
|
|
688
|
+
query, max_results=number_of_result_pages, **kwargs
|
|
665
689
|
)
|
|
666
690
|
return results
|
|
667
691
|
except Exception as e:
|
|
@@ -674,6 +698,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
674
698
|
freshness: str = "noLimit",
|
|
675
699
|
summary: bool = False,
|
|
676
700
|
page: int = 1,
|
|
701
|
+
number_of_result_pages: int = 10,
|
|
677
702
|
) -> Dict[str, Any]:
|
|
678
703
|
r"""Query the Bocha AI search API and return search results.
|
|
679
704
|
|
|
@@ -689,6 +714,10 @@ class SearchToolkit(BaseToolkit):
|
|
|
689
714
|
summary (bool): Whether to include text summaries in results.
|
|
690
715
|
Default is False.
|
|
691
716
|
page (int): Page number of results. Default is 1.
|
|
717
|
+
number_of_result_pages (int): The number of result pages to
|
|
718
|
+
retrieve. Adjust this based on your task - use fewer results
|
|
719
|
+
for focused searches and more for comprehensive searches.
|
|
720
|
+
(default: :obj:`10`)
|
|
692
721
|
|
|
693
722
|
Returns:
|
|
694
723
|
Dict[str, Any]: A dictionary containing search results, including
|
|
@@ -710,7 +739,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
710
739
|
"query": query,
|
|
711
740
|
"freshness": freshness,
|
|
712
741
|
"summary": summary,
|
|
713
|
-
"count":
|
|
742
|
+
"count": number_of_result_pages,
|
|
714
743
|
"page": page,
|
|
715
744
|
},
|
|
716
745
|
ensure_ascii=False,
|
|
@@ -728,13 +757,19 @@ class SearchToolkit(BaseToolkit):
|
|
|
728
757
|
except requests.exceptions.RequestException as e:
|
|
729
758
|
return {"error": f"Bocha AI search failed: {e!s}"}
|
|
730
759
|
|
|
731
|
-
def search_baidu(
|
|
760
|
+
def search_baidu(
|
|
761
|
+
self, query: str, number_of_result_pages: int = 10
|
|
762
|
+
) -> Dict[str, Any]:
|
|
732
763
|
r"""Search Baidu using web scraping to retrieve relevant search
|
|
733
764
|
results. This method queries Baidu's search engine and extracts search
|
|
734
765
|
results including titles, descriptions, and URLs.
|
|
735
766
|
|
|
736
767
|
Args:
|
|
737
768
|
query (str): Search query string to submit to Baidu.
|
|
769
|
+
number_of_result_pages (int): The number of result pages to
|
|
770
|
+
retrieve. Adjust this based on your task - use fewer results
|
|
771
|
+
for focused searches and more for comprehensive searches.
|
|
772
|
+
(default: :obj:`10`)
|
|
738
773
|
|
|
739
774
|
Returns:
|
|
740
775
|
Dict[str, Any]: A dictionary containing search results or error
|
|
@@ -752,7 +787,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
752
787
|
),
|
|
753
788
|
"Referer": "https://www.baidu.com",
|
|
754
789
|
}
|
|
755
|
-
params = {"wd": query, "rn": str(
|
|
790
|
+
params = {"wd": query, "rn": str(number_of_result_pages)}
|
|
756
791
|
|
|
757
792
|
response = requests.get(url, headers=headers, params=params)
|
|
758
793
|
response.encoding = "utf-8"
|
|
@@ -781,7 +816,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
781
816
|
"url": link,
|
|
782
817
|
}
|
|
783
818
|
)
|
|
784
|
-
if len(results) >=
|
|
819
|
+
if len(results) >= number_of_result_pages:
|
|
785
820
|
break
|
|
786
821
|
|
|
787
822
|
if not results:
|
|
@@ -795,7 +830,9 @@ class SearchToolkit(BaseToolkit):
|
|
|
795
830
|
except Exception as e:
|
|
796
831
|
return {"error": f"Baidu scraping error: {e!s}"}
|
|
797
832
|
|
|
798
|
-
def search_bing(
|
|
833
|
+
def search_bing(
|
|
834
|
+
self, query: str, number_of_result_pages: int = 10
|
|
835
|
+
) -> Dict[str, Any]:
|
|
799
836
|
r"""Use Bing search engine to search information for the given query.
|
|
800
837
|
|
|
801
838
|
This function queries the Chinese version of Bing search engine (cn.
|
|
@@ -807,6 +844,10 @@ class SearchToolkit(BaseToolkit):
|
|
|
807
844
|
Args:
|
|
808
845
|
query (str): The search query string to submit to Bing. Works best
|
|
809
846
|
with Chinese queries or when Chinese results are preferred.
|
|
847
|
+
number_of_result_pages (int): The number of result pages to
|
|
848
|
+
retrieve. Adjust this based on your task - use fewer results
|
|
849
|
+
for focused searches and more for comprehensive searches.
|
|
850
|
+
(default: :obj:`10`)
|
|
810
851
|
|
|
811
852
|
Returns:
|
|
812
853
|
Dict ([str, Any]): A dictionary containing either:
|
|
@@ -856,9 +897,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
856
897
|
result_items = b_results_tag.find_all("li")
|
|
857
898
|
|
|
858
899
|
results: List[Dict[str, Any]] = []
|
|
859
|
-
for i in range(
|
|
860
|
-
min(len(result_items), self.number_of_result_pages)
|
|
861
|
-
):
|
|
900
|
+
for i in range(min(len(result_items), number_of_result_pages)):
|
|
862
901
|
row = result_items[i]
|
|
863
902
|
if not isinstance(row, Tag):
|
|
864
903
|
continue
|
|
@@ -927,6 +966,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
927
966
|
exclude_text: Optional[List[str]] = None,
|
|
928
967
|
use_autoprompt: bool = True,
|
|
929
968
|
text: bool = False,
|
|
969
|
+
number_of_result_pages: int = 10,
|
|
930
970
|
) -> Dict[str, Any]:
|
|
931
971
|
r"""Use Exa search API to perform intelligent web search with optional
|
|
932
972
|
content extraction.
|
|
@@ -948,6 +988,10 @@ class SearchToolkit(BaseToolkit):
|
|
|
948
988
|
enhance the query. (default: :obj:`True`)
|
|
949
989
|
text (bool): Whether to include webpage contents in results.
|
|
950
990
|
(default: :obj:`False`)
|
|
991
|
+
number_of_result_pages (int): The number of result pages to
|
|
992
|
+
retrieve. Must be between 1 and 100. Adjust this based on
|
|
993
|
+
your task - use fewer results for focused searches and more
|
|
994
|
+
for comprehensive searches. (default: :obj:`10`)
|
|
951
995
|
|
|
952
996
|
Returns:
|
|
953
997
|
Dict[str, Any]: A dict containing search results and metadata:
|
|
@@ -967,8 +1011,8 @@ class SearchToolkit(BaseToolkit):
|
|
|
967
1011
|
exa = Exa(EXA_API_KEY)
|
|
968
1012
|
|
|
969
1013
|
if (
|
|
970
|
-
|
|
971
|
-
and not 0 <
|
|
1014
|
+
number_of_result_pages is not None
|
|
1015
|
+
and not 0 < number_of_result_pages <= 100
|
|
972
1016
|
):
|
|
973
1017
|
raise ValueError("num_results must be between 1 and 100")
|
|
974
1018
|
|
|
@@ -996,7 +1040,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
996
1040
|
query=query,
|
|
997
1041
|
type=search_type,
|
|
998
1042
|
category=category,
|
|
999
|
-
num_results=
|
|
1043
|
+
num_results=number_of_result_pages,
|
|
1000
1044
|
include_text=include_text,
|
|
1001
1045
|
exclude_text=exclude_text,
|
|
1002
1046
|
use_autoprompt=use_autoprompt,
|
|
@@ -1010,7 +1054,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
1010
1054
|
query=query,
|
|
1011
1055
|
type=search_type,
|
|
1012
1056
|
category=category,
|
|
1013
|
-
num_results=
|
|
1057
|
+
num_results=number_of_result_pages,
|
|
1014
1058
|
include_text=include_text,
|
|
1015
1059
|
exclude_text=exclude_text,
|
|
1016
1060
|
use_autoprompt=use_autoprompt,
|
|
@@ -1043,6 +1087,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
1043
1087
|
return_main_text: bool = False,
|
|
1044
1088
|
return_markdown_text: bool = True,
|
|
1045
1089
|
enable_rerank: bool = True,
|
|
1090
|
+
number_of_result_pages: int = 10,
|
|
1046
1091
|
) -> Dict[str, Any]:
|
|
1047
1092
|
r"""Query the Alibaba Tongxiao search API and return search results.
|
|
1048
1093
|
|
|
@@ -1071,6 +1116,10 @@ class SearchToolkit(BaseToolkit):
|
|
|
1071
1116
|
enable_rerank (bool): Whether to enable result reranking. If
|
|
1072
1117
|
response time is critical, setting this to False can reduce
|
|
1073
1118
|
response time by approximately 140ms. (default: :obj:`True`)
|
|
1119
|
+
number_of_result_pages (int): The number of result pages to
|
|
1120
|
+
retrieve. Adjust this based on your task - use fewer results
|
|
1121
|
+
for focused searches and more for comprehensive searches.
|
|
1122
|
+
(default: :obj:`10`)
|
|
1074
1123
|
|
|
1075
1124
|
Returns:
|
|
1076
1125
|
Dict[str, Any]: A dictionary containing either search results with
|
|
@@ -1096,7 +1145,7 @@ class SearchToolkit(BaseToolkit):
|
|
|
1096
1145
|
params: Dict[str, Union[str, int]] = {
|
|
1097
1146
|
"query": query,
|
|
1098
1147
|
"timeRange": time_range,
|
|
1099
|
-
"page":
|
|
1148
|
+
"page": number_of_result_pages,
|
|
1100
1149
|
"returnMainText": str(return_main_text).lower(),
|
|
1101
1150
|
"returnMarkdownText": str(return_markdown_text).lower(),
|
|
1102
1151
|
"enableRerank": str(enable_rerank).lower(),
|
|
@@ -1143,6 +1143,7 @@ class TerminalToolkit(BaseToolkit):
|
|
|
1143
1143
|
universal_newlines=True,
|
|
1144
1144
|
env=os.environ.copy(),
|
|
1145
1145
|
preexec_fn=preexec_fn,
|
|
1146
|
+
errors='replace', # Handle non-UTF-8 characters
|
|
1146
1147
|
)
|
|
1147
1148
|
|
|
1148
1149
|
self.shell_sessions[id]["process"] = proc
|
|
@@ -1459,8 +1460,17 @@ class TerminalToolkit(BaseToolkit):
|
|
|
1459
1460
|
if press_enter:
|
|
1460
1461
|
input = input + "\n"
|
|
1461
1462
|
|
|
1462
|
-
# Write
|
|
1463
|
-
process.stdin
|
|
1463
|
+
# Write to stdin - handle encoding
|
|
1464
|
+
if hasattr(process.stdin, 'write'):
|
|
1465
|
+
if isinstance(input, str):
|
|
1466
|
+
process.stdin.write(input)
|
|
1467
|
+
else:
|
|
1468
|
+
process.stdin.write(
|
|
1469
|
+
input.decode('utf-8', errors='replace')
|
|
1470
|
+
)
|
|
1471
|
+
else:
|
|
1472
|
+
# Fallback for byte mode
|
|
1473
|
+
process.stdin.write(input.encode('utf-8', errors='replace'))
|
|
1464
1474
|
process.stdin.flush()
|
|
1465
1475
|
|
|
1466
1476
|
return f"Input sent to process in session '{id}'"
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "camel-ai"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.74a4"
|
|
8
8
|
description = "Communicative Agents for AI Society Study"
|
|
9
9
|
authors = [{ name = "CAMEL-AI.org" }]
|
|
10
10
|
requires-python = ">=3.10,<3.13"
|
|
@@ -302,6 +302,7 @@ eigent = [
|
|
|
302
302
|
"exa-py>=1.10.0,<2",
|
|
303
303
|
"reportlab>=4.4.2",
|
|
304
304
|
"onnxruntime<=1.19.2",
|
|
305
|
+
"slack-sdk>=3.27.2,<4",
|
|
305
306
|
]
|
|
306
307
|
all = [
|
|
307
308
|
"numpy>=1.2,<=2.2",
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|