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.
Files changed (336) hide show
  1. aiagents4pharma/__init__.py +11 -0
  2. aiagents4pharma/talk2aiagents4pharma/.dockerignore +13 -0
  3. aiagents4pharma/talk2aiagents4pharma/Dockerfile +133 -0
  4. aiagents4pharma/talk2aiagents4pharma/README.md +1 -0
  5. aiagents4pharma/talk2aiagents4pharma/__init__.py +5 -0
  6. aiagents4pharma/talk2aiagents4pharma/agents/__init__.py +6 -0
  7. aiagents4pharma/talk2aiagents4pharma/agents/main_agent.py +70 -0
  8. aiagents4pharma/talk2aiagents4pharma/configs/__init__.py +5 -0
  9. aiagents4pharma/talk2aiagents4pharma/configs/agents/__init__.py +5 -0
  10. aiagents4pharma/talk2aiagents4pharma/configs/agents/main_agent/default.yaml +29 -0
  11. aiagents4pharma/talk2aiagents4pharma/configs/app/__init__.py +0 -0
  12. aiagents4pharma/talk2aiagents4pharma/configs/app/frontend/__init__.py +0 -0
  13. aiagents4pharma/talk2aiagents4pharma/configs/app/frontend/default.yaml +102 -0
  14. aiagents4pharma/talk2aiagents4pharma/configs/config.yaml +4 -0
  15. aiagents4pharma/talk2aiagents4pharma/docker-compose/cpu/.env.example +23 -0
  16. aiagents4pharma/talk2aiagents4pharma/docker-compose/cpu/docker-compose.yml +93 -0
  17. aiagents4pharma/talk2aiagents4pharma/docker-compose/gpu/.env.example +23 -0
  18. aiagents4pharma/talk2aiagents4pharma/docker-compose/gpu/docker-compose.yml +108 -0
  19. aiagents4pharma/talk2aiagents4pharma/install.md +154 -0
  20. aiagents4pharma/talk2aiagents4pharma/states/__init__.py +5 -0
  21. aiagents4pharma/talk2aiagents4pharma/states/state_talk2aiagents4pharma.py +18 -0
  22. aiagents4pharma/talk2aiagents4pharma/tests/__init__.py +3 -0
  23. aiagents4pharma/talk2aiagents4pharma/tests/test_main_agent.py +312 -0
  24. aiagents4pharma/talk2biomodels/.dockerignore +13 -0
  25. aiagents4pharma/talk2biomodels/Dockerfile +104 -0
  26. aiagents4pharma/talk2biomodels/README.md +1 -0
  27. aiagents4pharma/talk2biomodels/__init__.py +5 -0
  28. aiagents4pharma/talk2biomodels/agents/__init__.py +6 -0
  29. aiagents4pharma/talk2biomodels/agents/t2b_agent.py +104 -0
  30. aiagents4pharma/talk2biomodels/api/__init__.py +5 -0
  31. aiagents4pharma/talk2biomodels/api/ols.py +75 -0
  32. aiagents4pharma/talk2biomodels/api/uniprot.py +36 -0
  33. aiagents4pharma/talk2biomodels/configs/__init__.py +5 -0
  34. aiagents4pharma/talk2biomodels/configs/agents/__init__.py +5 -0
  35. aiagents4pharma/talk2biomodels/configs/agents/t2b_agent/__init__.py +3 -0
  36. aiagents4pharma/talk2biomodels/configs/agents/t2b_agent/default.yaml +14 -0
  37. aiagents4pharma/talk2biomodels/configs/app/__init__.py +0 -0
  38. aiagents4pharma/talk2biomodels/configs/app/frontend/__init__.py +0 -0
  39. aiagents4pharma/talk2biomodels/configs/app/frontend/default.yaml +72 -0
  40. aiagents4pharma/talk2biomodels/configs/config.yaml +7 -0
  41. aiagents4pharma/talk2biomodels/configs/tools/__init__.py +5 -0
  42. aiagents4pharma/talk2biomodels/configs/tools/ask_question/__init__.py +3 -0
  43. aiagents4pharma/talk2biomodels/configs/tools/ask_question/default.yaml +30 -0
  44. aiagents4pharma/talk2biomodels/configs/tools/custom_plotter/__init__.py +3 -0
  45. aiagents4pharma/talk2biomodels/configs/tools/custom_plotter/default.yaml +8 -0
  46. aiagents4pharma/talk2biomodels/configs/tools/get_annotation/__init__.py +3 -0
  47. aiagents4pharma/talk2biomodels/configs/tools/get_annotation/default.yaml +8 -0
  48. aiagents4pharma/talk2biomodels/install.md +63 -0
  49. aiagents4pharma/talk2biomodels/models/__init__.py +5 -0
  50. aiagents4pharma/talk2biomodels/models/basico_model.py +125 -0
  51. aiagents4pharma/talk2biomodels/models/sys_bio_model.py +60 -0
  52. aiagents4pharma/talk2biomodels/states/__init__.py +6 -0
  53. aiagents4pharma/talk2biomodels/states/state_talk2biomodels.py +49 -0
  54. aiagents4pharma/talk2biomodels/tests/BIOMD0000000449_url.xml +1585 -0
  55. aiagents4pharma/talk2biomodels/tests/__init__.py +3 -0
  56. aiagents4pharma/talk2biomodels/tests/article_on_model_537.pdf +0 -0
  57. aiagents4pharma/talk2biomodels/tests/test_api.py +31 -0
  58. aiagents4pharma/talk2biomodels/tests/test_ask_question.py +42 -0
  59. aiagents4pharma/talk2biomodels/tests/test_basico_model.py +67 -0
  60. aiagents4pharma/talk2biomodels/tests/test_get_annotation.py +190 -0
  61. aiagents4pharma/talk2biomodels/tests/test_getmodelinfo.py +92 -0
  62. aiagents4pharma/talk2biomodels/tests/test_integration.py +116 -0
  63. aiagents4pharma/talk2biomodels/tests/test_load_biomodel.py +35 -0
  64. aiagents4pharma/talk2biomodels/tests/test_param_scan.py +71 -0
  65. aiagents4pharma/talk2biomodels/tests/test_query_article.py +184 -0
  66. aiagents4pharma/talk2biomodels/tests/test_save_model.py +47 -0
  67. aiagents4pharma/talk2biomodels/tests/test_search_models.py +35 -0
  68. aiagents4pharma/talk2biomodels/tests/test_simulate_model.py +44 -0
  69. aiagents4pharma/talk2biomodels/tests/test_steady_state.py +86 -0
  70. aiagents4pharma/talk2biomodels/tests/test_sys_bio_model.py +67 -0
  71. aiagents4pharma/talk2biomodels/tools/__init__.py +17 -0
  72. aiagents4pharma/talk2biomodels/tools/ask_question.py +125 -0
  73. aiagents4pharma/talk2biomodels/tools/custom_plotter.py +165 -0
  74. aiagents4pharma/talk2biomodels/tools/get_annotation.py +342 -0
  75. aiagents4pharma/talk2biomodels/tools/get_modelinfo.py +159 -0
  76. aiagents4pharma/talk2biomodels/tools/load_arguments.py +134 -0
  77. aiagents4pharma/talk2biomodels/tools/load_biomodel.py +44 -0
  78. aiagents4pharma/talk2biomodels/tools/parameter_scan.py +310 -0
  79. aiagents4pharma/talk2biomodels/tools/query_article.py +64 -0
  80. aiagents4pharma/talk2biomodels/tools/save_model.py +98 -0
  81. aiagents4pharma/talk2biomodels/tools/search_models.py +96 -0
  82. aiagents4pharma/talk2biomodels/tools/simulate_model.py +137 -0
  83. aiagents4pharma/talk2biomodels/tools/steady_state.py +187 -0
  84. aiagents4pharma/talk2biomodels/tools/utils.py +23 -0
  85. aiagents4pharma/talk2cells/README.md +1 -0
  86. aiagents4pharma/talk2cells/__init__.py +5 -0
  87. aiagents4pharma/talk2cells/agents/__init__.py +6 -0
  88. aiagents4pharma/talk2cells/agents/scp_agent.py +87 -0
  89. aiagents4pharma/talk2cells/states/__init__.py +6 -0
  90. aiagents4pharma/talk2cells/states/state_talk2cells.py +15 -0
  91. aiagents4pharma/talk2cells/tests/scp_agent/test_scp_agent.py +22 -0
  92. aiagents4pharma/talk2cells/tools/__init__.py +6 -0
  93. aiagents4pharma/talk2cells/tools/scp_agent/__init__.py +6 -0
  94. aiagents4pharma/talk2cells/tools/scp_agent/display_studies.py +27 -0
  95. aiagents4pharma/talk2cells/tools/scp_agent/search_studies.py +78 -0
  96. aiagents4pharma/talk2knowledgegraphs/.dockerignore +13 -0
  97. aiagents4pharma/talk2knowledgegraphs/Dockerfile +131 -0
  98. aiagents4pharma/talk2knowledgegraphs/README.md +1 -0
  99. aiagents4pharma/talk2knowledgegraphs/__init__.py +5 -0
  100. aiagents4pharma/talk2knowledgegraphs/agents/__init__.py +5 -0
  101. aiagents4pharma/talk2knowledgegraphs/agents/t2kg_agent.py +99 -0
  102. aiagents4pharma/talk2knowledgegraphs/configs/__init__.py +5 -0
  103. aiagents4pharma/talk2knowledgegraphs/configs/agents/t2kg_agent/__init__.py +3 -0
  104. aiagents4pharma/talk2knowledgegraphs/configs/agents/t2kg_agent/default.yaml +62 -0
  105. aiagents4pharma/talk2knowledgegraphs/configs/app/__init__.py +5 -0
  106. aiagents4pharma/talk2knowledgegraphs/configs/app/frontend/__init__.py +3 -0
  107. aiagents4pharma/talk2knowledgegraphs/configs/app/frontend/default.yaml +79 -0
  108. aiagents4pharma/talk2knowledgegraphs/configs/config.yaml +13 -0
  109. aiagents4pharma/talk2knowledgegraphs/configs/tools/__init__.py +5 -0
  110. aiagents4pharma/talk2knowledgegraphs/configs/tools/graphrag_reasoning/__init__.py +3 -0
  111. aiagents4pharma/talk2knowledgegraphs/configs/tools/graphrag_reasoning/default.yaml +24 -0
  112. aiagents4pharma/talk2knowledgegraphs/configs/tools/multimodal_subgraph_extraction/__init__.py +0 -0
  113. aiagents4pharma/talk2knowledgegraphs/configs/tools/multimodal_subgraph_extraction/default.yaml +33 -0
  114. aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_extraction/__init__.py +3 -0
  115. aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_extraction/default.yaml +43 -0
  116. aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_summarization/__init__.py +3 -0
  117. aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_summarization/default.yaml +9 -0
  118. aiagents4pharma/talk2knowledgegraphs/configs/utils/database/milvus/__init__.py +3 -0
  119. aiagents4pharma/talk2knowledgegraphs/configs/utils/database/milvus/default.yaml +61 -0
  120. aiagents4pharma/talk2knowledgegraphs/configs/utils/enrichments/ols_terms/default.yaml +3 -0
  121. aiagents4pharma/talk2knowledgegraphs/configs/utils/enrichments/reactome_pathways/default.yaml +3 -0
  122. aiagents4pharma/talk2knowledgegraphs/configs/utils/enrichments/uniprot_proteins/default.yaml +6 -0
  123. aiagents4pharma/talk2knowledgegraphs/configs/utils/pubchem_utils/default.yaml +5 -0
  124. aiagents4pharma/talk2knowledgegraphs/datasets/__init__.py +5 -0
  125. aiagents4pharma/talk2knowledgegraphs/datasets/biobridge_primekg.py +607 -0
  126. aiagents4pharma/talk2knowledgegraphs/datasets/dataset.py +25 -0
  127. aiagents4pharma/talk2knowledgegraphs/datasets/primekg.py +212 -0
  128. aiagents4pharma/talk2knowledgegraphs/datasets/starkqa_primekg.py +210 -0
  129. aiagents4pharma/talk2knowledgegraphs/docker-compose/cpu/.env.example +23 -0
  130. aiagents4pharma/talk2knowledgegraphs/docker-compose/cpu/docker-compose.yml +93 -0
  131. aiagents4pharma/talk2knowledgegraphs/docker-compose/gpu/.env.example +23 -0
  132. aiagents4pharma/talk2knowledgegraphs/docker-compose/gpu/docker-compose.yml +108 -0
  133. aiagents4pharma/talk2knowledgegraphs/entrypoint.sh +180 -0
  134. aiagents4pharma/talk2knowledgegraphs/install.md +165 -0
  135. aiagents4pharma/talk2knowledgegraphs/milvus_data_dump.py +886 -0
  136. aiagents4pharma/talk2knowledgegraphs/states/__init__.py +5 -0
  137. aiagents4pharma/talk2knowledgegraphs/states/state_talk2knowledgegraphs.py +40 -0
  138. aiagents4pharma/talk2knowledgegraphs/tests/__init__.py +0 -0
  139. aiagents4pharma/talk2knowledgegraphs/tests/test_agents_t2kg_agent.py +318 -0
  140. aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_biobridge_primekg.py +248 -0
  141. aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_dataset.py +33 -0
  142. aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_primekg.py +86 -0
  143. aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_starkqa_primekg.py +125 -0
  144. aiagents4pharma/talk2knowledgegraphs/tests/test_tools_graphrag_reasoning.py +257 -0
  145. aiagents4pharma/talk2knowledgegraphs/tests/test_tools_milvus_multimodal_subgraph_extraction.py +1444 -0
  146. aiagents4pharma/talk2knowledgegraphs/tests/test_tools_multimodal_subgraph_extraction.py +159 -0
  147. aiagents4pharma/talk2knowledgegraphs/tests/test_tools_subgraph_extraction.py +152 -0
  148. aiagents4pharma/talk2knowledgegraphs/tests/test_tools_subgraph_summarization.py +201 -0
  149. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_database_milvus_connection_manager.py +812 -0
  150. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_embeddings.py +51 -0
  151. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_huggingface.py +49 -0
  152. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_nim_molmim.py +59 -0
  153. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_ollama.py +63 -0
  154. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_sentencetransformer.py +47 -0
  155. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_enrichments.py +40 -0
  156. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_ollama.py +94 -0
  157. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_ols.py +70 -0
  158. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_pubchem.py +45 -0
  159. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_reactome.py +44 -0
  160. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_uniprot.py +48 -0
  161. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_extractions_milvus_multimodal_pcst.py +759 -0
  162. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_kg_utils.py +78 -0
  163. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_pubchem_utils.py +123 -0
  164. aiagents4pharma/talk2knowledgegraphs/tools/__init__.py +11 -0
  165. aiagents4pharma/talk2knowledgegraphs/tools/graphrag_reasoning.py +138 -0
  166. aiagents4pharma/talk2knowledgegraphs/tools/load_arguments.py +22 -0
  167. aiagents4pharma/talk2knowledgegraphs/tools/milvus_multimodal_subgraph_extraction.py +965 -0
  168. aiagents4pharma/talk2knowledgegraphs/tools/multimodal_subgraph_extraction.py +374 -0
  169. aiagents4pharma/talk2knowledgegraphs/tools/subgraph_extraction.py +291 -0
  170. aiagents4pharma/talk2knowledgegraphs/tools/subgraph_summarization.py +123 -0
  171. aiagents4pharma/talk2knowledgegraphs/utils/__init__.py +5 -0
  172. aiagents4pharma/talk2knowledgegraphs/utils/database/__init__.py +5 -0
  173. aiagents4pharma/talk2knowledgegraphs/utils/database/milvus_connection_manager.py +586 -0
  174. aiagents4pharma/talk2knowledgegraphs/utils/embeddings/__init__.py +5 -0
  175. aiagents4pharma/talk2knowledgegraphs/utils/embeddings/embeddings.py +81 -0
  176. aiagents4pharma/talk2knowledgegraphs/utils/embeddings/huggingface.py +111 -0
  177. aiagents4pharma/talk2knowledgegraphs/utils/embeddings/nim_molmim.py +54 -0
  178. aiagents4pharma/talk2knowledgegraphs/utils/embeddings/ollama.py +87 -0
  179. aiagents4pharma/talk2knowledgegraphs/utils/embeddings/sentence_transformer.py +73 -0
  180. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/__init__.py +12 -0
  181. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/enrichments.py +37 -0
  182. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/ollama.py +129 -0
  183. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/ols_terms.py +89 -0
  184. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/pubchem_strings.py +78 -0
  185. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/reactome_pathways.py +71 -0
  186. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/uniprot_proteins.py +98 -0
  187. aiagents4pharma/talk2knowledgegraphs/utils/extractions/__init__.py +5 -0
  188. aiagents4pharma/talk2knowledgegraphs/utils/extractions/milvus_multimodal_pcst.py +762 -0
  189. aiagents4pharma/talk2knowledgegraphs/utils/extractions/multimodal_pcst.py +298 -0
  190. aiagents4pharma/talk2knowledgegraphs/utils/extractions/pcst.py +229 -0
  191. aiagents4pharma/talk2knowledgegraphs/utils/kg_utils.py +67 -0
  192. aiagents4pharma/talk2knowledgegraphs/utils/pubchem_utils.py +104 -0
  193. aiagents4pharma/talk2scholars/.dockerignore +13 -0
  194. aiagents4pharma/talk2scholars/Dockerfile +104 -0
  195. aiagents4pharma/talk2scholars/README.md +1 -0
  196. aiagents4pharma/talk2scholars/__init__.py +7 -0
  197. aiagents4pharma/talk2scholars/agents/__init__.py +13 -0
  198. aiagents4pharma/talk2scholars/agents/main_agent.py +89 -0
  199. aiagents4pharma/talk2scholars/agents/paper_download_agent.py +96 -0
  200. aiagents4pharma/talk2scholars/agents/pdf_agent.py +101 -0
  201. aiagents4pharma/talk2scholars/agents/s2_agent.py +135 -0
  202. aiagents4pharma/talk2scholars/agents/zotero_agent.py +127 -0
  203. aiagents4pharma/talk2scholars/configs/__init__.py +7 -0
  204. aiagents4pharma/talk2scholars/configs/agents/__init__.py +7 -0
  205. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/__init__.py +7 -0
  206. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/__init__.py +3 -0
  207. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/default.yaml +52 -0
  208. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/paper_download_agent/__init__.py +3 -0
  209. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/paper_download_agent/default.yaml +19 -0
  210. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/pdf_agent/__init__.py +3 -0
  211. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/pdf_agent/default.yaml +19 -0
  212. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/__init__.py +3 -0
  213. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/default.yaml +44 -0
  214. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/__init__.py +3 -0
  215. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/default.yaml +19 -0
  216. aiagents4pharma/talk2scholars/configs/app/__init__.py +7 -0
  217. aiagents4pharma/talk2scholars/configs/app/frontend/__init__.py +3 -0
  218. aiagents4pharma/talk2scholars/configs/app/frontend/default.yaml +72 -0
  219. aiagents4pharma/talk2scholars/configs/config.yaml +16 -0
  220. aiagents4pharma/talk2scholars/configs/tools/__init__.py +21 -0
  221. aiagents4pharma/talk2scholars/configs/tools/multi_paper_recommendation/__init__.py +3 -0
  222. aiagents4pharma/talk2scholars/configs/tools/multi_paper_recommendation/default.yaml +26 -0
  223. aiagents4pharma/talk2scholars/configs/tools/paper_download/__init__.py +3 -0
  224. aiagents4pharma/talk2scholars/configs/tools/paper_download/default.yaml +124 -0
  225. aiagents4pharma/talk2scholars/configs/tools/question_and_answer/__init__.py +3 -0
  226. aiagents4pharma/talk2scholars/configs/tools/question_and_answer/default.yaml +62 -0
  227. aiagents4pharma/talk2scholars/configs/tools/retrieve_semantic_scholar_paper_id/__init__.py +3 -0
  228. aiagents4pharma/talk2scholars/configs/tools/retrieve_semantic_scholar_paper_id/default.yaml +12 -0
  229. aiagents4pharma/talk2scholars/configs/tools/search/__init__.py +3 -0
  230. aiagents4pharma/talk2scholars/configs/tools/search/default.yaml +26 -0
  231. aiagents4pharma/talk2scholars/configs/tools/single_paper_recommendation/__init__.py +3 -0
  232. aiagents4pharma/talk2scholars/configs/tools/single_paper_recommendation/default.yaml +26 -0
  233. aiagents4pharma/talk2scholars/configs/tools/zotero_read/__init__.py +3 -0
  234. aiagents4pharma/talk2scholars/configs/tools/zotero_read/default.yaml +57 -0
  235. aiagents4pharma/talk2scholars/configs/tools/zotero_write/__inti__.py +3 -0
  236. aiagents4pharma/talk2scholars/configs/tools/zotero_write/default.yaml +55 -0
  237. aiagents4pharma/talk2scholars/docker-compose/cpu/.env.example +21 -0
  238. aiagents4pharma/talk2scholars/docker-compose/cpu/docker-compose.yml +90 -0
  239. aiagents4pharma/talk2scholars/docker-compose/gpu/.env.example +21 -0
  240. aiagents4pharma/talk2scholars/docker-compose/gpu/docker-compose.yml +105 -0
  241. aiagents4pharma/talk2scholars/install.md +122 -0
  242. aiagents4pharma/talk2scholars/state/__init__.py +7 -0
  243. aiagents4pharma/talk2scholars/state/state_talk2scholars.py +98 -0
  244. aiagents4pharma/talk2scholars/tests/__init__.py +3 -0
  245. aiagents4pharma/talk2scholars/tests/test_agents_main_agent.py +256 -0
  246. aiagents4pharma/talk2scholars/tests/test_agents_paper_agents_download_agent.py +139 -0
  247. aiagents4pharma/talk2scholars/tests/test_agents_pdf_agent.py +114 -0
  248. aiagents4pharma/talk2scholars/tests/test_agents_s2_agent.py +198 -0
  249. aiagents4pharma/talk2scholars/tests/test_agents_zotero_agent.py +160 -0
  250. aiagents4pharma/talk2scholars/tests/test_s2_tools_display_dataframe.py +91 -0
  251. aiagents4pharma/talk2scholars/tests/test_s2_tools_query_dataframe.py +191 -0
  252. aiagents4pharma/talk2scholars/tests/test_states_state.py +38 -0
  253. aiagents4pharma/talk2scholars/tests/test_tools_paper_downloader.py +507 -0
  254. aiagents4pharma/talk2scholars/tests/test_tools_question_and_answer_tool.py +105 -0
  255. aiagents4pharma/talk2scholars/tests/test_tools_s2_multi.py +307 -0
  256. aiagents4pharma/talk2scholars/tests/test_tools_s2_retrieve.py +67 -0
  257. aiagents4pharma/talk2scholars/tests/test_tools_s2_search.py +286 -0
  258. aiagents4pharma/talk2scholars/tests/test_tools_s2_single.py +298 -0
  259. aiagents4pharma/talk2scholars/tests/test_utils_arxiv_downloader.py +469 -0
  260. aiagents4pharma/talk2scholars/tests/test_utils_base_paper_downloader.py +598 -0
  261. aiagents4pharma/talk2scholars/tests/test_utils_biorxiv_downloader.py +669 -0
  262. aiagents4pharma/talk2scholars/tests/test_utils_medrxiv_downloader.py +500 -0
  263. aiagents4pharma/talk2scholars/tests/test_utils_nvidia_nim_reranker.py +117 -0
  264. aiagents4pharma/talk2scholars/tests/test_utils_pdf_answer_formatter.py +67 -0
  265. aiagents4pharma/talk2scholars/tests/test_utils_pdf_batch_processor.py +92 -0
  266. aiagents4pharma/talk2scholars/tests/test_utils_pdf_collection_manager.py +173 -0
  267. aiagents4pharma/talk2scholars/tests/test_utils_pdf_document_processor.py +68 -0
  268. aiagents4pharma/talk2scholars/tests/test_utils_pdf_generate_answer.py +72 -0
  269. aiagents4pharma/talk2scholars/tests/test_utils_pdf_gpu_detection.py +129 -0
  270. aiagents4pharma/talk2scholars/tests/test_utils_pdf_paper_loader.py +116 -0
  271. aiagents4pharma/talk2scholars/tests/test_utils_pdf_rag_pipeline.py +88 -0
  272. aiagents4pharma/talk2scholars/tests/test_utils_pdf_retrieve_chunks.py +190 -0
  273. aiagents4pharma/talk2scholars/tests/test_utils_pdf_singleton_manager.py +159 -0
  274. aiagents4pharma/talk2scholars/tests/test_utils_pdf_vector_normalization.py +121 -0
  275. aiagents4pharma/talk2scholars/tests/test_utils_pdf_vector_store.py +406 -0
  276. aiagents4pharma/talk2scholars/tests/test_utils_pubmed_downloader.py +1007 -0
  277. aiagents4pharma/talk2scholars/tests/test_utils_read_helper_utils.py +106 -0
  278. aiagents4pharma/talk2scholars/tests/test_utils_s2_utils_ext_ids.py +403 -0
  279. aiagents4pharma/talk2scholars/tests/test_utils_tool_helper_utils.py +85 -0
  280. aiagents4pharma/talk2scholars/tests/test_utils_zotero_human_in_the_loop.py +266 -0
  281. aiagents4pharma/talk2scholars/tests/test_utils_zotero_path.py +496 -0
  282. aiagents4pharma/talk2scholars/tests/test_utils_zotero_pdf_downloader_utils.py +46 -0
  283. aiagents4pharma/talk2scholars/tests/test_utils_zotero_read.py +743 -0
  284. aiagents4pharma/talk2scholars/tests/test_utils_zotero_write.py +151 -0
  285. aiagents4pharma/talk2scholars/tools/__init__.py +9 -0
  286. aiagents4pharma/talk2scholars/tools/paper_download/__init__.py +12 -0
  287. aiagents4pharma/talk2scholars/tools/paper_download/paper_downloader.py +442 -0
  288. aiagents4pharma/talk2scholars/tools/paper_download/utils/__init__.py +22 -0
  289. aiagents4pharma/talk2scholars/tools/paper_download/utils/arxiv_downloader.py +207 -0
  290. aiagents4pharma/talk2scholars/tools/paper_download/utils/base_paper_downloader.py +336 -0
  291. aiagents4pharma/talk2scholars/tools/paper_download/utils/biorxiv_downloader.py +313 -0
  292. aiagents4pharma/talk2scholars/tools/paper_download/utils/medrxiv_downloader.py +196 -0
  293. aiagents4pharma/talk2scholars/tools/paper_download/utils/pubmed_downloader.py +323 -0
  294. aiagents4pharma/talk2scholars/tools/pdf/__init__.py +7 -0
  295. aiagents4pharma/talk2scholars/tools/pdf/question_and_answer.py +170 -0
  296. aiagents4pharma/talk2scholars/tools/pdf/utils/__init__.py +37 -0
  297. aiagents4pharma/talk2scholars/tools/pdf/utils/answer_formatter.py +62 -0
  298. aiagents4pharma/talk2scholars/tools/pdf/utils/batch_processor.py +198 -0
  299. aiagents4pharma/talk2scholars/tools/pdf/utils/collection_manager.py +172 -0
  300. aiagents4pharma/talk2scholars/tools/pdf/utils/document_processor.py +76 -0
  301. aiagents4pharma/talk2scholars/tools/pdf/utils/generate_answer.py +97 -0
  302. aiagents4pharma/talk2scholars/tools/pdf/utils/get_vectorstore.py +59 -0
  303. aiagents4pharma/talk2scholars/tools/pdf/utils/gpu_detection.py +150 -0
  304. aiagents4pharma/talk2scholars/tools/pdf/utils/nvidia_nim_reranker.py +97 -0
  305. aiagents4pharma/talk2scholars/tools/pdf/utils/paper_loader.py +123 -0
  306. aiagents4pharma/talk2scholars/tools/pdf/utils/rag_pipeline.py +113 -0
  307. aiagents4pharma/talk2scholars/tools/pdf/utils/retrieve_chunks.py +197 -0
  308. aiagents4pharma/talk2scholars/tools/pdf/utils/singleton_manager.py +140 -0
  309. aiagents4pharma/talk2scholars/tools/pdf/utils/tool_helper.py +86 -0
  310. aiagents4pharma/talk2scholars/tools/pdf/utils/vector_normalization.py +150 -0
  311. aiagents4pharma/talk2scholars/tools/pdf/utils/vector_store.py +327 -0
  312. aiagents4pharma/talk2scholars/tools/s2/__init__.py +21 -0
  313. aiagents4pharma/talk2scholars/tools/s2/display_dataframe.py +110 -0
  314. aiagents4pharma/talk2scholars/tools/s2/multi_paper_rec.py +111 -0
  315. aiagents4pharma/talk2scholars/tools/s2/query_dataframe.py +233 -0
  316. aiagents4pharma/talk2scholars/tools/s2/retrieve_semantic_scholar_paper_id.py +128 -0
  317. aiagents4pharma/talk2scholars/tools/s2/search.py +101 -0
  318. aiagents4pharma/talk2scholars/tools/s2/single_paper_rec.py +102 -0
  319. aiagents4pharma/talk2scholars/tools/s2/utils/__init__.py +5 -0
  320. aiagents4pharma/talk2scholars/tools/s2/utils/multi_helper.py +223 -0
  321. aiagents4pharma/talk2scholars/tools/s2/utils/search_helper.py +205 -0
  322. aiagents4pharma/talk2scholars/tools/s2/utils/single_helper.py +216 -0
  323. aiagents4pharma/talk2scholars/tools/zotero/__init__.py +7 -0
  324. aiagents4pharma/talk2scholars/tools/zotero/utils/__init__.py +7 -0
  325. aiagents4pharma/talk2scholars/tools/zotero/utils/read_helper.py +270 -0
  326. aiagents4pharma/talk2scholars/tools/zotero/utils/review_helper.py +74 -0
  327. aiagents4pharma/talk2scholars/tools/zotero/utils/write_helper.py +194 -0
  328. aiagents4pharma/talk2scholars/tools/zotero/utils/zotero_path.py +180 -0
  329. aiagents4pharma/talk2scholars/tools/zotero/utils/zotero_pdf_downloader.py +133 -0
  330. aiagents4pharma/talk2scholars/tools/zotero/zotero_read.py +105 -0
  331. aiagents4pharma/talk2scholars/tools/zotero/zotero_review.py +162 -0
  332. aiagents4pharma/talk2scholars/tools/zotero/zotero_write.py +91 -0
  333. aiagents4pharma-0.0.0.dist-info/METADATA +335 -0
  334. aiagents4pharma-0.0.0.dist-info/RECORD +336 -0
  335. aiagents4pharma-0.0.0.dist-info/WHEEL +4 -0
  336. aiagents4pharma-0.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,11 @@
1
+ """
2
+ This file is used to import aiagents4pharma modules.
3
+ """
4
+
5
+ from . import (
6
+ talk2aiagents4pharma,
7
+ talk2biomodels,
8
+ talk2cells,
9
+ talk2knowledgegraphs,
10
+ talk2scholars,
11
+ )
@@ -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,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,5 @@
1
+ """
2
+ This file is used to import the models and tools.
3
+ """
4
+
5
+ from . import agents, configs, states
@@ -0,0 +1,6 @@
1
+ """
2
+ This file is used to import all the modules in the package.
3
+ """
4
+
5
+ # import everything from the module
6
+ from . import main_agent
@@ -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,5 @@
1
+ """
2
+ Import all the modules in the package
3
+ """
4
+
5
+ from . import agents
@@ -0,0 +1,5 @@
1
+ """
2
+ Import all the modules in the package
3
+ """
4
+
5
+ from . import main_agent
@@ -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:
@@ -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,4 @@
1
+ defaults:
2
+ - _self_
3
+ - agents/main_agent: default
4
+ - app/frontend: default
@@ -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