aiagents4pharma 1.38.0__tar.gz → 1.39.1__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.
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/PKG-INFO +58 -105
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/README.md +57 -104
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/agents/main_agent.py +7 -7
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/agents/paper_download_agent.py +12 -4
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/default.yaml +98 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/default.yaml +5 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/default.yaml +9 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/config.yaml +2 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/configs/tools/zotero_read/__init__.py +3 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/configs/tools/zotero_write/__inti__.py +3 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_main_agent.py +20 -2
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tests/test_nvidia_nim_reranker_utils.py +28 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tests/test_paper_download_biorxiv.py +151 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tests/test_paper_download_medrxiv.py +151 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_paper_download_tools.py +107 -29
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_pdf_agent.py +2 -3
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tests/test_question_and_answer_tool.py +529 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_s2_agent.py +2 -2
- aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/tests/test_s2_display.py → aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tests/test_s2_display_dataframe.py +2 -3
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tests/test_s2_query_dataframe.py +201 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_s2_retrieve.py +7 -6
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tests/test_s2_utils_ext_ids.py +413 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tests/test_tool_helper_utils.py +140 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_zotero_agent.py +0 -1
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_zotero_read.py +16 -18
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/paper_download/__init__.py +4 -1
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tools/paper_download/download_arxiv_input.py +177 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tools/paper_download/download_biorxiv_input.py +112 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tools/paper_download/download_medrxiv_input.py +112 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tools/pdf/question_and_answer.py +140 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tools/pdf/utils/__init__.py +10 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tools/pdf/utils/generate_answer.py +97 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tools/pdf/utils/nvidia_nim_reranker.py +77 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tools/pdf/utils/retrieve_chunks.py +83 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tools/pdf/utils/tool_helper.py +125 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tools/pdf/utils/vector_store.py +162 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/s2/display_dataframe.py +33 -10
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tools/s2/multi_paper_rec.py +107 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tools/s2/query_dataframe.py +189 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tools/s2/retrieve_semantic_scholar_paper_id.py +111 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tools/s2/search.py +101 -0
- aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/tools/s2/single_paper_rec.py +100 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/s2/utils/multi_helper.py +49 -14
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/s2/utils/search_helper.py +51 -14
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/s2/utils/single_helper.py +50 -15
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma.egg-info/PKG-INFO +58 -105
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma.egg-info/SOURCES.txt +17 -4
- aiagents4pharma-1.39.1/release_version.txt +1 -0
- aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/default.yaml +0 -22
- aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/default.yaml +0 -24
- aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/default.yaml +0 -34
- aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/tests/test_llm_main_integration.py +0 -89
- aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/tests/test_question_and_answer_tool.py +0 -878
- aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/tests/test_routing_logic.py +0 -74
- aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/tests/test_s2_query.py +0 -95
- aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/tools/paper_download/download_arxiv_input.py +0 -122
- aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/tools/pdf/question_and_answer.py +0 -623
- aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/tools/s2/multi_paper_rec.py +0 -84
- aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/tools/s2/query_dataframe.py +0 -75
- aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/tools/s2/retrieve_semantic_scholar_paper_id.py +0 -79
- aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/tools/s2/search.py +0 -78
- aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/tools/s2/single_paper_rec.py +0 -82
- aiagents4pharma-1.38.0/release_version.txt +0 -1
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/LICENSE +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2aiagents4pharma/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2aiagents4pharma/agents/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2aiagents4pharma/agents/main_agent.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2aiagents4pharma/configs/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2aiagents4pharma/configs/agents/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2aiagents4pharma/configs/agents/main_agent/default.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2aiagents4pharma/configs/config.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2aiagents4pharma/states/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2aiagents4pharma/states/state_talk2aiagents4pharma.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2aiagents4pharma/tests/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2aiagents4pharma/tests/test_main_agent.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/agents/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/agents/t2b_agent.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/api/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/api/kegg.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/api/ols.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/api/uniprot.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/configs/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/configs/agents/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/configs/agents/t2b_agent/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/configs/agents/t2b_agent/default.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/configs/config.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/configs/tools/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/configs/tools/ask_question/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/configs/tools/ask_question/default.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/configs/tools/custom_plotter/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/configs/tools/custom_plotter/default.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/configs/tools/get_annotation/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/configs/tools/get_annotation/default.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/models/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/models/basico_model.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/models/sys_bio_model.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/states/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/states/state_talk2biomodels.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tests/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tests/test_api.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tests/test_ask_question.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tests/test_basico_model.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tests/test_get_annotation.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tests/test_getmodelinfo.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tests/test_integration.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tests/test_load_biomodel.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tests/test_param_scan.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tests/test_query_article.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tests/test_search_models.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tests/test_simulate_model.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tests/test_steady_state.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tests/test_sys_bio_model.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tools/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tools/ask_question.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tools/custom_plotter.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tools/get_annotation.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tools/get_modelinfo.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tools/load_arguments.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tools/load_biomodel.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tools/parameter_scan.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tools/query_article.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tools/search_models.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tools/simulate_model.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tools/steady_state.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2biomodels/tools/utils.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2cells/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2cells/agents/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2cells/agents/scp_agent.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2cells/states/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2cells/states/state_talk2cells.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2cells/tests/scp_agent/test_scp_agent.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2cells/tools/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2cells/tools/scp_agent/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2cells/tools/scp_agent/display_studies.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2cells/tools/scp_agent/search_studies.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/agents/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/agents/t2kg_agent.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/configs/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/configs/agents/t2kg_agent/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/configs/agents/t2kg_agent/default.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/configs/app/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/configs/app/frontend/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/configs/app/frontend/default.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/configs/config.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/configs/tools/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/configs/tools/graphrag_reasoning/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/configs/tools/graphrag_reasoning/default.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/configs/tools/multimodal_subgraph_extraction/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_extraction/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_extraction/default.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_summarization/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_summarization/default.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/datasets/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/datasets/biobridge_primekg.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/datasets/dataset.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/datasets/primekg.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/datasets/starkqa_primekg.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/states/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/states/state_talk2knowledgegraphs.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_agents_t2kg_agent.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_biobridge_primekg.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_dataset.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_primekg.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_starkqa_primekg.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_tools_graphrag_reasoning.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_tools_multimodal_subgraph_extraction.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_tools_subgraph_extraction.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_tools_subgraph_summarization.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_embeddings.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_huggingface.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_nim_molmim.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_ollama.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_sentencetransformer.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_enrichments.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_ollama.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_ols.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_pubchem.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_reactome.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_uniprot.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_utils_kg_utils.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tests/test_utils_pubchem_utils.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tools/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tools/graphrag_reasoning.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tools/load_arguments.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tools/multimodal_subgraph_extraction.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tools/subgraph_extraction.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/tools/subgraph_summarization.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/embeddings/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/embeddings/embeddings.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/embeddings/huggingface.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/embeddings/nim_molmim.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/embeddings/ollama.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/embeddings/sentence_transformer.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/enrichments/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/enrichments/enrichments.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/enrichments/ollama.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/enrichments/ols_terms.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/enrichments/pubchem_strings.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/enrichments/reactome_pathways.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/enrichments/uniprot_proteins.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/extractions/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/extractions/multimodal_pcst.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/extractions/pcst.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/kg_utils.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2knowledgegraphs/utils/pubchem_utils.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/agents/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/agents/pdf_agent.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/agents/s2_agent.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/agents/zotero_agent.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/agents/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/agents/talk2scholars/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/agents/talk2scholars/paper_download_agent/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/agents/talk2scholars/pdf_agent/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/app/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/app/frontend/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/app/frontend/default.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/tools/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/tools/download_arxiv_paper/__init__.py +0 -0
- {aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/configs/tools/multi_paper_recommendation → aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/configs/tools/download_biorxiv_paper}/__init__.py +0 -0
- {aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/configs/tools/question_and_answer → aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/configs/tools/download_medrxiv_paper}/__init__.py +0 -0
- {aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/configs/tools/retrieve_semantic_scholar_paper_id → aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/configs/tools/multi_paper_recommendation}/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/tools/multi_paper_recommendation/default.yaml +0 -0
- {aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/configs/tools/search → aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/configs/tools/question_and_answer}/__init__.py +0 -0
- {aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/configs/tools/single_paper_recommendation → aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/configs/tools/retrieve_semantic_scholar_paper_id}/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/tools/retrieve_semantic_scholar_paper_id/default.yaml +0 -0
- {aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/configs/tools/zotero_read → aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/configs/tools/search}/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/tools/search/default.yaml +0 -0
- /aiagents4pharma-1.38.0/aiagents4pharma/talk2scholars/configs/tools/zotero_write/__inti__.py → /aiagents4pharma-1.39.1/aiagents4pharma/talk2scholars/configs/tools/single_paper_recommendation/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/tools/single_paper_recommendation/default.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/tools/zotero_read/default.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/tools/zotero_write/default.yaml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/state/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/state/state_talk2scholars.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_paper_download_agent.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_read_helper_utils.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_s2_multi.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_s2_search.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_s2_single.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_state.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_zotero_human_in_the_loop.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_zotero_path.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_zotero_pdf_downloader_utils.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tests/test_zotero_write.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/pdf/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/s2/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/s2/utils/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/zotero/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/zotero/utils/__init__.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/zotero/utils/read_helper.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/zotero/utils/review_helper.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/zotero/utils/write_helper.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/zotero/utils/zotero_path.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/zotero/utils/zotero_pdf_downloader.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/zotero/zotero_read.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/zotero/zotero_review.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/tools/zotero/zotero_write.py +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma.egg-info/dependency_links.txt +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma.egg-info/requires.txt +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma.egg-info/top_level.txt +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/pyproject.toml +0 -0
- {aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: aiagents4pharma
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.39.1
|
4
4
|
Summary: AI Agents for drug discovery, drug development, and other pharmaceutical R&D.
|
5
5
|
Classifier: Programming Language :: Python :: 3
|
6
6
|
Classifier: License :: OSI Approved :: MIT License
|
@@ -96,10 +96,10 @@ Our toolkit currently consists of the following agents:
|
|
96
96
|
- T2B and T2KG accepted at the MLGenX workshop during ICLR #2025 in Singapore. [Read More](https://openreview.net/forum?id=av4QhBNeZo)
|
97
97
|
|
98
98
|
<div align="center">
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
99
|
+
<strong>Watch the presentation:</strong><br><br>
|
100
|
+
<a href="https://www.youtube.com/watch?v=3cU_OxY4HiE">
|
101
|
+
<img src="https://img.youtube.com/vi/3cU_OxY4HiE/0.jpg" alt="Watch the presentation" width="480">
|
102
|
+
</a>
|
103
103
|
</div>
|
104
104
|
|
105
105
|
## Getting Started
|
@@ -145,117 +145,62 @@ LANGCHAIN_TRACING_V2=true # Optional for both agents
|
|
145
145
|
LANGCHAIN_API_KEY=... # Optional for both agents
|
146
146
|
```
|
147
147
|
|
148
|
-
|
149
|
-
|
150
|
-
###### Notes for Windows Users
|
151
|
-
|
152
|
-
If you are using Windows, it is recommended to install **Git Bash** for a smoother experience when running the bash commands in this guide.
|
153
|
-
|
154
|
-
- For applications that use **Docker Compose**, Git Bash is **required**.
|
155
|
-
- For applications that use **docker run** manually, Git Bash is **optional**, but recommended for consistency.
|
156
|
-
|
157
|
-
You can download Git Bash here: [Git for Windows](https://git-scm.com/downloads).
|
158
|
-
|
159
|
-
When using Docker on Windows, make sure you **run Docker with administrative privileges** if you face permission issues.
|
160
|
-
|
161
|
-
To resolve for permission issues, you can:
|
162
|
-
|
163
|
-
- Review the official Docker documentation on [Windows permission requirements](https://docs.docker.com/desktop/setup/install/windows-permission-requirements/).
|
164
|
-
- Alternatively, follow the community discussion and solutions on [Docker Community Forums](https://forums.docker.com/t/error-when-trying-to-run-windows-containers-docker-client-must-be-run-with-elevated-privileges/136619).
|
165
|
-
|
166
|
-
**LangSmith** support is optional. To enable it, create an API key [here](https://docs.smith.langchain.com/administration/how_to_guides/organization_management/create_account_api_key).
|
148
|
+
[Additional Notes for Windows Users](https://github.com/VirtualPatientEngine/AIAgents4Pharma/tree/main/aiagents4pharma/install.md)
|
167
149
|
|
168
150
|
##### **3. Start the application**
|
169
151
|
|
170
|
-
Run the startup script. It will:
|
171
|
-
|
172
|
-
- Detect your hardware configuration (NVIDIA GPU, AMD GPU, or CPU). Apple Metal is unavailable inside Docker, and Intel SIMD optimizations are automatically handled without special configuration.
|
173
|
-
- Choose the correct Ollama image (`latest` or `rocm`)
|
174
|
-
- Launch the Ollama container with appropriate runtime settings
|
175
|
-
- Pull the required embedding model (`nomic-embed-text`)
|
176
|
-
- Start the agent **after the model is available**
|
177
|
-
|
178
152
|
```sh
|
179
153
|
chmod +x startup.sh
|
180
154
|
./startup.sh # Add --cpu flag to force CPU mode if needed
|
181
155
|
```
|
182
156
|
|
183
|
-
|
184
|
-
|
185
|
-
Once started, the agent is available at:
|
186
|
-
|
187
|
-
```
|
188
|
-
http://localhost:8501
|
189
|
-
```
|
157
|
+
[More about startup script](https://github.com/VirtualPatientEngine/AIAgents4Pharma/tree/main/aiagents4pharma/install.md)
|
190
158
|
|
191
159
|
##### **To Run Talk2Biomodels / Talk2Scholars**
|
192
160
|
|
193
|
-
1. **Run the containers**
|
194
|
-
|
195
161
|
###### Talk2Biomodels
|
196
162
|
|
197
163
|
```docker
|
198
164
|
docker run -d \
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
165
|
+
--name talk2biomodels \
|
166
|
+
-e OPENAI_API_KEY=<your_openai_api_key> \
|
167
|
+
-e NVIDIA_API_KEY=<your_nvidia_api_key> \
|
168
|
+
-p 8501:8501 \
|
169
|
+
virtualpatientengine/talk2biomodels
|
204
170
|
```
|
205
171
|
|
206
172
|
###### Talk2Scholars
|
207
173
|
|
208
174
|
```docker
|
209
175
|
docker run -d \
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
176
|
+
--name talk2scholars \
|
177
|
+
-e OPENAI_API_KEY=<your_openai_api_key> \
|
178
|
+
-e ZOTERO_API_KEY=<your_zotero_api_key> \
|
179
|
+
-e ZOTERO_USER_ID=<your_zotero_user_id> \
|
180
|
+
-e NVIDIA_API_KEY=<your_nvidia_api_key> \
|
181
|
+
-p 8501:8501 \
|
182
|
+
virtualpatientengine/talk2scholars
|
217
183
|
```
|
218
184
|
|
219
|
-
|
220
|
-
|
185
|
+
##### **4. Access the Web UI**
|
186
|
+
|
187
|
+
Once started, the agent is available at:
|
188
|
+
|
189
|
+
```
|
190
|
+
http://localhost:8501
|
191
|
+
```
|
221
192
|
|
222
|
-
|
223
|
-
http://localhost:8501
|
224
|
-
```
|
193
|
+
To use **Talk2AIAgents4Pharma** or **Talk2KnowledgeGraphs**, you need a free **NVIDIA API key**. Create an account and apply for free credits [here](https://build.nvidia.com/explore/discover).
|
225
194
|
|
226
195
|
To use **Talk2BioModels** or **Talk2Scholars**, you need a free **NVIDIA API key**. Create an account and apply for free credits [here](https://build.nvidia.com/explore/discover).
|
227
196
|
|
228
197
|
Only for **Talk2Scholars**, you also need a **Zotero API key**, which you can generate [here](https://www.zotero.org/user/login#applications). _(For all other agents, the Zotero key is not required.)_
|
229
198
|
|
230
|
-
If you are using docker on Windows, please follow these [Windows Setup Notes](
|
199
|
+
If you are using docker on Windows, please follow these [Windows Setup Notes](https://github.com/VirtualPatientEngine/AIAgents4Pharma/tree/main/aiagents4pharma).
|
231
200
|
|
232
201
|
**LangSmith** support is optional. To enable it, create an API key [here](https://docs.smith.langchain.com/administration/how_to_guides/organization_management/create_account_api_key).
|
233
202
|
|
234
|
-
|
235
|
-
|
236
|
-
- Be sure to **replace the placeholder values** with your actual credentials before running any container:
|
237
|
-
|
238
|
-
- `<your_openai_api_key>`
|
239
|
-
- `<your_nvidia_api_key>`
|
240
|
-
- `<your_zotero_api_key>`
|
241
|
-
- `<your_zotero_user_id>`
|
242
|
-
|
243
|
-
- All agents default to **port `8501`**. If you plan to run multiple agents simultaneously, make sure to assign **different ports** to avoid conflicts.
|
244
|
-
|
245
|
-
Example (Talk2Scholars on port `8502`):
|
246
|
-
|
247
|
-
```docker
|
248
|
-
docker run -d \
|
249
|
-
--name talk2scholars \
|
250
|
-
-e OPENAI_API_KEY=<your_openai_api_key> \
|
251
|
-
-e ZOTERO_API_KEY=<your_zotero_api_key> \
|
252
|
-
-e ZOTERO_USER_ID=<your_zotero_user_id> \
|
253
|
-
-e NVIDIA_API_KEY=<your_nvidia_api_key> \
|
254
|
-
-p 8502:8501 \
|
255
|
-
virtualpatientengine/talk2scholars
|
256
|
-
```
|
257
|
-
|
258
|
-
Then access the app at: [http://localhost:8502](http://localhost:8502)
|
203
|
+
[More on running multiple agents simultaneously](https://github.com/VirtualPatientEngine/AIAgents4Pharma/tree/main/aiagents4pharma/install.md)
|
259
204
|
|
260
205
|
#### Option 2: git (for developers and contributors)
|
261
206
|
|
@@ -278,14 +223,14 @@ conda create --name AIAgents4Pharma python=3.12 -y && conda activate AIAgents4Ph
|
|
278
223
|
|
279
224
|
3. **Initialize API Keys**
|
280
225
|
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
226
|
+
```env
|
227
|
+
export OPENAI_API_KEY=.... # Required for all agents
|
228
|
+
export NVIDIA_API_KEY=.... # Required for all agents
|
229
|
+
export ZOTERO_API_KEY=.... # Required for T2S
|
230
|
+
export ZOTERO_USER_ID=.... # Required for T2S
|
231
|
+
export LANGCHAIN_TRACING_V2=true # Optional for all agents
|
232
|
+
export LANGCHAIN_API_KEY=... # Optional for all agents
|
233
|
+
```
|
289
234
|
|
290
235
|
To use **Talk2AIAgents4Pharma**, **Talk2BioModels**, **Talk2KnowledgeGraphs**, or **Talk2Scholars**, you need a free **NVIDIA API key**. Create an account and apply for free credits [here](https://build.nvidia.com/explore/discover).
|
291
236
|
|
@@ -315,10 +260,12 @@ If you skip the previous step, it will default to the name `default`.
|
|
315
260
|
`xxxx` will be the 4-digit ID created for the session._
|
316
261
|
|
317
262
|
4. **Launch the app:**
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
263
|
+
|
264
|
+
```sh
|
265
|
+
streamlit run app/frontend/streamlit_app_<agent>.py
|
266
|
+
```
|
267
|
+
|
268
|
+
_Replace `<agent>` with the agent name you are interested to launch:_
|
322
269
|
|
323
270
|
- `talk2aiagents4pharma`
|
324
271
|
- `talk2biomodels`
|
@@ -348,17 +295,23 @@ All types of contributions are appreciated — whether you're fixing bugs, addin
|
|
348
295
|
1. Star this repository to show your support.
|
349
296
|
2. Fork the repository.
|
350
297
|
3. Create a new branch for your work:
|
351
|
-
|
352
|
-
|
353
|
-
|
298
|
+
|
299
|
+
```sh
|
300
|
+
git checkout -b feat/your-feature-name
|
301
|
+
```
|
302
|
+
|
354
303
|
4. Make your changes and commit them:
|
355
|
-
|
356
|
-
|
357
|
-
|
304
|
+
|
305
|
+
```sh
|
306
|
+
git commit -m "feat: add a brief description of your change"
|
307
|
+
```
|
308
|
+
|
358
309
|
5. Push your branch:
|
359
|
-
|
360
|
-
|
361
|
-
|
310
|
+
|
311
|
+
```sh
|
312
|
+
git push origin feat/your-feature-name
|
313
|
+
```
|
314
|
+
|
362
315
|
6. Open a Pull Request.
|
363
316
|
|
364
317
|
#### Areas where you can help
|
@@ -29,10 +29,10 @@ Our toolkit currently consists of the following agents:
|
|
29
29
|
- T2B and T2KG accepted at the MLGenX workshop during ICLR #2025 in Singapore. [Read More](https://openreview.net/forum?id=av4QhBNeZo)
|
30
30
|
|
31
31
|
<div align="center">
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
32
|
+
<strong>Watch the presentation:</strong><br><br>
|
33
|
+
<a href="https://www.youtube.com/watch?v=3cU_OxY4HiE">
|
34
|
+
<img src="https://img.youtube.com/vi/3cU_OxY4HiE/0.jpg" alt="Watch the presentation" width="480">
|
35
|
+
</a>
|
36
36
|
</div>
|
37
37
|
|
38
38
|
## Getting Started
|
@@ -78,117 +78,62 @@ LANGCHAIN_TRACING_V2=true # Optional for both agents
|
|
78
78
|
LANGCHAIN_API_KEY=... # Optional for both agents
|
79
79
|
```
|
80
80
|
|
81
|
-
|
82
|
-
|
83
|
-
###### Notes for Windows Users
|
84
|
-
|
85
|
-
If you are using Windows, it is recommended to install **Git Bash** for a smoother experience when running the bash commands in this guide.
|
86
|
-
|
87
|
-
- For applications that use **Docker Compose**, Git Bash is **required**.
|
88
|
-
- For applications that use **docker run** manually, Git Bash is **optional**, but recommended for consistency.
|
89
|
-
|
90
|
-
You can download Git Bash here: [Git for Windows](https://git-scm.com/downloads).
|
91
|
-
|
92
|
-
When using Docker on Windows, make sure you **run Docker with administrative privileges** if you face permission issues.
|
93
|
-
|
94
|
-
To resolve for permission issues, you can:
|
95
|
-
|
96
|
-
- Review the official Docker documentation on [Windows permission requirements](https://docs.docker.com/desktop/setup/install/windows-permission-requirements/).
|
97
|
-
- Alternatively, follow the community discussion and solutions on [Docker Community Forums](https://forums.docker.com/t/error-when-trying-to-run-windows-containers-docker-client-must-be-run-with-elevated-privileges/136619).
|
98
|
-
|
99
|
-
**LangSmith** support is optional. To enable it, create an API key [here](https://docs.smith.langchain.com/administration/how_to_guides/organization_management/create_account_api_key).
|
81
|
+
[Additional Notes for Windows Users](https://github.com/VirtualPatientEngine/AIAgents4Pharma/tree/main/aiagents4pharma/install.md)
|
100
82
|
|
101
83
|
##### **3. Start the application**
|
102
84
|
|
103
|
-
Run the startup script. It will:
|
104
|
-
|
105
|
-
- Detect your hardware configuration (NVIDIA GPU, AMD GPU, or CPU). Apple Metal is unavailable inside Docker, and Intel SIMD optimizations are automatically handled without special configuration.
|
106
|
-
- Choose the correct Ollama image (`latest` or `rocm`)
|
107
|
-
- Launch the Ollama container with appropriate runtime settings
|
108
|
-
- Pull the required embedding model (`nomic-embed-text`)
|
109
|
-
- Start the agent **after the model is available**
|
110
|
-
|
111
85
|
```sh
|
112
86
|
chmod +x startup.sh
|
113
87
|
./startup.sh # Add --cpu flag to force CPU mode if needed
|
114
88
|
```
|
115
89
|
|
116
|
-
|
117
|
-
|
118
|
-
Once started, the agent is available at:
|
119
|
-
|
120
|
-
```
|
121
|
-
http://localhost:8501
|
122
|
-
```
|
90
|
+
[More about startup script](https://github.com/VirtualPatientEngine/AIAgents4Pharma/tree/main/aiagents4pharma/install.md)
|
123
91
|
|
124
92
|
##### **To Run Talk2Biomodels / Talk2Scholars**
|
125
93
|
|
126
|
-
1. **Run the containers**
|
127
|
-
|
128
94
|
###### Talk2Biomodels
|
129
95
|
|
130
96
|
```docker
|
131
97
|
docker run -d \
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
98
|
+
--name talk2biomodels \
|
99
|
+
-e OPENAI_API_KEY=<your_openai_api_key> \
|
100
|
+
-e NVIDIA_API_KEY=<your_nvidia_api_key> \
|
101
|
+
-p 8501:8501 \
|
102
|
+
virtualpatientengine/talk2biomodels
|
137
103
|
```
|
138
104
|
|
139
105
|
###### Talk2Scholars
|
140
106
|
|
141
107
|
```docker
|
142
108
|
docker run -d \
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
109
|
+
--name talk2scholars \
|
110
|
+
-e OPENAI_API_KEY=<your_openai_api_key> \
|
111
|
+
-e ZOTERO_API_KEY=<your_zotero_api_key> \
|
112
|
+
-e ZOTERO_USER_ID=<your_zotero_user_id> \
|
113
|
+
-e NVIDIA_API_KEY=<your_nvidia_api_key> \
|
114
|
+
-p 8501:8501 \
|
115
|
+
virtualpatientengine/talk2scholars
|
150
116
|
```
|
151
117
|
|
152
|
-
|
153
|
-
|
118
|
+
##### **4. Access the Web UI**
|
119
|
+
|
120
|
+
Once started, the agent is available at:
|
121
|
+
|
122
|
+
```
|
123
|
+
http://localhost:8501
|
124
|
+
```
|
154
125
|
|
155
|
-
|
156
|
-
http://localhost:8501
|
157
|
-
```
|
126
|
+
To use **Talk2AIAgents4Pharma** or **Talk2KnowledgeGraphs**, you need a free **NVIDIA API key**. Create an account and apply for free credits [here](https://build.nvidia.com/explore/discover).
|
158
127
|
|
159
128
|
To use **Talk2BioModels** or **Talk2Scholars**, you need a free **NVIDIA API key**. Create an account and apply for free credits [here](https://build.nvidia.com/explore/discover).
|
160
129
|
|
161
130
|
Only for **Talk2Scholars**, you also need a **Zotero API key**, which you can generate [here](https://www.zotero.org/user/login#applications). _(For all other agents, the Zotero key is not required.)_
|
162
131
|
|
163
|
-
If you are using docker on Windows, please follow these [Windows Setup Notes](
|
132
|
+
If you are using docker on Windows, please follow these [Windows Setup Notes](https://github.com/VirtualPatientEngine/AIAgents4Pharma/tree/main/aiagents4pharma).
|
164
133
|
|
165
134
|
**LangSmith** support is optional. To enable it, create an API key [here](https://docs.smith.langchain.com/administration/how_to_guides/organization_management/create_account_api_key).
|
166
135
|
|
167
|
-
|
168
|
-
|
169
|
-
- Be sure to **replace the placeholder values** with your actual credentials before running any container:
|
170
|
-
|
171
|
-
- `<your_openai_api_key>`
|
172
|
-
- `<your_nvidia_api_key>`
|
173
|
-
- `<your_zotero_api_key>`
|
174
|
-
- `<your_zotero_user_id>`
|
175
|
-
|
176
|
-
- All agents default to **port `8501`**. If you plan to run multiple agents simultaneously, make sure to assign **different ports** to avoid conflicts.
|
177
|
-
|
178
|
-
Example (Talk2Scholars on port `8502`):
|
179
|
-
|
180
|
-
```docker
|
181
|
-
docker run -d \
|
182
|
-
--name talk2scholars \
|
183
|
-
-e OPENAI_API_KEY=<your_openai_api_key> \
|
184
|
-
-e ZOTERO_API_KEY=<your_zotero_api_key> \
|
185
|
-
-e ZOTERO_USER_ID=<your_zotero_user_id> \
|
186
|
-
-e NVIDIA_API_KEY=<your_nvidia_api_key> \
|
187
|
-
-p 8502:8501 \
|
188
|
-
virtualpatientengine/talk2scholars
|
189
|
-
```
|
190
|
-
|
191
|
-
Then access the app at: [http://localhost:8502](http://localhost:8502)
|
136
|
+
[More on running multiple agents simultaneously](https://github.com/VirtualPatientEngine/AIAgents4Pharma/tree/main/aiagents4pharma/install.md)
|
192
137
|
|
193
138
|
#### Option 2: git (for developers and contributors)
|
194
139
|
|
@@ -211,14 +156,14 @@ conda create --name AIAgents4Pharma python=3.12 -y && conda activate AIAgents4Ph
|
|
211
156
|
|
212
157
|
3. **Initialize API Keys**
|
213
158
|
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
159
|
+
```env
|
160
|
+
export OPENAI_API_KEY=.... # Required for all agents
|
161
|
+
export NVIDIA_API_KEY=.... # Required for all agents
|
162
|
+
export ZOTERO_API_KEY=.... # Required for T2S
|
163
|
+
export ZOTERO_USER_ID=.... # Required for T2S
|
164
|
+
export LANGCHAIN_TRACING_V2=true # Optional for all agents
|
165
|
+
export LANGCHAIN_API_KEY=... # Optional for all agents
|
166
|
+
```
|
222
167
|
|
223
168
|
To use **Talk2AIAgents4Pharma**, **Talk2BioModels**, **Talk2KnowledgeGraphs**, or **Talk2Scholars**, you need a free **NVIDIA API key**. Create an account and apply for free credits [here](https://build.nvidia.com/explore/discover).
|
224
169
|
|
@@ -248,10 +193,12 @@ If you skip the previous step, it will default to the name `default`.
|
|
248
193
|
`xxxx` will be the 4-digit ID created for the session._
|
249
194
|
|
250
195
|
4. **Launch the app:**
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
196
|
+
|
197
|
+
```sh
|
198
|
+
streamlit run app/frontend/streamlit_app_<agent>.py
|
199
|
+
```
|
200
|
+
|
201
|
+
_Replace `<agent>` with the agent name you are interested to launch:_
|
255
202
|
|
256
203
|
- `talk2aiagents4pharma`
|
257
204
|
- `talk2biomodels`
|
@@ -281,17 +228,23 @@ All types of contributions are appreciated — whether you're fixing bugs, addin
|
|
281
228
|
1. Star this repository to show your support.
|
282
229
|
2. Fork the repository.
|
283
230
|
3. Create a new branch for your work:
|
284
|
-
|
285
|
-
|
286
|
-
|
231
|
+
|
232
|
+
```sh
|
233
|
+
git checkout -b feat/your-feature-name
|
234
|
+
```
|
235
|
+
|
287
236
|
4. Make your changes and commit them:
|
288
|
-
|
289
|
-
|
290
|
-
|
237
|
+
|
238
|
+
```sh
|
239
|
+
git commit -m "feat: add a brief description of your change"
|
240
|
+
```
|
241
|
+
|
291
242
|
5. Push your branch:
|
292
|
-
|
293
|
-
|
294
|
-
|
243
|
+
|
244
|
+
```sh
|
245
|
+
git push origin feat/your-feature-name
|
246
|
+
```
|
247
|
+
|
295
248
|
6. Open a Pull Request.
|
296
249
|
|
297
250
|
#### Areas where you can help
|
{aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/agents/main_agent.py
RENAMED
@@ -48,13 +48,13 @@ def get_app(uniq_id, llm_model: BaseChatModel):
|
|
48
48
|
>>> app = get_app("thread_123")
|
49
49
|
>>> result = app.invoke(initial_state)
|
50
50
|
"""
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
51
|
+
# Replace placeholder mini model with a configured ChatOpenAI instance
|
52
|
+
if getattr(llm_model, "model_name", None) == "gpt-4o-mini":
|
53
|
+
llm_model = ChatOpenAI(
|
54
|
+
model="gpt-4o-mini",
|
55
|
+
temperature=0,
|
56
|
+
model_kwargs={"parallel_tool_calls": False},
|
57
|
+
)
|
58
58
|
# Load hydra configuration
|
59
59
|
logger.log(logging.INFO, "Launching Talk2Scholars with thread_id %s", uniq_id)
|
60
60
|
with hydra.initialize(version_base=None, config_path="../configs/"):
|
@@ -14,6 +14,8 @@ from langgraph.prebuilt.tool_node import ToolNode
|
|
14
14
|
from langgraph.checkpoint.memory import MemorySaver
|
15
15
|
from ..state.state_talk2scholars import Talk2Scholars
|
16
16
|
from ..tools.paper_download.download_arxiv_input import download_arxiv_paper
|
17
|
+
from ..tools.paper_download.download_medrxiv_input import download_medrxiv_paper
|
18
|
+
from ..tools.paper_download.download_biorxiv_input import download_biorxiv_paper
|
17
19
|
|
18
20
|
# Initialize logger
|
19
21
|
logging.basicConfig(level=logging.INFO)
|
@@ -24,14 +26,20 @@ def get_app(uniq_id, llm_model: BaseChatModel):
|
|
24
26
|
"""
|
25
27
|
Initializes and returns the LangGraph application for the Talk2Scholars paper download agent.
|
26
28
|
|
29
|
+
This agent supports downloading scientific papers from multiple preprint servers, including
|
30
|
+
arXiv, BioRxiv, and MedRxiv. It can intelligently handle user queries by extracting or resolving
|
31
|
+
necessary identifiers (e.g., arXiv ID or DOI) from the paper title and routing the request to
|
32
|
+
the appropriate download tool.
|
33
|
+
|
27
34
|
Args:
|
28
35
|
uniq_id (str): A unique identifier for tracking the current session.
|
29
36
|
llm_model (BaseChatModel, optional): The language model to be used by the agent.
|
30
|
-
|
37
|
+
Defaults to ChatOpenAI(model="gpt-4o-mini", temperature=0.5).
|
31
38
|
|
32
39
|
Returns:
|
33
40
|
StateGraph: A compiled LangGraph application that enables the paper download agent to
|
34
|
-
|
41
|
+
process user queries and retrieve research papers from arXiv (using arXiv ID),
|
42
|
+
BioRxiv and MedRxiv (using DOI resolved from the paper title or provided directly).
|
35
43
|
"""
|
36
44
|
|
37
45
|
# Load Hydra configuration
|
@@ -44,7 +52,7 @@ def get_app(uniq_id, llm_model: BaseChatModel):
|
|
44
52
|
cfg = cfg.agents.talk2scholars.paper_download_agent
|
45
53
|
|
46
54
|
# Define tools properly
|
47
|
-
tools = ToolNode([download_arxiv_paper])
|
55
|
+
tools = ToolNode([download_arxiv_paper, download_medrxiv_paper, download_biorxiv_paper])
|
48
56
|
|
49
57
|
# Define the model
|
50
58
|
logger.info("Using OpenAI model %s", llm_model)
|
@@ -58,7 +66,7 @@ def get_app(uniq_id, llm_model: BaseChatModel):
|
|
58
66
|
|
59
67
|
def paper_download_agent_node(state: Talk2Scholars) -> Dict[str, Any]:
|
60
68
|
"""
|
61
|
-
Processes the current state to fetch the arXiv
|
69
|
+
Processes the current state to fetch the research paper from arXiv, BioRxiv, or MedRxiv.
|
62
70
|
"""
|
63
71
|
logger.info("Creating paper download agent node with thread_id: %s", uniq_id)
|
64
72
|
result = model.invoke(state, {"configurable": {"thread_id": uniq_id}})
|
@@ -0,0 +1,98 @@
|
|
1
|
+
_target_: agents.main_agent.get_app
|
2
|
+
temperature: 0
|
3
|
+
system_prompt: |
|
4
|
+
You are the Main Supervisor Agent.
|
5
|
+
|
6
|
+
You have access to four tools, each represented by a sub-agent:
|
7
|
+
|
8
|
+
- s2_agent: Use this to search for or recommend academic papers.
|
9
|
+
You can also use its `query_dataframe` tool to extract metadata from the last displayed papers.
|
10
|
+
This tool is not for summarization or content-level understanding — only for metadata-level filtering or ID extraction.
|
11
|
+
|
12
|
+
- zotero_agent: Use this to read from or write to the user's Zotero account.
|
13
|
+
This agent can also save papers to the Zotero library, but only with the user's explicit approval.
|
14
|
+
|
15
|
+
- pdf_agent: Use this to perform question-and-answer tasks on downloaded, uploaded, or Zotero-based papers or PDFs.
|
16
|
+
This includes summarization, explanation, or answering content-based questions.
|
17
|
+
|
18
|
+
- paper_download_agent: Use to download PDFs.
|
19
|
+
|
20
|
+
--
|
21
|
+
|
22
|
+
Tool Usage Boundaries:
|
23
|
+
|
24
|
+
- Use `query_dataframe` only for metadata queries such as filtering by author, listing titles, or selecting paper IDs.
|
25
|
+
It is not capable of full-text summarization, content analysis, or reading PDF content.
|
26
|
+
|
27
|
+
- Use `pdf_agent` to summarize or analyze the full content of any downloaded, uploaded, or Zotero-based PDF.
|
28
|
+
|
29
|
+
- Never attempt to summarize or interpret paper content using `query_dataframe`. That is incorrect and will result in incomplete or misleading output.
|
30
|
+
|
31
|
+
- When the user asks for a summary, explanation, or any content-based question, you must use `pdf_agent`:
|
32
|
+
|
33
|
+
--
|
34
|
+
|
35
|
+
Critical Paper Download Protocol:
|
36
|
+
|
37
|
+
When the user requests to download paper(s), you must follow this strict 2-step protocol:
|
38
|
+
|
39
|
+
1. First, always call `query_dataframe` from the `s2_agent` to extract paper IDs from the last displayed DataFrame.
|
40
|
+
|
41
|
+
- This tool must be used only to extract paper IDs.
|
42
|
+
- Do not pass the full user query to this tool.
|
43
|
+
- This step is only for retrieving the full list of available `paper_ids` and their order.
|
44
|
+
- If the user request refers to specific positions (like “4th paper”), you must calculate the correct index first.
|
45
|
+
|
46
|
+
2. Then, use the extracted ID(s) as input to the `paper_download_agent` to download the papers.
|
47
|
+
|
48
|
+
Important format rules:
|
49
|
+
|
50
|
+
- The `query_dataframe` tool always returns paper IDs with full prefixes such as `"arxiv:..."`, `"doi:..."`, or `"pubmed:..."`.
|
51
|
+
- You must not modify, trim, or strip these prefixes.
|
52
|
+
- Always pass the **exact** IDs returned from `query_dataframe` directly to the `paper_download_agent` without alteration.
|
53
|
+
|
54
|
+
Do not skip step 1 under any circumstances. Even if you believe you already know the IDs or if the user repeats the request, you must still call `query_dataframe` first. Skipping this step is a critical error and will corrupt the workflow.
|
55
|
+
|
56
|
+
Example reasoning:
|
57
|
+
- User: "Download and summarize the fourth paper"
|
58
|
+
- Step 1: Compute that the user wants the 4th paper
|
59
|
+
- Step 2: Call `s2_agent.query_dataframe`
|
60
|
+
- Step 3: Pass that ID to `paper_download_agent`
|
61
|
+
- Step 4: After download, use `pdf_agent` for summarization only when requested by the user
|
62
|
+
|
63
|
+
Additional example:
|
64
|
+
- User: "Download the first and third papers"
|
65
|
+
- Step 1: Compute that the user wants paper indices 1 and 3
|
66
|
+
- Step 2: Call `s2_agent.query_dataframe`
|
67
|
+
- Step 3: Pass both IDs to `paper_download_agent`
|
68
|
+
|
69
|
+
Full list example:
|
70
|
+
- User: "Download all papers", "Download the 6th paper",
|
71
|
+
- Step 1: Call `s2_agent.query_dataframe`
|
72
|
+
- Step 2: Pass the full list of IDs to `paper_download_agent`
|
73
|
+
|
74
|
+
Always follow this sequence. It applies to every download request.
|
75
|
+
|
76
|
+
--
|
77
|
+
|
78
|
+
Interpreting User Requests Involving Paper Indices:
|
79
|
+
|
80
|
+
When a user refers to papers using words like "first", "second", "third", or "fourth", you must interpret them as referring to numeric positions in the last displayed DataFrame.
|
81
|
+
|
82
|
+
For example:
|
83
|
+
- "Download the fourth paper" → treat as "Download the 4th paper"
|
84
|
+
- "Download the first and third papers" → treat as "Download the 1st and 3rd papers"
|
85
|
+
|
86
|
+
These word-based positions must be normalized before calling `query_dataframe`. Always compute the correct index and pass it as `row_number`.
|
87
|
+
|
88
|
+
--
|
89
|
+
|
90
|
+
General Coordination Instructions:
|
91
|
+
|
92
|
+
Each sub-agent is specialized for a different task.
|
93
|
+
|
94
|
+
You may call multiple agents, either in parallel or in sequence. After receiving output from one agent, you can call another as needed based on the user's query.
|
95
|
+
|
96
|
+
Your role is to analyze the user’s request carefully, decide which sub-agent(s) to use, and coordinate their execution efficiently.
|
97
|
+
|
98
|
+
Always prioritize delegation and think step-by-step before acting. Avoid answering by yourself unless explicitly necessary.
|
@@ -0,0 +1,9 @@
|
|
1
|
+
_target_: agents.zotero_agent.get_app
|
2
|
+
zotero_agent: |
|
3
|
+
You are the Zotero Agent.
|
4
|
+
|
5
|
+
You are responsible for reading from and writing to the user's Zotero library, and for displaying the results.
|
6
|
+
|
7
|
+
IMPORTANT: Human approval is required for saving papers to Zotero. Never save papers
|
8
|
+
without explicit approval from the user. Always respect the user's decision if they
|
9
|
+
choose not to save papers.
|
{aiagents4pharma-1.38.0 → aiagents4pharma-1.39.1}/aiagents4pharma/talk2scholars/configs/config.yaml
RENAMED
@@ -8,6 +8,8 @@ defaults:
|
|
8
8
|
- agents/talk2scholars/pdf_agent: default
|
9
9
|
- tools/search: default
|
10
10
|
- tools/download_arxiv_paper: default
|
11
|
+
- tools/download_biorxiv_paper: default
|
12
|
+
- tools/download_medrxiv_paper: default
|
11
13
|
- tools/single_paper_recommendation: default
|
12
14
|
- tools/multi_paper_recommendation: default
|
13
15
|
- tools/retrieve_semantic_scholar_paper_id: default
|