agentUniverse 0.0.8.dev1__tar.gz → 0.0.9.dev2__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.
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/PKG-INFO +4 -1
- agentuniverse-0.0.9.dev2/agentuniverse/agent/action/knowledge/embedding/dashscope_embedding.py +156 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/embedding/openai_embedding.py +1 -0
- agentuniverse-0.0.9.dev2/agentuniverse/agent/action/knowledge/embedding/qwen_embedding.py +82 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/tool/tool.py +19 -1
- agentuniverse-0.0.9.dev2/agentuniverse/agent/default/nl2api_agent/default_cn_prompt.yaml +27 -0
- agentuniverse-0.0.9.dev2/agentuniverse/agent/default/nl2api_agent/default_en_prompt.yaml +26 -0
- agentuniverse-0.0.9.dev2/agentuniverse/agent/default/nl2api_agent/nl2api_agent.py +45 -0
- agentuniverse-0.0.9.dev2/agentuniverse/agent/default/nl2api_agent/nl2api_agent.yaml +17 -0
- agentuniverse-0.0.9.dev2/agentuniverse/agent/default/react_agent/__init__.py +7 -0
- agentuniverse-0.0.9.dev2/agentuniverse/agent/default/react_agent/default_cn_prompt.yaml +35 -0
- agentuniverse-0.0.9.dev2/agentuniverse/agent/default/react_agent/default_en_prompt.yaml +31 -0
- agentuniverse-0.0.9.dev2/agentuniverse/agent/default/react_agent/react_agent.py +44 -0
- agentuniverse-0.0.9.dev2/agentuniverse/agent/default/react_agent/react_agent.yaml +17 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/memory/default/default_memory.py +1 -1
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/executing_planner/executing_planner.py +4 -3
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/expressing_planner/expressing_planner.py +3 -2
- agentuniverse-0.0.9.dev2/agentuniverse/agent/plan/planner/nl2api_planner/__init__.py +0 -0
- agentuniverse-0.0.9.dev2/agentuniverse/agent/plan/planner/nl2api_planner/nl2api_planner.py +111 -0
- agentuniverse-0.0.9.dev2/agentuniverse/agent/plan/planner/nl2api_planner/nl2api_planner.yaml +6 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/planner.py +3 -3
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/planning_planner/planning_planner.py +3 -2
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/rag_planner/rag_planner.py +4 -3
- agentuniverse-0.0.9.dev2/agentuniverse/agent/plan/planner/react_planner/__init__.py +7 -0
- agentuniverse-0.0.9.dev2/agentuniverse/agent/plan/planner/react_planner/react_planner.py +122 -0
- agentuniverse-0.0.9.dev2/agentuniverse/agent/plan/planner/react_planner/react_planner.yaml +6 -0
- agentuniverse-0.0.9.dev2/agentuniverse/agent/plan/planner/react_planner/stream_callback.py +64 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/reviewing_planner/reviewing_planner.py +3 -2
- agentuniverse-0.0.9.dev2/agentuniverse/agent_serve/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/prompt_util.py +3 -0
- agentuniverse-0.0.9.dev2/agentuniverse/llm/claude_langchain_instance.py +93 -0
- agentuniverse-0.0.9.dev2/agentuniverse/llm/default/claude_llm.py +154 -0
- agentuniverse-0.0.9.dev2/agentuniverse/llm/default/claude_llm.yaml +8 -0
- agentuniverse-0.0.9.dev2/agentuniverse/llm/default/default_ollama_llm.py +100 -0
- agentuniverse-0.0.9.dev2/agentuniverse/llm/default/default_ollama_llm.yaml +9 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/llm.py +3 -3
- agentuniverse-0.0.9.dev2/agentuniverse/llm/ollama_langchain_instance.py +39 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/openai_style_langchain_instance.py +107 -2
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/openai_style_llm.py +2 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/pyproject.toml +4 -1
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/LICENSE +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/README_PYPI.md +0 -0
- {agentuniverse-0.0.8.dev1/agentuniverse_connector → agentuniverse-0.0.9.dev2/agentuniverse}/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1/agentuniverse/base → agentuniverse-0.0.9.dev2/agentuniverse/agent}/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1/agentuniverse/agent/action/tool → agentuniverse-0.0.9.dev2/agentuniverse/agent/action/knowledge}/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/embedding/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/embedding/embedding.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/knowledge.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/knowledge_manager.py +0 -0
- {agentuniverse-0.0.8.dev1/agentuniverse/agent/action/knowledge/reader/file → agentuniverse-0.0.9.dev2/agentuniverse/agent/action/knowledge/reader}/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1/agentuniverse/agent/action/knowledge/reader → agentuniverse-0.0.9.dev2/agentuniverse/agent/action/knowledge/reader/file}/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/reader/file/docx_reader.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/reader/file/file_reader.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/reader/file/pdf_reader.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/reader/file/pptx_reader.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/reader/file/web_pdf_reader.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/reader/reader.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/store/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/store/chroma_store.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/store/document.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/store/milvus_store.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/store/query.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/knowledge/store/store.py +0 -0
- {agentuniverse-0.0.8.dev1/agentuniverse/agent/action/knowledge → agentuniverse-0.0.9.dev2/agentuniverse/agent/action/tool}/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/tool/enum.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/tool/tool_manager.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/agent.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/agent_manager.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/agent_model.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/executing_agent/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/executing_agent/default_cn_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/executing_agent/default_en_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/executing_agent/executing_agent.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/executing_agent/executing_agent.yaml +0 -0
- {agentuniverse-0.0.8.dev1/agentuniverse/agent/default/rag_agent → agentuniverse-0.0.9.dev2/agentuniverse/agent/default/expressing_agent}/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/expressing_agent/default_cn_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/expressing_agent/default_en_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/expressing_agent/expressing_agent.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/expressing_agent/expressing_agent.yaml +0 -0
- {agentuniverse-0.0.8.dev1/agentuniverse/agent_serve → agentuniverse-0.0.9.dev2/agentuniverse/agent/default/nl2api_agent}/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/peer_agent/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/peer_agent/peer_agent.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/peer_agent/peer_agent.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/planning_agent/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/planning_agent/default_cn_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/planning_agent/default_en_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/planning_agent/planning_agent.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/planning_agent/planning_agent.yaml +0 -0
- {agentuniverse-0.0.8.dev1/agentuniverse/agent/default/expressing_agent → agentuniverse-0.0.9.dev2/agentuniverse/agent/default/rag_agent}/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/rag_agent/default_cn_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/rag_agent/default_en_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/rag_agent/rag_agent.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/rag_agent/rag_agent.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/reviewing_agent/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/reviewing_agent/default_cn_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/reviewing_agent/default_en_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/reviewing_agent/reviewing_agent.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/default/reviewing_agent/reviewing_agent.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/input_object.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/memory/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/memory/chat_memory.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/memory/default/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/memory/default/default_memory.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/memory/enum.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/memory/langchain_instance.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/memory/memory.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/memory/memory_manager.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/memory/message.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/memory/summarizer_cn_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/memory/summarizer_en_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/output_object.py +0 -0
- {agentuniverse-0.0.8.dev1/agentuniverse/prompt → agentuniverse-0.0.9.dev2/agentuniverse/agent/plan}/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/executing_planner/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/executing_planner/executing_planner.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/expressing_planner/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/expressing_planner/expressing_planner.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/peer_planner/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/peer_planner/peer_planner.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/peer_planner/peer_planner.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/planner_manager.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/planning_planner/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/planning_planner/planning_planner.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/rag_planner/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/rag_planner/rag_planner.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/reviewing_planner/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/plan/planner/reviewing_planner/reviewing_planner.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/service.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/service_configer.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/service_instance.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/service_manager.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/dal/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/dal/entity/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/dal/entity/request_do.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/dal/request_library.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/flask_server.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/gunicorn_server.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/post_fork_queue.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/request_task.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/rpc/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/rpc/grpc/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/rpc/grpc/agentuniverse_service.proto +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/rpc/grpc/agentuniverse_service_pb2.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/rpc/grpc/agentuniverse_service_pb2_grpc.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/rpc/grpc/grpc_server_booster.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/rpc/rpc_server.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/thread_with_result.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/web_booster.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent_serve/web/web_util.py +0 -0
- {agentuniverse-0.0.8.dev1/agentuniverse/agent → agentuniverse-0.0.9.dev2/agentuniverse/base}/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/agentuniverse.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/annotation/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/annotation/singleton.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/annotation/trace.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/component/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/component/application_component_manager.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/component/component_base.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/component/component_configer_util.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/component/component_enum.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/component/component_manager_base.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/application_configer/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/application_configer/app_configer.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/application_configer/application_config_manager.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/component_configer/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/component_configer/component_configer.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/component_configer/configers/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/component_configer/configers/agent_configer.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/component_configer/configers/knowledge_configer.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/component_configer/configers/llm_configer.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/component_configer/configers/memory_configer.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/component_configer/configers/planner_configer.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/component_configer/configers/prompt_configer.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/component_configer/configers/sqldb_wrapper_config.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/component_configer/configers/tool_configer.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/config_type_enum.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/configer.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/custom_configer/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/config/custom_configer/custom_key_configer.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/context/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/context/framework_context.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/context/framework_context_manager.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/env_util.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/logging/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/logging/general_logger.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/logging/logging_config.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/logging/logging_util.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/memory_util.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/monitor/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/monitor/monitor.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/prompt/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/prompt/combine_cn_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/prompt/combine_en_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/prompt/summary_cn_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/prompt/summary_en_prompt.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/base/util/system_util.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/database/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/database/sqldb_wrapper.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/database/sqldb_wrapper_manager.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/default/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/default/baichuan_openai_style_llm.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/default/baichuan_openai_style_llm.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/default/default_openai_llm.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/default/default_openai_llm.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/default/kimi_openai_style_llm.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/default/kimi_openai_style_llm.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/default/qwen_openai_style_llm.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/default/qwen_openai_style_llm.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/default/wenxin_llm.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/default/wenxin_llm.yaml +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/langchain_instance.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/llm_manager.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/llm_output.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/openai_llm.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/llm/wenxin_langchain_instance.py +0 -0
- {agentuniverse-0.0.8.dev1/agentuniverse/agent/plan → agentuniverse-0.0.9.dev2/agentuniverse/prompt}/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/prompt/chat_prompt.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/prompt/enum.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/prompt/prompt.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/prompt/prompt_manager.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/prompt/prompt_model.py +0 -0
- {agentuniverse-0.0.8.dev1/agentuniverse → agentuniverse-0.0.9.dev2/agentuniverse_connector}/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse_extension/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse_extension/logger/__init__.py +0 -0
- {agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse_extension/logger/sls_sink.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: agentUniverse
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.9.dev2
|
|
4
4
|
Summary: agentUniverse is a framework for developing applications powered by multi-agent base on large language model.
|
|
5
5
|
Home-page: https://github.com/alipay/agentUniverse
|
|
6
6
|
Author: AntGroup
|
|
@@ -27,11 +27,14 @@ Requires-Dist: googleapis-common-protos (>=1.63.0,<2.0.0)
|
|
|
27
27
|
Requires-Dist: grpcio (==1.63.0)
|
|
28
28
|
Requires-Dist: gunicorn (>=22.0.0,<23.0.0)
|
|
29
29
|
Requires-Dist: langchain (==0.1.20)
|
|
30
|
+
Requires-Dist: langchain-anthropic (>=0.1.13,<0.2.0)
|
|
30
31
|
Requires-Dist: langchain-community (==0.0.38)
|
|
31
32
|
Requires-Dist: langchain-core (==0.1.52)
|
|
32
33
|
Requires-Dist: loguru (==0.7.2)
|
|
33
34
|
Requires-Dist: myst-parser (>=2.0.0,<3.0.0)
|
|
35
|
+
Requires-Dist: ollama (>=0.2.1,<0.3.0)
|
|
34
36
|
Requires-Dist: openai (==1.13.3)
|
|
37
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc (>=1.25.0,<2.0.0)
|
|
35
38
|
Requires-Dist: pydantic (>=2.6.4,<3.0.0)
|
|
36
39
|
Requires-Dist: pymilvus (>=2.4.3,<3.0.0) ; extra == "store-ext"
|
|
37
40
|
Requires-Dist: qianfan (>=0.3.12,<0.4.0)
|
agentuniverse-0.0.9.dev2/agentuniverse/agent/action/knowledge/embedding/dashscope_embedding.py
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# !/usr/bin/env python3
|
|
2
|
+
# -*- coding:utf-8 -*-
|
|
3
|
+
|
|
4
|
+
# @Time : 2024/6/12 11:43
|
|
5
|
+
# @Author : wangchongshi
|
|
6
|
+
# @Email : wangchongshi.wcs@antgroup.com
|
|
7
|
+
# @FileName: dashscope_embedding.py
|
|
8
|
+
import aiohttp
|
|
9
|
+
import requests
|
|
10
|
+
from typing import List, Generator, Optional
|
|
11
|
+
import json
|
|
12
|
+
|
|
13
|
+
from agentuniverse.base.util.env_util import get_from_env
|
|
14
|
+
from agentuniverse.agent.action.knowledge.embedding.embedding import Embedding
|
|
15
|
+
|
|
16
|
+
# Dashscope support max 25 string in one batch, each string max tokens is 2048.
|
|
17
|
+
DASHSCOPE_MAX_BATCH_SIZE = 25
|
|
18
|
+
DASHSCOPE_EMBEDDING_URL = "https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding"
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def batched(inputs: List,
|
|
22
|
+
batch_size: int = DASHSCOPE_MAX_BATCH_SIZE) -> Generator[List, None, None]:
|
|
23
|
+
# Split input string list, due to dashscope support 25 strings in one call.
|
|
24
|
+
for i in range(0, len(inputs), batch_size):
|
|
25
|
+
yield inputs[i:i + batch_size]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class DashscopeEmbedding(Embedding):
|
|
29
|
+
"""The Dashscope embedding class."""
|
|
30
|
+
dashscope_api_key: Optional[str] = None
|
|
31
|
+
|
|
32
|
+
def __init__(self, **kwargs):
|
|
33
|
+
"""Initialize the dashscope embedding class, need dashscope api key."""
|
|
34
|
+
super().__init__(**kwargs)
|
|
35
|
+
self.dashscope_api_key = get_from_env("DASHSCOPE_API_KEY")
|
|
36
|
+
if not self.dashscope_api_key:
|
|
37
|
+
raise Exception("No DASHSCOPE_API_KEY in your environment.")
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def get_embeddings(self, texts: List[str]) -> List[List[float]]:
|
|
41
|
+
"""
|
|
42
|
+
Retrieve text embeddings for a list of input texts.
|
|
43
|
+
|
|
44
|
+
This function interfaces with the DashScope embedding API to obtain
|
|
45
|
+
embeddings for a batch of input texts. It handles batching of input texts
|
|
46
|
+
to ensure efficient API calls. Each text is processed using the specified
|
|
47
|
+
embedding model.
|
|
48
|
+
|
|
49
|
+
Args:
|
|
50
|
+
texts (List[str]): A list of input texts to be embedded.
|
|
51
|
+
|
|
52
|
+
Returns:
|
|
53
|
+
List[List[float]]: A list of embeddings corresponding to the input texts.
|
|
54
|
+
|
|
55
|
+
Raises:
|
|
56
|
+
Exception: If the API call to DashScope fails, an exception is raised with
|
|
57
|
+
the respective error code and message.
|
|
58
|
+
"""
|
|
59
|
+
def post(post_params):
|
|
60
|
+
response = requests.post(
|
|
61
|
+
url=DASHSCOPE_EMBEDDING_URL,
|
|
62
|
+
headers={
|
|
63
|
+
"Content-Type": "application/json",
|
|
64
|
+
"Authorization": f"Bearer {self.dashscope_api_key}"
|
|
65
|
+
},
|
|
66
|
+
data=json.dumps(post_params, ensure_ascii=False).encode(
|
|
67
|
+
"utf-8"),
|
|
68
|
+
timeout=120
|
|
69
|
+
)
|
|
70
|
+
resp_json = response.json()
|
|
71
|
+
return resp_json
|
|
72
|
+
|
|
73
|
+
result = []
|
|
74
|
+
post_params = {
|
|
75
|
+
"model": self.embedding_model_name,
|
|
76
|
+
"input": {},
|
|
77
|
+
"parameters": {
|
|
78
|
+
"text_type": "query"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
for batch in batched(texts):
|
|
83
|
+
post_params["input"]["texts"] = batch
|
|
84
|
+
resp_json: dict = post(post_params)
|
|
85
|
+
data = resp_json.get("output")
|
|
86
|
+
if data:
|
|
87
|
+
data = data["embeddings"]
|
|
88
|
+
batch_result = [d['embedding'] for d in data if 'embedding' in d]
|
|
89
|
+
result += batch_result
|
|
90
|
+
else:
|
|
91
|
+
error_code = resp_json.get("code", "")
|
|
92
|
+
error_message = resp_json.get("message", "")
|
|
93
|
+
raise Exception(f"Failed to call dashscope embedding api, "
|
|
94
|
+
f"error code:{error_code}, "
|
|
95
|
+
f"error message:{error_message}")
|
|
96
|
+
return result
|
|
97
|
+
|
|
98
|
+
async def async_get_embeddings(self, texts: List[str]) -> List[List[float]]:
|
|
99
|
+
"""
|
|
100
|
+
Async version of get_embeddings.
|
|
101
|
+
|
|
102
|
+
This function interfaces with the DashScope embedding API to obtain
|
|
103
|
+
embeddings for a batch of input texts. It handles batching of input texts
|
|
104
|
+
to ensure efficient API calls. Each text is processed using the specified
|
|
105
|
+
embedding model.
|
|
106
|
+
|
|
107
|
+
Args:
|
|
108
|
+
texts (List[str]): A list of input texts to be embedded.
|
|
109
|
+
|
|
110
|
+
Returns:
|
|
111
|
+
List[List[float]]: A list of embeddings corresponding to the input texts.
|
|
112
|
+
|
|
113
|
+
Raises:
|
|
114
|
+
Exception: If the API call to DashScope fails, an exception is raised with
|
|
115
|
+
the respective error code and message.
|
|
116
|
+
"""
|
|
117
|
+
async def async_post(post_params):
|
|
118
|
+
async with aiohttp.ClientSession() as session:
|
|
119
|
+
async with await session.post(
|
|
120
|
+
url=DASHSCOPE_EMBEDDING_URL,
|
|
121
|
+
headers={
|
|
122
|
+
"Content-Type": "application/json",
|
|
123
|
+
"Authorization": f"Bearer {self.dashscope_api_key}"
|
|
124
|
+
},
|
|
125
|
+
data=json.dumps(post_params, ensure_ascii=False).encode(
|
|
126
|
+
"utf-8"),
|
|
127
|
+
timeout=120,
|
|
128
|
+
) as resp:
|
|
129
|
+
resp_json = await resp.json()
|
|
130
|
+
return resp_json
|
|
131
|
+
|
|
132
|
+
result = []
|
|
133
|
+
post_params = {
|
|
134
|
+
"model": self.embedding_model_name,
|
|
135
|
+
"input": {},
|
|
136
|
+
"parameters": {
|
|
137
|
+
"text_type": "query"
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
for batch in batched(texts):
|
|
142
|
+
post_params["input"]["texts"] = batch
|
|
143
|
+
resp_json: dict = await async_post(post_params)
|
|
144
|
+
data = resp_json.get("output")
|
|
145
|
+
if data:
|
|
146
|
+
data = data["embeddings"]
|
|
147
|
+
batch_result = [d['embedding'] for d in data if
|
|
148
|
+
'embedding' in d]
|
|
149
|
+
result += batch_result
|
|
150
|
+
else:
|
|
151
|
+
error_code = resp_json.get("code", "")
|
|
152
|
+
error_message = resp_json.get("message", "")
|
|
153
|
+
raise Exception(f"Failed to call dashscope embedding api, "
|
|
154
|
+
f"error code:{error_code}, "
|
|
155
|
+
f"error message:{error_message}")
|
|
156
|
+
return result
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# !/usr/bin/env python3
|
|
2
|
+
# -*- coding:utf-8 -*-
|
|
3
|
+
|
|
4
|
+
# @Time : 2024/6/11 16:30
|
|
5
|
+
# @Author : weizjajj
|
|
6
|
+
# @Email : weizhongjie.wzj@antgroup.com
|
|
7
|
+
# @FileName: qwen_embedding.py
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
from typing import List, Optional
|
|
11
|
+
|
|
12
|
+
import dashscope
|
|
13
|
+
from langchain_community.embeddings import DashScopeEmbeddings
|
|
14
|
+
from pydantic import Field
|
|
15
|
+
|
|
16
|
+
from agentuniverse.agent.action.knowledge.embedding.embedding import Embedding
|
|
17
|
+
from agentuniverse.base.util.env_util import get_from_env
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class QwenEmbedding(Embedding):
|
|
21
|
+
"""The openai embedding class."""
|
|
22
|
+
|
|
23
|
+
dashscope_api_key: Optional[str] = Field(default_factory=lambda: get_from_env("DASHSCOPE_API_KEY"))
|
|
24
|
+
"""The DashScope client."""
|
|
25
|
+
model: Optional[str] = "text-embedding-v1"
|
|
26
|
+
|
|
27
|
+
def get_embeddings(self, texts: List[str]) -> List[List[float]]:
|
|
28
|
+
"""Get the OpenAI embeddings.
|
|
29
|
+
|
|
30
|
+
Note:
|
|
31
|
+
The `embedding_model_name` parameter of the openai embedding class must be provided.
|
|
32
|
+
The `dimensions` parameter of the openai embedding class is optional.
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
texts (List[str]): A list of texts that need to be embedded.
|
|
36
|
+
|
|
37
|
+
Returns:
|
|
38
|
+
List[List[float]]: Each text gets a float list, and the result is a list of the results for each text.
|
|
39
|
+
|
|
40
|
+
Raises:
|
|
41
|
+
ValueError: If texts exceed the embedding model token limit or missing some required parameters.
|
|
42
|
+
"""
|
|
43
|
+
result = []
|
|
44
|
+
resp = dashscope.TextEmbedding.call(
|
|
45
|
+
model=self.model,
|
|
46
|
+
input=texts,
|
|
47
|
+
api_key=self.dashscope_api_key
|
|
48
|
+
)
|
|
49
|
+
if resp.status_code == 200:
|
|
50
|
+
result = [item['embedding'] for item in resp.output.get('embeddings')]
|
|
51
|
+
elif resp.status_code in [400, 401]:
|
|
52
|
+
raise ValueError(
|
|
53
|
+
f"status_code: {resp.status_code} \n "
|
|
54
|
+
f"code: {resp.code} \n message: {resp.message}"
|
|
55
|
+
)
|
|
56
|
+
else:
|
|
57
|
+
raise Exception(f"status_code: {resp.status_code} \n code: {resp.code} \n message: {resp.message}")
|
|
58
|
+
return result
|
|
59
|
+
|
|
60
|
+
async def async_get_embeddings(self, texts: List[str]) -> List[List[float]]:
|
|
61
|
+
"""Asynchronously get the OpenAI embeddings.
|
|
62
|
+
|
|
63
|
+
Note:
|
|
64
|
+
The `embedding_model_name` parameter of the openai embedding class must be provided.
|
|
65
|
+
The `dimensions` parameter of the openai embedding class is optional.
|
|
66
|
+
|
|
67
|
+
Args:
|
|
68
|
+
texts (List[str]): A list of texts that need to be embedded.
|
|
69
|
+
|
|
70
|
+
Returns:
|
|
71
|
+
List[List[float]]: Each text gets a float list, and the result is a list of the results for each text.
|
|
72
|
+
Raises:
|
|
73
|
+
ValueError: If texts exceed the embedding model token limit or missing some required parameters.
|
|
74
|
+
"""
|
|
75
|
+
raise NotImplementedError
|
|
76
|
+
|
|
77
|
+
def as_langchain(self) -> DashScopeEmbeddings:
|
|
78
|
+
"""Convert the agentUniverse(aU) openai embedding class to the langchain openai embedding class."""
|
|
79
|
+
return DashScopeEmbeddings(
|
|
80
|
+
model=self.model,
|
|
81
|
+
dashscope_api_key=self.dashscope_api_key,
|
|
82
|
+
)
|
{agentuniverse-0.0.8.dev1 → agentuniverse-0.0.9.dev2}/agentuniverse/agent/action/tool/tool.py
RENAMED
|
@@ -73,6 +73,24 @@ class Tool(ComponentBase):
|
|
|
73
73
|
if key not in kwargs.keys():
|
|
74
74
|
raise Exception(f'{self.get_instance_code()} - The input must include key: {key}.')
|
|
75
75
|
|
|
76
|
+
def langchain_run(self, *args, callbacks=None, **kwargs):
|
|
77
|
+
"""The callable method that runs the tool."""
|
|
78
|
+
kwargs["callbacks"] = callbacks
|
|
79
|
+
tool_input = ToolInput(kwargs)
|
|
80
|
+
parse_result = self.parse_react_input(args[0])
|
|
81
|
+
for key in self.input_keys:
|
|
82
|
+
tool_input.add_data(key, parse_result[key])
|
|
83
|
+
return self.execute(tool_input)
|
|
84
|
+
|
|
85
|
+
def parse_react_input(self, input_str: str):
|
|
86
|
+
"""
|
|
87
|
+
parse react string to you input
|
|
88
|
+
you can define your own logic here by override this function
|
|
89
|
+
"""
|
|
90
|
+
return {
|
|
91
|
+
self.input_keys[0]: input_str
|
|
92
|
+
}
|
|
93
|
+
|
|
76
94
|
@abstractmethod
|
|
77
95
|
def execute(self, tool_input: ToolInput):
|
|
78
96
|
raise NotImplementedError
|
|
@@ -80,7 +98,7 @@ class Tool(ComponentBase):
|
|
|
80
98
|
def as_langchain(self) -> LangchainTool:
|
|
81
99
|
"""Convert the agentUniverse(aU) tool class to the langchain tool class."""
|
|
82
100
|
return LangchainTool(name=self.name,
|
|
83
|
-
func=self.
|
|
101
|
+
func=self.langchain_run,
|
|
84
102
|
description=self.description)
|
|
85
103
|
|
|
86
104
|
def get_instance_code(self) -> str:
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
introduction: 你是一位精通工具选择ai助手。
|
|
2
|
+
target: 你的目标是根据用户的问题选择出合适的工具。
|
|
3
|
+
instruction: |
|
|
4
|
+
你需要根据问题和用户提供的工具,选择其中的一个或几个工具用来回答用户提出的问题。
|
|
5
|
+
你必须从多个角度、维度分析用户的问题,需要根据背景和问题,决定使用哪些工具可以回答用户问题。
|
|
6
|
+
|
|
7
|
+
您可以使用以下工具:
|
|
8
|
+
{tools}
|
|
9
|
+
|
|
10
|
+
之前的对话:
|
|
11
|
+
{chat_history}
|
|
12
|
+
|
|
13
|
+
背景信息是:
|
|
14
|
+
{background}
|
|
15
|
+
|
|
16
|
+
回答必须是按照以下格式化的Json代码片段。
|
|
17
|
+
1. tools字段代表选择的几个工具的完整名称,列表格式。例如:[add, sub, mul, div]
|
|
18
|
+
2. thought字段代表选择工具的思考过程和原因。
|
|
19
|
+
```{{
|
|
20
|
+
"tools": list,
|
|
21
|
+
"thought": string
|
|
22
|
+
}}```
|
|
23
|
+
|
|
24
|
+
当前的问题:{input}
|
|
25
|
+
metadata:
|
|
26
|
+
type: 'PROMPT'
|
|
27
|
+
version: 'default_nl2api_agent.cn'
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
introduction: You are an AI assistant proficient in tool selection.
|
|
2
|
+
target: Your goal is to select the appropriate tools based on the user's questions.
|
|
3
|
+
instruction: |
|
|
4
|
+
Your task is to select one or several tools from those provided by the user, based on their question and the context, in order to answer the user's query.
|
|
5
|
+
You must analyze the user's problem from multiple angles and dimensions, taking into account the background and context of the question, and decide which tools can be used to answer the user's question.
|
|
6
|
+
You may use the following tools:
|
|
7
|
+
{tools}
|
|
8
|
+
|
|
9
|
+
Previous conversation:
|
|
10
|
+
{chat_history}
|
|
11
|
+
|
|
12
|
+
The background information is:
|
|
13
|
+
{background}
|
|
14
|
+
|
|
15
|
+
The response must follow the format below as a formatted JSON code snippet.
|
|
16
|
+
1. The tools field represents the full names of the selected tools in a list format, such as:[add, sub, mul, div]
|
|
17
|
+
2. The thought field represents the thinking process and reasons behind the selection of tools.
|
|
18
|
+
```{{
|
|
19
|
+
"tools": list,
|
|
20
|
+
"thought": string
|
|
21
|
+
}}```
|
|
22
|
+
|
|
23
|
+
Question: {input}
|
|
24
|
+
metadata:
|
|
25
|
+
type: 'PROMPT'
|
|
26
|
+
version: 'default_nl2api_agent.en'
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# !/usr/bin/env python3
|
|
2
|
+
# -*- coding:utf-8 -*-
|
|
3
|
+
|
|
4
|
+
# @Time : 2024/6/11 17:14
|
|
5
|
+
# @Author : weizjajj
|
|
6
|
+
# @Email : weizhongjie.wzj@antgroup.com
|
|
7
|
+
# @FileName: nl2api_agent.py
|
|
8
|
+
|
|
9
|
+
from agentuniverse.agent.agent import Agent
|
|
10
|
+
from agentuniverse.agent.input_object import InputObject
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Nl2ApiAgent(Agent):
|
|
14
|
+
"""ReAct Agent class."""
|
|
15
|
+
|
|
16
|
+
def input_keys(self) -> list[str]:
|
|
17
|
+
"""Return the input keys of the Agent."""
|
|
18
|
+
return ['input']
|
|
19
|
+
|
|
20
|
+
def output_keys(self) -> list[str]:
|
|
21
|
+
"""Return the output keys of the Agent."""
|
|
22
|
+
return ['output']
|
|
23
|
+
|
|
24
|
+
def parse_input(self, input_object: InputObject, agent_input: dict) -> dict:
|
|
25
|
+
"""Agent parameter parsing.
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
input_object (InputObject): input parameters passed by the user.
|
|
29
|
+
agent_input (dict): agent input preparsed by the agent.
|
|
30
|
+
Returns:
|
|
31
|
+
dict: agent input parsed from `input_object` by the user.
|
|
32
|
+
"""
|
|
33
|
+
agent_input['input'] = input_object.get_data('input')
|
|
34
|
+
self.agent_model.profile.setdefault('prompt_version', 'default_nl2api_agent.cn')
|
|
35
|
+
return agent_input
|
|
36
|
+
|
|
37
|
+
def parse_result(self, planner_result: dict) -> dict:
|
|
38
|
+
"""Planner result parser.
|
|
39
|
+
|
|
40
|
+
Args:
|
|
41
|
+
planner_result(dict): Planner result
|
|
42
|
+
Returns:
|
|
43
|
+
dict: Agent result object.
|
|
44
|
+
"""
|
|
45
|
+
return planner_result
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
info:
|
|
2
|
+
name: 'nl2api_agent'
|
|
3
|
+
description: 'nl2api agent'
|
|
4
|
+
profile:
|
|
5
|
+
llm_model:
|
|
6
|
+
name: 'default_openai_llm'
|
|
7
|
+
model_name: 'gpt-4o'
|
|
8
|
+
action:
|
|
9
|
+
tool:
|
|
10
|
+
- ''
|
|
11
|
+
plan:
|
|
12
|
+
planner:
|
|
13
|
+
name: 'nl2api_planner'
|
|
14
|
+
metadata:
|
|
15
|
+
type: 'AGENT'
|
|
16
|
+
module: 'agentuniverse.agent.default.nl2api_agent.nl2api_agent'
|
|
17
|
+
class: 'Nl2ApiAgent'
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
introduction: 你是一位精通信息分析的ai助手。
|
|
2
|
+
target: 你的目标是根据用户的问题以及给出的背景信息给出答案。
|
|
3
|
+
instruction: |
|
|
4
|
+
你必须优先选择使用提供的工具回答用户提出的问题,若用户没有提供工具可以根据你的通识能力解决问题。
|
|
5
|
+
你在回答时问题必须使用中文回答。
|
|
6
|
+
你必须从多个角度、维度分析用户的问题,帮助用户获取最全面的信息,需要根据背景和问题,决定搜索哪些信息可以回答问题。
|
|
7
|
+
请注意: 你在给出最终答案时需要从多角度给出更详细的原因,而不是一个简单的结论。
|
|
8
|
+
|
|
9
|
+
您可以使用以下工具:
|
|
10
|
+
{tools}
|
|
11
|
+
|
|
12
|
+
你的回答必须严格使用以下格式:
|
|
13
|
+
|
|
14
|
+
Question: 您必须回答的问题
|
|
15
|
+
Thought: 你应该经常想想该怎么做
|
|
16
|
+
Action: 要采取的行动应该是 one of [{tool_names}]
|
|
17
|
+
Action Input: 行动的输入
|
|
18
|
+
Observation: 行动的结果
|
|
19
|
+
... (Thought/Action/Action Input/Observation 的过程可以重复 N 次)
|
|
20
|
+
Thought: 我现在知道最终答案了
|
|
21
|
+
Final Answer: 原输入问题的最终答案
|
|
22
|
+
|
|
23
|
+
之前的对话:
|
|
24
|
+
{chat_history}
|
|
25
|
+
|
|
26
|
+
背景信息是:
|
|
27
|
+
{background}
|
|
28
|
+
|
|
29
|
+
开始!
|
|
30
|
+
|
|
31
|
+
Question: {input}
|
|
32
|
+
Thought:{agent_scratchpad}
|
|
33
|
+
metadata:
|
|
34
|
+
type: 'PROMPT'
|
|
35
|
+
version: 'default_react_agent.cn'
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
introduction: You are an AI assistant who is proficient in information analysis.
|
|
2
|
+
target: Your goal is to give answers based on the user's question and the context given.
|
|
3
|
+
instruction: |
|
|
4
|
+
Answer the following questions as best you can. You have access to the following tools:
|
|
5
|
+
|
|
6
|
+
{tools}
|
|
7
|
+
|
|
8
|
+
Use the following format:
|
|
9
|
+
|
|
10
|
+
Question: the input question you must answer
|
|
11
|
+
Thought: you should always think about what to do
|
|
12
|
+
Action: the action to take, should be one of [{tool_names}]
|
|
13
|
+
Action Input: the input to the action
|
|
14
|
+
Observation: the result of the action
|
|
15
|
+
... (this Thought/Action/Action Input/Observation can repeat N times)
|
|
16
|
+
Thought: I now know the final answer
|
|
17
|
+
Final Answer: the final answer to the original input question
|
|
18
|
+
|
|
19
|
+
Previous conversion:
|
|
20
|
+
{chat_history}
|
|
21
|
+
|
|
22
|
+
Background:
|
|
23
|
+
{background}
|
|
24
|
+
|
|
25
|
+
Begin!
|
|
26
|
+
|
|
27
|
+
Question: {input}
|
|
28
|
+
Thought:{agent_scratchpad}
|
|
29
|
+
metadata:
|
|
30
|
+
type: 'PROMPT'
|
|
31
|
+
version: 'default_react_agent.en'
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# !/usr/bin/env python3
|
|
2
|
+
# -*- coding:utf-8 -*-
|
|
3
|
+
|
|
4
|
+
# @Time : 2024/5/31 21:22
|
|
5
|
+
# @Author : wangchongshi
|
|
6
|
+
# @Email : wangchongshi.wcs@antgroup.com
|
|
7
|
+
# @FileName: react_agent.py
|
|
8
|
+
from agentuniverse.agent.agent import Agent
|
|
9
|
+
from agentuniverse.agent.input_object import InputObject
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ReActAgent(Agent):
|
|
13
|
+
"""ReAct Agent class."""
|
|
14
|
+
|
|
15
|
+
def input_keys(self) -> list[str]:
|
|
16
|
+
"""Return the input keys of the Agent."""
|
|
17
|
+
return ['input']
|
|
18
|
+
|
|
19
|
+
def output_keys(self) -> list[str]:
|
|
20
|
+
"""Return the output keys of the Agent."""
|
|
21
|
+
return ['output']
|
|
22
|
+
|
|
23
|
+
def parse_input(self, input_object: InputObject, agent_input: dict) -> dict:
|
|
24
|
+
"""Agent parameter parsing.
|
|
25
|
+
|
|
26
|
+
Args:
|
|
27
|
+
input_object (InputObject): input parameters passed by the user.
|
|
28
|
+
agent_input (dict): agent input preparsed by the agent.
|
|
29
|
+
Returns:
|
|
30
|
+
dict: agent input parsed from `input_object` by the user.
|
|
31
|
+
"""
|
|
32
|
+
agent_input['input'] = input_object.get_data('input')
|
|
33
|
+
self.agent_model.profile.setdefault('prompt_version', 'default_react_agent.cn')
|
|
34
|
+
return agent_input
|
|
35
|
+
|
|
36
|
+
def parse_result(self, planner_result: dict) -> dict:
|
|
37
|
+
"""Planner result parser.
|
|
38
|
+
|
|
39
|
+
Args:
|
|
40
|
+
planner_result(dict): Planner result
|
|
41
|
+
Returns:
|
|
42
|
+
dict: Agent result object.
|
|
43
|
+
"""
|
|
44
|
+
return planner_result
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
info:
|
|
2
|
+
name: 'react_agent'
|
|
3
|
+
description: 'react agent'
|
|
4
|
+
profile:
|
|
5
|
+
llm_model:
|
|
6
|
+
name: 'default_openai_llm'
|
|
7
|
+
model_name: 'gpt-4o'
|
|
8
|
+
action:
|
|
9
|
+
tool:
|
|
10
|
+
- ''
|
|
11
|
+
plan:
|
|
12
|
+
planner:
|
|
13
|
+
name: 'react_planner'
|
|
14
|
+
metadata:
|
|
15
|
+
type: 'AGENT'
|
|
16
|
+
module: 'agentuniverse.agent.default.react_agent.react_agent'
|
|
17
|
+
class: 'ReActAgent'
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import asyncio
|
|
9
9
|
|
|
10
10
|
from langchain_core.chat_history import InMemoryChatMessageHistory
|
|
11
|
+
from langchain_core.output_parsers import StrOutputParser
|
|
11
12
|
from langchain_core.runnables.history import RunnableWithMessageHistory
|
|
12
13
|
|
|
13
14
|
from agentuniverse.agent.agent_model import AgentModel
|
|
@@ -38,7 +39,7 @@ class ExecutingPlanner(Planner):
|
|
|
38
39
|
|
|
39
40
|
memory: ChatMemory = self.handle_memory(agent_model, planner_input)
|
|
40
41
|
|
|
41
|
-
self.
|
|
42
|
+
self.run_all_actions(agent_model, planner_input, input_object)
|
|
42
43
|
|
|
43
44
|
llm: LLM = self.handle_llm(agent_model)
|
|
44
45
|
|
|
@@ -52,10 +53,10 @@ class ExecutingPlanner(Planner):
|
|
|
52
53
|
lambda session_id: chat_history,
|
|
53
54
|
history_messages_key="chat_history",
|
|
54
55
|
input_messages_key=self.input_key,
|
|
55
|
-
)
|
|
56
|
+
) | StrOutputParser()
|
|
56
57
|
res = asyncio.run(
|
|
57
58
|
chain_with_history.ainvoke(input=planner_input, config={"configurable": {"session_id": "unused"}}))
|
|
58
|
-
return {**planner_input, self.output_key: res
|
|
59
|
+
return {**planner_input, self.output_key: res, 'chat_history': generate_memories(chat_history)}
|
|
59
60
|
|
|
60
61
|
def handle_prompt(self, agent_model: AgentModel, planner_input: dict) -> Prompt:
|
|
61
62
|
"""Prompt module processing.
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import asyncio
|
|
9
9
|
|
|
10
10
|
from langchain_core.chat_history import InMemoryChatMessageHistory
|
|
11
|
+
from langchain_core.output_parsers import StrOutputParser
|
|
11
12
|
from langchain_core.runnables.history import RunnableWithMessageHistory
|
|
12
13
|
|
|
13
14
|
from agentuniverse.agent.agent_model import AgentModel
|
|
@@ -49,10 +50,10 @@ class ExpressingPlanner(Planner):
|
|
|
49
50
|
lambda session_id: chat_history,
|
|
50
51
|
history_messages_key="chat_history",
|
|
51
52
|
input_messages_key=self.input_key,
|
|
52
|
-
)
|
|
53
|
+
) | StrOutputParser()
|
|
53
54
|
res = asyncio.run(
|
|
54
55
|
chain_with_history.ainvoke(input=planner_input, config={"configurable": {"session_id": "unused"}}))
|
|
55
|
-
return {**planner_input, self.output_key: res
|
|
56
|
+
return {**planner_input, self.output_key: res, 'chat_history': generate_memories(chat_history)}
|
|
56
57
|
|
|
57
58
|
def handle_prompt(self, agent_model: AgentModel, planner_input: dict) -> Prompt:
|
|
58
59
|
"""Prompt module processing.
|
|
File without changes
|