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.
- aiagents4pharma/talk2knowledgegraphs/configs/config.yaml +1 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_uniprot.py +44 -0
- aiagents4pharma/talk2knowledgegraphs/utils/enrichments/__init__.py +1 -0
- aiagents4pharma/talk2knowledgegraphs/utils/enrichments/uniprot_proteins.py +90 -0
- aiagents4pharma/talk2scholars/agents/main_agent.py +4 -3
- aiagents4pharma/talk2scholars/agents/paper_download_agent.py +3 -4
- aiagents4pharma/talk2scholars/agents/pdf_agent.py +6 -7
- aiagents4pharma/talk2scholars/agents/s2_agent.py +23 -20
- aiagents4pharma/talk2scholars/agents/zotero_agent.py +11 -11
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/default.yaml +19 -19
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/default.yaml +20 -15
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/default.yaml +27 -6
- aiagents4pharma/talk2scholars/state/state_talk2scholars.py +7 -7
- aiagents4pharma/talk2scholars/tests/test_main_agent.py +16 -16
- aiagents4pharma/talk2scholars/tests/test_paper_download_agent.py +17 -24
- aiagents4pharma/talk2scholars/tests/test_paper_download_tools.py +152 -135
- aiagents4pharma/talk2scholars/tests/test_pdf_agent.py +9 -16
- aiagents4pharma/talk2scholars/tests/test_question_and_answer_tool.py +790 -218
- aiagents4pharma/talk2scholars/tests/test_s2_agent.py +9 -9
- aiagents4pharma/talk2scholars/tests/test_s2_display.py +8 -8
- aiagents4pharma/talk2scholars/tests/test_s2_query.py +8 -8
- aiagents4pharma/talk2scholars/tests/test_zotero_agent.py +12 -12
- aiagents4pharma/talk2scholars/tests/test_zotero_path.py +11 -12
- aiagents4pharma/talk2scholars/tests/test_zotero_read.py +400 -22
- aiagents4pharma/talk2scholars/tools/paper_download/__init__.py +0 -6
- aiagents4pharma/talk2scholars/tools/paper_download/download_arxiv_input.py +89 -31
- aiagents4pharma/talk2scholars/tools/pdf/question_and_answer.py +540 -156
- aiagents4pharma/talk2scholars/tools/s2/__init__.py +4 -4
- aiagents4pharma/talk2scholars/tools/s2/{display_results.py → display_dataframe.py} +19 -21
- aiagents4pharma/talk2scholars/tools/s2/query_dataframe.py +71 -0
- aiagents4pharma/talk2scholars/tools/zotero/utils/read_helper.py +213 -35
- aiagents4pharma/talk2scholars/tools/zotero/zotero_read.py +3 -3
- {aiagents4pharma-1.31.0.dist-info → aiagents4pharma-1.33.0.dist-info}/METADATA +3 -1
- {aiagents4pharma-1.31.0.dist-info → aiagents4pharma-1.33.0.dist-info}/RECORD +37 -37
- {aiagents4pharma-1.31.0.dist-info → aiagents4pharma-1.33.0.dist-info}/WHEEL +1 -1
- aiagents4pharma/talk2scholars/tools/paper_download/abstract_downloader.py +0 -45
- aiagents4pharma/talk2scholars/tools/paper_download/arxiv_downloader.py +0 -115
- aiagents4pharma/talk2scholars/tools/s2/query_results.py +0 -61
- {aiagents4pharma-1.31.0.dist-info → aiagents4pharma-1.33.0.dist-info}/licenses/LICENSE +0 -0
- {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=
|
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=
|
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=
|
140
|
-
aiagents4pharma/talk2scholars/agents/paper_download_agent.py,sha256=
|
141
|
-
aiagents4pharma/talk2scholars/agents/pdf_agent.py,sha256=
|
142
|
-
aiagents4pharma/talk2scholars/agents/s2_agent.py,sha256=
|
143
|
-
aiagents4pharma/talk2scholars/agents/zotero_agent.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
179
|
-
aiagents4pharma/talk2scholars/tests/test_paper_download_agent.py,sha256=
|
180
|
-
aiagents4pharma/talk2scholars/tests/test_paper_download_tools.py,sha256=
|
181
|
-
aiagents4pharma/talk2scholars/tests/test_pdf_agent.py,sha256=
|
182
|
-
aiagents4pharma/talk2scholars/tests/test_question_and_answer_tool.py,sha256=
|
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=
|
185
|
-
aiagents4pharma/talk2scholars/tests/test_s2_display.py,sha256=
|
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=
|
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=
|
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=
|
195
|
-
aiagents4pharma/talk2scholars/tests/test_zotero_read.py,sha256=
|
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=
|
199
|
-
aiagents4pharma/talk2scholars/tools/paper_download/
|
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=
|
204
|
-
aiagents4pharma/talk2scholars/tools/s2/__init__.py,sha256=
|
205
|
-
aiagents4pharma/talk2scholars/tools/s2/
|
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/
|
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=
|
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=
|
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.
|
225
|
-
aiagents4pharma-1.
|
226
|
-
aiagents4pharma-1.
|
227
|
-
aiagents4pharma-1.
|
228
|
-
aiagents4pharma-1.
|
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,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"]
|
File without changes
|
File without changes
|