aiagents4pharma 0.0.0__py3-none-any.whl
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/__init__.py +11 -0
- aiagents4pharma/talk2aiagents4pharma/.dockerignore +13 -0
- aiagents4pharma/talk2aiagents4pharma/Dockerfile +133 -0
- aiagents4pharma/talk2aiagents4pharma/README.md +1 -0
- aiagents4pharma/talk2aiagents4pharma/__init__.py +5 -0
- aiagents4pharma/talk2aiagents4pharma/agents/__init__.py +6 -0
- aiagents4pharma/talk2aiagents4pharma/agents/main_agent.py +70 -0
- aiagents4pharma/talk2aiagents4pharma/configs/__init__.py +5 -0
- aiagents4pharma/talk2aiagents4pharma/configs/agents/__init__.py +5 -0
- aiagents4pharma/talk2aiagents4pharma/configs/agents/main_agent/default.yaml +29 -0
- aiagents4pharma/talk2aiagents4pharma/configs/app/__init__.py +0 -0
- aiagents4pharma/talk2aiagents4pharma/configs/app/frontend/__init__.py +0 -0
- aiagents4pharma/talk2aiagents4pharma/configs/app/frontend/default.yaml +102 -0
- aiagents4pharma/talk2aiagents4pharma/configs/config.yaml +4 -0
- aiagents4pharma/talk2aiagents4pharma/docker-compose/cpu/.env.example +23 -0
- aiagents4pharma/talk2aiagents4pharma/docker-compose/cpu/docker-compose.yml +93 -0
- aiagents4pharma/talk2aiagents4pharma/docker-compose/gpu/.env.example +23 -0
- aiagents4pharma/talk2aiagents4pharma/docker-compose/gpu/docker-compose.yml +108 -0
- aiagents4pharma/talk2aiagents4pharma/install.md +154 -0
- aiagents4pharma/talk2aiagents4pharma/states/__init__.py +5 -0
- aiagents4pharma/talk2aiagents4pharma/states/state_talk2aiagents4pharma.py +18 -0
- aiagents4pharma/talk2aiagents4pharma/tests/__init__.py +3 -0
- aiagents4pharma/talk2aiagents4pharma/tests/test_main_agent.py +312 -0
- aiagents4pharma/talk2biomodels/.dockerignore +13 -0
- aiagents4pharma/talk2biomodels/Dockerfile +104 -0
- aiagents4pharma/talk2biomodels/README.md +1 -0
- aiagents4pharma/talk2biomodels/__init__.py +5 -0
- aiagents4pharma/talk2biomodels/agents/__init__.py +6 -0
- aiagents4pharma/talk2biomodels/agents/t2b_agent.py +104 -0
- aiagents4pharma/talk2biomodels/api/__init__.py +5 -0
- aiagents4pharma/talk2biomodels/api/ols.py +75 -0
- aiagents4pharma/talk2biomodels/api/uniprot.py +36 -0
- aiagents4pharma/talk2biomodels/configs/__init__.py +5 -0
- aiagents4pharma/talk2biomodels/configs/agents/__init__.py +5 -0
- aiagents4pharma/talk2biomodels/configs/agents/t2b_agent/__init__.py +3 -0
- aiagents4pharma/talk2biomodels/configs/agents/t2b_agent/default.yaml +14 -0
- aiagents4pharma/talk2biomodels/configs/app/__init__.py +0 -0
- aiagents4pharma/talk2biomodels/configs/app/frontend/__init__.py +0 -0
- aiagents4pharma/talk2biomodels/configs/app/frontend/default.yaml +72 -0
- aiagents4pharma/talk2biomodels/configs/config.yaml +7 -0
- aiagents4pharma/talk2biomodels/configs/tools/__init__.py +5 -0
- aiagents4pharma/talk2biomodels/configs/tools/ask_question/__init__.py +3 -0
- aiagents4pharma/talk2biomodels/configs/tools/ask_question/default.yaml +30 -0
- aiagents4pharma/talk2biomodels/configs/tools/custom_plotter/__init__.py +3 -0
- aiagents4pharma/talk2biomodels/configs/tools/custom_plotter/default.yaml +8 -0
- aiagents4pharma/talk2biomodels/configs/tools/get_annotation/__init__.py +3 -0
- aiagents4pharma/talk2biomodels/configs/tools/get_annotation/default.yaml +8 -0
- aiagents4pharma/talk2biomodels/install.md +63 -0
- aiagents4pharma/talk2biomodels/models/__init__.py +5 -0
- aiagents4pharma/talk2biomodels/models/basico_model.py +125 -0
- aiagents4pharma/talk2biomodels/models/sys_bio_model.py +60 -0
- aiagents4pharma/talk2biomodels/states/__init__.py +6 -0
- aiagents4pharma/talk2biomodels/states/state_talk2biomodels.py +49 -0
- aiagents4pharma/talk2biomodels/tests/BIOMD0000000449_url.xml +1585 -0
- aiagents4pharma/talk2biomodels/tests/__init__.py +3 -0
- aiagents4pharma/talk2biomodels/tests/article_on_model_537.pdf +0 -0
- aiagents4pharma/talk2biomodels/tests/test_api.py +31 -0
- aiagents4pharma/talk2biomodels/tests/test_ask_question.py +42 -0
- aiagents4pharma/talk2biomodels/tests/test_basico_model.py +67 -0
- aiagents4pharma/talk2biomodels/tests/test_get_annotation.py +190 -0
- aiagents4pharma/talk2biomodels/tests/test_getmodelinfo.py +92 -0
- aiagents4pharma/talk2biomodels/tests/test_integration.py +116 -0
- aiagents4pharma/talk2biomodels/tests/test_load_biomodel.py +35 -0
- aiagents4pharma/talk2biomodels/tests/test_param_scan.py +71 -0
- aiagents4pharma/talk2biomodels/tests/test_query_article.py +184 -0
- aiagents4pharma/talk2biomodels/tests/test_save_model.py +47 -0
- aiagents4pharma/talk2biomodels/tests/test_search_models.py +35 -0
- aiagents4pharma/talk2biomodels/tests/test_simulate_model.py +44 -0
- aiagents4pharma/talk2biomodels/tests/test_steady_state.py +86 -0
- aiagents4pharma/talk2biomodels/tests/test_sys_bio_model.py +67 -0
- aiagents4pharma/talk2biomodels/tools/__init__.py +17 -0
- aiagents4pharma/talk2biomodels/tools/ask_question.py +125 -0
- aiagents4pharma/talk2biomodels/tools/custom_plotter.py +165 -0
- aiagents4pharma/talk2biomodels/tools/get_annotation.py +342 -0
- aiagents4pharma/talk2biomodels/tools/get_modelinfo.py +159 -0
- aiagents4pharma/talk2biomodels/tools/load_arguments.py +134 -0
- aiagents4pharma/talk2biomodels/tools/load_biomodel.py +44 -0
- aiagents4pharma/talk2biomodels/tools/parameter_scan.py +310 -0
- aiagents4pharma/talk2biomodels/tools/query_article.py +64 -0
- aiagents4pharma/talk2biomodels/tools/save_model.py +98 -0
- aiagents4pharma/talk2biomodels/tools/search_models.py +96 -0
- aiagents4pharma/talk2biomodels/tools/simulate_model.py +137 -0
- aiagents4pharma/talk2biomodels/tools/steady_state.py +187 -0
- aiagents4pharma/talk2biomodels/tools/utils.py +23 -0
- aiagents4pharma/talk2cells/README.md +1 -0
- aiagents4pharma/talk2cells/__init__.py +5 -0
- aiagents4pharma/talk2cells/agents/__init__.py +6 -0
- aiagents4pharma/talk2cells/agents/scp_agent.py +87 -0
- aiagents4pharma/talk2cells/states/__init__.py +6 -0
- aiagents4pharma/talk2cells/states/state_talk2cells.py +15 -0
- aiagents4pharma/talk2cells/tests/scp_agent/test_scp_agent.py +22 -0
- aiagents4pharma/talk2cells/tools/__init__.py +6 -0
- aiagents4pharma/talk2cells/tools/scp_agent/__init__.py +6 -0
- aiagents4pharma/talk2cells/tools/scp_agent/display_studies.py +27 -0
- aiagents4pharma/talk2cells/tools/scp_agent/search_studies.py +78 -0
- aiagents4pharma/talk2knowledgegraphs/.dockerignore +13 -0
- aiagents4pharma/talk2knowledgegraphs/Dockerfile +131 -0
- aiagents4pharma/talk2knowledgegraphs/README.md +1 -0
- aiagents4pharma/talk2knowledgegraphs/__init__.py +5 -0
- aiagents4pharma/talk2knowledgegraphs/agents/__init__.py +5 -0
- aiagents4pharma/talk2knowledgegraphs/agents/t2kg_agent.py +99 -0
- aiagents4pharma/talk2knowledgegraphs/configs/__init__.py +5 -0
- aiagents4pharma/talk2knowledgegraphs/configs/agents/t2kg_agent/__init__.py +3 -0
- aiagents4pharma/talk2knowledgegraphs/configs/agents/t2kg_agent/default.yaml +62 -0
- aiagents4pharma/talk2knowledgegraphs/configs/app/__init__.py +5 -0
- aiagents4pharma/talk2knowledgegraphs/configs/app/frontend/__init__.py +3 -0
- aiagents4pharma/talk2knowledgegraphs/configs/app/frontend/default.yaml +79 -0
- aiagents4pharma/talk2knowledgegraphs/configs/config.yaml +13 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/__init__.py +5 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/graphrag_reasoning/__init__.py +3 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/graphrag_reasoning/default.yaml +24 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/multimodal_subgraph_extraction/__init__.py +0 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/multimodal_subgraph_extraction/default.yaml +33 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_extraction/__init__.py +3 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_extraction/default.yaml +43 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_summarization/__init__.py +3 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_summarization/default.yaml +9 -0
- aiagents4pharma/talk2knowledgegraphs/configs/utils/database/milvus/__init__.py +3 -0
- aiagents4pharma/talk2knowledgegraphs/configs/utils/database/milvus/default.yaml +61 -0
- aiagents4pharma/talk2knowledgegraphs/configs/utils/enrichments/ols_terms/default.yaml +3 -0
- aiagents4pharma/talk2knowledgegraphs/configs/utils/enrichments/reactome_pathways/default.yaml +3 -0
- aiagents4pharma/talk2knowledgegraphs/configs/utils/enrichments/uniprot_proteins/default.yaml +6 -0
- aiagents4pharma/talk2knowledgegraphs/configs/utils/pubchem_utils/default.yaml +5 -0
- aiagents4pharma/talk2knowledgegraphs/datasets/__init__.py +5 -0
- aiagents4pharma/talk2knowledgegraphs/datasets/biobridge_primekg.py +607 -0
- aiagents4pharma/talk2knowledgegraphs/datasets/dataset.py +25 -0
- aiagents4pharma/talk2knowledgegraphs/datasets/primekg.py +212 -0
- aiagents4pharma/talk2knowledgegraphs/datasets/starkqa_primekg.py +210 -0
- aiagents4pharma/talk2knowledgegraphs/docker-compose/cpu/.env.example +23 -0
- aiagents4pharma/talk2knowledgegraphs/docker-compose/cpu/docker-compose.yml +93 -0
- aiagents4pharma/talk2knowledgegraphs/docker-compose/gpu/.env.example +23 -0
- aiagents4pharma/talk2knowledgegraphs/docker-compose/gpu/docker-compose.yml +108 -0
- aiagents4pharma/talk2knowledgegraphs/entrypoint.sh +180 -0
- aiagents4pharma/talk2knowledgegraphs/install.md +165 -0
- aiagents4pharma/talk2knowledgegraphs/milvus_data_dump.py +886 -0
- aiagents4pharma/talk2knowledgegraphs/states/__init__.py +5 -0
- aiagents4pharma/talk2knowledgegraphs/states/state_talk2knowledgegraphs.py +40 -0
- aiagents4pharma/talk2knowledgegraphs/tests/__init__.py +0 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_agents_t2kg_agent.py +318 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_biobridge_primekg.py +248 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_dataset.py +33 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_primekg.py +86 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_starkqa_primekg.py +125 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_tools_graphrag_reasoning.py +257 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_tools_milvus_multimodal_subgraph_extraction.py +1444 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_tools_multimodal_subgraph_extraction.py +159 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_tools_subgraph_extraction.py +152 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_tools_subgraph_summarization.py +201 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_database_milvus_connection_manager.py +812 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_embeddings.py +51 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_huggingface.py +49 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_nim_molmim.py +59 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_ollama.py +63 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_sentencetransformer.py +47 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_enrichments.py +40 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_ollama.py +94 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_ols.py +70 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_pubchem.py +45 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_reactome.py +44 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_uniprot.py +48 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_extractions_milvus_multimodal_pcst.py +759 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_kg_utils.py +78 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_pubchem_utils.py +123 -0
- aiagents4pharma/talk2knowledgegraphs/tools/__init__.py +11 -0
- aiagents4pharma/talk2knowledgegraphs/tools/graphrag_reasoning.py +138 -0
- aiagents4pharma/talk2knowledgegraphs/tools/load_arguments.py +22 -0
- aiagents4pharma/talk2knowledgegraphs/tools/milvus_multimodal_subgraph_extraction.py +965 -0
- aiagents4pharma/talk2knowledgegraphs/tools/multimodal_subgraph_extraction.py +374 -0
- aiagents4pharma/talk2knowledgegraphs/tools/subgraph_extraction.py +291 -0
- aiagents4pharma/talk2knowledgegraphs/tools/subgraph_summarization.py +123 -0
- aiagents4pharma/talk2knowledgegraphs/utils/__init__.py +5 -0
- aiagents4pharma/talk2knowledgegraphs/utils/database/__init__.py +5 -0
- aiagents4pharma/talk2knowledgegraphs/utils/database/milvus_connection_manager.py +586 -0
- aiagents4pharma/talk2knowledgegraphs/utils/embeddings/__init__.py +5 -0
- aiagents4pharma/talk2knowledgegraphs/utils/embeddings/embeddings.py +81 -0
- aiagents4pharma/talk2knowledgegraphs/utils/embeddings/huggingface.py +111 -0
- aiagents4pharma/talk2knowledgegraphs/utils/embeddings/nim_molmim.py +54 -0
- aiagents4pharma/talk2knowledgegraphs/utils/embeddings/ollama.py +87 -0
- aiagents4pharma/talk2knowledgegraphs/utils/embeddings/sentence_transformer.py +73 -0
- aiagents4pharma/talk2knowledgegraphs/utils/enrichments/__init__.py +12 -0
- aiagents4pharma/talk2knowledgegraphs/utils/enrichments/enrichments.py +37 -0
- aiagents4pharma/talk2knowledgegraphs/utils/enrichments/ollama.py +129 -0
- aiagents4pharma/talk2knowledgegraphs/utils/enrichments/ols_terms.py +89 -0
- aiagents4pharma/talk2knowledgegraphs/utils/enrichments/pubchem_strings.py +78 -0
- aiagents4pharma/talk2knowledgegraphs/utils/enrichments/reactome_pathways.py +71 -0
- aiagents4pharma/talk2knowledgegraphs/utils/enrichments/uniprot_proteins.py +98 -0
- aiagents4pharma/talk2knowledgegraphs/utils/extractions/__init__.py +5 -0
- aiagents4pharma/talk2knowledgegraphs/utils/extractions/milvus_multimodal_pcst.py +762 -0
- aiagents4pharma/talk2knowledgegraphs/utils/extractions/multimodal_pcst.py +298 -0
- aiagents4pharma/talk2knowledgegraphs/utils/extractions/pcst.py +229 -0
- aiagents4pharma/talk2knowledgegraphs/utils/kg_utils.py +67 -0
- aiagents4pharma/talk2knowledgegraphs/utils/pubchem_utils.py +104 -0
- aiagents4pharma/talk2scholars/.dockerignore +13 -0
- aiagents4pharma/talk2scholars/Dockerfile +104 -0
- aiagents4pharma/talk2scholars/README.md +1 -0
- aiagents4pharma/talk2scholars/__init__.py +7 -0
- aiagents4pharma/talk2scholars/agents/__init__.py +13 -0
- aiagents4pharma/talk2scholars/agents/main_agent.py +89 -0
- aiagents4pharma/talk2scholars/agents/paper_download_agent.py +96 -0
- aiagents4pharma/talk2scholars/agents/pdf_agent.py +101 -0
- aiagents4pharma/talk2scholars/agents/s2_agent.py +135 -0
- aiagents4pharma/talk2scholars/agents/zotero_agent.py +127 -0
- aiagents4pharma/talk2scholars/configs/__init__.py +7 -0
- aiagents4pharma/talk2scholars/configs/agents/__init__.py +7 -0
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/__init__.py +7 -0
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/__init__.py +3 -0
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/default.yaml +52 -0
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/paper_download_agent/__init__.py +3 -0
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/paper_download_agent/default.yaml +19 -0
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/pdf_agent/__init__.py +3 -0
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/pdf_agent/default.yaml +19 -0
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/__init__.py +3 -0
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/default.yaml +44 -0
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/__init__.py +3 -0
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/default.yaml +19 -0
- aiagents4pharma/talk2scholars/configs/app/__init__.py +7 -0
- aiagents4pharma/talk2scholars/configs/app/frontend/__init__.py +3 -0
- aiagents4pharma/talk2scholars/configs/app/frontend/default.yaml +72 -0
- aiagents4pharma/talk2scholars/configs/config.yaml +16 -0
- aiagents4pharma/talk2scholars/configs/tools/__init__.py +21 -0
- aiagents4pharma/talk2scholars/configs/tools/multi_paper_recommendation/__init__.py +3 -0
- aiagents4pharma/talk2scholars/configs/tools/multi_paper_recommendation/default.yaml +26 -0
- aiagents4pharma/talk2scholars/configs/tools/paper_download/__init__.py +3 -0
- aiagents4pharma/talk2scholars/configs/tools/paper_download/default.yaml +124 -0
- aiagents4pharma/talk2scholars/configs/tools/question_and_answer/__init__.py +3 -0
- aiagents4pharma/talk2scholars/configs/tools/question_and_answer/default.yaml +62 -0
- aiagents4pharma/talk2scholars/configs/tools/retrieve_semantic_scholar_paper_id/__init__.py +3 -0
- aiagents4pharma/talk2scholars/configs/tools/retrieve_semantic_scholar_paper_id/default.yaml +12 -0
- aiagents4pharma/talk2scholars/configs/tools/search/__init__.py +3 -0
- aiagents4pharma/talk2scholars/configs/tools/search/default.yaml +26 -0
- aiagents4pharma/talk2scholars/configs/tools/single_paper_recommendation/__init__.py +3 -0
- aiagents4pharma/talk2scholars/configs/tools/single_paper_recommendation/default.yaml +26 -0
- aiagents4pharma/talk2scholars/configs/tools/zotero_read/__init__.py +3 -0
- aiagents4pharma/talk2scholars/configs/tools/zotero_read/default.yaml +57 -0
- aiagents4pharma/talk2scholars/configs/tools/zotero_write/__inti__.py +3 -0
- aiagents4pharma/talk2scholars/configs/tools/zotero_write/default.yaml +55 -0
- aiagents4pharma/talk2scholars/docker-compose/cpu/.env.example +21 -0
- aiagents4pharma/talk2scholars/docker-compose/cpu/docker-compose.yml +90 -0
- aiagents4pharma/talk2scholars/docker-compose/gpu/.env.example +21 -0
- aiagents4pharma/talk2scholars/docker-compose/gpu/docker-compose.yml +105 -0
- aiagents4pharma/talk2scholars/install.md +122 -0
- aiagents4pharma/talk2scholars/state/__init__.py +7 -0
- aiagents4pharma/talk2scholars/state/state_talk2scholars.py +98 -0
- aiagents4pharma/talk2scholars/tests/__init__.py +3 -0
- aiagents4pharma/talk2scholars/tests/test_agents_main_agent.py +256 -0
- aiagents4pharma/talk2scholars/tests/test_agents_paper_agents_download_agent.py +139 -0
- aiagents4pharma/talk2scholars/tests/test_agents_pdf_agent.py +114 -0
- aiagents4pharma/talk2scholars/tests/test_agents_s2_agent.py +198 -0
- aiagents4pharma/talk2scholars/tests/test_agents_zotero_agent.py +160 -0
- aiagents4pharma/talk2scholars/tests/test_s2_tools_display_dataframe.py +91 -0
- aiagents4pharma/talk2scholars/tests/test_s2_tools_query_dataframe.py +191 -0
- aiagents4pharma/talk2scholars/tests/test_states_state.py +38 -0
- aiagents4pharma/talk2scholars/tests/test_tools_paper_downloader.py +507 -0
- aiagents4pharma/talk2scholars/tests/test_tools_question_and_answer_tool.py +105 -0
- aiagents4pharma/talk2scholars/tests/test_tools_s2_multi.py +307 -0
- aiagents4pharma/talk2scholars/tests/test_tools_s2_retrieve.py +67 -0
- aiagents4pharma/talk2scholars/tests/test_tools_s2_search.py +286 -0
- aiagents4pharma/talk2scholars/tests/test_tools_s2_single.py +298 -0
- aiagents4pharma/talk2scholars/tests/test_utils_arxiv_downloader.py +469 -0
- aiagents4pharma/talk2scholars/tests/test_utils_base_paper_downloader.py +598 -0
- aiagents4pharma/talk2scholars/tests/test_utils_biorxiv_downloader.py +669 -0
- aiagents4pharma/talk2scholars/tests/test_utils_medrxiv_downloader.py +500 -0
- aiagents4pharma/talk2scholars/tests/test_utils_nvidia_nim_reranker.py +117 -0
- aiagents4pharma/talk2scholars/tests/test_utils_pdf_answer_formatter.py +67 -0
- aiagents4pharma/talk2scholars/tests/test_utils_pdf_batch_processor.py +92 -0
- aiagents4pharma/talk2scholars/tests/test_utils_pdf_collection_manager.py +173 -0
- aiagents4pharma/talk2scholars/tests/test_utils_pdf_document_processor.py +68 -0
- aiagents4pharma/talk2scholars/tests/test_utils_pdf_generate_answer.py +72 -0
- aiagents4pharma/talk2scholars/tests/test_utils_pdf_gpu_detection.py +129 -0
- aiagents4pharma/talk2scholars/tests/test_utils_pdf_paper_loader.py +116 -0
- aiagents4pharma/talk2scholars/tests/test_utils_pdf_rag_pipeline.py +88 -0
- aiagents4pharma/talk2scholars/tests/test_utils_pdf_retrieve_chunks.py +190 -0
- aiagents4pharma/talk2scholars/tests/test_utils_pdf_singleton_manager.py +159 -0
- aiagents4pharma/talk2scholars/tests/test_utils_pdf_vector_normalization.py +121 -0
- aiagents4pharma/talk2scholars/tests/test_utils_pdf_vector_store.py +406 -0
- aiagents4pharma/talk2scholars/tests/test_utils_pubmed_downloader.py +1007 -0
- aiagents4pharma/talk2scholars/tests/test_utils_read_helper_utils.py +106 -0
- aiagents4pharma/talk2scholars/tests/test_utils_s2_utils_ext_ids.py +403 -0
- aiagents4pharma/talk2scholars/tests/test_utils_tool_helper_utils.py +85 -0
- aiagents4pharma/talk2scholars/tests/test_utils_zotero_human_in_the_loop.py +266 -0
- aiagents4pharma/talk2scholars/tests/test_utils_zotero_path.py +496 -0
- aiagents4pharma/talk2scholars/tests/test_utils_zotero_pdf_downloader_utils.py +46 -0
- aiagents4pharma/talk2scholars/tests/test_utils_zotero_read.py +743 -0
- aiagents4pharma/talk2scholars/tests/test_utils_zotero_write.py +151 -0
- aiagents4pharma/talk2scholars/tools/__init__.py +9 -0
- aiagents4pharma/talk2scholars/tools/paper_download/__init__.py +12 -0
- aiagents4pharma/talk2scholars/tools/paper_download/paper_downloader.py +442 -0
- aiagents4pharma/talk2scholars/tools/paper_download/utils/__init__.py +22 -0
- aiagents4pharma/talk2scholars/tools/paper_download/utils/arxiv_downloader.py +207 -0
- aiagents4pharma/talk2scholars/tools/paper_download/utils/base_paper_downloader.py +336 -0
- aiagents4pharma/talk2scholars/tools/paper_download/utils/biorxiv_downloader.py +313 -0
- aiagents4pharma/talk2scholars/tools/paper_download/utils/medrxiv_downloader.py +196 -0
- aiagents4pharma/talk2scholars/tools/paper_download/utils/pubmed_downloader.py +323 -0
- aiagents4pharma/talk2scholars/tools/pdf/__init__.py +7 -0
- aiagents4pharma/talk2scholars/tools/pdf/question_and_answer.py +170 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/__init__.py +37 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/answer_formatter.py +62 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/batch_processor.py +198 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/collection_manager.py +172 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/document_processor.py +76 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/generate_answer.py +97 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/get_vectorstore.py +59 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/gpu_detection.py +150 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/nvidia_nim_reranker.py +97 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/paper_loader.py +123 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/rag_pipeline.py +113 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/retrieve_chunks.py +197 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/singleton_manager.py +140 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/tool_helper.py +86 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/vector_normalization.py +150 -0
- aiagents4pharma/talk2scholars/tools/pdf/utils/vector_store.py +327 -0
- aiagents4pharma/talk2scholars/tools/s2/__init__.py +21 -0
- aiagents4pharma/talk2scholars/tools/s2/display_dataframe.py +110 -0
- aiagents4pharma/talk2scholars/tools/s2/multi_paper_rec.py +111 -0
- aiagents4pharma/talk2scholars/tools/s2/query_dataframe.py +233 -0
- aiagents4pharma/talk2scholars/tools/s2/retrieve_semantic_scholar_paper_id.py +128 -0
- aiagents4pharma/talk2scholars/tools/s2/search.py +101 -0
- aiagents4pharma/talk2scholars/tools/s2/single_paper_rec.py +102 -0
- aiagents4pharma/talk2scholars/tools/s2/utils/__init__.py +5 -0
- aiagents4pharma/talk2scholars/tools/s2/utils/multi_helper.py +223 -0
- aiagents4pharma/talk2scholars/tools/s2/utils/search_helper.py +205 -0
- aiagents4pharma/talk2scholars/tools/s2/utils/single_helper.py +216 -0
- aiagents4pharma/talk2scholars/tools/zotero/__init__.py +7 -0
- aiagents4pharma/talk2scholars/tools/zotero/utils/__init__.py +7 -0
- aiagents4pharma/talk2scholars/tools/zotero/utils/read_helper.py +270 -0
- aiagents4pharma/talk2scholars/tools/zotero/utils/review_helper.py +74 -0
- aiagents4pharma/talk2scholars/tools/zotero/utils/write_helper.py +194 -0
- aiagents4pharma/talk2scholars/tools/zotero/utils/zotero_path.py +180 -0
- aiagents4pharma/talk2scholars/tools/zotero/utils/zotero_pdf_downloader.py +133 -0
- aiagents4pharma/talk2scholars/tools/zotero/zotero_read.py +105 -0
- aiagents4pharma/talk2scholars/tools/zotero/zotero_review.py +162 -0
- aiagents4pharma/talk2scholars/tools/zotero/zotero_write.py +91 -0
- aiagents4pharma-0.0.0.dist-info/METADATA +335 -0
- aiagents4pharma-0.0.0.dist-info/RECORD +336 -0
- aiagents4pharma-0.0.0.dist-info/WHEEL +4 -0
- aiagents4pharma-0.0.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# syntax=docker/dockerfile:1
|
|
2
|
+
|
|
3
|
+
# Dockerfile for the talk2aiagents4pharma application
|
|
4
|
+
# Multi-stage build for optimized image size with UV package manager
|
|
5
|
+
|
|
6
|
+
ARG BASE_IMAGE=ubuntu:24.04
|
|
7
|
+
ARG PYTHON_VERSION=3.12
|
|
8
|
+
|
|
9
|
+
FROM ${BASE_IMAGE} AS dev-base
|
|
10
|
+
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
|
11
|
+
build-essential \
|
|
12
|
+
ca-certificates \
|
|
13
|
+
cmake \
|
|
14
|
+
curl \
|
|
15
|
+
g++ \
|
|
16
|
+
libopenblas-dev \
|
|
17
|
+
libomp-dev \
|
|
18
|
+
ninja-build \
|
|
19
|
+
wget \
|
|
20
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
21
|
+
|
|
22
|
+
FROM dev-base AS python-install
|
|
23
|
+
ARG PYTHON_VERSION=3.12
|
|
24
|
+
|
|
25
|
+
# Install Python (available in Ubuntu 24.04 default repos)
|
|
26
|
+
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
|
27
|
+
python${PYTHON_VERSION} \
|
|
28
|
+
python${PYTHON_VERSION}-dev \
|
|
29
|
+
python${PYTHON_VERSION}-venv \
|
|
30
|
+
python3-pip \
|
|
31
|
+
&& rm -rf /var/lib/apt/lists/* \
|
|
32
|
+
&& update-alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 1 \
|
|
33
|
+
&& update-alternatives --install /usr/bin/python python /usr/bin/python${PYTHON_VERSION} 1
|
|
34
|
+
|
|
35
|
+
FROM python-install AS uv-install
|
|
36
|
+
ARG INSTALL_CUDA=true
|
|
37
|
+
WORKDIR /app
|
|
38
|
+
|
|
39
|
+
# Install UV package manager and dependencies
|
|
40
|
+
COPY pyproject.toml uv.lock* ./
|
|
41
|
+
RUN curl -LsSf https://astral.sh/uv/install.sh | sh && \
|
|
42
|
+
export PATH="/root/.local/bin:$PATH" && \
|
|
43
|
+
export UV_PROJECT_ENVIRONMENT="/opt/venv" && \
|
|
44
|
+
uv sync --frozen --extra dev --no-install-project --python python${PYTHON_VERSION} && \
|
|
45
|
+
. /opt/venv/bin/activate && \
|
|
46
|
+
if [ "$INSTALL_CUDA" = "true" ]; then \
|
|
47
|
+
uv pip install \
|
|
48
|
+
--extra-index-url=https://pypi.nvidia.com \
|
|
49
|
+
--index-strategy unsafe-best-match \
|
|
50
|
+
cudf-cu12 dask-cudf-cu12; \
|
|
51
|
+
else \
|
|
52
|
+
echo "Skipping RAPIDS packages for CPU build"; \
|
|
53
|
+
fi && \
|
|
54
|
+
uv cache clean
|
|
55
|
+
|
|
56
|
+
FROM ${BASE_IMAGE} AS runtime
|
|
57
|
+
ARG PYTHON_VERSION=3.12
|
|
58
|
+
ARG INSTALL_CUDA=true
|
|
59
|
+
LABEL maintainer="talk2aiagents4pharma"
|
|
60
|
+
LABEL version="1.0.0"
|
|
61
|
+
LABEL description="AI Agents for Pharma - Streamlit Application"
|
|
62
|
+
|
|
63
|
+
# Install runtime dependencies
|
|
64
|
+
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
|
65
|
+
ca-certificates \
|
|
66
|
+
curl \
|
|
67
|
+
gnupg \
|
|
68
|
+
libmagic1 \
|
|
69
|
+
libopenblas0 \
|
|
70
|
+
libomp5 \
|
|
71
|
+
python${PYTHON_VERSION} \
|
|
72
|
+
&& rm -rf /var/lib/apt/lists/* \
|
|
73
|
+
&& update-alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 1 \
|
|
74
|
+
&& update-alternatives --install /usr/bin/python python /usr/bin/python${PYTHON_VERSION} 1
|
|
75
|
+
|
|
76
|
+
# Install CUDA runtime libraries required by cudf/cupy (optional)
|
|
77
|
+
RUN if [ "$INSTALL_CUDA" = "true" ]; then \
|
|
78
|
+
curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/3bf863cc.pub \
|
|
79
|
+
| gpg --dearmor -o /usr/share/keyrings/nvidia-cuda-keyring.gpg && \
|
|
80
|
+
echo "deb [signed-by=/usr/share/keyrings/nvidia-cuda-keyring.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/ /" \
|
|
81
|
+
> /etc/apt/sources.list.d/nvidia-cuda.list && \
|
|
82
|
+
apt-get update && \
|
|
83
|
+
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
|
84
|
+
cuda-cudart-12-6 \
|
|
85
|
+
cuda-cudart-dev-12-6 \
|
|
86
|
+
cuda-nvrtc-12-6 \
|
|
87
|
+
cuda-nvrtc-dev-12-6 \
|
|
88
|
+
libcublas-12-6 \
|
|
89
|
+
libcusparse-12-6 \
|
|
90
|
+
&& rm -rf /var/lib/apt/lists/*; \
|
|
91
|
+
else \
|
|
92
|
+
echo "Skipping CUDA installation"; \
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
ENV LD_LIBRARY_PATH=/usr/local/cuda/lib64
|
|
96
|
+
|
|
97
|
+
# Copy UV virtual environment from build stage
|
|
98
|
+
COPY --from=uv-install /opt/venv /opt/venv
|
|
99
|
+
|
|
100
|
+
# Set environment variables
|
|
101
|
+
ENV PATH="/opt/venv/bin:$PATH"
|
|
102
|
+
ENV PYTHONPATH="/app"
|
|
103
|
+
ENV PYTHONUNBUFFERED=1
|
|
104
|
+
ENV PYTHONDONTWRITEBYTECODE=1
|
|
105
|
+
ENV STREAMLIT_SERVER_HEADLESS=true
|
|
106
|
+
ENV STREAMLIT_SERVER_ENABLE_CORS=false
|
|
107
|
+
|
|
108
|
+
# Set working directory and create necessary directories
|
|
109
|
+
WORKDIR /app
|
|
110
|
+
|
|
111
|
+
# Copy application code
|
|
112
|
+
COPY aiagents4pharma/talk2aiagents4pharma /app/aiagents4pharma/talk2aiagents4pharma
|
|
113
|
+
COPY aiagents4pharma/talk2biomodels /app/aiagents4pharma/talk2biomodels
|
|
114
|
+
COPY aiagents4pharma/talk2knowledgegraphs /app/aiagents4pharma/talk2knowledgegraphs
|
|
115
|
+
COPY docs /app/docs
|
|
116
|
+
COPY app /app/app
|
|
117
|
+
|
|
118
|
+
# Copy and set up the entrypoint script
|
|
119
|
+
COPY aiagents4pharma/talk2knowledgegraphs/entrypoint.sh /usr/local/bin/entrypoint.sh
|
|
120
|
+
RUN chmod +x /usr/local/bin/entrypoint.sh
|
|
121
|
+
|
|
122
|
+
# Health check for production monitoring
|
|
123
|
+
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
|
124
|
+
CMD curl -f http://localhost:8501/health || exit 1
|
|
125
|
+
|
|
126
|
+
# Expose the default Streamlit port
|
|
127
|
+
EXPOSE 8501
|
|
128
|
+
|
|
129
|
+
# Set the entrypoint
|
|
130
|
+
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
|
131
|
+
|
|
132
|
+
# Default command (can be overridden)
|
|
133
|
+
CMD ["streamlit", "run", "/app/app/frontend/streamlit_app_talk2aiagents4pharma.py", "--server.port=8501", "--server.address=0.0.0.0"]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Please check out the README file in the root folder for more information.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# /usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
This is the main agent file for the AIAgents4Pharma.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import logging
|
|
8
|
+
|
|
9
|
+
import hydra
|
|
10
|
+
from langchain_core.language_models.chat_models import BaseChatModel
|
|
11
|
+
from langchain_openai import ChatOpenAI
|
|
12
|
+
from langgraph.checkpoint.memory import MemorySaver
|
|
13
|
+
from langgraph_supervisor import create_supervisor
|
|
14
|
+
|
|
15
|
+
from ...talk2biomodels.agents.t2b_agent import get_app as get_app_t2b
|
|
16
|
+
from ...talk2knowledgegraphs.agents.t2kg_agent import get_app as get_app_t2kg
|
|
17
|
+
from ..states.state_talk2aiagents4pharma import Talk2AIAgents4Pharma
|
|
18
|
+
|
|
19
|
+
# Initialize logger
|
|
20
|
+
logging.basicConfig(level=logging.INFO)
|
|
21
|
+
logger = logging.getLogger(__name__)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def get_app(uniq_id, llm_model: BaseChatModel):
|
|
25
|
+
"""
|
|
26
|
+
This function returns the langraph app.
|
|
27
|
+
"""
|
|
28
|
+
if hasattr(llm_model, "model_name"):
|
|
29
|
+
if llm_model.model_name == "gpt-4o-mini":
|
|
30
|
+
llm_model = ChatOpenAI(
|
|
31
|
+
model="gpt-4o-mini",
|
|
32
|
+
temperature=0,
|
|
33
|
+
model_kwargs={"parallel_tool_calls": False},
|
|
34
|
+
)
|
|
35
|
+
# Load hydra configuration
|
|
36
|
+
logger.log(logging.INFO, "Launching AIAgents4Pharma_Agent with thread_id %s", uniq_id)
|
|
37
|
+
with hydra.initialize(version_base=None, config_path="../configs"):
|
|
38
|
+
cfg = hydra.compose(config_name="config", overrides=["agents/main_agent=default"])
|
|
39
|
+
cfg = cfg.agents.main_agent
|
|
40
|
+
logger.log(logging.INFO, "System_prompt of T2AA4P: %s", cfg.system_prompt)
|
|
41
|
+
with hydra.initialize(version_base=None, config_path="../../talk2biomodels/configs"):
|
|
42
|
+
cfg_t2b = hydra.compose(config_name="config", overrides=["agents/t2b_agent=default"])
|
|
43
|
+
cfg_t2b = cfg_t2b.agents.t2b_agent
|
|
44
|
+
with hydra.initialize(version_base=None, config_path="../../talk2knowledgegraphs/configs"):
|
|
45
|
+
cfg_t2kg = hydra.compose(config_name="config", overrides=["agents/t2kg_agent=default"])
|
|
46
|
+
cfg_t2kg = cfg_t2kg.agents.t2kg_agent
|
|
47
|
+
system_prompt = cfg.system_prompt
|
|
48
|
+
system_prompt += "\n\nHere is the system prompt of T2B agent\n"
|
|
49
|
+
system_prompt += cfg_t2b.state_modifier
|
|
50
|
+
system_prompt += "\n\nHere is the system prompt of T2KG agent\n"
|
|
51
|
+
system_prompt += cfg_t2kg.state_modifier
|
|
52
|
+
# Create supervisor workflow
|
|
53
|
+
workflow = create_supervisor(
|
|
54
|
+
[
|
|
55
|
+
get_app_t2b(uniq_id, llm_model), # Talk2BioModels
|
|
56
|
+
get_app_t2kg(uniq_id, llm_model), # Talk2KnowledgeGraphs
|
|
57
|
+
],
|
|
58
|
+
model=llm_model,
|
|
59
|
+
state_schema=Talk2AIAgents4Pharma,
|
|
60
|
+
# Full history is needed to extract
|
|
61
|
+
# the tool artifacts
|
|
62
|
+
output_mode="full_history",
|
|
63
|
+
add_handoff_back_messages=True,
|
|
64
|
+
prompt=system_prompt,
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
# Compile and run
|
|
68
|
+
app = workflow.compile(checkpointer=MemorySaver(), name="AIAgents4Pharma_Agent")
|
|
69
|
+
|
|
70
|
+
return app
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
_target_: agents.main_agent.get_app
|
|
2
|
+
system_prompt: >
|
|
3
|
+
You are the Talk2AIAgents4Pharma main agent.
|
|
4
|
+
Your primary responsibility is to analyze the user's query and intelligently route it to the most appropriate specialized agent based on the user's intent.
|
|
5
|
+
|
|
6
|
+
You manage the following two expert agents:
|
|
7
|
+
|
|
8
|
+
1. Talk2Biomodels (T2B) Agent:
|
|
9
|
+
- This agent specializes in working with **mathematical models of biological systems**.
|
|
10
|
+
- It can perform tasks such as querying and simulating models, conducting parameter scans, analyzing time series,
|
|
11
|
+
and accessing annotated model components like species and reactions.
|
|
12
|
+
- It is also capable of processing and answering questions based on **uploaded documents, PDFs, or articles**.
|
|
13
|
+
- You should route queries to T2B if they contain or imply topics such as:
|
|
14
|
+
**"biological models", "mathematical models", "parameter scanning", "simulations", "time series", "species", "reactions", "annotations", "SBML", "model dynamics", "ODEs", "system biology"**, etc.
|
|
15
|
+
- For annotation-related queries, this agent should consider the annotated species and provide insights based on the retrieved context.
|
|
16
|
+
|
|
17
|
+
2. Talk2KnowledgeGraphs (T2KG) Agent:
|
|
18
|
+
- This agent specializes in **reasoning over biomedical knowledge graphs**.
|
|
19
|
+
- It is capable of answering **subjective, inferential, or relational questions** that involve **nodes, edges, relationships, and graph structures**.
|
|
20
|
+
- You should route queries to T2KG if they involve or imply topics such as:
|
|
21
|
+
**"knowledge graph", "biomedical graph", "subgraph", "graph structure", "node relationships", "graph reasoning", "graph connections", "pathways", "entity linkage", "graph queries", "subgraph extraction", "subgraph summarization"**, etc.
|
|
22
|
+
|
|
23
|
+
Important Guidelines:
|
|
24
|
+
- **Think carefully about the user's true intent**. Keywords are helpful indicators, but you must use reasoning to determine the best fit.
|
|
25
|
+
- If the question involves **mathematical modeling**, **simulation**, or **objective factual analysis**, select the **Talk2Biomodels (T2B)** agent.
|
|
26
|
+
- If the question involves **graph-based reasoning**, **subjective inference**, or **relationship analysis between entities**, select the **Talk2KnowledgeGraphs (T2KG)** agent.
|
|
27
|
+
- **Never** route a question about **biological models** or **objective computational simulations** to T2KG.
|
|
28
|
+
|
|
29
|
+
The following are the respective agent prompts:
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
_target_: app.frontend.streamlit_app_talk2aiagents4pharma
|
|
2
|
+
default_user: "talk2aa4p_user"
|
|
3
|
+
|
|
4
|
+
# File upload configuration (combining T2B and T2KG features)
|
|
5
|
+
upload_data_dir: "../files"
|
|
6
|
+
|
|
7
|
+
# T2B specific file types
|
|
8
|
+
sbml_allowed_file_types:
|
|
9
|
+
- "xml"
|
|
10
|
+
- "sbml"
|
|
11
|
+
article_allowed_file_types:
|
|
12
|
+
- "pdf"
|
|
13
|
+
|
|
14
|
+
# T2KG specific file types
|
|
15
|
+
data_package_allowed_file_types:
|
|
16
|
+
- "pdf"
|
|
17
|
+
multimodal_allowed_file_types:
|
|
18
|
+
- "xls"
|
|
19
|
+
- "xlsx"
|
|
20
|
+
|
|
21
|
+
# Knowledge graph configuration (from T2KG)
|
|
22
|
+
kg_name: "BioBridge-PrimeKG"
|
|
23
|
+
kg_node_types:
|
|
24
|
+
- "gene/protein"
|
|
25
|
+
- "molecular_function"
|
|
26
|
+
- "cellular_component"
|
|
27
|
+
- "biological_process"
|
|
28
|
+
- "drug"
|
|
29
|
+
- "disease"
|
|
30
|
+
kg_pyg_path: "aiagents4pharma/talk2knowledgegraphs/tests/files/biobridge_multimodal_pyg_graph.pkl"
|
|
31
|
+
kg_text_path: "aiagents4pharma/talk2knowledgegraphs/tests/files/biobridge_multimodal_text_graph.pkl"
|
|
32
|
+
|
|
33
|
+
# OpenAI configuration - can use custom base_url for enterprise/Azure deployments
|
|
34
|
+
openai_api_key: ${oc.env:OPENAI_API_KEY}
|
|
35
|
+
openai_base_url: ${oc.env:OPENAI_BASE_URL,null} # Optional: custom OpenAI endpoint
|
|
36
|
+
openai_llms:
|
|
37
|
+
- "OpenAI/gpt-4o-mini"
|
|
38
|
+
openai_embeddings:
|
|
39
|
+
- "text-embedding-ada-002"
|
|
40
|
+
- "text-embedding-3-small"
|
|
41
|
+
|
|
42
|
+
# Rate limiting and retry configuration
|
|
43
|
+
llm_max_retries: 5 # Number of retries on rate limit or transient errors
|
|
44
|
+
llm_timeout: 60 # Timeout in seconds for LLM requests
|
|
45
|
+
embedding_max_retries: 3 # Number of retries for embedding requests
|
|
46
|
+
embedding_timeout: 30 # Timeout in seconds for embedding requests
|
|
47
|
+
|
|
48
|
+
# NVIDIA configuration
|
|
49
|
+
nvidia_api_key: ${oc.env:NVIDIA_API_KEY}
|
|
50
|
+
nvidia_llms:
|
|
51
|
+
- "NVIDIA/llama-3.3-70b-instruct"
|
|
52
|
+
- "NVIDIA/llama-3.1-70b-instruct"
|
|
53
|
+
- "NVIDIA/llama-3.1-405b-instruct"
|
|
54
|
+
nvidia_embeddings:
|
|
55
|
+
- "NVIDIA/llama-3.2-nv-embedqa-1b-v2"
|
|
56
|
+
|
|
57
|
+
# Azure OpenAI configuration
|
|
58
|
+
azure_openai_endpoint: ${oc.env:AZURE_OPENAI_ENDPOINT,null} # Azure OpenAI endpoint
|
|
59
|
+
azure_openai_deployment: ${oc.env:AZURE_OPENAI_DEPLOYMENT,null} # Azure deployment name
|
|
60
|
+
azure_openai_api_version: ${oc.env:AZURE_OPENAI_API_VERSION,"2024-02-01"} # Azure API version
|
|
61
|
+
azure_openai_model_name: ${oc.env:AZURE_OPENAI_MODEL_NAME,null} # Model name for analytics
|
|
62
|
+
azure_openai_model_version: ${oc.env:AZURE_OPENAI_MODEL_VERSION,null} # Model version
|
|
63
|
+
# Azure AD authentication (uses AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET)
|
|
64
|
+
azure_client_id: ${oc.env:AZURE_CLIENT_ID,null}
|
|
65
|
+
azure_tenant_id: ${oc.env:AZURE_TENANT_ID,null}
|
|
66
|
+
azure_client_secret: ${oc.env:AZURE_CLIENT_SECRET,null}
|
|
67
|
+
azure_openai_llms:
|
|
68
|
+
- "Azure/gpt-4o-mini" # Will map to Azure deployment
|
|
69
|
+
azure_openai_embeddings:
|
|
70
|
+
- "Azure/text-embedding-ada-002"
|
|
71
|
+
|
|
72
|
+
# Ollama configuration (for local deployment)
|
|
73
|
+
ollama_llms:
|
|
74
|
+
- "Ollama/llama3.1:8b"
|
|
75
|
+
ollama_embeddings:
|
|
76
|
+
- "nomic-embed-text"
|
|
77
|
+
|
|
78
|
+
# Default models
|
|
79
|
+
default_llm_provider: "openai"
|
|
80
|
+
default_embedding_model: "openai" # Changed from "ollama" to match T2B pattern
|
|
81
|
+
|
|
82
|
+
# App settings
|
|
83
|
+
temperature: 0.1
|
|
84
|
+
streaming: False
|
|
85
|
+
|
|
86
|
+
# T2KG specific: Subgraph extraction settings
|
|
87
|
+
reasoning_subgraph_topk_nodes: 15
|
|
88
|
+
reasoning_subgraph_topk_nodes_min: 1
|
|
89
|
+
reasoning_subgraph_topk_nodes_max: 50
|
|
90
|
+
reasoning_subgraph_topk_edges: 15
|
|
91
|
+
reasoning_subgraph_topk_edges_min: 1
|
|
92
|
+
reasoning_subgraph_topk_edges_max: 50
|
|
93
|
+
|
|
94
|
+
# Logo configuration
|
|
95
|
+
logo_paths:
|
|
96
|
+
container: "/app/docs/assets/VPE.png"
|
|
97
|
+
local: "docs/assets/VPE.png"
|
|
98
|
+
relative: "../../docs/assets/VPE.png"
|
|
99
|
+
logo_link: "https://github.com/VirtualPatientEngine"
|
|
100
|
+
|
|
101
|
+
# Database configuration reference (handled by utils/database/milvus config)
|
|
102
|
+
# This frontend config now only contains frontend-specific settings
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# .env.example (DO NOT put actual API keys here, read the README.md)
|
|
2
|
+
|
|
3
|
+
# OPENAI API KEY
|
|
4
|
+
OPENAI_API_KEY=your_openai_api_key_here
|
|
5
|
+
|
|
6
|
+
# LangSmith API KEY
|
|
7
|
+
LANGCHAIN_TRACING_V2=true
|
|
8
|
+
LANGCHAIN_API_KEY=your_langchain_api_key_here
|
|
9
|
+
|
|
10
|
+
# NVIDIA API KEY
|
|
11
|
+
NVIDIA_API_KEY=your_nvidia_api_key_here
|
|
12
|
+
|
|
13
|
+
# Set environment variables for data loader
|
|
14
|
+
MILVUS_HOST=milvus-standalone
|
|
15
|
+
MILVUS_PORT=19530
|
|
16
|
+
MILVUS_USER=root
|
|
17
|
+
MILVUS_PASSWORD=Milvus
|
|
18
|
+
MILVUS_DATABASE=t2kg_primekg
|
|
19
|
+
|
|
20
|
+
# Specify the data directory for multimodal data to your own data directory
|
|
21
|
+
# DATA_DIR=/your_absolute_path_to_your_data_dir/
|
|
22
|
+
|
|
23
|
+
BATCH_SIZE=500
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
version: "1.0.0"
|
|
2
|
+
|
|
3
|
+
services:
|
|
4
|
+
# talk2aiagents4pharma with automatic data loading via entrypoint
|
|
5
|
+
talk2aiagents4pharma:
|
|
6
|
+
container_name: talk2aiagents4pharma
|
|
7
|
+
image: vpatientengine/talk2aiagents4pharma:latest-cpu
|
|
8
|
+
platform: linux/amd64
|
|
9
|
+
ports:
|
|
10
|
+
- "8501:8501"
|
|
11
|
+
environment:
|
|
12
|
+
- MILVUS_HOST=milvus-standalone
|
|
13
|
+
- MILVUS_PORT=19530
|
|
14
|
+
env_file:
|
|
15
|
+
- .env
|
|
16
|
+
volumes:
|
|
17
|
+
# Mount external data directory if DATA_DIR is specified in .env
|
|
18
|
+
- ${DATA_DIR:-./default_data}:/mnt/external_data:ro
|
|
19
|
+
healthcheck:
|
|
20
|
+
test: ["CMD", "curl", "-f", "http://localhost:8501/health"]
|
|
21
|
+
interval: 30s
|
|
22
|
+
timeout: 10s
|
|
23
|
+
retries: 3
|
|
24
|
+
start_period: 120s # Allow time for data loading
|
|
25
|
+
depends_on:
|
|
26
|
+
milvus-standalone:
|
|
27
|
+
condition: service_healthy
|
|
28
|
+
|
|
29
|
+
# Milvus Dependencies
|
|
30
|
+
etcd:
|
|
31
|
+
container_name: milvus-etcd
|
|
32
|
+
image: quay.io/coreos/etcd:v3.5.18
|
|
33
|
+
environment:
|
|
34
|
+
- ETCD_AUTO_COMPACTION_MODE=revision
|
|
35
|
+
- ETCD_AUTO_COMPACTION_RETENTION=1000
|
|
36
|
+
- ETCD_QUOTA_BACKEND_BYTES=4294967296
|
|
37
|
+
- ETCD_SNAPSHOT_COUNT=50000
|
|
38
|
+
volumes:
|
|
39
|
+
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
|
|
40
|
+
command: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
|
|
41
|
+
healthcheck:
|
|
42
|
+
test: ["CMD", "etcdctl", "endpoint", "health"]
|
|
43
|
+
interval: 30s
|
|
44
|
+
timeout: 20s
|
|
45
|
+
retries: 3
|
|
46
|
+
|
|
47
|
+
minio:
|
|
48
|
+
container_name: milvus-minio
|
|
49
|
+
image: minio/minio:RELEASE.2024-05-28T17-19-04Z
|
|
50
|
+
environment:
|
|
51
|
+
MINIO_ACCESS_KEY: minioadmin
|
|
52
|
+
MINIO_SECRET_KEY: minioadmin
|
|
53
|
+
ports:
|
|
54
|
+
- "9001:9001"
|
|
55
|
+
- "9000:9000"
|
|
56
|
+
volumes:
|
|
57
|
+
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
|
|
58
|
+
command: minio server /minio_data --console-address ":9001"
|
|
59
|
+
healthcheck:
|
|
60
|
+
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
|
|
61
|
+
interval: 30s
|
|
62
|
+
timeout: 20s
|
|
63
|
+
retries: 3
|
|
64
|
+
|
|
65
|
+
# Milvus Vector Database (CPU-only)
|
|
66
|
+
milvus-standalone:
|
|
67
|
+
container_name: milvus-standalone
|
|
68
|
+
image: milvusdb/milvus:v2.5.14
|
|
69
|
+
command: ["milvus", "run", "standalone"]
|
|
70
|
+
security_opt:
|
|
71
|
+
- seccomp:unconfined
|
|
72
|
+
environment:
|
|
73
|
+
MINIO_REGION: us-east-1
|
|
74
|
+
ETCD_ENDPOINTS: etcd:2379
|
|
75
|
+
MINIO_ADDRESS: minio:9000
|
|
76
|
+
volumes:
|
|
77
|
+
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
|
|
78
|
+
ports:
|
|
79
|
+
- "19530:19530"
|
|
80
|
+
- "9091:9091"
|
|
81
|
+
healthcheck:
|
|
82
|
+
test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
|
|
83
|
+
interval: 30s
|
|
84
|
+
start_period: 90s
|
|
85
|
+
timeout: 20s
|
|
86
|
+
retries: 3
|
|
87
|
+
depends_on:
|
|
88
|
+
- "etcd"
|
|
89
|
+
- "minio"
|
|
90
|
+
|
|
91
|
+
networks:
|
|
92
|
+
milvus:
|
|
93
|
+
name: milvus
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# .env.example (DO NOT put actual API keys here, read the README.md)
|
|
2
|
+
|
|
3
|
+
# OPENAI API KEY
|
|
4
|
+
OPENAI_API_KEY=your_openai_api_key_here
|
|
5
|
+
|
|
6
|
+
# LangSmith API KEY
|
|
7
|
+
LANGCHAIN_TRACING_V2=true
|
|
8
|
+
LANGCHAIN_API_KEY=your_langchain_api_key_here
|
|
9
|
+
|
|
10
|
+
# NVIDIA API KEY
|
|
11
|
+
NVIDIA_API_KEY=your_nvidia_api_key_here
|
|
12
|
+
|
|
13
|
+
# Set environment variables for data loader
|
|
14
|
+
MILVUS_HOST=milvus-standalone
|
|
15
|
+
MILVUS_PORT=19530
|
|
16
|
+
MILVUS_USER=root
|
|
17
|
+
MILVUS_PASSWORD=Milvus
|
|
18
|
+
MILVUS_DATABASE=t2kg_primekg
|
|
19
|
+
|
|
20
|
+
# Specify the data directory for multimodal data to your own data directory
|
|
21
|
+
# DATA_DIR=/your_absolute_path_to_your_data_dir/
|
|
22
|
+
|
|
23
|
+
BATCH_SIZE=500
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
version: "1.0.0"
|
|
2
|
+
|
|
3
|
+
services:
|
|
4
|
+
# talk2aiagents4pharma with automatic data loading via entrypoint
|
|
5
|
+
talk2aiagents4pharma:
|
|
6
|
+
container_name: talk2aiagents4pharma
|
|
7
|
+
image: vpatientengine/talk2aiagents4pharma:latest-gpu
|
|
8
|
+
platform: linux/amd64
|
|
9
|
+
ports:
|
|
10
|
+
- "8501:8501"
|
|
11
|
+
deploy:
|
|
12
|
+
resources:
|
|
13
|
+
reservations:
|
|
14
|
+
devices:
|
|
15
|
+
- driver: nvidia
|
|
16
|
+
capabilities: ["gpu"]
|
|
17
|
+
device_ids: ["0"]
|
|
18
|
+
environment:
|
|
19
|
+
- MILVUS_HOST=milvus-standalone
|
|
20
|
+
- MILVUS_PORT=19530
|
|
21
|
+
env_file:
|
|
22
|
+
- .env
|
|
23
|
+
volumes:
|
|
24
|
+
# Mount external data directory if DATA_DIR is specified in .env
|
|
25
|
+
- ${DATA_DIR:-./default_data}:/mnt/external_data:ro
|
|
26
|
+
healthcheck:
|
|
27
|
+
test: ["CMD", "curl", "-f", "http://localhost:8501/health"]
|
|
28
|
+
interval: 30s
|
|
29
|
+
timeout: 10s
|
|
30
|
+
retries: 3
|
|
31
|
+
start_period: 120s # Allow time for data loading
|
|
32
|
+
depends_on:
|
|
33
|
+
milvus-standalone:
|
|
34
|
+
condition: service_healthy
|
|
35
|
+
|
|
36
|
+
# Milvus Dependencies
|
|
37
|
+
etcd:
|
|
38
|
+
container_name: milvus-etcd
|
|
39
|
+
image: quay.io/coreos/etcd:v3.5.18
|
|
40
|
+
environment:
|
|
41
|
+
- ETCD_AUTO_COMPACTION_MODE=revision
|
|
42
|
+
- ETCD_AUTO_COMPACTION_RETENTION=1000
|
|
43
|
+
- ETCD_QUOTA_BACKEND_BYTES=4294967296
|
|
44
|
+
- ETCD_SNAPSHOT_COUNT=50000
|
|
45
|
+
volumes:
|
|
46
|
+
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
|
|
47
|
+
command: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
|
|
48
|
+
healthcheck:
|
|
49
|
+
test: ["CMD", "etcdctl", "endpoint", "health"]
|
|
50
|
+
interval: 30s
|
|
51
|
+
timeout: 20s
|
|
52
|
+
retries: 3
|
|
53
|
+
|
|
54
|
+
minio:
|
|
55
|
+
container_name: milvus-minio
|
|
56
|
+
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
|
|
57
|
+
environment:
|
|
58
|
+
MINIO_ACCESS_KEY: minioadmin
|
|
59
|
+
MINIO_SECRET_KEY: minioadmin
|
|
60
|
+
ports:
|
|
61
|
+
- "9001:9001"
|
|
62
|
+
- "9000:9000"
|
|
63
|
+
volumes:
|
|
64
|
+
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
|
|
65
|
+
command: minio server /minio_data --console-address ":9001"
|
|
66
|
+
healthcheck:
|
|
67
|
+
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
|
|
68
|
+
interval: 30s
|
|
69
|
+
timeout: 20s
|
|
70
|
+
retries: 3
|
|
71
|
+
|
|
72
|
+
# Milvus Vector Database (GPU-enabled)
|
|
73
|
+
milvus-standalone:
|
|
74
|
+
container_name: milvus-standalone
|
|
75
|
+
image: milvusdb/milvus:v2.6.0-rc1-gpu
|
|
76
|
+
command: ["milvus", "run", "standalone"]
|
|
77
|
+
security_opt:
|
|
78
|
+
- seccomp:unconfined
|
|
79
|
+
environment:
|
|
80
|
+
MINIO_REGION: us-east-1
|
|
81
|
+
ETCD_ENDPOINTS: etcd:2379
|
|
82
|
+
MINIO_ADDRESS: minio:9000
|
|
83
|
+
MQ_TYPE: woodpecker
|
|
84
|
+
volumes:
|
|
85
|
+
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
|
|
86
|
+
ports:
|
|
87
|
+
- "19530:19530"
|
|
88
|
+
- "9091:9091"
|
|
89
|
+
deploy:
|
|
90
|
+
resources:
|
|
91
|
+
reservations:
|
|
92
|
+
devices:
|
|
93
|
+
- driver: nvidia
|
|
94
|
+
capabilities: ["gpu"]
|
|
95
|
+
device_ids: ["0"]
|
|
96
|
+
healthcheck:
|
|
97
|
+
test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
|
|
98
|
+
interval: 30s
|
|
99
|
+
start_period: 90s
|
|
100
|
+
timeout: 20s
|
|
101
|
+
retries: 3
|
|
102
|
+
depends_on:
|
|
103
|
+
- "etcd"
|
|
104
|
+
- "minio"
|
|
105
|
+
|
|
106
|
+
networks:
|
|
107
|
+
milvus:
|
|
108
|
+
name: milvus
|