aiagents4pharma 1.22.3__py3-none-any.whl → 1.23.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/talk2scholars/agents/__init__.py +3 -2
- aiagents4pharma/talk2scholars/agents/main_agent.py +51 -4
- aiagents4pharma/talk2scholars/agents/zotero_agent.py +120 -0
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/__init__.py +1 -0
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/default.yaml +39 -19
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/default.yaml +26 -0
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/__init__.py +3 -0
- aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/default.yaml +35 -0
- aiagents4pharma/talk2scholars/configs/config.yaml +3 -1
- aiagents4pharma/talk2scholars/configs/tools/__init__.py +1 -0
- aiagents4pharma/talk2scholars/configs/tools/zotero_read/__init__.py +3 -0
- aiagents4pharma/talk2scholars/configs/tools/zotero_read/default.yaml +15 -0
- aiagents4pharma/talk2scholars/state/state_talk2scholars.py +2 -0
- aiagents4pharma/talk2scholars/tests/test_call_s2.py +99 -0
- aiagents4pharma/talk2scholars/tests/test_call_zotero.py +93 -0
- aiagents4pharma/talk2scholars/tests/test_main_agent.py +6 -42
- aiagents4pharma/talk2scholars/tests/test_routing_logic.py +71 -0
- aiagents4pharma/talk2scholars/tests/test_zotero_agent.py +160 -0
- aiagents4pharma/talk2scholars/tests/test_zotero_tool.py +171 -0
- aiagents4pharma/talk2scholars/tools/__init__.py +3 -2
- aiagents4pharma/talk2scholars/tools/s2/multi_paper_rec.py +17 -2
- aiagents4pharma/talk2scholars/tools/s2/search.py +14 -2
- aiagents4pharma/talk2scholars/tools/s2/single_paper_rec.py +17 -2
- aiagents4pharma/talk2scholars/tools/zotero/__init__.py +5 -0
- aiagents4pharma/talk2scholars/tools/zotero/zotero_read.py +142 -0
- {aiagents4pharma-1.22.3.dist-info → aiagents4pharma-1.23.0.dist-info}/METADATA +29 -17
- {aiagents4pharma-1.22.3.dist-info → aiagents4pharma-1.23.0.dist-info}/RECORD +30 -18
- {aiagents4pharma-1.22.3.dist-info → aiagents4pharma-1.23.0.dist-info}/WHEEL +1 -1
- {aiagents4pharma-1.22.3.dist-info → aiagents4pharma-1.23.0.dist-info}/LICENSE +0 -0
- {aiagents4pharma-1.22.3.dist-info → aiagents4pharma-1.23.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,142 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
|
3
|
+
"""
|
4
|
+
This tool is used to search for papers in Zotero library.
|
5
|
+
"""
|
6
|
+
|
7
|
+
import logging
|
8
|
+
from typing import Annotated, Any
|
9
|
+
import hydra
|
10
|
+
from pyzotero import zotero
|
11
|
+
from langchain_core.messages import ToolMessage
|
12
|
+
from langchain_core.tools import tool
|
13
|
+
from langchain_core.tools.base import InjectedToolCallId
|
14
|
+
from langgraph.types import Command
|
15
|
+
from pydantic import BaseModel, Field
|
16
|
+
|
17
|
+
# Configure logging
|
18
|
+
logging.basicConfig(level=logging.INFO)
|
19
|
+
logger = logging.getLogger(__name__)
|
20
|
+
|
21
|
+
|
22
|
+
class ZoteroSearchInput(BaseModel):
|
23
|
+
"""Input schema for the Zotero search tool."""
|
24
|
+
|
25
|
+
query: str = Field(
|
26
|
+
description="Search query string to find papers in Zotero library."
|
27
|
+
)
|
28
|
+
only_articles: bool = Field(
|
29
|
+
default=True,
|
30
|
+
description="Whether to only search for journal articles/" "conference papers.",
|
31
|
+
)
|
32
|
+
limit: int = Field(
|
33
|
+
default=2, description="Maximum number of results to return", ge=1, le=100
|
34
|
+
)
|
35
|
+
tool_call_id: Annotated[str, InjectedToolCallId]
|
36
|
+
|
37
|
+
|
38
|
+
# Load hydra configuration
|
39
|
+
with hydra.initialize(version_base=None, config_path="../../configs"):
|
40
|
+
cfg = hydra.compose(config_name="config", overrides=["tools/zotero_read=default"])
|
41
|
+
cfg = cfg.tools.zotero_read
|
42
|
+
|
43
|
+
|
44
|
+
@tool(args_schema=ZoteroSearchInput, parse_docstring=True)
|
45
|
+
def zotero_search_tool(
|
46
|
+
query: str,
|
47
|
+
only_articles: bool,
|
48
|
+
tool_call_id: Annotated[str, InjectedToolCallId],
|
49
|
+
limit: int = 2,
|
50
|
+
) -> Command[Any]:
|
51
|
+
"""
|
52
|
+
Use this tool to search and retrieve papers from Zotero library.
|
53
|
+
|
54
|
+
Args:
|
55
|
+
query (str): The search query string to find papers.
|
56
|
+
tool_call_id (Annotated[str, InjectedToolCallId]): The tool call ID.
|
57
|
+
limit (int, optional): The maximum number of results to return. Defaults to 2.
|
58
|
+
|
59
|
+
Returns:
|
60
|
+
Dict[str, Any]: The search results and related information.
|
61
|
+
"""
|
62
|
+
logger.info(
|
63
|
+
"Searching Zotero for query: '%s' (only_articles: %s, limit: %d)",
|
64
|
+
query,
|
65
|
+
only_articles,
|
66
|
+
limit,
|
67
|
+
)
|
68
|
+
|
69
|
+
# Initialize Zotero client
|
70
|
+
zot = zotero.Zotero(cfg.user_id, cfg.library_type, cfg.api_key)
|
71
|
+
|
72
|
+
# Get items matching the query
|
73
|
+
items = zot.items(q=query, limit=min(limit, cfg.zotero.max_limit))
|
74
|
+
logger.info("Received %d items from Zotero", len(items))
|
75
|
+
|
76
|
+
# Define filter criteria
|
77
|
+
filter_item_types = cfg.zotero.filter_item_types if only_articles else []
|
78
|
+
|
79
|
+
# Filter and format papers
|
80
|
+
filtered_papers = {}
|
81
|
+
|
82
|
+
for item in items:
|
83
|
+
if not isinstance(item, dict):
|
84
|
+
continue
|
85
|
+
|
86
|
+
data = item.get("data")
|
87
|
+
if not isinstance(data, dict):
|
88
|
+
continue
|
89
|
+
|
90
|
+
item_type = data.get("itemType")
|
91
|
+
if only_articles and (
|
92
|
+
not item_type
|
93
|
+
or not isinstance(item_type, str)
|
94
|
+
or item_type not in filter_item_types
|
95
|
+
):
|
96
|
+
continue
|
97
|
+
|
98
|
+
key = data.get("key")
|
99
|
+
if not key:
|
100
|
+
continue
|
101
|
+
|
102
|
+
filtered_papers[key] = {
|
103
|
+
"Title": data.get("title", "N/A"),
|
104
|
+
"Abstract": data.get("abstractNote", "N/A"),
|
105
|
+
"Date": data.get("date", "N/A"),
|
106
|
+
"URL": data.get("url", "N/A"),
|
107
|
+
"Type": item_type if isinstance(item_type, str) else "N/A",
|
108
|
+
}
|
109
|
+
|
110
|
+
if not filtered_papers:
|
111
|
+
logger.warning("No matching papers found for query: '%s'", query)
|
112
|
+
|
113
|
+
logger.info("Filtered %d items", len(filtered_papers))
|
114
|
+
|
115
|
+
# Prepare content with top 3 paper titles and types
|
116
|
+
top_papers = list(filtered_papers.values())[:2]
|
117
|
+
top_papers_info = "\n".join(
|
118
|
+
[
|
119
|
+
f"{i+1}. {paper['Title']} ({paper['Type']})"
|
120
|
+
for i, paper in enumerate(top_papers)
|
121
|
+
]
|
122
|
+
)
|
123
|
+
|
124
|
+
content = "Retrieval was successful. Papers are attached as an artifact."
|
125
|
+
content += " And here is a summary of the retrieval results:\n"
|
126
|
+
content += f"Number of papers found: {len(filtered_papers)}\n"
|
127
|
+
content += f"Query: {query}\n"
|
128
|
+
content += "Top papers:\n" + top_papers_info
|
129
|
+
|
130
|
+
return Command(
|
131
|
+
update={
|
132
|
+
"zotero_read": filtered_papers,
|
133
|
+
"last_displayed_papers": "zotero_read",
|
134
|
+
"messages": [
|
135
|
+
ToolMessage(
|
136
|
+
content=content,
|
137
|
+
tool_call_id=tool_call_id,
|
138
|
+
artifact=filtered_papers,
|
139
|
+
)
|
140
|
+
],
|
141
|
+
}
|
142
|
+
)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: aiagents4pharma
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.23.0
|
4
4
|
Summary: AI Agents for drug discovery, drug development, and other pharmaceutical R&D.
|
5
5
|
Classifier: Programming Language :: Python :: 3
|
6
6
|
Classifier: License :: OSI Approved :: MIT License
|
@@ -18,15 +18,15 @@ Requires-Dist: hydra-core==1.3.2
|
|
18
18
|
Requires-Dist: joblib==1.4.2
|
19
19
|
Requires-Dist: langchain==0.3.7
|
20
20
|
Requires-Dist: langchain-community==0.3.5
|
21
|
-
Requires-Dist: langchain-core==0.3.
|
21
|
+
Requires-Dist: langchain-core==0.3.40
|
22
22
|
Requires-Dist: langchain-experimental==0.3.3
|
23
23
|
Requires-Dist: langchain-nvidia-ai-endpoints==0.3.9
|
24
24
|
Requires-Dist: langchain-openai==0.2.5
|
25
|
-
Requires-Dist: langchain_ollama==0.2.
|
25
|
+
Requires-Dist: langchain_ollama==0.2.3
|
26
26
|
Requires-Dist: langgraph==0.2.66
|
27
27
|
Requires-Dist: matplotlib==3.9.2
|
28
28
|
Requires-Dist: openai==1.59.4
|
29
|
-
Requires-Dist: ollama==0.4.
|
29
|
+
Requires-Dist: ollama==0.4.7
|
30
30
|
Requires-Dist: pandas==2.2.3
|
31
31
|
Requires-Dist: pcst_fast==1.0.10
|
32
32
|
Requires-Dist: plotly==5.24.1
|
@@ -36,6 +36,7 @@ Requires-Dist: pylint==3.3.1
|
|
36
36
|
Requires-Dist: pypdf==5.2.0
|
37
37
|
Requires-Dist: pytest==8.3.3
|
38
38
|
Requires-Dist: pytest-asyncio==0.25.2
|
39
|
+
Requires-Dist: pyzotero==1.6.9
|
39
40
|
Requires-Dist: streamlit==1.39.0
|
40
41
|
Requires-Dist: sentence_transformers==3.3.1
|
41
42
|
Requires-Dist: tabulate==0.9.0
|
@@ -59,7 +60,6 @@ Requires-Dist: streamlit-feedback
|
|
59
60
|

|
60
61
|

|
61
62
|
|
62
|
-
|
63
63
|
## Introduction
|
64
64
|
|
65
65
|
Welcome to **AIAgents4Pharma** – an open-source project by [Team VPE](https://github.com/VirtualPatientEngine) that brings together AI-driven tools to help researchers and pharma interact seamlessly with complex biological data.
|
@@ -99,8 +99,8 @@ _Please note that this option is currently available only for Talk2Biomodels._
|
|
99
99
|
```
|
100
100
|
docker run -e OPENAI_API_KEY=<openai_api_key> -e NVIDIA_API_KEY=<nvidia_api_key> -p 8501:8501 virtualpatientengine/talk2biomodels
|
101
101
|
```
|
102
|
-
_You can create a free account at NVIDIA and apply for their
|
103
|
-
free credits [here](https://build.nvidia.com/explore/discover)._
|
102
|
+
_You can create a free account at NVIDIA and apply for their
|
103
|
+
free credits [here](https://build.nvidia.com/explore/discover)._
|
104
104
|
|
105
105
|
#### Option 3: git
|
106
106
|
|
@@ -114,31 +114,43 @@ free credits [here](https://build.nvidia.com/explore/discover)._
|
|
114
114
|
pip install -r requirements.txt
|
115
115
|
```
|
116
116
|
3. **Initialize OPENAI_API_KEY and NVIDIA_API_KEY**
|
117
|
+
|
117
118
|
```bash
|
118
119
|
export OPENAI_API_KEY=....
|
119
120
|
```
|
121
|
+
|
120
122
|
```bash
|
121
123
|
export NVIDIA_API_KEY=....
|
122
124
|
```
|
123
|
-
_You can create a free account at NVIDIA and apply for their
|
124
|
-
free credits [here](https://build.nvidia.com/explore/discover)._
|
125
125
|
|
126
|
-
|
126
|
+
_You can create a free account at NVIDIA and apply for their
|
127
|
+
free credits [here](https://build.nvidia.com/explore/discover)._
|
128
|
+
|
129
|
+
4. **Initialize ZOTERO_API_KEY and ZOTERO_USER_ID**
|
130
|
+
|
131
|
+
```bash
|
132
|
+
export ZOTERO_API_KEY=....
|
133
|
+
export ZOTERO_USER_ID=....
|
134
|
+
```
|
135
|
+
|
136
|
+
5. **[Optional] Initialize LANGSMITH_API_KEY**
|
137
|
+
|
127
138
|
```bash
|
128
139
|
export LANGCHAIN_TRACING_V2=true
|
129
140
|
export LANGCHAIN_API_KEY=<your-api-key>
|
130
141
|
```
|
131
|
-
_Please note that this will create a new tracing project in your Langsmith
|
132
|
-
account with the name `T2X-xxxx`, where `X` can be `B` (Biomodels), `S` (Scholars),
|
133
|
-
`KG` (KnowledgeGraphs), or `C` (Cells). If you skip the previous step, it will
|
134
|
-
default to the name `default`. `xxxx` will be the 4-digit ID created for the
|
135
|
-
session._
|
136
142
|
|
137
|
-
|
143
|
+
_Please note that this will create a new tracing project in your Langsmith
|
144
|
+
account with the name `T2X-xxxx`, where `X` can be `B` (Biomodels), `S` (Scholars),
|
145
|
+
`KG` (KnowledgeGraphs), or `C` (Cells). If you skip the previous step, it will
|
146
|
+
default to the name `default`. `xxxx` will be the 4-digit ID created for the
|
147
|
+
session._
|
148
|
+
|
149
|
+
6. **Launch the app:**
|
138
150
|
```bash
|
139
151
|
streamlit run app/frontend/streamlit_app_<agent>.py
|
140
152
|
```
|
141
|
-
_Replace <agent> with the agent name you are interested to launch._
|
153
|
+
_Replace <agent> with the agent name you are interested to launch._
|
142
154
|
|
143
155
|
For detailed instructions on each agent, please refer to their respective modules.
|
144
156
|
|
@@ -124,21 +124,24 @@ aiagents4pharma/talk2knowledgegraphs/utils/enrichments/pubchem_strings.py,sha256
|
|
124
124
|
aiagents4pharma/talk2knowledgegraphs/utils/extractions/__init__.py,sha256=7gwwtfzKhB8GuOBD47XRi0NprwEXkOzwNl5eeu-hDTI,86
|
125
125
|
aiagents4pharma/talk2knowledgegraphs/utils/extractions/pcst.py,sha256=m5p0yoJb7I19ua5yeQfXPf7c4r6S1XPwttsrM7Qoy94,9336
|
126
126
|
aiagents4pharma/talk2scholars/__init__.py,sha256=gphERyVKZHvOnMQsml7TIHlaIshHJ75R1J3FKExkfuY,120
|
127
|
-
aiagents4pharma/talk2scholars/agents/__init__.py,sha256=
|
128
|
-
aiagents4pharma/talk2scholars/agents/main_agent.py,sha256=
|
127
|
+
aiagents4pharma/talk2scholars/agents/__init__.py,sha256=WxEauzCzLEGyhdIRkxSBpNW5c_Uzf7iJUdM57IQkXH8,144
|
128
|
+
aiagents4pharma/talk2scholars/agents/main_agent.py,sha256=ZJf1VAk2eA4Hxk8L7K2btiHTrv1CWRxebf4PAJbntuE,9487
|
129
129
|
aiagents4pharma/talk2scholars/agents/s2_agent.py,sha256=XilKQvlxEVNYK5cEc44x-62OZZ1qG77v1r0FkwLexcw,4581
|
130
|
+
aiagents4pharma/talk2scholars/agents/zotero_agent.py,sha256=E-w4avjDLviwrNOII0gVtHYLeO4wv2umykICJLZxfMU,4049
|
130
131
|
aiagents4pharma/talk2scholars/configs/__init__.py,sha256=tf2gz8n7M4ko6xLdX_C925ELVIxoP6SgkPcbeh59ad4,151
|
131
|
-
aiagents4pharma/talk2scholars/configs/config.yaml,sha256=
|
132
|
+
aiagents4pharma/talk2scholars/configs/config.yaml,sha256=IBrHX_mACNb7R4rrI_zbWgscAMUdIAkOg9LDgLN1o28,386
|
132
133
|
aiagents4pharma/talk2scholars/configs/agents/__init__.py,sha256=yyh7PB2oY_JulnpSQCWS4wwCH_uzIdt47O2Ay48x_oU,75
|
133
|
-
aiagents4pharma/talk2scholars/configs/agents/talk2scholars/__init__.py,sha256=
|
134
|
+
aiagents4pharma/talk2scholars/configs/agents/talk2scholars/__init__.py,sha256=MI4RmoQQ2P-JQgCJ8XEucqF6g2VlNNi37yxcsXFj9Oo,122
|
134
135
|
aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/__init__.py,sha256=fqQQ-GlRcbzru2KmEk3oMma0R6_SzGM8dOXzYeU4oVA,46
|
135
|
-
aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/default.yaml,sha256=
|
136
|
+
aiagents4pharma/talk2scholars/configs/agents/talk2scholars/main_agent/default.yaml,sha256=wHbFTQSfdRc0JO2lbzXXHliFNz40Oza-mGmVphNOoPw,2615
|
136
137
|
aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/__init__.py,sha256=fqQQ-GlRcbzru2KmEk3oMma0R6_SzGM8dOXzYeU4oVA,46
|
137
|
-
aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/default.yaml,sha256=
|
138
|
+
aiagents4pharma/talk2scholars/configs/agents/talk2scholars/s2_agent/default.yaml,sha256=WQOHG1WwnoQSUyIRfEEK6LLGwmWy2gaZNXpb12WsgNk,1975
|
139
|
+
aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/__init__.py,sha256=fqQQ-GlRcbzru2KmEk3oMma0R6_SzGM8dOXzYeU4oVA,46
|
140
|
+
aiagents4pharma/talk2scholars/configs/agents/talk2scholars/zotero_agent/default.yaml,sha256=ZYmGnZnr_Q2q3UpkJDvmezADdJxspUGgngyZiMKJFq8,1958
|
138
141
|
aiagents4pharma/talk2scholars/configs/app/__init__.py,sha256=JoSZV6N669kGMv5zLDszwf0ZjcRHx9TJfIqGhIIdPXE,70
|
139
142
|
aiagents4pharma/talk2scholars/configs/app/frontend/__init__.py,sha256=fqQQ-GlRcbzru2KmEk3oMma0R6_SzGM8dOXzYeU4oVA,46
|
140
143
|
aiagents4pharma/talk2scholars/configs/app/frontend/default.yaml,sha256=wsELBdRLv6UqZ9QZfwpS7K4xfMj5s-a99-aXqIs6WEI,868
|
141
|
-
aiagents4pharma/talk2scholars/configs/tools/__init__.py,sha256=
|
144
|
+
aiagents4pharma/talk2scholars/configs/tools/__init__.py,sha256=z5PzYS1WyoC4PiWVIIOGICldps2yMh2E_2HFZA9ltpQ,177
|
142
145
|
aiagents4pharma/talk2scholars/configs/tools/multi_paper_recommendation/__init__.py,sha256=fqQQ-GlRcbzru2KmEk3oMma0R6_SzGM8dOXzYeU4oVA,46
|
143
146
|
aiagents4pharma/talk2scholars/configs/tools/multi_paper_recommendation/default.yaml,sha256=iEsEW89MlQwKsAW4ZAxLt4pDBwA1qxImYQ2dfONIf6c,442
|
144
147
|
aiagents4pharma/talk2scholars/configs/tools/retrieve_semantic_scholar_paper_id/__init__.py,sha256=fqQQ-GlRcbzru2KmEk3oMma0R6_SzGM8dOXzYeU4oVA,46
|
@@ -147,24 +150,33 @@ aiagents4pharma/talk2scholars/configs/tools/search/__init__.py,sha256=fqQQ-GlRcb
|
|
147
150
|
aiagents4pharma/talk2scholars/configs/tools/search/default.yaml,sha256=tw8N1Mms0qHQbIY3KGDNK1NuT19dQGPiagxzWDdOAJk,504
|
148
151
|
aiagents4pharma/talk2scholars/configs/tools/single_paper_recommendation/__init__.py,sha256=fqQQ-GlRcbzru2KmEk3oMma0R6_SzGM8dOXzYeU4oVA,46
|
149
152
|
aiagents4pharma/talk2scholars/configs/tools/single_paper_recommendation/default.yaml,sha256=TILecrowsu5VGdJPeac6fl5AXSf3piSHN0oKdjY2q1o,596
|
153
|
+
aiagents4pharma/talk2scholars/configs/tools/zotero_read/__init__.py,sha256=fqQQ-GlRcbzru2KmEk3oMma0R6_SzGM8dOXzYeU4oVA,46
|
154
|
+
aiagents4pharma/talk2scholars/configs/tools/zotero_read/default.yaml,sha256=iILspz9EvN8jpVHzMsW3L9BDEST5eqOUO7TnhxwXBrI,468
|
150
155
|
aiagents4pharma/talk2scholars/state/__init__.py,sha256=S6SxlszIMZSIMJehjevPF9sKyR-PAwWb5TEdo6xWXE8,103
|
151
|
-
aiagents4pharma/talk2scholars/state/state_talk2scholars.py,sha256=
|
156
|
+
aiagents4pharma/talk2scholars/state/state_talk2scholars.py,sha256=DoCtKP2qd69mXPwfOb-aYw9Hq2fYmx6b76S-HlsVSNo,2382
|
152
157
|
aiagents4pharma/talk2scholars/tests/__init__.py,sha256=U3PsTiUZaUBD1IZanFGkDIOdFieDVJtGKQ5-woYUo8c,45
|
158
|
+
aiagents4pharma/talk2scholars/tests/test_call_s2.py,sha256=kWvjWWjQC3LJuEVmOv5RnHpDqEeGzALZ5-esv65mQvU,3256
|
159
|
+
aiagents4pharma/talk2scholars/tests/test_call_zotero.py,sha256=00854fAYJQtd96pb9zlBJ41WgCEWPEra0fwE7gxNnCk,3195
|
153
160
|
aiagents4pharma/talk2scholars/tests/test_llm_main_integration.py,sha256=SAMG-Kb2S9sei8Us5vUWCUJikTKXPZVKQ6aJJPEhJsc,1880
|
154
|
-
aiagents4pharma/talk2scholars/tests/test_main_agent.py,sha256=
|
161
|
+
aiagents4pharma/talk2scholars/tests/test_main_agent.py,sha256=VS5M5sqL0rfSma_pxsGDOH-39K8pJJEbCfTocaWBTOc,4276
|
162
|
+
aiagents4pharma/talk2scholars/tests/test_routing_logic.py,sha256=AZrvaEBDk51KL6edrZY3GpQ_N6VbrlADqXFeg_jxDoQ,2284
|
155
163
|
aiagents4pharma/talk2scholars/tests/test_s2_agent.py,sha256=-yEoG2v5SMkCLCrSA2DFcNE-xMOSn97N4UTomzCeW40,7559
|
156
164
|
aiagents4pharma/talk2scholars/tests/test_s2_tools.py,sha256=QEwraJk9_Kp6ZSGYyYDXWH62wIjSwi1Pptwwbx1fuG0,13176
|
157
165
|
aiagents4pharma/talk2scholars/tests/test_state.py,sha256=_iHXvoZnU_eruf8l1sQKBSCIVnxNkH_9VzkVtZZA6bY,384
|
158
|
-
aiagents4pharma/talk2scholars/
|
166
|
+
aiagents4pharma/talk2scholars/tests/test_zotero_agent.py,sha256=sqoMo2nZPChRiTIb4kWKDLp8iPzCOEKSYcnj9XzE6wg,5932
|
167
|
+
aiagents4pharma/talk2scholars/tests/test_zotero_tool.py,sha256=LI7KBTxPga7E-841pugjpNqtWgoIz0mDIJEZzdIL9eI,5759
|
168
|
+
aiagents4pharma/talk2scholars/tools/__init__.py,sha256=-9iXVIGzFLak6a14Ib8yDg1bfiHgJz2nAhwWEk1jhOk,89
|
159
169
|
aiagents4pharma/talk2scholars/tools/s2/__init__.py,sha256=wytqCmGm8Fbl8y5qLdIkxhhG8VHLYMifCGjbH_LK2Fc,258
|
160
170
|
aiagents4pharma/talk2scholars/tools/s2/display_results.py,sha256=UR0PtEHGDpOhPH0Di5HT8-Fip2RkEMTJgzROsChb1gc,2959
|
161
|
-
aiagents4pharma/talk2scholars/tools/s2/multi_paper_rec.py,sha256=
|
171
|
+
aiagents4pharma/talk2scholars/tools/s2/multi_paper_rec.py,sha256=QM30Oq3518cuEWwpfA5R7NzNmNklYUkt9Y1D5jdjmG4,5430
|
162
172
|
aiagents4pharma/talk2scholars/tools/s2/query_results.py,sha256=EUfzRh5Qc_tMl5fDIFb9PIsQkkrU4Xb5MR0sud_X5-c,2017
|
163
173
|
aiagents4pharma/talk2scholars/tools/s2/retrieve_semantic_scholar_paper_id.py,sha256=Lg1L4HQCN2LaQEyWtLD73O67PMoXkPHi-Y8rCzHS0A4,2499
|
164
|
-
aiagents4pharma/talk2scholars/tools/s2/search.py,sha256=
|
165
|
-
aiagents4pharma/talk2scholars/tools/s2/single_paper_rec.py,sha256=
|
166
|
-
aiagents4pharma
|
167
|
-
aiagents4pharma
|
168
|
-
aiagents4pharma-1.
|
169
|
-
aiagents4pharma-1.
|
170
|
-
aiagents4pharma-1.
|
174
|
+
aiagents4pharma/talk2scholars/tools/s2/search.py,sha256=i5KMFJWK31CjYtVT1McJpLzgcwvyTHZe2aHZlscfK3Q,4667
|
175
|
+
aiagents4pharma/talk2scholars/tools/s2/single_paper_rec.py,sha256=7PoZfcstxDThWX6NYOgxN_9M_nwgMPAALch8OmjraVY,5568
|
176
|
+
aiagents4pharma/talk2scholars/tools/zotero/__init__.py,sha256=1UW4r5ECvAwYpo1Fjf7lQPO--M8I85baYCHocFOAq4M,53
|
177
|
+
aiagents4pharma/talk2scholars/tools/zotero/zotero_read.py,sha256=NJ65fAJ4u2Zq15uvEajVOhI4QnNvyqA6FHPaEDqvMw0,4321
|
178
|
+
aiagents4pharma-1.23.0.dist-info/LICENSE,sha256=IcIbyB1Hyk5ZDah03VNQvJkbNk2hkBCDqQ8qtnCvB4Q,1077
|
179
|
+
aiagents4pharma-1.23.0.dist-info/METADATA,sha256=wu_6sSTg9hG3eXOX27pKj2qSza_HxfeFV_T_oef57NY,7986
|
180
|
+
aiagents4pharma-1.23.0.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
181
|
+
aiagents4pharma-1.23.0.dist-info/top_level.txt,sha256=-AH8rMmrSnJtq7HaAObS78UU-cTCwvX660dSxeM7a0A,16
|
182
|
+
aiagents4pharma-1.23.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|