aiagents4pharma 1.31.0__py3-none-any.whl → 1.33.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 (40) hide show
  1. aiagents4pharma/talk2knowledgegraphs/configs/config.yaml +1 -0
  2. aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_uniprot.py +44 -0
  3. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/__init__.py +1 -0
  4. aiagents4pharma/talk2knowledgegraphs/utils/enrichments/uniprot_proteins.py +90 -0
  5. aiagents4pharma/talk2scholars/agents/main_agent.py +4 -3
  6. aiagents4pharma/talk2scholars/agents/paper_download_agent.py +3 -4
  7. aiagents4pharma/talk2scholars/agents/pdf_agent.py +6 -7
  8. aiagents4pharma/talk2scholars/agents/s2_agent.py +23 -20
  9. aiagents4pharma/talk2scholars/agents/zotero_agent.py +11 -11
  10. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/default.yaml +19 -19
  11. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/default.yaml +20 -15
  12. aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/default.yaml +27 -6
  13. aiagents4pharma/talk2scholars/state/state_talk2scholars.py +7 -7
  14. aiagents4pharma/talk2scholars/tests/test_main_agent.py +16 -16
  15. aiagents4pharma/talk2scholars/tests/test_paper_download_agent.py +17 -24
  16. aiagents4pharma/talk2scholars/tests/test_paper_download_tools.py +152 -135
  17. aiagents4pharma/talk2scholars/tests/test_pdf_agent.py +9 -16
  18. aiagents4pharma/talk2scholars/tests/test_question_and_answer_tool.py +790 -218
  19. aiagents4pharma/talk2scholars/tests/test_s2_agent.py +9 -9
  20. aiagents4pharma/talk2scholars/tests/test_s2_display.py +8 -8
  21. aiagents4pharma/talk2scholars/tests/test_s2_query.py +8 -8
  22. aiagents4pharma/talk2scholars/tests/test_zotero_agent.py +12 -12
  23. aiagents4pharma/talk2scholars/tests/test_zotero_path.py +11 -12
  24. aiagents4pharma/talk2scholars/tests/test_zotero_read.py +400 -22
  25. aiagents4pharma/talk2scholars/tools/paper_download/__init__.py +0 -6
  26. aiagents4pharma/talk2scholars/tools/paper_download/download_arxiv_input.py +89 -31
  27. aiagents4pharma/talk2scholars/tools/pdf/question_and_answer.py +540 -156
  28. aiagents4pharma/talk2scholars/tools/s2/__init__.py +4 -4
  29. aiagents4pharma/talk2scholars/tools/s2/{display_results.py → display_dataframe.py} +19 -21
  30. aiagents4pharma/talk2scholars/tools/s2/query_dataframe.py +71 -0
  31. aiagents4pharma/talk2scholars/tools/zotero/utils/read_helper.py +213 -35
  32. aiagents4pharma/talk2scholars/tools/zotero/zotero_read.py +3 -3
  33. {aiagents4pharma-1.31.0.dist-info → aiagents4pharma-1.33.0.dist-info}/METADATA +3 -1
  34. {aiagents4pharma-1.31.0.dist-info → aiagents4pharma-1.33.0.dist-info}/RECORD +37 -37
  35. {aiagents4pharma-1.31.0.dist-info → aiagents4pharma-1.33.0.dist-info}/WHEEL +1 -1
  36. aiagents4pharma/talk2scholars/tools/paper_download/abstract_downloader.py +0 -45
  37. aiagents4pharma/talk2scholars/tools/paper_download/arxiv_downloader.py +0 -115
  38. aiagents4pharma/talk2scholars/tools/s2/query_results.py +0 -61
  39. {aiagents4pharma-1.31.0.dist-info → aiagents4pharma-1.33.0.dist-info}/licenses/LICENSE +0 -0
  40. {aiagents4pharma-1.31.0.dist-info → aiagents4pharma-1.33.0.dist-info}/top_level.txt +0 -0
@@ -75,7 +75,7 @@ aiagents4pharma/talk2knowledgegraphs/__init__.py,sha256=Z0Eo7LTiKk0STsr8VI7wkCLq
75
75
  aiagents4pharma/talk2knowledgegraphs/agents/__init__.py,sha256=iOAzuy_8A03tQDFtSBhC9dldUo62z5gfxcVtXAdLOJs,92
76
76
  aiagents4pharma/talk2knowledgegraphs/agents/t2kg_agent.py,sha256=IcXSZ2qQA1m-gS-o0Pj_g1oar8uPdhsbaovloUFka3Q,3058
77
77
  aiagents4pharma/talk2knowledgegraphs/configs/__init__.py,sha256=4_DVdpahaJ55yPl0aZotlFA_MYWLFF2cubWyKtBVI_Q,126
78
- aiagents4pharma/talk2knowledgegraphs/configs/config.yaml,sha256=bag4w3JCSqaojG37MTksy3ZehAPe3qoVzjIN2uh3nrc,229
78
+ aiagents4pharma/talk2knowledgegraphs/configs/config.yaml,sha256=KubbjqcaMgSMiJ4085F7O-cul-dYUAF7cWLqaM8Ss-g,277
79
79
  aiagents4pharma/talk2knowledgegraphs/configs/agents/t2kg_agent/__init__.py,sha256=-fAORvyFmG2iSvFOFDixmt9OTQRR58y89uhhu2EgbA8,46
80
80
  aiagents4pharma/talk2knowledgegraphs/configs/agents/t2kg_agent/default.yaml,sha256=ENCGROwYFpR6g4QD518h73sshdn3vPVpotBMk1QJcpU,4830
81
81
  aiagents4pharma/talk2knowledgegraphs/configs/app/__init__.py,sha256=fKfc3FR7g5KjY9b6jzrU6cwKTVVpkoVZQS3dvUowu34,69
@@ -112,6 +112,7 @@ aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_sentencetransfo
112
112
  aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_enrichments.py,sha256=N6HRr4lWHXY7bTHe2uXJe4D_EG9WqZPibZne6qLl9_k,1447
113
113
  aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_ollama.py,sha256=JhY7axvVULLywDJ2ctA-gob5YPeaJYWsaMNjHT6L9CU,3021
114
114
  aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_pubchem.py,sha256=bk27KElJxOvKJ2RTz4ftleExQPMyWWS755KKmlImzbk,1241
115
+ aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_uniprot.py,sha256=G13Diw7cA5TGINUNO1CDnN4rM6KbepxRXNjuzY578DI,1611
115
116
  aiagents4pharma/talk2knowledgegraphs/tests/test_utils_kg_utils.py,sha256=pal76wi7WgQWUNk56BrzfFV8jKpbDaHHdbwtgx_gXLI,2410
116
117
  aiagents4pharma/talk2knowledgegraphs/tests/test_utils_pubchem_utils.py,sha256=C07YqUNYW7ofpKAzKh0lBovXKLvaiXFb3oJU6k1dvu4,411
117
118
  aiagents4pharma/talk2knowledgegraphs/tools/__init__.py,sha256=zpD4h7EYtyq0QNOqLd6bkxrPlPb2XN64ceI9ncgESrA,171
@@ -128,31 +129,32 @@ aiagents4pharma/talk2knowledgegraphs/utils/embeddings/huggingface.py,sha256=2vi_
128
129
  aiagents4pharma/talk2knowledgegraphs/utils/embeddings/nim_molmim.py,sha256=XH6JNfmMS38UEU7UGJeeabHfRykharnQpQaqjO86OlQ,1537
129
130
  aiagents4pharma/talk2knowledgegraphs/utils/embeddings/ollama.py,sha256=8w0sjt3Ex5YJ_XvpKl9UbhdTiiaoMIarbPUxLBU-1Uw,2378
130
131
  aiagents4pharma/talk2knowledgegraphs/utils/embeddings/sentence_transformer.py,sha256=36iKlisOpMtGR5xfTAlSHXWvPqVC_Jbezod8kbBBMVg,2136
131
- aiagents4pharma/talk2knowledgegraphs/utils/enrichments/__init__.py,sha256=JKGavA-umsGX3ng17_UYAvDBdbg-W-mPn8Q6JfP7J9U,143
132
+ aiagents4pharma/talk2knowledgegraphs/utils/enrichments/__init__.py,sha256=gkHVwImeTnDBP_q4TWjn_CMJ-BMmt8NJqNkA1IOLvuI,174
132
133
  aiagents4pharma/talk2knowledgegraphs/utils/enrichments/enrichments.py,sha256=Bx8x6zzk5614ApWB90N_iv4_Y_Uq0-KwUeBwYSdQMU4,924
133
134
  aiagents4pharma/talk2knowledgegraphs/utils/enrichments/ollama.py,sha256=8eoxR-VHo0G7ReQIwje7xEhE-SJlHdef7_wJRpnvFIc,4116
134
135
  aiagents4pharma/talk2knowledgegraphs/utils/enrichments/pubchem_strings.py,sha256=qsVlDCGGDkUCv-R5_xFGhrtLS7P0CfagnM2qATwiOFM,1333
136
+ aiagents4pharma/talk2knowledgegraphs/utils/enrichments/uniprot_proteins.py,sha256=z0Jb3tt8VzRjzqI9oVcUvRlPPg6BUdmslfKDIEFE_h8,3013
135
137
  aiagents4pharma/talk2knowledgegraphs/utils/extractions/__init__.py,sha256=7gwwtfzKhB8GuOBD47XRi0NprwEXkOzwNl5eeu-hDTI,86
136
138
  aiagents4pharma/talk2knowledgegraphs/utils/extractions/pcst.py,sha256=m5p0yoJb7I19ua5yeQfXPf7c4r6S1XPwttsrM7Qoy94,9336
137
139
  aiagents4pharma/talk2scholars/__init__.py,sha256=NOZxTklAH1j1ggu97Ib8Xn9LCKudEWt-8dx8w7yxVD8,180
138
140
  aiagents4pharma/talk2scholars/agents/__init__.py,sha256=c_0Pk85bt-RfK5RMyALM3MXo3qXVMoYS7BOqM9wuFME,317
139
- aiagents4pharma/talk2scholars/agents/main_agent.py,sha256=KdKbnc-5zxktLUkzEZHC3bvn8_iKa8Kk4So90i48cdE,3275
140
- aiagents4pharma/talk2scholars/agents/paper_download_agent.py,sha256=wrK9CPy5evH56fyOZ2BlkBfY5aEj6tefc4jSDPVzYvs,3041
141
- aiagents4pharma/talk2scholars/agents/pdf_agent.py,sha256=xt_bgCTVJ6jOCkhc_rHh8pngq4uS8kuNOevuP3eC-sA,3702
142
- aiagents4pharma/talk2scholars/agents/s2_agent.py,sha256=ua1bjKE2HBKZuLnDn8me5fuV1lSvdZbwAlo3Yp27TT4,4659
143
- aiagents4pharma/talk2scholars/agents/zotero_agent.py,sha256=f11kNqtyZnpBiIf3Fe9gU0WqQ0-ohhngTKl-o0u997Q,4442
141
+ aiagents4pharma/talk2scholars/agents/main_agent.py,sha256=oCSWPj3TUgTIERmYbBTYipNrU1g956LXJEUx-7-KAQ0,3354
142
+ aiagents4pharma/talk2scholars/agents/paper_download_agent.py,sha256=pYHW3R7VQjRA3PhgWGQYI3ErfdILYQ0FM1WGXii3r1k,2996
143
+ aiagents4pharma/talk2scholars/agents/pdf_agent.py,sha256=GEXzJMQxIeZ7zLP-AlnTMU-n_KXZ7g22Qd9L3USIc_4,3626
144
+ aiagents4pharma/talk2scholars/agents/s2_agent.py,sha256=oui0CMSyXmBGBJ7LnYq8Ce0V8Qc3BS6GgH5Qx5wI6oM,4565
145
+ aiagents4pharma/talk2scholars/agents/zotero_agent.py,sha256=NAmEURIhH-sjXGO-dqAigUA10m-Re9Qe1hY8db4CIP0,4370
144
146
  aiagents4pharma/talk2scholars/configs/__init__.py,sha256=Y9-4PxsNCMoxyyQgDSbPByJnO9wnyem5SYL3eOZt1HY,189
145
147
  aiagents4pharma/talk2scholars/configs/config.yaml,sha256=-8X0_gTmjEuXAeIrnppw3Npy8HICelHZOvTKEScI-rs,596
146
148
  aiagents4pharma/talk2scholars/configs/agents/__init__.py,sha256=plv5Iw34gvbGZbRyJapvoOiiFXekRQIwjV_yy5AR_SI,104
147
149
  aiagents4pharma/talk2scholars/configs/agents/talk2scholars/__init__.py,sha256=D94LW4cXLmJe4dNl5qoR9QN0JnBqGLbQDgDLqhCNUE0,213
148
150
  aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/__init__.py,sha256=fqQQ-GlRcbzru2KmEk3oMma0R6_SzGM8dOXzYeU4oVA,46
149
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/default.yaml,sha256=GZRqZoUy8eAWXyd9GJDh-A4mYSJOhnkid6TaIJTGBeU,1192
151
+ aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/default.yaml,sha256=EmUAxeQSnH4U5Op5_XOzCbcexDCp-Rpz3z0yVPRtQUg,1315
150
152
  aiagents4pharma/talk2scholars/configs/agents/talk2scholars/paper_download_agent/__init__.py,sha256=fqQQ-GlRcbzru2KmEk3oMma0R6_SzGM8dOXzYeU4oVA,46
151
153
  aiagents4pharma/talk2scholars/configs/agents/talk2scholars/pdf_agent/__init__.py,sha256=fqQQ-GlRcbzru2KmEk3oMma0R6_SzGM8dOXzYeU4oVA,46
152
154
  aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/__init__.py,sha256=fqQQ-GlRcbzru2KmEk3oMma0R6_SzGM8dOXzYeU4oVA,46
153
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/default.yaml,sha256=UIYkr060IpoLHMXVPxGAjrkCJSjX7H0DzcFSasyW6sE,1185
155
+ aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/default.yaml,sha256=_sSt2jCgSILwrXkywDAxkXONCZn896owLBaf46iFI0I,1323
154
156
  aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/__init__.py,sha256=fqQQ-GlRcbzru2KmEk3oMma0R6_SzGM8dOXzYeU4oVA,46
155
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/default.yaml,sha256=09nMAlI4CTLlss03trR0ZaEeLdABQfkwUUE6ZCK4WzY,718
157
+ aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/default.yaml,sha256=SOdjRiGUxjW9JeCRDd_U1RjCclItkoPODrj5RpIrxSY,2030
156
158
  aiagents4pharma/talk2scholars/configs/app/__init__.py,sha256=tXpOW3R4eAfNoqvoaHfabSG-DcMHmUGSTg_4zH_vlgw,94
157
159
  aiagents4pharma/talk2scholars/configs/app/frontend/__init__.py,sha256=fqQQ-GlRcbzru2KmEk3oMma0R6_SzGM8dOXzYeU4oVA,46
158
160
  aiagents4pharma/talk2scholars/configs/app/frontend/default.yaml,sha256=A6nYjrgzEyRv5JYsGN7oqNX4-tufMBZ6mg-A7bMX6V4,906
@@ -172,39 +174,37 @@ aiagents4pharma/talk2scholars/configs/tools/zotero_read/default.yaml,sha256=ifOt
172
174
  aiagents4pharma/talk2scholars/configs/tools/zotero_write/__inti__.py,sha256=fqQQ-GlRcbzru2KmEk3oMma0R6_SzGM8dOXzYeU4oVA,46
173
175
  aiagents4pharma/talk2scholars/configs/tools/zotero_write/default.yaml,sha256=gB7y7pznviQUzu49Eu4ONNkjQjT8wPKNSw6S_vfd9kI,1222
174
176
  aiagents4pharma/talk2scholars/state/__init__.py,sha256=ReScKLpEvedq4P6ww52NRQS0Xr6SSQV7hqoQ83Mt75U,138
175
- aiagents4pharma/talk2scholars/state/state_talk2scholars.py,sha256=8ZFfv55tXO3LU-2DzKC5JjH4_ryodgu-H1ieKBmVFvw,2844
177
+ aiagents4pharma/talk2scholars/state/state_talk2scholars.py,sha256=MGB-rWjbOpLN-pK3nY9YKAuskcjeR62rjXbZl1Ppjas,2836
176
178
  aiagents4pharma/talk2scholars/tests/__init__.py,sha256=U3PsTiUZaUBD1IZanFGkDIOdFieDVJtGKQ5-woYUo8c,45
177
179
  aiagents4pharma/talk2scholars/tests/test_llm_main_integration.py,sha256=FBRqS06IKJYFOudQEHQr-9oJ4tftkH-gTCowTAqwWSg,3686
178
- aiagents4pharma/talk2scholars/tests/test_main_agent.py,sha256=hgKgMXAGGqGJ6EXbjfsdZ5t1IWo2W67tc_F7vK747Qg,6844
179
- aiagents4pharma/talk2scholars/tests/test_paper_download_agent.py,sha256=CP4fKFU_JYP_AXvTptnwpjaVar1d5lVKV5vxYgH_1j4,5309
180
- aiagents4pharma/talk2scholars/tests/test_paper_download_tools.py,sha256=_bGuoo4b6zD_vwLa7jGziWDT5qRtavsf02Jiaa7JIRU,5817
181
- aiagents4pharma/talk2scholars/tests/test_pdf_agent.py,sha256=TN4Sq5-SCxv-9VfFyq7sOlBlxbekmnWuB7-qh4MrhkA,4656
182
- aiagents4pharma/talk2scholars/tests/test_question_and_answer_tool.py,sha256=te6w1tPvuNSNCTihIwaCT083BzUCowjOQPwuCodXR4k,8723
180
+ aiagents4pharma/talk2scholars/tests/test_main_agent.py,sha256=IZYSocYVwqPil2lF6L07mKm8PUq7vjopmqNiCm6IJEA,6876
181
+ aiagents4pharma/talk2scholars/tests/test_paper_download_agent.py,sha256=gKSQp-sw62FplNnGYW0wv2ZIUEefh3o0tFWbRzy9yLs,5068
182
+ aiagents4pharma/talk2scholars/tests/test_paper_download_tools.py,sha256=3mycLeEgH5XkwxuoXfTpQb8c8xFtIX2HjVnACPrSf60,7141
183
+ aiagents4pharma/talk2scholars/tests/test_pdf_agent.py,sha256=scGCTgka2JuoUhzZwzDn0OgIYihOLhXbwb5uGFR02aI,4302
184
+ aiagents4pharma/talk2scholars/tests/test_question_and_answer_tool.py,sha256=_zzg4_XVVEuvYDsJ5la0kFLf9dT45P67-UnUZWDUkhY,34874
183
185
  aiagents4pharma/talk2scholars/tests/test_routing_logic.py,sha256=g79tG68ZrUOL3-duCCJwvFK6OieR5KedRf3yTUDqIFk,2784
184
- aiagents4pharma/talk2scholars/tests/test_s2_agent.py,sha256=BhW1wGc-wUPS4fwNBQRtBXJaJ_i7L6t_G9Bq57fK7rI,7784
185
- aiagents4pharma/talk2scholars/tests/test_s2_display.py,sha256=w1TqgEdl9WpW_A2Ud1slfI5fkRFkKtKadAlkEfSLOZk,2247
186
+ aiagents4pharma/talk2scholars/tests/test_s2_agent.py,sha256=xvlPU4Lz_DdQLTpdtoHW9l_AMvFrzC-FXE5royGbtLM,7806
187
+ aiagents4pharma/talk2scholars/tests/test_s2_display.py,sha256=TfJE74KsocAHLbitMLjVrfUwAwyIYpzEvkdrQMBzM2g,2263
186
188
  aiagents4pharma/talk2scholars/tests/test_s2_multi.py,sha256=VCTfexhtX7FgWOBS0YtSm1zghbByZnni1NBLGVTJVGI,11166
187
- aiagents4pharma/talk2scholars/tests/test_s2_query.py,sha256=hEcBt142nn_bKV9lor__Yk4LusgE1tN5dA-qpT606Bc,2443
189
+ aiagents4pharma/talk2scholars/tests/test_s2_query.py,sha256=_pDVolOmhrjZnh37Ig97-LcDHUe0lm3GvTWjNDKgMkc,2461
188
190
  aiagents4pharma/talk2scholars/tests/test_s2_retrieve.py,sha256=YtA2nbPRtoSR7mPqEjqLF5ERGVzTfeULztsNoCI48X8,2003
189
191
  aiagents4pharma/talk2scholars/tests/test_s2_search.py,sha256=mCGpoCYVn0SJ9BPcEjTz2MLy_K2XJIxvPngwsMoKijA,9945
190
192
  aiagents4pharma/talk2scholars/tests/test_s2_single.py,sha256=KjSh7V2cl1IuO_M9O6dj0vnMHr13H-xKxia_ZgT4qag,10313
191
193
  aiagents4pharma/talk2scholars/tests/test_state.py,sha256=_iHXvoZnU_eruf8l1sQKBSCIVnxNkH_9VzkVtZZA6bY,384
192
- aiagents4pharma/talk2scholars/tests/test_zotero_agent.py,sha256=fQDQj28uFNC1TyMPzNaNfDJacuw1_DqwGiX6IgliR3Y,6130
194
+ aiagents4pharma/talk2scholars/tests/test_zotero_agent.py,sha256=jFEtfQVEwEQ6v3kq7A1_p2MKCu5wbtX47V4bE-fKD6M,6158
193
195
  aiagents4pharma/talk2scholars/tests/test_zotero_human_in_the_loop.py,sha256=YelLQu9Y_r1SNQsC1xoLHJoJ3soIZtBt1MFbbNhY-Dg,10744
194
- aiagents4pharma/talk2scholars/tests/test_zotero_path.py,sha256=i1bS-5uSv25z4UFrc_W5rKZ0bwOg6ZK5cwLHMkjWgt8,18592
195
- aiagents4pharma/talk2scholars/tests/test_zotero_read.py,sha256=ecu9C-RWaLNgmAFqGN8s7dzCrtODqXOSZDievzjtAfQ,15511
196
+ aiagents4pharma/talk2scholars/tests/test_zotero_path.py,sha256=Ko0HyXCrpm-vs8Bkf-syxp3MfL1IvZwXXgPExyQy_F8,18618
197
+ aiagents4pharma/talk2scholars/tests/test_zotero_read.py,sha256=yQTksJhqW036Scs7pnc_bBC23N210mcjaZ6sJZl8QnM,29492
196
198
  aiagents4pharma/talk2scholars/tests/test_zotero_write.py,sha256=qWlO0XoZJ6vxUxgisjYv9Np87CoTEDxiQBEOhdj9foo,6111
197
199
  aiagents4pharma/talk2scholars/tools/__init__.py,sha256=c8pYHDqR9P0Frz2jWjbvyizfSTBMlMFzGsiQzx2KC9c,189
198
- aiagents4pharma/talk2scholars/tools/paper_download/__init__.py,sha256=0XmPLEqCply536Y1uWksmHYjlgNWcmcMpZx63XvGEFI,413
199
- aiagents4pharma/talk2scholars/tools/paper_download/abstract_downloader.py,sha256=nwVhRUqkdta3WLgd9roAWpx-bhJm3aAgJLx4RSYSJXQ,1327
200
- aiagents4pharma/talk2scholars/tools/paper_download/arxiv_downloader.py,sha256=hM9fdbwtOxuW1mpAfmfbILTI7kSVALgrGpjC2vMsvf8,3970
201
- aiagents4pharma/talk2scholars/tools/paper_download/download_arxiv_input.py,sha256=zndAnNFRBztuBK-tpW9UyYsGL8tB3gFjYhiTq6nzZu4,2203
200
+ aiagents4pharma/talk2scholars/tools/paper_download/__init__.py,sha256=tNTLSPNdir4XSKRF0HjXI_tBGBXXXwDhWRI5VnwbZpM,214
201
+ aiagents4pharma/talk2scholars/tools/paper_download/download_arxiv_input.py,sha256=WTWvXbh0C96OoMoPf8Bgu0AgorsdkWslac_WqlHc4bo,3900
202
202
  aiagents4pharma/talk2scholars/tools/pdf/__init__.py,sha256=DPpOfON3AySko5EBBAe_3udOoSaAdQWNyGeNvJyV5R8,138
203
- aiagents4pharma/talk2scholars/tools/pdf/question_and_answer.py,sha256=tNv0frCr0dxA0lfbwf5yudKRyWtbuRGMwqW5mk9u4eE,8797
204
- aiagents4pharma/talk2scholars/tools/s2/__init__.py,sha256=u_qh1bpDhVdyTr_S2wVfPwQ_lMz77NQ-ZDWtOP_PWzo,420
205
- aiagents4pharma/talk2scholars/tools/s2/display_results.py,sha256=UR0PtEHGDpOhPH0Di5HT8-Fip2RkEMTJgzROsChb1gc,2959
203
+ aiagents4pharma/talk2scholars/tools/pdf/question_and_answer.py,sha256=RfICBn4VorvpTrb_GunFFAi6fnzUlees_k0poQm0VKc,21853
204
+ aiagents4pharma/talk2scholars/tools/s2/__init__.py,sha256=w_eiw0pG8HNp79F9O_icXs_Yl_4odsmagYNKDTjIsvk,428
205
+ aiagents4pharma/talk2scholars/tools/s2/display_dataframe.py,sha256=YtnCrI0c3Fhi68R6ndPUnVM3E5u7CuBB_myIzLN6nXg,3040
206
206
  aiagents4pharma/talk2scholars/tools/s2/multi_paper_rec.py,sha256=N6GwG3oCQFEcntpjTQObAELzM5OpZq0u9J9-gUWU2kc,2716
207
- aiagents4pharma/talk2scholars/tools/s2/query_results.py,sha256=5yXuHqz5UKO9BbovEUnqgjcMvqVG4vp9VJO8Zaz5N1w,2029
207
+ aiagents4pharma/talk2scholars/tools/s2/query_dataframe.py,sha256=inaWWctaylJAJsXinQA63qPs5n-gn7axJz8ijj66Jmw,2746
208
208
  aiagents4pharma/talk2scholars/tools/s2/retrieve_semantic_scholar_paper_id.py,sha256=llzMMnEQKeYVamJbF4_DTMx-BgVe79vwDcUIFGLrmUY,2615
209
209
  aiagents4pharma/talk2scholars/tools/s2/search.py,sha256=NGzo1rF5VJJuZJbSLDwy2f220wSh7DWEw6xT1qQA2V0,2452
210
210
  aiagents4pharma/talk2scholars/tools/s2/single_paper_rec.py,sha256=7VivBGHcmaJZN7v7gYwddC-rfrDHaZo74pSNBYlJ2xU,2673
@@ -213,16 +213,16 @@ aiagents4pharma/talk2scholars/tools/s2/utils/multi_helper.py,sha256=rrR0DRNeGHpY
213
213
  aiagents4pharma/talk2scholars/tools/s2/utils/search_helper.py,sha256=_eP7q4ZTSWisEF4Stffe-IpR2MD9WrQ0u3jbbeJBRLU,6363
214
214
  aiagents4pharma/talk2scholars/tools/s2/utils/single_helper.py,sha256=ahTDT0lp5VRZS5hLL3-hsHx4wB3LUVY2OBTCTEJyR3Y,6983
215
215
  aiagents4pharma/talk2scholars/tools/zotero/__init__.py,sha256=wXiQILLq-utV35PkDUpm_F074mG9yRMyGQAFlr9UAOw,197
216
- aiagents4pharma/talk2scholars/tools/zotero/zotero_read.py,sha256=B21TOdB1nR--2Ug6Zx7nYjAKfCbndMF4L-cWcHPBWII,2267
216
+ aiagents4pharma/talk2scholars/tools/zotero/zotero_read.py,sha256=RqFXP2DXmkHLhVLirrTnmSk-E8Jipi4ue_Zw65npbnM,2263
217
217
  aiagents4pharma/talk2scholars/tools/zotero/zotero_review.py,sha256=iqwpolg7GWAjXizubLrPaAsgOpsOhKz-tFRyLOiBvC0,6325
218
218
  aiagents4pharma/talk2scholars/tools/zotero/zotero_write.py,sha256=KnDcnUBB0lwMcxNpC3hsVnICWkj23MDAePdHlK-Kekk,3024
219
219
  aiagents4pharma/talk2scholars/tools/zotero/utils/__init__.py,sha256=uIyKZSFB07-zd3vjS9ABL0r6fdBX9JHw60j8oUfxHQs,209
220
- aiagents4pharma/talk2scholars/tools/zotero/utils/read_helper.py,sha256=6f2yu5admNZp7xw5VW2TFGF4wh_oyVn9aLaQF47FLMc,6038
220
+ aiagents4pharma/talk2scholars/tools/zotero/utils/read_helper.py,sha256=lyrfpx8NHYiAN1qQSJWqPka7cML5BASwRXaI66fb-u8,13662
221
221
  aiagents4pharma/talk2scholars/tools/zotero/utils/review_helper.py,sha256=IPD1V9yrBYaDnRe7sR6PrpwR82OBJbA2P_Tc6RbxAbM,2748
222
222
  aiagents4pharma/talk2scholars/tools/zotero/utils/write_helper.py,sha256=ALwLecy1QVebbsmXJiDj1GhGmyhq2R2tZlAyEl1vfhw,7410
223
223
  aiagents4pharma/talk2scholars/tools/zotero/utils/zotero_path.py,sha256=oIrfbOySgts50ksHKyjcWjRkPRIS88g3Lc0v9mBkU8w,6375
224
- aiagents4pharma-1.31.0.dist-info/licenses/LICENSE,sha256=IcIbyB1Hyk5ZDah03VNQvJkbNk2hkBCDqQ8qtnCvB4Q,1077
225
- aiagents4pharma-1.31.0.dist-info/METADATA,sha256=H-RfFD-It0EISgKem1wBcEYtOK-LEfx37I4CWM48IzA,15802
226
- aiagents4pharma-1.31.0.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
227
- aiagents4pharma-1.31.0.dist-info/top_level.txt,sha256=-AH8rMmrSnJtq7HaAObS78UU-cTCwvX660dSxeM7a0A,16
228
- aiagents4pharma-1.31.0.dist-info/RECORD,,
224
+ aiagents4pharma-1.33.0.dist-info/licenses/LICENSE,sha256=IcIbyB1Hyk5ZDah03VNQvJkbNk2hkBCDqQ8qtnCvB4Q,1077
225
+ aiagents4pharma-1.33.0.dist-info/METADATA,sha256=cv2sm_J63wHmZipscCFn4rQtFNAJSz-trdl-bAsHwDw,16043
226
+ aiagents4pharma-1.33.0.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
227
+ aiagents4pharma-1.33.0.dist-info/top_level.txt,sha256=-AH8rMmrSnJtq7HaAObS78UU-cTCwvX660dSxeM7a0A,16
228
+ aiagents4pharma-1.33.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.0.0)
2
+ Generator: setuptools (80.3.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,45 +0,0 @@
1
- """
2
- Abstract Base Class for Paper Downloaders.
3
-
4
- This module defines the `AbstractPaperDownloader` class, which serves as a
5
- base class for downloading scholarly papers from different sources
6
- (e.g., arXiv, PubMed, IEEE Xplore). Any specific downloader should
7
- inherit from this class and implement its methods.
8
- """
9
-
10
- from abc import ABC, abstractmethod
11
- from typing import Any, Dict
12
-
13
-
14
- class AbstractPaperDownloader(ABC):
15
- """
16
- Abstract base class for scholarly paper downloaders.
17
-
18
- This is designed to be extended for different paper sources
19
- like arXiv, PubMed, IEEE Xplore, etc. Each implementation
20
- must define methods for fetching metadata and downloading PDFs.
21
- """
22
-
23
- @abstractmethod
24
- def fetch_metadata(self, paper_id: str) -> Dict[str, Any]:
25
- """
26
- Fetch metadata for a given paper ID.
27
-
28
- Args:
29
- paper_id (str): The unique identifier for the paper.
30
-
31
- Returns:
32
- Dict[str, Any]: The metadata dictionary (format depends on the data source).
33
- """
34
-
35
- @abstractmethod
36
- def download_pdf(self, paper_id: str) -> bytes:
37
- """
38
- Download the PDF for a given paper ID.
39
-
40
- Args:
41
- paper_id (str): The unique identifier for the paper.
42
-
43
- Returns:
44
- bytes: The binary content of the downloaded PDF.
45
- """
@@ -1,115 +0,0 @@
1
- """
2
- Arxiv Paper Downloader
3
-
4
- This module provides an implementation of `AbstractPaperDownloader` for arXiv.
5
- It connects to the arXiv API, retrieves metadata for a research paper, and
6
- downloads the corresponding PDF.
7
-
8
- By using an abstract base class, this implementation is extendable to other
9
- APIs like PubMed, IEEE Xplore, etc.
10
- """
11
-
12
- import xml.etree.ElementTree as ET
13
- from typing import Any, Dict
14
- import logging
15
- import hydra
16
- import requests
17
- from .abstract_downloader import AbstractPaperDownloader
18
-
19
- # Configure logging
20
- logging.basicConfig(level=logging.INFO)
21
- logger = logging.getLogger(__name__)
22
-
23
-
24
- class ArxivPaperDownloader(AbstractPaperDownloader):
25
- """
26
- Downloader class for arXiv.
27
-
28
- This class interfaces with the arXiv API to fetch metadata
29
- and retrieve PDFs of academic papers based on their arXiv IDs.
30
- """
31
-
32
- def __init__(self):
33
- """
34
- Initializes the arXiv paper downloader.
35
-
36
- Uses Hydra for configuration management to retrieve API details.
37
- """
38
- with hydra.initialize(version_base=None, config_path="../../configs"):
39
- cfg = hydra.compose(
40
- config_name="config", overrides=["tools/download_arxiv_paper=default"]
41
- )
42
- self.api_url = cfg.tools.download_arxiv_paper.api_url
43
- self.request_timeout = cfg.tools.download_arxiv_paper.request_timeout
44
- self.chunk_size = cfg.tools.download_arxiv_paper.chunk_size
45
- self.pdf_base_url = cfg.tools.download_arxiv_paper.pdf_base_url
46
-
47
- def fetch_metadata(self, paper_id: str) -> Dict[str, Any]:
48
- """
49
- Fetch metadata from arXiv for a given paper ID.
50
-
51
- Args:
52
- paper_id (str): The arXiv ID of the paper.
53
-
54
- Returns:
55
- Dict[str, Any]: A dictionary containing metadata, including the XML response.
56
- """
57
- logger.info("Fetching metadata from arXiv for paper ID: %s", paper_id)
58
- api_url = f"{self.api_url}?search_query=id:{paper_id}&start=0&max_results=1"
59
- response = requests.get(api_url, timeout=self.request_timeout)
60
- response.raise_for_status()
61
- return {"xml": response.text}
62
-
63
- def download_pdf(self, paper_id: str) -> Dict[str, Any]:
64
- """
65
- Download the PDF of a paper from arXiv.
66
-
67
- This function first retrieves the paper's metadata to locate the PDF link
68
- before downloading the file.
69
-
70
- Args:
71
- paper_id (str): The arXiv ID of the paper.
72
-
73
- Returns:
74
- Dict[str, Any]: A dictionary containing:
75
- - `pdf_object`: The binary content of the downloaded PDF.
76
- - `pdf_url`: The URL from which the PDF was fetched.
77
- - `arxiv_id`: The arXiv ID of the downloaded paper.
78
- """
79
- metadata = self.fetch_metadata(paper_id)
80
-
81
- # Parse the XML response to locate the PDF link.
82
- root = ET.fromstring(metadata["xml"])
83
- ns = {"atom": "http://www.w3.org/2005/Atom"}
84
- pdf_url = next(
85
- (
86
- link.attrib.get("href")
87
- for entry in root.findall("atom:entry", ns)
88
- for link in entry.findall("atom:link", ns)
89
- if link.attrib.get("title") == "pdf"
90
- ),
91
- None,
92
- )
93
-
94
- if not pdf_url:
95
- raise RuntimeError(f"Failed to download PDF for arXiv ID {paper_id}.")
96
-
97
- logger.info("Downloading PDF from: %s", pdf_url)
98
- pdf_response = requests.get(pdf_url, stream=True, timeout=self.request_timeout)
99
- pdf_response.raise_for_status()
100
- # print (pdf_response)
101
-
102
- # Combine the PDF data from chunks.
103
- pdf_object = b"".join(
104
- chunk
105
- for chunk in pdf_response.iter_content(chunk_size=self.chunk_size)
106
- if chunk
107
- )
108
- # print (pdf_object)
109
- print("PDF_URL", pdf_url)
110
-
111
- return {
112
- "pdf_object": pdf_object,
113
- "pdf_url": pdf_url,
114
- "arxiv_id": paper_id,
115
- }
@@ -1,61 +0,0 @@
1
- #!/usr/bin/env python3
2
-
3
- """
4
- This tool is used to display the table of studies.
5
- """
6
-
7
- import logging
8
- from typing import Annotated
9
- import pandas as pd
10
- from langchain_experimental.agents import create_pandas_dataframe_agent
11
- from langchain_core.tools import tool
12
- from langgraph.prebuilt import InjectedState
13
-
14
- # Configure logging
15
- logging.basicConfig(level=logging.INFO)
16
- logger = logging.getLogger(__name__)
17
-
18
-
19
- class NoPapersFoundError(Exception):
20
- """Exception raised when no papers are found in the state."""
21
-
22
-
23
- @tool("query_results", parse_docstring=True)
24
- def query_results(question: str, state: Annotated[dict, InjectedState]) -> str:
25
- """
26
- Query the last displayed papers from the state. If no papers are found,
27
- raises an exception.
28
-
29
- Use this also to get the last displayed papers from the state,
30
- and then use the papers to get recommendations for a single paper or
31
- multiple papers.
32
-
33
- Args:
34
- question (str): The question to ask the agent.
35
- state (dict): The state of the agent containing the papers.
36
-
37
- Returns:
38
- str: A message with the last displayed papers.
39
- """
40
- logger.info("Querying last displayed papers with question: %s", question)
41
- llm_model = state.get("llm_model")
42
- if not state.get("last_displayed_papers"):
43
- logger.info("No papers displayed so far, raising NoPapersFoundError")
44
- raise NoPapersFoundError(
45
- "No papers found. A search needs to be performed first."
46
- )
47
- context_key = state.get("last_displayed_papers", "pdf_data")
48
- dic_papers = state.get(context_key)
49
- df_papers = pd.DataFrame.from_dict(dic_papers, orient="index")
50
- df_agent = create_pandas_dataframe_agent(
51
- llm_model,
52
- allow_dangerous_code=True,
53
- agent_type="tool-calling",
54
- df=df_papers,
55
- max_iterations=5,
56
- include_df_in_prompt=True,
57
- number_of_head_rows=df_papers.shape[0],
58
- verbose=True,
59
- )
60
- llm_result = df_agent.invoke(question, stream_mode=None)
61
- return llm_result["output"]