aiagents4pharma 1.43.0__py3-none-any.whl → 1.45.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.
Files changed (290) hide show
  1. aiagents4pharma/__init__.py +2 -2
  2. aiagents4pharma/talk2aiagents4pharma/.dockerignore +13 -0
  3. aiagents4pharma/talk2aiagents4pharma/Dockerfile +105 -0
  4. aiagents4pharma/talk2aiagents4pharma/README.md +1 -0
  5. aiagents4pharma/talk2aiagents4pharma/__init__.py +4 -5
  6. aiagents4pharma/talk2aiagents4pharma/agents/__init__.py +3 -2
  7. aiagents4pharma/talk2aiagents4pharma/agents/main_agent.py +24 -23
  8. aiagents4pharma/talk2aiagents4pharma/configs/__init__.py +2 -2
  9. aiagents4pharma/talk2aiagents4pharma/configs/agents/__init__.py +2 -2
  10. aiagents4pharma/talk2aiagents4pharma/configs/agents/main_agent/default.yaml +2 -2
  11. aiagents4pharma/talk2aiagents4pharma/configs/config.yaml +1 -1
  12. aiagents4pharma/talk2aiagents4pharma/docker-compose/cpu/.env.example +23 -0
  13. aiagents4pharma/talk2aiagents4pharma/docker-compose/cpu/docker-compose.yml +93 -0
  14. aiagents4pharma/talk2aiagents4pharma/docker-compose/gpu/.env.example +23 -0
  15. aiagents4pharma/talk2aiagents4pharma/docker-compose/gpu/docker-compose.yml +108 -0
  16. aiagents4pharma/talk2aiagents4pharma/install.md +127 -0
  17. aiagents4pharma/talk2aiagents4pharma/states/__init__.py +3 -2
  18. aiagents4pharma/talk2aiagents4pharma/states/state_talk2aiagents4pharma.py +5 -3
  19. aiagents4pharma/talk2aiagents4pharma/tests/__init__.py +2 -2
  20. aiagents4pharma/talk2aiagents4pharma/tests/test_main_agent.py +72 -50
  21. aiagents4pharma/talk2biomodels/.dockerignore +13 -0
  22. aiagents4pharma/talk2biomodels/Dockerfile +104 -0
  23. aiagents4pharma/talk2biomodels/README.md +1 -0
  24. aiagents4pharma/talk2biomodels/__init__.py +4 -8
  25. aiagents4pharma/talk2biomodels/agents/__init__.py +3 -2
  26. aiagents4pharma/talk2biomodels/agents/t2b_agent.py +47 -42
  27. aiagents4pharma/talk2biomodels/api/__init__.py +4 -5
  28. aiagents4pharma/talk2biomodels/api/kegg.py +14 -10
  29. aiagents4pharma/talk2biomodels/api/ols.py +13 -10
  30. aiagents4pharma/talk2biomodels/api/uniprot.py +7 -6
  31. aiagents4pharma/talk2biomodels/configs/__init__.py +3 -4
  32. aiagents4pharma/talk2biomodels/configs/agents/__init__.py +2 -2
  33. aiagents4pharma/talk2biomodels/configs/agents/t2b_agent/__init__.py +2 -2
  34. aiagents4pharma/talk2biomodels/configs/agents/t2b_agent/default.yaml +1 -1
  35. aiagents4pharma/talk2biomodels/configs/config.yaml +1 -1
  36. aiagents4pharma/talk2biomodels/configs/tools/__init__.py +4 -5
  37. aiagents4pharma/talk2biomodels/configs/tools/ask_question/__init__.py +2 -2
  38. aiagents4pharma/talk2biomodels/configs/tools/ask_question/default.yaml +1 -2
  39. aiagents4pharma/talk2biomodels/configs/tools/custom_plotter/__init__.py +2 -2
  40. aiagents4pharma/talk2biomodels/configs/tools/custom_plotter/default.yaml +1 -1
  41. aiagents4pharma/talk2biomodels/configs/tools/get_annotation/__init__.py +2 -2
  42. aiagents4pharma/talk2biomodels/configs/tools/get_annotation/default.yaml +1 -1
  43. aiagents4pharma/talk2biomodels/install.md +63 -0
  44. aiagents4pharma/talk2biomodels/models/__init__.py +4 -4
  45. aiagents4pharma/talk2biomodels/models/basico_model.py +36 -28
  46. aiagents4pharma/talk2biomodels/models/sys_bio_model.py +13 -10
  47. aiagents4pharma/talk2biomodels/states/__init__.py +3 -2
  48. aiagents4pharma/talk2biomodels/states/state_talk2biomodels.py +12 -8
  49. aiagents4pharma/talk2biomodels/tests/BIOMD0000000449_url.xml +1585 -0
  50. aiagents4pharma/talk2biomodels/tests/__init__.py +2 -2
  51. aiagents4pharma/talk2biomodels/tests/article_on_model_537.pdf +0 -0
  52. aiagents4pharma/talk2biomodels/tests/test_api.py +18 -14
  53. aiagents4pharma/talk2biomodels/tests/test_ask_question.py +8 -9
  54. aiagents4pharma/talk2biomodels/tests/test_basico_model.py +15 -9
  55. aiagents4pharma/talk2biomodels/tests/test_get_annotation.py +54 -55
  56. aiagents4pharma/talk2biomodels/tests/test_getmodelinfo.py +28 -27
  57. aiagents4pharma/talk2biomodels/tests/test_integration.py +21 -33
  58. aiagents4pharma/talk2biomodels/tests/test_load_biomodel.py +14 -11
  59. aiagents4pharma/talk2biomodels/tests/test_param_scan.py +21 -20
  60. aiagents4pharma/talk2biomodels/tests/test_query_article.py +129 -29
  61. aiagents4pharma/talk2biomodels/tests/test_search_models.py +9 -13
  62. aiagents4pharma/talk2biomodels/tests/test_simulate_model.py +16 -15
  63. aiagents4pharma/talk2biomodels/tests/test_steady_state.py +12 -22
  64. aiagents4pharma/talk2biomodels/tests/test_sys_bio_model.py +33 -29
  65. aiagents4pharma/talk2biomodels/tools/__init__.py +15 -12
  66. aiagents4pharma/talk2biomodels/tools/ask_question.py +42 -32
  67. aiagents4pharma/talk2biomodels/tools/custom_plotter.py +51 -43
  68. aiagents4pharma/talk2biomodels/tools/get_annotation.py +99 -75
  69. aiagents4pharma/talk2biomodels/tools/get_modelinfo.py +57 -51
  70. aiagents4pharma/talk2biomodels/tools/load_arguments.py +52 -32
  71. aiagents4pharma/talk2biomodels/tools/load_biomodel.py +8 -2
  72. aiagents4pharma/talk2biomodels/tools/parameter_scan.py +107 -90
  73. aiagents4pharma/talk2biomodels/tools/query_article.py +14 -13
  74. aiagents4pharma/talk2biomodels/tools/search_models.py +37 -26
  75. aiagents4pharma/talk2biomodels/tools/simulate_model.py +47 -37
  76. aiagents4pharma/talk2biomodels/tools/steady_state.py +76 -58
  77. aiagents4pharma/talk2biomodels/tools/utils.py +4 -3
  78. aiagents4pharma/talk2cells/README.md +1 -0
  79. aiagents4pharma/talk2cells/__init__.py +4 -5
  80. aiagents4pharma/talk2cells/agents/__init__.py +3 -2
  81. aiagents4pharma/talk2cells/agents/scp_agent.py +21 -19
  82. aiagents4pharma/talk2cells/states/__init__.py +3 -2
  83. aiagents4pharma/talk2cells/states/state_talk2cells.py +4 -2
  84. aiagents4pharma/talk2cells/tests/scp_agent/test_scp_agent.py +8 -9
  85. aiagents4pharma/talk2cells/tools/__init__.py +3 -2
  86. aiagents4pharma/talk2cells/tools/scp_agent/__init__.py +4 -4
  87. aiagents4pharma/talk2cells/tools/scp_agent/display_studies.py +5 -3
  88. aiagents4pharma/talk2cells/tools/scp_agent/search_studies.py +21 -22
  89. aiagents4pharma/talk2knowledgegraphs/.dockerignore +13 -0
  90. aiagents4pharma/talk2knowledgegraphs/Dockerfile +103 -0
  91. aiagents4pharma/talk2knowledgegraphs/README.md +1 -0
  92. aiagents4pharma/talk2knowledgegraphs/__init__.py +4 -7
  93. aiagents4pharma/talk2knowledgegraphs/agents/__init__.py +3 -2
  94. aiagents4pharma/talk2knowledgegraphs/agents/t2kg_agent.py +40 -30
  95. aiagents4pharma/talk2knowledgegraphs/configs/__init__.py +3 -6
  96. aiagents4pharma/talk2knowledgegraphs/configs/agents/t2kg_agent/__init__.py +2 -2
  97. aiagents4pharma/talk2knowledgegraphs/configs/agents/t2kg_agent/default.yaml +8 -8
  98. aiagents4pharma/talk2knowledgegraphs/configs/app/__init__.py +3 -2
  99. aiagents4pharma/talk2knowledgegraphs/configs/app/frontend/__init__.py +2 -2
  100. aiagents4pharma/talk2knowledgegraphs/configs/app/frontend/default.yaml +1 -1
  101. aiagents4pharma/talk2knowledgegraphs/configs/config.yaml +1 -1
  102. aiagents4pharma/talk2knowledgegraphs/configs/tools/__init__.py +4 -5
  103. aiagents4pharma/talk2knowledgegraphs/configs/tools/graphrag_reasoning/__init__.py +2 -2
  104. aiagents4pharma/talk2knowledgegraphs/configs/tools/graphrag_reasoning/default.yaml +1 -1
  105. aiagents4pharma/talk2knowledgegraphs/configs/tools/multimodal_subgraph_extraction/default.yaml +17 -2
  106. aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_extraction/__init__.py +2 -2
  107. aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_extraction/default.yaml +1 -1
  108. aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_summarization/__init__.py +2 -2
  109. aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_summarization/default.yaml +1 -1
  110. aiagents4pharma/talk2knowledgegraphs/configs/utils/enrichments/ols_terms/default.yaml +1 -1
  111. aiagents4pharma/talk2knowledgegraphs/configs/utils/enrichments/reactome_pathways/default.yaml +1 -1
  112. aiagents4pharma/talk2knowledgegraphs/configs/utils/enrichments/uniprot_proteins/default.yaml +1 -1
  113. aiagents4pharma/talk2knowledgegraphs/configs/utils/pubchem_utils/default.yaml +1 -1
  114. aiagents4pharma/talk2knowledgegraphs/datasets/__init__.py +4 -6
  115. aiagents4pharma/talk2knowledgegraphs/datasets/biobridge_primekg.py +115 -67
  116. aiagents4pharma/talk2knowledgegraphs/datasets/dataset.py +2 -0
  117. aiagents4pharma/talk2knowledgegraphs/datasets/primekg.py +35 -24
  118. aiagents4pharma/talk2knowledgegraphs/datasets/starkqa_primekg.py +29 -21
  119. aiagents4pharma/talk2knowledgegraphs/docker-compose/cpu/.env.example +23 -0
  120. aiagents4pharma/talk2knowledgegraphs/docker-compose/cpu/docker-compose.yml +93 -0
  121. aiagents4pharma/talk2knowledgegraphs/docker-compose/gpu/.env.example +23 -0
  122. aiagents4pharma/talk2knowledgegraphs/docker-compose/gpu/docker-compose.yml +108 -0
  123. aiagents4pharma/talk2knowledgegraphs/entrypoint.sh +190 -0
  124. aiagents4pharma/talk2knowledgegraphs/install.md +140 -0
  125. aiagents4pharma/talk2knowledgegraphs/milvus_data_dump.py +31 -65
  126. aiagents4pharma/talk2knowledgegraphs/states/__init__.py +3 -2
  127. aiagents4pharma/talk2knowledgegraphs/states/state_talk2knowledgegraphs.py +1 -0
  128. aiagents4pharma/talk2knowledgegraphs/tests/test_agents_t2kg_agent.py +65 -40
  129. aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_biobridge_primekg.py +54 -48
  130. aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_dataset.py +4 -0
  131. aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_primekg.py +17 -4
  132. aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_starkqa_primekg.py +33 -24
  133. aiagents4pharma/talk2knowledgegraphs/tests/test_tools_graphrag_reasoning.py +116 -69
  134. aiagents4pharma/talk2knowledgegraphs/tests/test_tools_milvus_multimodal_subgraph_extraction.py +736 -413
  135. aiagents4pharma/talk2knowledgegraphs/tests/test_tools_multimodal_subgraph_extraction.py +22 -15
  136. aiagents4pharma/talk2knowledgegraphs/tests/test_tools_subgraph_extraction.py +19 -12
  137. aiagents4pharma/talk2knowledgegraphs/tests/test_tools_subgraph_summarization.py +95 -48
  138. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_embeddings.py +4 -0
  139. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_huggingface.py +5 -0
  140. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_nim_molmim.py +13 -18
  141. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_ollama.py +10 -3
  142. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_enrichments.py +4 -3
  143. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_ollama.py +3 -2
  144. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_ols.py +1 -0
  145. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_pubchem.py +9 -4
  146. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_reactome.py +6 -6
  147. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_uniprot.py +4 -0
  148. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_extractions_milvus_multimodal_pcst.py +442 -42
  149. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_kg_utils.py +3 -4
  150. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_pubchem_utils.py +10 -6
  151. aiagents4pharma/talk2knowledgegraphs/tools/__init__.py +10 -7
  152. aiagents4pharma/talk2knowledgegraphs/tools/graphrag_reasoning.py +15 -20
  153. aiagents4pharma/talk2knowledgegraphs/tools/milvus_multimodal_subgraph_extraction.py +245 -205
  154. aiagents4pharma/talk2knowledgegraphs/tools/multimodal_subgraph_extraction.py +92 -90
  155. aiagents4pharma/talk2knowledgegraphs/tools/subgraph_extraction.py +25 -37
  156. aiagents4pharma/talk2knowledgegraphs/tools/subgraph_summarization.py +10 -13
  157. aiagents4pharma/talk2knowledgegraphs/utils/__init__.py +4 -7
  158. aiagents4pharma/talk2knowledgegraphs/utils/embeddings/__init__.py +4 -7
  159. aiagents4pharma/talk2knowledgegraphs/utils/embeddings/embeddings.py +4 -0
  160. aiagents4pharma/talk2knowledgegraphs/utils/embeddings/huggingface.py +11 -14
  161. aiagents4pharma/talk2knowledgegraphs/utils/embeddings/nim_molmim.py +7 -7
  162. aiagents4pharma/talk2knowledgegraphs/utils/embeddings/ollama.py +12 -6
  163. aiagents4pharma/talk2knowledgegraphs/utils/embeddings/sentence_transformer.py +8 -6
  164. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/__init__.py +9 -6
  165. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/enrichments.py +1 -0
  166. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/ollama.py +15 -9
  167. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/ols_terms.py +23 -20
  168. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/pubchem_strings.py +12 -10
  169. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/reactome_pathways.py +16 -10
  170. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/uniprot_proteins.py +26 -18
  171. aiagents4pharma/talk2knowledgegraphs/utils/extractions/__init__.py +4 -5
  172. aiagents4pharma/talk2knowledgegraphs/utils/extractions/milvus_multimodal_pcst.py +218 -81
  173. aiagents4pharma/talk2knowledgegraphs/utils/extractions/multimodal_pcst.py +53 -47
  174. aiagents4pharma/talk2knowledgegraphs/utils/extractions/pcst.py +18 -14
  175. aiagents4pharma/talk2knowledgegraphs/utils/kg_utils.py +22 -23
  176. aiagents4pharma/talk2knowledgegraphs/utils/pubchem_utils.py +11 -10
  177. aiagents4pharma/talk2scholars/.dockerignore +13 -0
  178. aiagents4pharma/talk2scholars/Dockerfile +104 -0
  179. aiagents4pharma/talk2scholars/README.md +1 -0
  180. aiagents4pharma/talk2scholars/agents/__init__.py +1 -5
  181. aiagents4pharma/talk2scholars/agents/main_agent.py +6 -4
  182. aiagents4pharma/talk2scholars/agents/paper_download_agent.py +5 -4
  183. aiagents4pharma/talk2scholars/agents/pdf_agent.py +4 -2
  184. aiagents4pharma/talk2scholars/agents/s2_agent.py +2 -2
  185. aiagents4pharma/talk2scholars/agents/zotero_agent.py +10 -11
  186. aiagents4pharma/talk2scholars/configs/__init__.py +1 -3
  187. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/__init__.py +1 -4
  188. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/default.yaml +1 -1
  189. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/pdf_agent/default.yaml +1 -1
  190. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/default.yaml +8 -8
  191. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/default.yaml +7 -7
  192. aiagents4pharma/talk2scholars/configs/tools/__init__.py +8 -6
  193. aiagents4pharma/talk2scholars/docker-compose/cpu/.env.example +21 -0
  194. aiagents4pharma/talk2scholars/docker-compose/cpu/docker-compose.yml +90 -0
  195. aiagents4pharma/talk2scholars/docker-compose/gpu/.env.example +21 -0
  196. aiagents4pharma/talk2scholars/docker-compose/gpu/docker-compose.yml +105 -0
  197. aiagents4pharma/talk2scholars/install.md +122 -0
  198. aiagents4pharma/talk2scholars/state/state_talk2scholars.py +8 -8
  199. aiagents4pharma/talk2scholars/tests/{test_main_agent.py → test_agents_main_agent.py} +41 -23
  200. aiagents4pharma/talk2scholars/tests/{test_paper_download_agent.py → test_agents_paper_agents_download_agent.py} +10 -16
  201. aiagents4pharma/talk2scholars/tests/{test_pdf_agent.py → test_agents_pdf_agent.py} +6 -10
  202. aiagents4pharma/talk2scholars/tests/{test_s2_agent.py → test_agents_s2_agent.py} +8 -16
  203. aiagents4pharma/talk2scholars/tests/{test_zotero_agent.py → test_agents_zotero_agent.py} +5 -7
  204. aiagents4pharma/talk2scholars/tests/{test_s2_display_dataframe.py → test_s2_tools_display_dataframe.py} +6 -7
  205. aiagents4pharma/talk2scholars/tests/{test_s2_query_dataframe.py → test_s2_tools_query_dataframe.py} +5 -15
  206. aiagents4pharma/talk2scholars/tests/{test_paper_downloader.py → test_tools_paper_downloader.py} +25 -63
  207. aiagents4pharma/talk2scholars/tests/{test_question_and_answer_tool.py → test_tools_question_and_answer_tool.py} +2 -6
  208. aiagents4pharma/talk2scholars/tests/{test_s2_multi.py → test_tools_s2_multi.py} +5 -5
  209. aiagents4pharma/talk2scholars/tests/{test_s2_retrieve.py → test_tools_s2_retrieve.py} +2 -1
  210. aiagents4pharma/talk2scholars/tests/{test_s2_search.py → test_tools_s2_search.py} +5 -5
  211. aiagents4pharma/talk2scholars/tests/{test_s2_single.py → test_tools_s2_single.py} +5 -5
  212. aiagents4pharma/talk2scholars/tests/{test_arxiv_downloader.py → test_utils_arxiv_downloader.py} +16 -25
  213. aiagents4pharma/talk2scholars/tests/{test_base_paper_downloader.py → test_utils_base_paper_downloader.py} +25 -47
  214. aiagents4pharma/talk2scholars/tests/{test_biorxiv_downloader.py → test_utils_biorxiv_downloader.py} +14 -42
  215. aiagents4pharma/talk2scholars/tests/{test_medrxiv_downloader.py → test_utils_medrxiv_downloader.py} +15 -49
  216. aiagents4pharma/talk2scholars/tests/{test_nvidia_nim_reranker.py → test_utils_nvidia_nim_reranker.py} +6 -16
  217. aiagents4pharma/talk2scholars/tests/{test_pdf_answer_formatter.py → test_utils_pdf_answer_formatter.py} +1 -0
  218. aiagents4pharma/talk2scholars/tests/{test_pdf_batch_processor.py → test_utils_pdf_batch_processor.py} +6 -15
  219. aiagents4pharma/talk2scholars/tests/{test_pdf_collection_manager.py → test_utils_pdf_collection_manager.py} +34 -11
  220. aiagents4pharma/talk2scholars/tests/{test_pdf_document_processor.py → test_utils_pdf_document_processor.py} +2 -3
  221. aiagents4pharma/talk2scholars/tests/{test_pdf_generate_answer.py → test_utils_pdf_generate_answer.py} +3 -6
  222. aiagents4pharma/talk2scholars/tests/{test_pdf_gpu_detection.py → test_utils_pdf_gpu_detection.py} +5 -16
  223. aiagents4pharma/talk2scholars/tests/{test_pdf_rag_pipeline.py → test_utils_pdf_rag_pipeline.py} +7 -17
  224. aiagents4pharma/talk2scholars/tests/{test_pdf_retrieve_chunks.py → test_utils_pdf_retrieve_chunks.py} +4 -11
  225. aiagents4pharma/talk2scholars/tests/{test_pdf_singleton_manager.py → test_utils_pdf_singleton_manager.py} +26 -23
  226. aiagents4pharma/talk2scholars/tests/{test_pdf_vector_normalization.py → test_utils_pdf_vector_normalization.py} +1 -1
  227. aiagents4pharma/talk2scholars/tests/{test_pdf_vector_store.py → test_utils_pdf_vector_store.py} +27 -55
  228. aiagents4pharma/talk2scholars/tests/{test_pubmed_downloader.py → test_utils_pubmed_downloader.py} +31 -91
  229. aiagents4pharma/talk2scholars/tests/{test_read_helper_utils.py → test_utils_read_helper_utils.py} +2 -6
  230. aiagents4pharma/talk2scholars/tests/{test_s2_utils_ext_ids.py → test_utils_s2_utils_ext_ids.py} +5 -15
  231. aiagents4pharma/talk2scholars/tests/{test_zotero_human_in_the_loop.py → test_utils_zotero_human_in_the_loop.py} +6 -13
  232. aiagents4pharma/talk2scholars/tests/{test_zotero_path.py → test_utils_zotero_path.py} +53 -45
  233. aiagents4pharma/talk2scholars/tests/{test_zotero_read.py → test_utils_zotero_read.py} +30 -91
  234. aiagents4pharma/talk2scholars/tests/{test_zotero_write.py → test_utils_zotero_write.py} +6 -16
  235. aiagents4pharma/talk2scholars/tools/__init__.py +1 -4
  236. aiagents4pharma/talk2scholars/tools/paper_download/paper_downloader.py +20 -35
  237. aiagents4pharma/talk2scholars/tools/paper_download/utils/__init__.py +7 -5
  238. aiagents4pharma/talk2scholars/tools/paper_download/utils/arxiv_downloader.py +9 -11
  239. aiagents4pharma/talk2scholars/tools/paper_download/utils/base_paper_downloader.py +14 -21
  240. aiagents4pharma/talk2scholars/tools/paper_download/utils/biorxiv_downloader.py +14 -22
  241. aiagents4pharma/talk2scholars/tools/paper_download/utils/medrxiv_downloader.py +11 -13
  242. aiagents4pharma/talk2scholars/tools/paper_download/utils/pubmed_downloader.py +14 -28
  243. aiagents4pharma/talk2scholars/tools/pdf/question_and_answer.py +4 -8
  244. aiagents4pharma/talk2scholars/tools/pdf/utils/__init__.py +16 -14
  245. aiagents4pharma/talk2scholars/tools/pdf/utils/answer_formatter.py +4 -4
  246. aiagents4pharma/talk2scholars/tools/pdf/utils/batch_processor.py +15 -17
  247. aiagents4pharma/talk2scholars/tools/pdf/utils/collection_manager.py +2 -2
  248. aiagents4pharma/talk2scholars/tools/pdf/utils/document_processor.py +5 -5
  249. aiagents4pharma/talk2scholars/tools/pdf/utils/generate_answer.py +4 -4
  250. aiagents4pharma/talk2scholars/tools/pdf/utils/get_vectorstore.py +2 -6
  251. aiagents4pharma/talk2scholars/tools/pdf/utils/gpu_detection.py +5 -9
  252. aiagents4pharma/talk2scholars/tools/pdf/utils/nvidia_nim_reranker.py +4 -4
  253. aiagents4pharma/talk2scholars/tools/pdf/utils/paper_loader.py +2 -2
  254. aiagents4pharma/talk2scholars/tools/pdf/utils/rag_pipeline.py +6 -15
  255. aiagents4pharma/talk2scholars/tools/pdf/utils/retrieve_chunks.py +7 -15
  256. aiagents4pharma/talk2scholars/tools/pdf/utils/singleton_manager.py +2 -2
  257. aiagents4pharma/talk2scholars/tools/pdf/utils/tool_helper.py +3 -4
  258. aiagents4pharma/talk2scholars/tools/pdf/utils/vector_normalization.py +8 -17
  259. aiagents4pharma/talk2scholars/tools/pdf/utils/vector_store.py +17 -33
  260. aiagents4pharma/talk2scholars/tools/s2/__init__.py +8 -6
  261. aiagents4pharma/talk2scholars/tools/s2/display_dataframe.py +3 -7
  262. aiagents4pharma/talk2scholars/tools/s2/multi_paper_rec.py +7 -6
  263. aiagents4pharma/talk2scholars/tools/s2/query_dataframe.py +5 -12
  264. aiagents4pharma/talk2scholars/tools/s2/retrieve_semantic_scholar_paper_id.py +2 -4
  265. aiagents4pharma/talk2scholars/tools/s2/search.py +6 -6
  266. aiagents4pharma/talk2scholars/tools/s2/single_paper_rec.py +5 -3
  267. aiagents4pharma/talk2scholars/tools/s2/utils/__init__.py +1 -3
  268. aiagents4pharma/talk2scholars/tools/s2/utils/multi_helper.py +12 -18
  269. aiagents4pharma/talk2scholars/tools/s2/utils/search_helper.py +11 -18
  270. aiagents4pharma/talk2scholars/tools/s2/utils/single_helper.py +11 -16
  271. aiagents4pharma/talk2scholars/tools/zotero/__init__.py +1 -4
  272. aiagents4pharma/talk2scholars/tools/zotero/utils/__init__.py +1 -4
  273. aiagents4pharma/talk2scholars/tools/zotero/utils/read_helper.py +21 -39
  274. aiagents4pharma/talk2scholars/tools/zotero/utils/review_helper.py +2 -6
  275. aiagents4pharma/talk2scholars/tools/zotero/utils/write_helper.py +8 -11
  276. aiagents4pharma/talk2scholars/tools/zotero/utils/zotero_path.py +4 -12
  277. aiagents4pharma/talk2scholars/tools/zotero/utils/zotero_pdf_downloader.py +13 -27
  278. aiagents4pharma/talk2scholars/tools/zotero/zotero_read.py +4 -7
  279. aiagents4pharma/talk2scholars/tools/zotero/zotero_review.py +8 -10
  280. aiagents4pharma/talk2scholars/tools/zotero/zotero_write.py +3 -2
  281. {aiagents4pharma-1.43.0.dist-info → aiagents4pharma-1.45.0.dist-info}/METADATA +115 -50
  282. aiagents4pharma-1.45.0.dist-info/RECORD +324 -0
  283. {aiagents4pharma-1.43.0.dist-info → aiagents4pharma-1.45.0.dist-info}/WHEEL +1 -2
  284. aiagents4pharma-1.43.0.dist-info/RECORD +0 -293
  285. aiagents4pharma-1.43.0.dist-info/top_level.txt +0 -1
  286. /aiagents4pharma/talk2scholars/tests/{test_state.py → test_states_state.py} +0 -0
  287. /aiagents4pharma/talk2scholars/tests/{test_pdf_paper_loader.py → test_utils_pdf_paper_loader.py} +0 -0
  288. /aiagents4pharma/talk2scholars/tests/{test_tool_helper_utils.py → test_utils_tool_helper_utils.py} +0 -0
  289. /aiagents4pharma/talk2scholars/tests/{test_zotero_pdf_downloader_utils.py → test_utils_zotero_pdf_downloader_utils.py} +0 -0
  290. {aiagents4pharma-1.43.0.dist-info → aiagents4pharma-1.45.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,5 +1,6 @@
1
- '''
1
+ """
2
2
  This file is used to import all the modules in the package.
3
- '''
3
+ """
4
+
4
5
  # import everything from the module
5
6
  from . import scp_agent
@@ -1,6 +1,6 @@
1
- '''
1
+ """
2
2
  This file is used to import all the modules in the package.
3
- '''
3
+ """
4
+
4
5
  # import everything from the module
5
- from . import display_studies
6
- from . import search_studies
6
+ from . import display_studies, search_studies
@@ -1,11 +1,12 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- '''
3
+ """
4
4
  This tool is used to display the table of studies.
5
- '''
5
+ """
6
6
 
7
7
  import logging
8
8
  from typing import Annotated
9
+
9
10
  from langchain_core.tools import tool
10
11
  from langgraph.prebuilt import InjectedState
11
12
 
@@ -13,7 +14,8 @@ from langgraph.prebuilt import InjectedState
13
14
  logging.basicConfig(level=logging.INFO)
14
15
  logger = logging.getLogger(__name__)
15
16
 
16
- @tool('display_studies')
17
+
18
+ @tool("display_studies")
17
19
  def display_studies(state: Annotated[dict, InjectedState]):
18
20
  """
19
21
  Display the table of studies.
@@ -1,26 +1,28 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- '''
3
+ """
4
4
  A tool to fetch studies from the Single Cell Portal.
5
- '''
5
+ """
6
6
 
7
7
  import logging
8
8
  from typing import Annotated
9
+
10
+ import pandas as pd
9
11
  import requests
12
+ from langchain_core.messages import ToolMessage
10
13
  from langchain_core.tools import tool
11
14
  from langchain_core.tools.base import InjectedToolCallId
12
- from langchain_core.messages import ToolMessage
13
15
  from langgraph.types import Command
14
- import pandas as pd
15
16
 
16
17
  # Initialize logger
17
18
  logging.basicConfig(level=logging.INFO)
18
19
  logger = logging.getLogger(__name__)
19
20
 
20
- @tool('search_studies')
21
- def search_studies(search_term: str,
22
- tool_call_id: Annotated[str, InjectedToolCallId],
23
- limit: int = 5):
21
+
22
+ @tool("search_studies")
23
+ def search_studies(
24
+ search_term: str, tool_call_id: Annotated[str, InjectedToolCallId], limit: int = 5
25
+ ):
24
26
  """
25
27
  Fetch studies from single cell portal
26
28
 
@@ -30,16 +32,13 @@ def search_studies(search_term: str,
30
32
 
31
33
  """
32
34
  logger.log(logging.INFO, "Calling the tool search_studies")
33
- scp_endpoint = 'https://singlecell.broadinstitute.org/single_cell/api/v1/search?type=study'
35
+ scp_endpoint = "https://singlecell.broadinstitute.org/single_cell/api/v1/search?type=study"
34
36
  # params = {'terms': search_term, 'facets': 'MONDO_0005011'}
35
- params = {'terms': search_term}
37
+ params = {"terms": search_term}
36
38
  status_code = 0
37
39
  while status_code != 200:
38
40
  # Make a GET request to the single cell portal
39
- search_response = requests.get(scp_endpoint,
40
- params=params,
41
- timeout=10,
42
- verify=False)
41
+ search_response = requests.get(scp_endpoint, params=params, timeout=10, verify=False)
43
42
  status_code = search_response.status_code
44
43
  logger.log(logging.INFO, "Status code %s received from SCP")
45
44
 
@@ -48,20 +47,20 @@ def search_studies(search_term: str,
48
47
 
49
48
  # Extract the data from the response
50
49
  # with the selected columns
51
- df = pd.DataFrame(search_response.json()['studies'])[selected_columns]
50
+ df = pd.DataFrame(search_response.json()["studies"])[selected_columns]
52
51
 
53
52
  # Convert column 'Study Name' into clickable
54
53
  # hyperlinks from the column 'Study URL'
55
- scp_api_url = 'https://singlecell.broadinstitute.org'
56
- df['name'] = df.apply(
57
- lambda x: f"<a href=\"{scp_api_url}/{x['study_url']}\">{x['name']}</a>",
58
- axis=1)
54
+ scp_api_url = "https://singlecell.broadinstitute.org"
55
+ df["name"] = df.apply(
56
+ lambda x: f'<a href="{scp_api_url}/{x["study_url"]}">{x["name"]}</a>', axis=1
57
+ )
59
58
 
60
59
  # Excldue the column 'Study URL' from the dataframe
61
- df = df.drop(columns=['study_url'])
60
+ df = df.drop(columns=["study_url"])
62
61
 
63
62
  # Add a new column a the beginning of the dataframe with row numbers
64
- df.insert(0, 'S/N', range(1, 1 + len(df)))
63
+ df.insert(0, "S/N", range(1, 1 + len(df)))
65
64
 
66
65
  # Update the state key 'search_table' with the dataframe in markdown format
67
66
  return Command(
@@ -72,7 +71,7 @@ def search_studies(search_term: str,
72
71
  "messages": [
73
72
  ToolMessage(
74
73
  f"Successfully fetched {limit} studies on {search_term}.",
75
- tool_call_id=tool_call_id
74
+ tool_call_id=tool_call_id,
76
75
  )
77
76
  ],
78
77
  }
@@ -0,0 +1,13 @@
1
+ _pycache_/
2
+ *.pyc
3
+ *.log
4
+ *.csv
5
+ *.pt
6
+ *.pkl
7
+ models/
8
+ data/
9
+ env/
10
+ .venv/
11
+ .git/
12
+ .env
13
+ .cufile.log
@@ -0,0 +1,103 @@
1
+ # syntax=docker/dockerfile:1
2
+
3
+ # Dockerfile for the talk2knowledgegraphs 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
+ WORKDIR /app
37
+
38
+ # Install UV package manager and dependencies
39
+ COPY pyproject.toml uv.lock* ./
40
+ RUN curl -LsSf https://astral.sh/uv/install.sh | sh && \
41
+ export PATH="/root/.local/bin:$PATH" && \
42
+ export UV_PROJECT_ENVIRONMENT="/opt/venv" && \
43
+ uv sync --frozen --extra dev --no-install-project --python python${PYTHON_VERSION} && \
44
+ . /opt/venv/bin/activate && \
45
+ uv pip install \
46
+ --extra-index-url=https://pypi.nvidia.com \
47
+ --index-strategy unsafe-best-match \
48
+ cudf-cu12 dask-cudf-cu12 && \
49
+ uv cache clean
50
+
51
+ FROM ${BASE_IMAGE} AS runtime
52
+ ARG PYTHON_VERSION=3.12
53
+ LABEL maintainer="talk2knowledgegraphs"
54
+ LABEL version="1.0.0"
55
+ LABEL description="AI Agents for Pharma - Knowledge Graphs Application"
56
+
57
+ # Install runtime dependencies
58
+ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
59
+ ca-certificates \
60
+ curl \
61
+ libmagic1 \
62
+ libopenblas0 \
63
+ libomp5 \
64
+ python${PYTHON_VERSION} \
65
+ && rm -rf /var/lib/apt/lists/* \
66
+ && update-alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 1 \
67
+ && update-alternatives --install /usr/bin/python python /usr/bin/python${PYTHON_VERSION} 1
68
+
69
+ # Copy UV virtual environment from build stage
70
+ COPY --from=uv-install /opt/venv /opt/venv
71
+
72
+ # Set environment variables
73
+ ENV PATH="/opt/venv/bin:$PATH"
74
+ ENV PYTHONPATH="/app"
75
+ ENV PYTHONUNBUFFERED=1
76
+ ENV PYTHONDONTWRITEBYTECODE=1
77
+ ENV STREAMLIT_SERVER_HEADLESS=true
78
+ ENV STREAMLIT_SERVER_ENABLE_CORS=false
79
+
80
+ # Set working directory and create necessary directories
81
+ WORKDIR /app
82
+
83
+ # Copy application code
84
+ COPY aiagents4pharma/talk2knowledgegraphs /app/aiagents4pharma/talk2knowledgegraphs
85
+ COPY docs /app/docs
86
+ COPY app /app/app
87
+
88
+ # Copy and set up the entrypoint script
89
+ COPY aiagents4pharma/talk2knowledgegraphs/entrypoint.sh /usr/local/bin/entrypoint.sh
90
+ RUN chmod +x /usr/local/bin/entrypoint.sh
91
+
92
+ # Health check for production monitoring
93
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
94
+ CMD curl -f http://localhost:8501/health || exit 1
95
+
96
+ # Expose the default Streamlit port
97
+ EXPOSE 8501
98
+
99
+ # Set the entrypoint
100
+ ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
101
+
102
+ # Default command (can be overridden)
103
+ CMD ["streamlit", "run", "/app/app/frontend/streamlit_app_talk2knowledgegraphs.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.
@@ -1,8 +1,5 @@
1
- '''
1
+ """
2
2
  This file is used to import the datasets and utils.
3
- '''
4
- from . import agents
5
- from . import datasets
6
- from . import states
7
- from . import tools
8
- from . import utils
3
+ """
4
+
5
+ from . import agents, datasets, states, tools, utils
@@ -1,4 +1,5 @@
1
- '''
1
+ """
2
2
  This file is used to import all the models in the package.
3
- '''
3
+ """
4
+
4
5
  from . import t2kg_agent
@@ -1,34 +1,42 @@
1
- '''
1
+ """
2
2
  This is the agent file for the Talk2KnowledgeGraphs agent.
3
- '''
3
+ """
4
4
 
5
5
  import logging
6
6
  from typing import Annotated
7
+
7
8
  import hydra
8
9
  from langchain_core.language_models.chat_models import BaseChatModel
9
10
  from langgraph.checkpoint.memory import MemorySaver
10
11
  from langgraph.graph import START, StateGraph
11
- from langgraph.prebuilt import create_react_agent, ToolNode, InjectedState
12
+ from langgraph.prebuilt import InjectedState, ToolNode, create_react_agent
13
+
14
+ from ..states.state_talk2knowledgegraphs import Talk2KnowledgeGraphs
15
+ from ..tools.graphrag_reasoning import GraphRAGReasoningTool
16
+
12
17
  # from ..tools.multimodal_subgraph_extraction import MultimodalSubgraphExtractionTool
13
- from ..tools.milvus_multimodal_subgraph_extraction import MultimodalSubgraphExtractionTool
18
+ from ..tools.milvus_multimodal_subgraph_extraction import (
19
+ MultimodalSubgraphExtractionTool,
20
+ )
21
+
14
22
  # from ..tools.cu2_multimodal_subgraph_extraction import MultimodalSubgraphExtractionTool
15
23
  # from ..tools.gsfs_multimodal_subgraph_extraction import MultimodalSubgraphExtractionTool
16
24
  from ..tools.subgraph_summarization import SubgraphSummarizationTool
17
- from ..tools.graphrag_reasoning import GraphRAGReasoningTool
18
- from ..states.state_talk2knowledgegraphs import Talk2KnowledgeGraphs
19
25
 
20
26
  # Initialize logger
21
27
  logging.basicConfig(level=logging.INFO)
22
28
  logger = logging.getLogger(__name__)
23
29
 
30
+
24
31
  def get_app(uniq_id, llm_model: BaseChatModel):
25
- '''
32
+ """
26
33
  This function returns the langraph app.
27
- '''
34
+ """
35
+
28
36
  def agent_t2kg_node(state: Annotated[dict, InjectedState]):
29
- '''
37
+ """
30
38
  This function calls the model.
31
- '''
39
+ """
32
40
  logger.log(logging.INFO, "Calling t2kg_agent node with thread_id %s", uniq_id)
33
41
  response = model.invoke(state, {"configurable": {"thread_id": uniq_id}})
34
42
 
@@ -37,29 +45,30 @@ def get_app(uniq_id, llm_model: BaseChatModel):
37
45
  # Load hydra configuration
38
46
  logger.log(logging.INFO, "Load Hydra configuration for Talk2KnowledgeGraphs agent.")
39
47
  with hydra.initialize(version_base=None, config_path="../configs"):
40
- cfg = hydra.compose(config_name='config',
41
- overrides=['agents/t2kg_agent=default'])
48
+ cfg = hydra.compose(config_name="config", overrides=["agents/t2kg_agent=default"])
42
49
  cfg = cfg.agents.t2kg_agent
43
50
 
44
51
  # Define the tools
45
52
  subgraph_extraction = MultimodalSubgraphExtractionTool()
46
53
  subgraph_summarization = SubgraphSummarizationTool()
47
54
  graphrag_reasoning = GraphRAGReasoningTool()
48
- tools = ToolNode([
49
- subgraph_extraction,
50
- subgraph_summarization,
51
- graphrag_reasoning,
52
- ])
55
+ tools = ToolNode(
56
+ [
57
+ subgraph_extraction,
58
+ subgraph_summarization,
59
+ graphrag_reasoning,
60
+ ]
61
+ )
53
62
 
54
63
  # Create the agent
55
64
  model = create_react_agent(
56
- llm_model,
57
- tools=tools,
58
- state_schema=Talk2KnowledgeGraphs,
59
- prompt=cfg.state_modifier,
60
- version='v2',
61
- checkpointer=MemorySaver()
62
- )
65
+ llm_model,
66
+ tools=tools,
67
+ state_schema=Talk2KnowledgeGraphs,
68
+ prompt=cfg.state_modifier,
69
+ version="v2",
70
+ checkpointer=MemorySaver(),
71
+ )
63
72
 
64
73
  # Define a new graph
65
74
  workflow = StateGraph(Talk2KnowledgeGraphs)
@@ -79,11 +88,12 @@ def get_app(uniq_id, llm_model: BaseChatModel):
79
88
  # meaning you can use it as you would any other runnable.
80
89
  # Note that we're (optionally) passing the memory
81
90
  # when compiling the graph
82
- app = workflow.compile(checkpointer=checkpointer,
83
- name="T2KG_Agent")
84
- logger.log(logging.INFO,
85
- "Compiled the graph with thread_id %s and llm_model %s",
86
- uniq_id,
87
- llm_model)
91
+ app = workflow.compile(checkpointer=checkpointer, name="T2KG_Agent")
92
+ logger.log(
93
+ logging.INFO,
94
+ "Compiled the graph with thread_id %s and llm_model %s",
95
+ uniq_id,
96
+ llm_model,
97
+ )
88
98
 
89
99
  return app
@@ -1,8 +1,5 @@
1
- '''
1
+ """
2
2
  Import all the modules in the package
3
- '''
3
+ """
4
4
 
5
- from . import agents
6
- from . import tools
7
- from . import app
8
- from . import utils
5
+ from . import agents, app, tools, utils
@@ -1,3 +1,3 @@
1
- '''
1
+ """
2
2
  Import all the modules in the package
3
- '''
3
+ """
@@ -1,7 +1,7 @@
1
1
  _target_: agents.t2kg_agent.get_app
2
2
  state_modifier: >
3
3
  You are talk2knowledgegraphs agent, a helpful assistant for reasoning over knowledge graphs.
4
- User can ask questions related to the knowledge graphs, and you will provide the answers using
4
+ User can ask questions related to the knowledge graphs, and you will provide the answers using
5
5
  the provided tools as follows (if necessary):
6
6
  [`subgraph_extraction`, `subgraph_summarization`, `graphrag_reasoning`].
7
7
 
@@ -17,19 +17,19 @@ state_modifier: >
17
17
  - `graphrag_reasoning`: Reason over the extracted textualized subgraph to answer the user's
18
18
  prompt by also considering the context from the extracted subgraph and the retrieved
19
19
  documents. User may also have a set of uploaded files that can be used to provide additional
20
- information for reasoning. The history of previous conversations should be considered as well,
20
+ information for reasoning. The history of previous conversations should be considered as well,
21
21
  and you as an agent should provide which conversations can be included as chat history.
22
22
 
23
- As an agent, you should approach each request by first understanding the user's query and then
24
- following the appropriate steps to provide the best answer possible.
23
+ As an agent, you should approach each request by first understanding the user's query and then
24
+ following the appropriate steps to provide the best answer possible.
25
25
 
26
26
  **Execution Steps**:
27
27
  - Understand thoroughly the user's query and think over the best approach to answer it.
28
- - You may not need to call any tool for each user's query. Use the related tool(s) as needed.
28
+ - You may not need to call any tool for each user's query. Use the related tool(s) as needed.
29
29
  Think deeply whether it is necessary to call any tool to respond to the user's request.
30
30
  - Call `subgraph_extraction` if there is any indication that the user needs to get the
31
31
  information from the knowledge graph, which is not directly available as context in the prompt or
32
- in the previous extracted subgraph.
32
+ in the previous extracted subgraph.
33
33
  If the user asks for subgraph extraction, suggest a value for the `extraction_name` argument.
34
34
  You should always follow it with `subgraph_summarization` as the next tool to be invoked.
35
35
  - Call `subgraph_summarization` tool to summarize the extracted subgraph and provide
@@ -43,7 +43,7 @@ state_modifier: >
43
43
  the answer can be retrieved from the previously extracted subgraph.
44
44
  - Call `graphrag_reasoning` tool to reason over the extracted subgraph and documents.
45
45
  Always perform reasoning over the extracted subgraph and documents to provide
46
- the best possible answer to the user's query. Before calling this tool,
46
+ the best possible answer to the user's query. Before calling this tool,
47
47
  make sure you have access to the summarized subgraph obtained from `subgraph_summarization` tool.
48
48
  - By default, if the user asks for a specific question about the extracted graph, you should
49
49
  call `subgraph_summarization` followed by `graphrag_reasoning` if the most recent subgraphs
@@ -59,4 +59,4 @@ state_modifier: >
59
59
  is not enough to answer the user's question.
60
60
  - `subgraph_summarization` -> `graphrag_reasoning` when the user asks for the previously extracted
61
61
  subgraph. Use the summarized subgraph as the subgraph context in the `graphrag_reasoning` tool.
62
- - Do not call `graphrag_reasoning` tool without calling `subgraph_summarization` tool first.
62
+ - Do not call `graphrag_reasoning` tool without calling `subgraph_summarization` tool first.
@@ -1,4 +1,5 @@
1
- '''
1
+ """
2
2
  Import all the modules in the package
3
- '''
3
+ """
4
+
4
5
  from . import frontend
@@ -1,3 +1,3 @@
1
- '''
1
+ """
2
2
  Import all the modules in the package
3
- '''
3
+ """
@@ -60,4 +60,4 @@ milvus_db:
60
60
  collection_nodes_drug: "t2kg_primekg_nodes_drug"
61
61
  collection_nodes_disease: "t2kg_primekg_nodes_disease"
62
62
  query_batch_size: 1000000
63
- cache_edge_index_path: "${oc.env:CACHE_EDGE_INDEX_PATH,aiagents4pharma/talk2knowledgegraphs/tests/files/t2kg_primekg_edge_index.pkl}"
63
+ cache_edge_index_path: "${oc.env:CACHE_EDGE_INDEX_PATH,aiagents4pharma/talk2knowledgegraphs/tests/files/t2kg_primekg_edge_index.pkl}"
@@ -9,4 +9,4 @@ defaults:
9
9
  - utils/enrichments/uniprot_proteins: default
10
10
  - utils/enrichments/ols_terms: default
11
11
  - utils/enrichments/reactome_pathways: default
12
- - app/frontend: default
12
+ - app/frontend: default
@@ -1,6 +1,5 @@
1
- '''
1
+ """
2
2
  Import all the modules in the package
3
- '''
4
- from . import subgraph_extraction
5
- from . import subgraph_summarization
6
- from . import graphrag_reasoning
3
+ """
4
+
5
+ from . import graphrag_reasoning, subgraph_extraction, subgraph_summarization
@@ -1,3 +1,3 @@
1
- '''
1
+ """
2
2
  Import all the modules in the package
3
- '''
3
+ """
@@ -21,4 +21,4 @@ prompt_graphrag_w_docs: >
21
21
 
22
22
  Subgraph Summary: {subgraph_summary}
23
23
  Context: {context}
24
- Question: {input}
24
+ Question: {input}
@@ -3,6 +3,8 @@ ollama_embeddings:
3
3
  - "nomic-embed-text"
4
4
  temperature: 0.1
5
5
  streaming: False
6
+
7
+ # PCST Algorithm Parameters
6
8
  topk: 15
7
9
  topk_e: 15
8
10
  cost_e: 0.5
@@ -11,7 +13,20 @@ root: -1
11
13
  num_clusters: 1
12
14
  pruning: "gw"
13
15
  verbosity_level: 0
14
- search_metric_type: "IP" # Inner Product
16
+
17
+ # Hardware-Specific Vector Processing
18
+ vector_processing:
19
+ # Enable dynamic metric type selection based on hardware
20
+ dynamic_metrics: true
21
+
22
+ # Milvus Database Configuration
23
+ milvus_db:
24
+ # Database and collection names
25
+ database_name: "t2kg_primekg"
26
+
27
+ # Cache settings for edge index
28
+ cache_edge_index_path: "${oc.env:CACHE_EDGE_INDEX_PATH,aiagents4pharma/talk2knowledgegraphs/tests/files/t2kg_primekg_edge_index.pkl}"
29
+
15
30
  node_id_column: "node_id"
16
31
  node_attr_column: "node_attr"
17
32
  edge_src_column: "edge_src"
@@ -34,4 +49,4 @@ biobridge:
34
49
  - "cellular_component"
35
50
  - "biological_process"
36
51
  - "drug"
37
- - "disease"
52
+ - "disease"
@@ -1,3 +1,3 @@
1
- '''
1
+ """
2
2
  Import all the modules in the package
3
- '''
3
+ """
@@ -40,4 +40,4 @@ splitter_chunk_overlap: 16
40
40
  retriever_search_type: "mmr"
41
41
  retriever_k: 3
42
42
  retriever_fetch_k: 10
43
- retriever_lambda_mult: 0.3
43
+ retriever_lambda_mult: 0.3
@@ -1,3 +1,3 @@
1
- '''
1
+ """
2
2
  Import all the modules in the package
3
- '''
3
+ """
@@ -6,4 +6,4 @@ prompt_subgraph_summarization: >
6
6
  highlighting the most important nodes and edges in the subgraph to respond to the user's question.
7
7
 
8
8
  Textualized Subgraph: {textualized_subgraph}
9
- Question: {input}
9
+ Question: {input}
@@ -1,3 +1,3 @@
1
1
  _target_: talk2knowledgegraphs.utils.ols_terms
2
2
  base_url: https://www.ebi.ac.uk/ols4/api/terms/
3
- timeout: 10
3
+ timeout: 10
@@ -1,3 +1,3 @@
1
1
  _target_: talk2knowledgegraphs.utils.reactome_pathways
2
2
  base_url: https://reactome.org/ContentService/data/query/
3
- timeout: 10
3
+ timeout: 10
@@ -3,4 +3,4 @@ uniprot_url: https://www.ebi.ac.uk/proteins/api/proteins
3
3
  reviewed: true
4
4
  isoform: 0
5
5
  organism: Homo sapiens
6
- timeout: 10
6
+ timeout: 10
@@ -2,4 +2,4 @@ _target_: talk2knowledgegraphs.utils.pubchem_utils
2
2
  pubchem_cid_base_url: https://pubchem.ncbi.nlm.nih.gov/rest/pug/substance/sourceid/
3
3
  pubchem_cid_description_url: https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/cid/
4
4
  pubchem_casrn2cid_url: https://pubchem.ncbi.nlm.nih.gov/rest/pug/substance/xref/RN/
5
- pubchem_cid2smiles_url: https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/cid/
5
+ pubchem_cid2smiles_url: https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/cid/
@@ -1,7 +1,5 @@
1
- '''
1
+ """
2
2
  This file is used to import all the models in the package.
3
- '''
4
- from . import dataset
5
- from . import primekg
6
- from . import starkqa_primekg
7
- from . import biobridge_primekg
3
+ """
4
+
5
+ from . import biobridge_primekg, dataset, primekg, starkqa_primekg