camel-ai 0.2.69a4__tar.gz → 0.2.69a6__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.69a4 → camel_ai-0.2.69a6}/PKG-INFO +2 -6
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/__init__.py +1 -1
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/internal_python_interpreter.py +51 -2
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/base_model.py +91 -2
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/__init__.py +6 -0
- camel_ai-0.2.69a6/camel/toolkits/craw4ai_toolkit.py +73 -0
- camel_ai-0.2.69a6/camel/toolkits/edgeone_pages_mcp_toolkit.py +69 -0
- camel_ai-0.2.69a6/camel/toolkits/markitdown_toolkit.py +78 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/non_visual_browser_toolkit/browser_non_visual_toolkit.py +91 -57
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/pyproject.toml +5 -10
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/.gitignore +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/LICENSE +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/README.md +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/_types.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/_utils.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/chat_agent.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/critic_agent.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/deductive_reasoner_agent.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/embodied_agent.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/knowledge_graph_agent.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/mcp_agent.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/multi_hop_generator_agent.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/programmed_agent_instruction.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/repo_agent.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/role_assignment_agent.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/search_agent.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/task_agent.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/tool_agents/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/tool_agents/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/agents/tool_agents/hugging_face_tool_agent.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/apibank.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/apibench.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/browsecomp.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/gaia.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/mock_website/README.md +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/mock_website/mock_web.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/mock_website/requirements.txt +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/mock_website/shopping_mall/app.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/mock_website/task.json +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/nexus.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/benchmarks/ragbench.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/discord/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/discord/discord_app.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/discord/discord_installation.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/discord/discord_store.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/slack/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/slack/models.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/slack/slack_app.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/bots/telegram_bot.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/aiml_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/anthropic_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/base_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/bedrock_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/cohere_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/crynux_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/deepseek_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/gemini_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/groq_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/internlm_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/litellm_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/lmstudio_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/mistral_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/modelscope_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/moonshot_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/netmind_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/novita_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/nvidia_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/ollama_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/openai_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/openrouter_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/ppio_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/qianfan_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/qwen_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/reka_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/samba_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/sglang_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/siliconflow_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/togetherai_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/vllm_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/watsonx_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/yi_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/configs/zhipuai_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/data_collectors/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/data_collectors/alpaca_collector.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/data_collectors/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/data_collectors/sharegpt_collector.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/cot_datagen.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/evol_instruct/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/evol_instruct/evol_instruct.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/evol_instruct/scorer.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/evol_instruct/templates.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_improving_cot.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_instruct/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_instruct/filter/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_instruct/filter/filter_function.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_instruct/filter/filter_registry.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_instruct/filter/instruction_filter.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_instruct/self_instruct.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/self_instruct/templates.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/source2synth/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/source2synth/data_processor.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/source2synth/models.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datagen/source2synth/user_data_processor_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datahubs/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datahubs/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datahubs/huggingface.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datahubs/models.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datasets/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datasets/base_generator.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datasets/few_shot_generator.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datasets/models.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datasets/self_instruct_generator.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/datasets/static_dataset.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/azure_embedding.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/gemini_embedding.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/jina_embedding.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/mistral_embedding.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/openai_compatible_embedding.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/openai_embedding.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/sentence_transformers_embeddings.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/together_embedding.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/embeddings/vlm_embedding.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/environments/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/environments/models.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/environments/multi_step.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/environments/rlcards_env.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/environments/single_step.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/environments/tic_tac_toe.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/extractors/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/extractors/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/extractors/python_strategies.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/generators.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/human.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/docker/Dockerfile +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/docker_interpreter.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/e2b_interpreter.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/interpreter_error.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/ipython_interpreter.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/interpreters/subprocess_interpreter.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/apify_reader.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/base_io.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/chunkr_reader.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/crawl4ai_reader.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/firecrawl_reader.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/jina_url_reader.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/markitdown.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/mineru_extractor.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/mistral_reader.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/pandas_reader.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/scrapegraph_reader.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/loaders/unstructured_io.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/logger.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/agent_memories.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/blocks/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/blocks/chat_history_block.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/blocks/vectordb_block.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/context_creators/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/context_creators/score_based.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/memories/records.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/conversion/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/conversion/alpaca.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/conversion/conversation_models.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/conversion/sharegpt/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/conversion/sharegpt/function_call_formatter.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/conversion/sharegpt/hermes/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/messages/func_message.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/_utils.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/aiml_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/anthropic_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/aws_bedrock_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/azure_openai_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/base_audio_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/cohere_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/crynux_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/deepseek_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/fish_audio_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/gemini_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/groq_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/internlm_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/litellm_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/lmstudio_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/mistral_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/model_factory.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/model_manager.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/modelscope_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/moonshot_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/nemotron_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/netmind_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/novita_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/nvidia_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/ollama_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/openai_audio_models.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/openai_compatible_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/openai_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/openrouter_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/ppio_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/qianfan_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/qwen_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/reka_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/reward/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/reward/base_reward_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/reward/evaluator.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/reward/nemotron_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/reward/skywork_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/samba_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/sglang_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/siliconflow_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/stub_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/togetherai_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/vllm_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/volcano_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/watsonx_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/yi_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/models/zhipuai_model.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/personas/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/personas/persona.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/personas/persona_hub.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/ai_society.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/code.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/evaluation.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/generate_text_embedding_data.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/image_craft.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/misalignment.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/multi_condition_image_craft.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/object_recognition.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/persona_hub.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/prompt_templates.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/role_description_prompt_template.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/solution_extraction.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/task_prompt_template.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/translation.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/prompts/video_description_prompt.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/py.typed +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/responses/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/responses/agent_responses.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/retrievers/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/retrievers/auto_retriever.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/retrievers/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/retrievers/bm25_retriever.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/retrievers/cohere_rerank_retriever.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/retrievers/hybrid_retrival.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/retrievers/vector_retriever.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/api.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/configs.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/daytona_runtime.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/docker_runtime.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/llm_guard_runtime.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/remote_http_runtime.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/ubuntu_docker_runtime.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/utils/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/utils/function_risk_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/runtimes/utils/ignore_risk_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/schemas/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/schemas/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/schemas/openai_converter.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/schemas/outlines_converter.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/babyagi_playing.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/role_playing.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/prompts.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/role_playing_worker.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/single_agent_worker.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/task_channel.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/utils.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/worker.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/workforce.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/societies/workforce/workforce_logger.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/graph_storages/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/graph_storages/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/graph_storages/graph_element.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/graph_storages/nebula_graph.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/graph_storages/neo4j_graph.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/key_value_storages/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/key_value_storages/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/key_value_storages/in_memory.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/key_value_storages/json.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/key_value_storages/mem0_cloud.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/key_value_storages/redis.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/object_storages/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/object_storages/amazon_s3.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/object_storages/azure_blob.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/object_storages/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/object_storages/google_cloud.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/faiss.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/milvus.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/oceanbase.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/qdrant.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/tidb.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/storages/vectordb_storages/weaviate.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/tasks/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/tasks/task.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/tasks/task_prompt.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/terminators/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/terminators/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/terminators/response_terminator.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/terminators/token_limit_terminator.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/aci_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/arxiv_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/ask_news_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/async_browser_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/audio_analysis_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/bohrium_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/browser_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/browser_toolkit_commons.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/code_execution.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/dalle_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/dappier_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/data_commons_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/excel_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/file_write_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/function_tool.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/github_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/google_calendar_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/google_maps_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/google_scholar_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/human_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/image_analysis_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/jina_reranker_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/klavis_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/linkedin_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/math_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/mcp_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/memory_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/meshy_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/mineru_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/networkx_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/non_visual_browser_toolkit/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/non_visual_browser_toolkit/actions.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/non_visual_browser_toolkit/agent.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/non_visual_browser_toolkit/nv_browser_session.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/non_visual_browser_toolkit/snapshot.js +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/non_visual_browser_toolkit/snapshot.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/notion_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/biztoc/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/biztoc/ai-plugin.json +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/biztoc/openapi.yaml +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/coursera/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/coursera/openapi.yaml +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/create_qr_code/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/create_qr_code/openapi.yaml +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/klarna/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/klarna/openapi.yaml +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/nasa_apod/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/nasa_apod/openapi.yaml +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/outschool/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/outschool/ai-plugin.json +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/outschool/openapi.yaml +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/outschool/paths/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/outschool/paths/get_classes.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/security_config.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/speak/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/speak/openapi.yaml +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/web_scraper/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/web_scraper/openapi.yaml +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/open_api_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/openai_agent_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/openbb_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/page_script.js +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/playwright_mcp_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/pptx_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/pubmed_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/pulse_mcp_search_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/pyautogui_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/reddit_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/retrieval_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/search_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/searxng_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/semantic_scholar_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/slack_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/stripe_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/sympy_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/task_planning_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/terminal_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/thinking_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/twitter_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/video_analysis_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/video_download_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/weather_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/whatsapp_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/wolfram_alpha_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/toolkits/zapier_toolkit.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/types/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/types/agents/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/types/agents/tool_calling_record.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/types/enums.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/types/mcp_registries.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/types/openai_types.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/types/unified_model_type.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/async_func.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/chunker/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/chunker/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/chunker/code_chunker.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/chunker/uio_chunker.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/commons.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/constants.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/deduplication.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/filename.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/langfuse.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/mcp.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/mcp_client.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/response_format.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/utils/token_counting.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/verifiers/__init__.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/verifiers/base.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/verifiers/math_verifier.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/verifiers/models.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/camel/verifiers/physics_verifier.py +0 -0
- {camel_ai-0.2.69a4 → camel_ai-0.2.69a6}/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.69a6
|
|
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
|
|
@@ -176,7 +176,7 @@ Requires-Dist: types-pyyaml<7,>=6.0.12; extra == 'dev'
|
|
|
176
176
|
Requires-Dist: types-requests<3,>=2.31.0; extra == 'dev'
|
|
177
177
|
Requires-Dist: types-setuptools<70,>=69.2.0; extra == 'dev'
|
|
178
178
|
Requires-Dist: types-tqdm<5,>=4.66.0; extra == 'dev'
|
|
179
|
-
Requires-Dist: uv
|
|
179
|
+
Requires-Dist: uv<0.8,>=0.7.0; extra == 'dev'
|
|
180
180
|
Provides-Extra: dev-tools
|
|
181
181
|
Requires-Dist: aci-sdk>=1.0.0b1; extra == 'dev-tools'
|
|
182
182
|
Requires-Dist: agentops<0.4,>=0.3.21; extra == 'dev-tools'
|
|
@@ -322,10 +322,6 @@ Requires-Dist: pytidb-experimental==0.0.1.dev4; extra == 'storage'
|
|
|
322
322
|
Requires-Dist: qdrant-client<2,>=1.9.0; extra == 'storage'
|
|
323
323
|
Requires-Dist: redis<6,>=5.0.6; extra == 'storage'
|
|
324
324
|
Requires-Dist: weaviate-client>=4.15.0; extra == 'storage'
|
|
325
|
-
Provides-Extra: test
|
|
326
|
-
Requires-Dist: mock<6,>=5; extra == 'test'
|
|
327
|
-
Requires-Dist: pytest-asyncio<0.24,>=0.23.0; extra == 'test'
|
|
328
|
-
Requires-Dist: pytest<8,>=7; extra == 'test'
|
|
329
325
|
Provides-Extra: web-tools
|
|
330
326
|
Requires-Dist: apify-client<2,>=1.8.1; extra == 'web-tools'
|
|
331
327
|
Requires-Dist: beautifulsoup4<5,>=4; extra == 'web-tools'
|
|
@@ -79,6 +79,9 @@ class InternalPythonInterpreter(BaseInterpreter):
|
|
|
79
79
|
(default: :obj:`False`)
|
|
80
80
|
raise_error (bool, optional): Raise error if the interpreter fails.
|
|
81
81
|
(default: :obj:`False`)
|
|
82
|
+
allow_builtins (bool, optional): If `True`, safe built-in functions
|
|
83
|
+
like print, len, str, etc. are added to the action space.
|
|
84
|
+
(default: :obj:`True`)
|
|
82
85
|
"""
|
|
83
86
|
|
|
84
87
|
_CODE_TYPES: ClassVar[List[str]] = ["python", "py", "python3", "python2"]
|
|
@@ -89,16 +92,62 @@ class InternalPythonInterpreter(BaseInterpreter):
|
|
|
89
92
|
import_white_list: Optional[List[str]] = None,
|
|
90
93
|
unsafe_mode: bool = False,
|
|
91
94
|
raise_error: bool = False,
|
|
95
|
+
allow_builtins: bool = True,
|
|
92
96
|
) -> None:
|
|
93
97
|
self.action_space = action_space or dict()
|
|
94
|
-
# Add print to action space
|
|
95
|
-
self.action_space['print'] = print
|
|
96
98
|
self.state = self.action_space.copy()
|
|
97
99
|
self.fuzz_state: Dict[str, Any] = dict()
|
|
98
100
|
self.import_white_list = import_white_list or list()
|
|
99
101
|
self.raise_error = raise_error
|
|
100
102
|
self.unsafe_mode = unsafe_mode
|
|
101
103
|
|
|
104
|
+
# Add safe built-in functions if allowed
|
|
105
|
+
if allow_builtins:
|
|
106
|
+
self._add_safe_builtins()
|
|
107
|
+
|
|
108
|
+
def _add_safe_builtins(self):
|
|
109
|
+
r"""Add safe built-in functions to the action space."""
|
|
110
|
+
safe_builtins = {
|
|
111
|
+
'print': print,
|
|
112
|
+
'len': len,
|
|
113
|
+
'str': str,
|
|
114
|
+
'int': int,
|
|
115
|
+
'float': float,
|
|
116
|
+
'bool': bool,
|
|
117
|
+
'list': list,
|
|
118
|
+
'dict': dict,
|
|
119
|
+
'tuple': tuple,
|
|
120
|
+
'set': set,
|
|
121
|
+
'abs': abs,
|
|
122
|
+
'min': min,
|
|
123
|
+
'max': max,
|
|
124
|
+
'sum': sum,
|
|
125
|
+
'sorted': sorted,
|
|
126
|
+
'reversed': reversed,
|
|
127
|
+
'enumerate': enumerate,
|
|
128
|
+
'zip': zip,
|
|
129
|
+
'range': range,
|
|
130
|
+
'round': round,
|
|
131
|
+
'type': type,
|
|
132
|
+
'isinstance': isinstance,
|
|
133
|
+
'hasattr': hasattr,
|
|
134
|
+
'getattr': getattr,
|
|
135
|
+
'setattr': setattr,
|
|
136
|
+
'dir': dir,
|
|
137
|
+
'help': help,
|
|
138
|
+
'map': map,
|
|
139
|
+
'filter': filter,
|
|
140
|
+
'any': any,
|
|
141
|
+
'all': all,
|
|
142
|
+
'ord': ord,
|
|
143
|
+
'chr': chr,
|
|
144
|
+
'bin': bin,
|
|
145
|
+
'oct': oct,
|
|
146
|
+
'hex': hex,
|
|
147
|
+
}
|
|
148
|
+
self.action_space.update(safe_builtins)
|
|
149
|
+
self.state.update(safe_builtins)
|
|
150
|
+
|
|
102
151
|
def run(self, code: str, code_type: str = "python") -> str:
|
|
103
152
|
r"""Executes the given code with specified code type in the
|
|
104
153
|
interpreter.
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
# limitations under the License.
|
|
13
13
|
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
import abc
|
|
15
|
+
import os
|
|
15
16
|
import re
|
|
16
17
|
from abc import ABC, abstractmethod
|
|
17
18
|
from typing import Any, Dict, List, Optional, Type, Union
|
|
@@ -94,6 +95,12 @@ class BaseModelBackend(ABC, metaclass=ModelBackendMeta):
|
|
|
94
95
|
self._token_counter = token_counter
|
|
95
96
|
self._timeout = timeout
|
|
96
97
|
self._max_retries = max_retries
|
|
98
|
+
# Initialize logging configuration
|
|
99
|
+
self._log_enabled = (
|
|
100
|
+
os.environ.get("CAMEL_MODEL_LOG_ENABLED", "False").lower()
|
|
101
|
+
== "true"
|
|
102
|
+
)
|
|
103
|
+
self._log_dir = os.environ.get("CAMEL_LOG_DIR", "camel_logs")
|
|
97
104
|
self.check_model_config()
|
|
98
105
|
|
|
99
106
|
@property
|
|
@@ -232,6 +239,68 @@ class BaseModelBackend(ABC, metaclass=ModelBackendMeta):
|
|
|
232
239
|
|
|
233
240
|
return formatted_messages
|
|
234
241
|
|
|
242
|
+
def _log_request(self, messages: List[OpenAIMessage]) -> Optional[str]:
|
|
243
|
+
r"""Log the request messages to a JSON file if logging is enabled.
|
|
244
|
+
|
|
245
|
+
Args:
|
|
246
|
+
messages (List[OpenAIMessage]): The messages to log.
|
|
247
|
+
|
|
248
|
+
Returns:
|
|
249
|
+
Optional[str]: The path to the log file if logging is enabled,
|
|
250
|
+
None otherwise.
|
|
251
|
+
"""
|
|
252
|
+
if not self._log_enabled:
|
|
253
|
+
return None
|
|
254
|
+
|
|
255
|
+
import json
|
|
256
|
+
from datetime import datetime
|
|
257
|
+
|
|
258
|
+
os.makedirs(self._log_dir, exist_ok=True)
|
|
259
|
+
|
|
260
|
+
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S_%f')
|
|
261
|
+
log_file_path = os.path.join(self._log_dir, f"conv_{timestamp}.json")
|
|
262
|
+
|
|
263
|
+
log_entry = {
|
|
264
|
+
"request_timestamp": datetime.now().isoformat(),
|
|
265
|
+
"model": str(self.model_type),
|
|
266
|
+
"request": {"messages": messages},
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
with open(log_file_path, "w") as f:
|
|
270
|
+
json.dump(log_entry, f, indent=4)
|
|
271
|
+
|
|
272
|
+
return log_file_path
|
|
273
|
+
|
|
274
|
+
def _log_response(self, log_path: str, response: Any) -> None:
|
|
275
|
+
r"""Log the response to the existing log file.
|
|
276
|
+
|
|
277
|
+
Args:
|
|
278
|
+
log_path (str): The path to the log file.
|
|
279
|
+
response (Any): The response to log.
|
|
280
|
+
"""
|
|
281
|
+
if not self._log_enabled or not log_path:
|
|
282
|
+
return
|
|
283
|
+
|
|
284
|
+
import json
|
|
285
|
+
from datetime import datetime
|
|
286
|
+
|
|
287
|
+
with open(log_path, "r+") as f:
|
|
288
|
+
log_data = json.load(f)
|
|
289
|
+
|
|
290
|
+
log_data["response_timestamp"] = datetime.now().isoformat()
|
|
291
|
+
if isinstance(response, BaseModel):
|
|
292
|
+
log_data["response"] = response.model_dump()
|
|
293
|
+
else:
|
|
294
|
+
try:
|
|
295
|
+
json.dumps(response)
|
|
296
|
+
log_data["response"] = response
|
|
297
|
+
except TypeError:
|
|
298
|
+
log_data["response"] = str(response)
|
|
299
|
+
|
|
300
|
+
f.seek(0)
|
|
301
|
+
json.dump(log_data, f, indent=4)
|
|
302
|
+
f.truncate()
|
|
303
|
+
|
|
235
304
|
@abstractmethod
|
|
236
305
|
def _run(
|
|
237
306
|
self,
|
|
@@ -273,13 +342,23 @@ class BaseModelBackend(ABC, metaclass=ModelBackendMeta):
|
|
|
273
342
|
`ChatCompletion` in the non-stream mode, or
|
|
274
343
|
`Stream[ChatCompletionChunk]` in the stream mode.
|
|
275
344
|
"""
|
|
345
|
+
# Log the request if logging is enabled
|
|
346
|
+
log_path = self._log_request(messages)
|
|
347
|
+
|
|
276
348
|
# None -> use default tools
|
|
277
349
|
if tools is None:
|
|
278
350
|
tools = self.model_config_dict.get("tools", None)
|
|
279
351
|
# Empty -> use no tools
|
|
280
352
|
elif not tools:
|
|
281
353
|
tools = None
|
|
282
|
-
|
|
354
|
+
|
|
355
|
+
result = self._run(messages, response_format, tools)
|
|
356
|
+
|
|
357
|
+
# Log the response if logging is enabled
|
|
358
|
+
if log_path:
|
|
359
|
+
self._log_response(log_path, result)
|
|
360
|
+
|
|
361
|
+
return result
|
|
283
362
|
|
|
284
363
|
async def arun(
|
|
285
364
|
self,
|
|
@@ -304,11 +383,21 @@ class BaseModelBackend(ABC, metaclass=ModelBackendMeta):
|
|
|
304
383
|
`ChatCompletion` in the non-stream mode, or
|
|
305
384
|
`AsyncStream[ChatCompletionChunk]` in the stream mode.
|
|
306
385
|
"""
|
|
386
|
+
# Log the request if logging is enabled
|
|
387
|
+
log_path = self._log_request(messages)
|
|
388
|
+
|
|
307
389
|
if tools is None:
|
|
308
390
|
tools = self.model_config_dict.get("tools", None)
|
|
309
391
|
elif not tools:
|
|
310
392
|
tools = None
|
|
311
|
-
|
|
393
|
+
|
|
394
|
+
result = await self._arun(messages, response_format, tools)
|
|
395
|
+
|
|
396
|
+
# Log the response if logging is enabled
|
|
397
|
+
if log_path:
|
|
398
|
+
self._log_response(log_path, result)
|
|
399
|
+
|
|
400
|
+
return result
|
|
312
401
|
|
|
313
402
|
@abstractmethod
|
|
314
403
|
def check_model_config(self):
|
|
@@ -78,6 +78,9 @@ from .playwright_mcp_toolkit import PlaywrightMCPToolkit
|
|
|
78
78
|
from .wolfram_alpha_toolkit import WolframAlphaToolkit
|
|
79
79
|
from .task_planning_toolkit import TaskPlanningToolkit
|
|
80
80
|
from .non_visual_browser_toolkit import BrowserNonVisualToolkit
|
|
81
|
+
from .edgeone_pages_mcp_toolkit import EdgeOnePagesMCPToolkit
|
|
82
|
+
from .craw4ai_toolkit import Crawl4AIToolkit
|
|
83
|
+
from .markitdown_toolkit import MarkItDownToolkit
|
|
81
84
|
|
|
82
85
|
|
|
83
86
|
__all__ = [
|
|
@@ -144,4 +147,7 @@ __all__ = [
|
|
|
144
147
|
'BohriumToolkit',
|
|
145
148
|
'TaskPlanningToolkit',
|
|
146
149
|
'BrowserNonVisualToolkit',
|
|
150
|
+
'EdgeOnePagesMCPToolkit',
|
|
151
|
+
'Crawl4AIToolkit',
|
|
152
|
+
'MarkItDownToolkit',
|
|
147
153
|
]
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
# you may not use this file except in compliance with the License.
|
|
4
|
+
# You may obtain a copy of the License at
|
|
5
|
+
#
|
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
#
|
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
# See the License for the specific language governing permissions and
|
|
12
|
+
# limitations under the License.
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
|
+
|
|
15
|
+
from typing import List, Optional
|
|
16
|
+
|
|
17
|
+
from camel.logger import get_logger
|
|
18
|
+
from camel.toolkits.base import BaseToolkit
|
|
19
|
+
from camel.toolkits.function_tool import FunctionTool
|
|
20
|
+
from camel.utils import MCPServer
|
|
21
|
+
|
|
22
|
+
logger = get_logger(__name__)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@MCPServer()
|
|
26
|
+
class Crawl4AIToolkit(BaseToolkit):
|
|
27
|
+
r"""A class representing a toolkit for Crawl4AI."""
|
|
28
|
+
|
|
29
|
+
def __init__(
|
|
30
|
+
self,
|
|
31
|
+
timeout: Optional[float] = None,
|
|
32
|
+
):
|
|
33
|
+
super().__init__(timeout=timeout)
|
|
34
|
+
|
|
35
|
+
async def scrape(self, url: str) -> str:
|
|
36
|
+
r"""Scrapes a webpage and returns its content.
|
|
37
|
+
|
|
38
|
+
This function is designed to fetch the content of a given URL and
|
|
39
|
+
return it as a single string. It's particularly useful for extracting
|
|
40
|
+
text from web pages for further processing. The function
|
|
41
|
+
will try to get the most meaningful content from the page.
|
|
42
|
+
|
|
43
|
+
Args:
|
|
44
|
+
url (str): The URL of the webpage to scrape.
|
|
45
|
+
|
|
46
|
+
Returns:
|
|
47
|
+
str: The scraped content of the webpage as a string. If the
|
|
48
|
+
scraping fails, it will return an error message.
|
|
49
|
+
"""
|
|
50
|
+
from crawl4ai import AsyncWebCrawler, CrawlerRunConfig
|
|
51
|
+
|
|
52
|
+
try:
|
|
53
|
+
async with AsyncWebCrawler() as client:
|
|
54
|
+
config = CrawlerRunConfig(
|
|
55
|
+
only_text=True,
|
|
56
|
+
)
|
|
57
|
+
content = await client.arun(url, crawler_config=config)
|
|
58
|
+
return str(content.markdown) if content.markdown else ""
|
|
59
|
+
except Exception as e:
|
|
60
|
+
logger.error(f"Error scraping {url}: {e}")
|
|
61
|
+
return f"Error scraping {url}: {e}"
|
|
62
|
+
|
|
63
|
+
def get_tools(self) -> List[FunctionTool]:
|
|
64
|
+
r"""Returns a list of FunctionTool objects representing the
|
|
65
|
+
functions in the toolkit.
|
|
66
|
+
|
|
67
|
+
Returns:
|
|
68
|
+
List[FunctionTool]: A list of FunctionTool objects
|
|
69
|
+
representing the functions in the toolkit.
|
|
70
|
+
"""
|
|
71
|
+
return [
|
|
72
|
+
FunctionTool(self.scrape),
|
|
73
|
+
]
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
# you may not use this file except in compliance with the License.
|
|
4
|
+
# You may obtain a copy of the License at
|
|
5
|
+
#
|
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
#
|
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
# See the License for the specific language governing permissions and
|
|
12
|
+
# limitations under the License.
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
|
+
|
|
15
|
+
from typing import List, Optional
|
|
16
|
+
|
|
17
|
+
from camel.toolkits import BaseToolkit, FunctionTool
|
|
18
|
+
|
|
19
|
+
from .mcp_toolkit import MCPToolkit
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class EdgeOnePagesMCPToolkit(BaseToolkit):
|
|
23
|
+
r"""EdgeOnePagesMCPToolkit provides an interface for interacting with
|
|
24
|
+
EdgeOne pages using the EdgeOne Pages MCP server.
|
|
25
|
+
|
|
26
|
+
Attributes:
|
|
27
|
+
timeout (Optional[float]): Connection timeout in seconds.
|
|
28
|
+
(default: :obj:`None`)
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
def __init__(
|
|
32
|
+
self,
|
|
33
|
+
timeout: Optional[float] = None,
|
|
34
|
+
) -> None:
|
|
35
|
+
r"""Initializes the EdgeOnePagesMCPToolkit.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
timeout (Optional[float]): Connection timeout in seconds.
|
|
39
|
+
(default: :obj:`None`)
|
|
40
|
+
"""
|
|
41
|
+
super().__init__(timeout=timeout)
|
|
42
|
+
|
|
43
|
+
self._mcp_toolkit = MCPToolkit(
|
|
44
|
+
config_dict={
|
|
45
|
+
"mcpServers": {
|
|
46
|
+
"edgeone-pages-mcp-server": {
|
|
47
|
+
"command": "npx",
|
|
48
|
+
"args": ["edgeone-pages-mcp"],
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
timeout=timeout,
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
async def connect(self):
|
|
56
|
+
r"""Explicitly connect to the EdgeOne Pages MCP server."""
|
|
57
|
+
await self._mcp_toolkit.connect()
|
|
58
|
+
|
|
59
|
+
async def disconnect(self):
|
|
60
|
+
r"""Explicitly disconnect from the EdgeOne Pages MCP server."""
|
|
61
|
+
await self._mcp_toolkit.disconnect()
|
|
62
|
+
|
|
63
|
+
def get_tools(self) -> List[FunctionTool]:
|
|
64
|
+
r"""Returns a list of tools provided by the EdgeOnePagesMCPToolkit.
|
|
65
|
+
|
|
66
|
+
Returns:
|
|
67
|
+
List[FunctionTool]: List of available tools.
|
|
68
|
+
"""
|
|
69
|
+
return self._mcp_toolkit.get_tools()
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
# you may not use this file except in compliance with the License.
|
|
4
|
+
# You may obtain a copy of the License at
|
|
5
|
+
#
|
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
#
|
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
# See the License for the specific language governing permissions and
|
|
12
|
+
# limitations under the License.
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
|
+
|
|
15
|
+
from typing import Dict, List, Optional
|
|
16
|
+
|
|
17
|
+
from camel.loaders.markitdown import MarkItDownLoader
|
|
18
|
+
from camel.logger import get_logger
|
|
19
|
+
from camel.toolkits.base import BaseToolkit
|
|
20
|
+
from camel.toolkits.function_tool import FunctionTool
|
|
21
|
+
from camel.utils import MCPServer
|
|
22
|
+
|
|
23
|
+
logger = get_logger(__name__)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@MCPServer()
|
|
27
|
+
class MarkItDownToolkit(BaseToolkit):
|
|
28
|
+
r"""A class representing a toolkit for MarkItDown."""
|
|
29
|
+
|
|
30
|
+
def __init__(
|
|
31
|
+
self,
|
|
32
|
+
timeout: Optional[float] = None,
|
|
33
|
+
):
|
|
34
|
+
super().__init__(timeout=timeout)
|
|
35
|
+
|
|
36
|
+
def load_files(self, file_paths: List[str]) -> Dict[str, str]:
|
|
37
|
+
r"""Scrapes content from a list of files and converts it to Markdown.
|
|
38
|
+
|
|
39
|
+
This function takes a list of local file paths, attempts to convert
|
|
40
|
+
each file into Markdown format, and returns the converted content.
|
|
41
|
+
The conversion is performed in parallel for efficiency.
|
|
42
|
+
|
|
43
|
+
Supported file formats include:
|
|
44
|
+
- PDF (.pdf)
|
|
45
|
+
- Microsoft Office: Word (.doc, .docx), Excel (.xls, .xlsx),
|
|
46
|
+
PowerPoint (.ppt, .pptx)
|
|
47
|
+
- EPUB (.epub)
|
|
48
|
+
- HTML (.html, .htm)
|
|
49
|
+
- Images (.jpg, .jpeg, .png) for OCR
|
|
50
|
+
- Audio (.mp3, .wav) for transcription
|
|
51
|
+
- Text-based formats (.csv, .json, .xml, .txt)
|
|
52
|
+
- ZIP archives (.zip)
|
|
53
|
+
|
|
54
|
+
Args:
|
|
55
|
+
file_paths (List[str]): A list of local file paths to be
|
|
56
|
+
converted.
|
|
57
|
+
|
|
58
|
+
Returns:
|
|
59
|
+
Dict[str, str]: A dictionary where keys are the input file paths
|
|
60
|
+
and values are the corresponding content in Markdown format.
|
|
61
|
+
If conversion of a file fails, the value will contain an
|
|
62
|
+
error message.
|
|
63
|
+
"""
|
|
64
|
+
return MarkItDownLoader().convert_files(
|
|
65
|
+
file_paths=file_paths, parallel=True
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
def get_tools(self) -> List[FunctionTool]:
|
|
69
|
+
r"""Returns a list of FunctionTool objects representing the
|
|
70
|
+
functions in the toolkit.
|
|
71
|
+
|
|
72
|
+
Returns:
|
|
73
|
+
List[FunctionTool]: A list of FunctionTool objects
|
|
74
|
+
representing the functions in the toolkit.
|
|
75
|
+
"""
|
|
76
|
+
return [
|
|
77
|
+
FunctionTool(self.load_files),
|
|
78
|
+
]
|