aiagents4pharma 1.17.1__py3-none-any.whl → 1.19.0__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- aiagents4pharma/talk2biomodels/agents/t2b_agent.py +4 -4
- aiagents4pharma/talk2biomodels/configs/tools/ask_question/default.yaml +7 -15
- aiagents4pharma/talk2biomodels/states/state_talk2biomodels.py +4 -1
- aiagents4pharma/talk2biomodels/tests/test_ask_question.py +4 -2
- aiagents4pharma/talk2biomodels/tests/test_get_annotation.py +4 -2
- aiagents4pharma/talk2biomodels/tests/test_integration.py +34 -30
- aiagents4pharma/talk2biomodels/tests/test_query_article.py +7 -1
- aiagents4pharma/talk2biomodels/tests/test_search_models.py +3 -1
- aiagents4pharma/talk2biomodels/tests/test_steady_state.py +6 -3
- aiagents4pharma/talk2biomodels/tools/ask_question.py +1 -2
- aiagents4pharma/talk2biomodels/tools/custom_plotter.py +23 -10
- aiagents4pharma/talk2biomodels/tools/get_annotation.py +11 -10
- aiagents4pharma/talk2biomodels/tools/query_article.py +6 -2
- aiagents4pharma/talk2biomodels/tools/search_models.py +8 -2
- aiagents4pharma/talk2knowledgegraphs/__init__.py +3 -0
- aiagents4pharma/talk2knowledgegraphs/agents/__init__.py +4 -0
- aiagents4pharma/talk2knowledgegraphs/agents/t2kg_agent.py +85 -0
- aiagents4pharma/talk2knowledgegraphs/configs/__init__.py +7 -0
- aiagents4pharma/talk2knowledgegraphs/configs/agents/t2kg_agent/__init__.py +3 -0
- aiagents4pharma/talk2knowledgegraphs/configs/agents/t2kg_agent/default.yaml +62 -0
- aiagents4pharma/talk2knowledgegraphs/configs/app/__init__.py +4 -0
- aiagents4pharma/talk2knowledgegraphs/configs/app/frontend/__init__.py +3 -0
- aiagents4pharma/talk2knowledgegraphs/configs/app/frontend/default.yaml +31 -0
- aiagents4pharma/talk2knowledgegraphs/configs/config.yaml +7 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/__init__.py +6 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/graphrag_reasoning/__init__.py +3 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/graphrag_reasoning/default.yaml +24 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_extraction/__init__.py +3 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_extraction/default.yaml +43 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_summarization/__init__.py +3 -0
- aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_summarization/default.yaml +9 -0
- aiagents4pharma/talk2knowledgegraphs/states/__init__.py +4 -0
- aiagents4pharma/talk2knowledgegraphs/states/state_talk2knowledgegraphs.py +38 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_agents_t2kg_agent.py +110 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_tools_graphrag_reasoning.py +210 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_tools_subgraph_extraction.py +174 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_tools_subgraph_summarization.py +154 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_huggingface.py +0 -1
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_ollama.py +56 -0
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_ollama.py +18 -42
- aiagents4pharma/talk2knowledgegraphs/tests/test_utils_kg_utils.py +79 -0
- aiagents4pharma/talk2knowledgegraphs/tools/__init__.py +6 -0
- aiagents4pharma/talk2knowledgegraphs/tools/graphrag_reasoning.py +143 -0
- aiagents4pharma/talk2knowledgegraphs/tools/load_arguments.py +22 -0
- aiagents4pharma/talk2knowledgegraphs/tools/subgraph_extraction.py +305 -0
- aiagents4pharma/talk2knowledgegraphs/tools/subgraph_summarization.py +126 -0
- aiagents4pharma/talk2knowledgegraphs/utils/__init__.py +4 -2
- aiagents4pharma/talk2knowledgegraphs/utils/embeddings/__init__.py +1 -0
- aiagents4pharma/talk2knowledgegraphs/utils/embeddings/ollama.py +81 -0
- aiagents4pharma/talk2knowledgegraphs/utils/extractions/__init__.py +4 -0
- aiagents4pharma/talk2knowledgegraphs/utils/extractions/pcst.py +225 -0
- {aiagents4pharma-1.17.1.dist-info → aiagents4pharma-1.19.0.dist-info}/METADATA +12 -3
- {aiagents4pharma-1.17.1.dist-info → aiagents4pharma-1.19.0.dist-info}/RECORD +56 -24
- {aiagents4pharma-1.17.1.dist-info → aiagents4pharma-1.19.0.dist-info}/LICENSE +0 -0
- {aiagents4pharma-1.17.1.dist-info → aiagents4pharma-1.19.0.dist-info}/WHEEL +0 -0
- {aiagents4pharma-1.17.1.dist-info → aiagents4pharma-1.19.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,225 @@
|
|
1
|
+
"""
|
2
|
+
Exctraction of subgraph using Prize-Collecting Steiner Tree (PCST) algorithm.
|
3
|
+
"""
|
4
|
+
|
5
|
+
from typing import Tuple, NamedTuple
|
6
|
+
import numpy as np
|
7
|
+
import torch
|
8
|
+
import pcst_fast
|
9
|
+
from torch_geometric.data.data import Data
|
10
|
+
|
11
|
+
class PCSTPruning(NamedTuple):
|
12
|
+
"""
|
13
|
+
Prize-Collecting Steiner Tree (PCST) pruning algorithm implementation inspired by G-Retriever
|
14
|
+
(He et al., 'G-Retriever: Retrieval-Augmented Generation for Textual Graph Understanding and
|
15
|
+
Question Answering', NeurIPS 2024) paper.
|
16
|
+
https://arxiv.org/abs/2402.07630
|
17
|
+
https://github.com/XiaoxinHe/G-Retriever/blob/main/src/dataset/utils/retrieval.py
|
18
|
+
|
19
|
+
Args:
|
20
|
+
topk: The number of top nodes to consider.
|
21
|
+
topk_e: The number of top edges to consider.
|
22
|
+
cost_e: The cost of the edges.
|
23
|
+
c_const: The constant value for the cost of the edges computation.
|
24
|
+
root: The root node of the subgraph, -1 for unrooted.
|
25
|
+
num_clusters: The number of clusters.
|
26
|
+
pruning: The pruning strategy to use.
|
27
|
+
verbosity_level: The verbosity level.
|
28
|
+
"""
|
29
|
+
topk: int = 3
|
30
|
+
topk_e: int = 3
|
31
|
+
cost_e: float = 0.5
|
32
|
+
c_const: float = 0.01
|
33
|
+
root: int = -1
|
34
|
+
num_clusters: int = 1
|
35
|
+
pruning: str = "gw"
|
36
|
+
verbosity_level: int = 0
|
37
|
+
|
38
|
+
def compute_prizes(self, graph: Data, query_emb: torch.Tensor) -> np.ndarray:
|
39
|
+
"""
|
40
|
+
Compute the node prizes based on the cosine similarity between the query and nodes,
|
41
|
+
as well as the edge prizes based on the cosine similarity between the query and edges.
|
42
|
+
Note that the node and edge embeddings shall use the same embedding model and dimensions
|
43
|
+
with the query.
|
44
|
+
|
45
|
+
Args:
|
46
|
+
graph: The knowledge graph in PyTorch Geometric Data format.
|
47
|
+
query_emb: The query embedding in PyTorch Tensor format.
|
48
|
+
|
49
|
+
Returns:
|
50
|
+
The prizes of the nodes and edges.
|
51
|
+
"""
|
52
|
+
# Compute prizes for nodes
|
53
|
+
n_prizes = torch.nn.CosineSimilarity(dim=-1)(query_emb, graph.x)
|
54
|
+
topk = min(self.topk, graph.num_nodes)
|
55
|
+
_, topk_n_indices = torch.topk(n_prizes, topk, largest=True)
|
56
|
+
n_prizes = torch.zeros_like(n_prizes)
|
57
|
+
n_prizes[topk_n_indices] = torch.arange(topk, 0, -1).float()
|
58
|
+
|
59
|
+
# Compute prizes for edges
|
60
|
+
# e_prizes = torch.nn.CosineSimilarity(dim=-1)(query_emb, graph.edge_attr)
|
61
|
+
# topk_e = min(self.topk_e, e_prizes.unique().size(0))
|
62
|
+
# topk_e_values, _ = torch.topk(e_prizes.unique(), topk_e, largest=True)
|
63
|
+
# e_prizes[e_prizes < topk_e_values[-1]] = 0.0
|
64
|
+
# last_topk_e_value = topk_e
|
65
|
+
# for k in range(topk_e):
|
66
|
+
# indices = e_prizes == topk_e_values[k]
|
67
|
+
# value = min((topk_e - k) / sum(indices), last_topk_e_value)
|
68
|
+
# e_prizes[indices] = value
|
69
|
+
# last_topk_e_value = value * (1 - self.c_const)
|
70
|
+
|
71
|
+
# Optimized version of the above code
|
72
|
+
e_prizes = torch.nn.CosineSimilarity(dim=-1)(query_emb, graph.edge_attr)
|
73
|
+
unique_prizes, inverse_indices = e_prizes.unique(return_inverse=True)
|
74
|
+
topk_e = min(self.topk_e, unique_prizes.size(0))
|
75
|
+
topk_e_values, _ = torch.topk(unique_prizes, topk_e, largest=True)
|
76
|
+
e_prizes[e_prizes < topk_e_values[-1]] = 0.0
|
77
|
+
last_topk_e_value = topk_e
|
78
|
+
for k in range(topk_e):
|
79
|
+
indices = inverse_indices == (
|
80
|
+
unique_prizes == topk_e_values[k]
|
81
|
+
).nonzero(as_tuple=True)[0]
|
82
|
+
value = min((topk_e - k) / indices.sum().item(), last_topk_e_value)
|
83
|
+
e_prizes[indices] = value
|
84
|
+
last_topk_e_value = value * (1 - self.c_const)
|
85
|
+
|
86
|
+
return {"nodes": n_prizes, "edges": e_prizes}
|
87
|
+
|
88
|
+
def compute_subgraph_costs(
|
89
|
+
self, graph: Data, prizes: dict
|
90
|
+
) -> Tuple[np.ndarray, np.ndarray, np.ndarray]:
|
91
|
+
"""
|
92
|
+
Compute the costs in constructing the subgraph proposed by G-Retriever paper.
|
93
|
+
|
94
|
+
Args:
|
95
|
+
graph: The knowledge graph in PyTorch Geometric Data format.
|
96
|
+
prizes: The prizes of the nodes and the edges.
|
97
|
+
|
98
|
+
Returns:
|
99
|
+
edges: The edges of the subgraph, consisting of edges and number of edges without
|
100
|
+
virtual edges.
|
101
|
+
prizes: The prizes of the subgraph.
|
102
|
+
costs: The costs of the subgraph.
|
103
|
+
"""
|
104
|
+
# Logic to reduce the cost of the edges such that at least one edge is selected
|
105
|
+
updated_cost_e = min(
|
106
|
+
self.cost_e,
|
107
|
+
prizes["edges"].max().item() * (1 - self.c_const / 2),
|
108
|
+
)
|
109
|
+
|
110
|
+
# Initialize variables
|
111
|
+
edges = []
|
112
|
+
costs = []
|
113
|
+
virtual = {
|
114
|
+
"n_prizes": [],
|
115
|
+
"edges": [],
|
116
|
+
"costs": [],
|
117
|
+
}
|
118
|
+
mapping = {"nodes": {}, "edges": {}}
|
119
|
+
|
120
|
+
# Compute the costs, edges, and virtual variables based on the prizes
|
121
|
+
for i, (src, dst) in enumerate(graph.edge_index.T.numpy()):
|
122
|
+
prize_e = prizes["edges"][i]
|
123
|
+
if prize_e <= updated_cost_e:
|
124
|
+
mapping["edges"][len(edges)] = i
|
125
|
+
edges.append((src, dst))
|
126
|
+
costs.append(updated_cost_e - prize_e)
|
127
|
+
else:
|
128
|
+
virtual_node_id = graph.num_nodes + len(virtual["n_prizes"])
|
129
|
+
mapping["nodes"][virtual_node_id] = i
|
130
|
+
virtual["edges"].append((src, virtual_node_id))
|
131
|
+
virtual["edges"].append((virtual_node_id, dst))
|
132
|
+
virtual["costs"].append(0)
|
133
|
+
virtual["costs"].append(0)
|
134
|
+
virtual["n_prizes"].append(prize_e - updated_cost_e)
|
135
|
+
prizes = np.concatenate([prizes["nodes"], np.array(virtual["n_prizes"])])
|
136
|
+
edges_dict = {}
|
137
|
+
edges_dict["edges"] = edges
|
138
|
+
edges_dict["num_prior_edges"] = len(edges)
|
139
|
+
# Final computation of the costs and edges based on the virtual costs and virtual edges
|
140
|
+
if len(virtual["costs"]) > 0:
|
141
|
+
costs = np.array(costs + virtual["costs"])
|
142
|
+
edges = np.array(edges + virtual["edges"])
|
143
|
+
edges_dict["edges"] = edges
|
144
|
+
|
145
|
+
return edges_dict, prizes, costs, mapping
|
146
|
+
|
147
|
+
def get_subgraph_nodes_edges(
|
148
|
+
self, graph: Data, vertices: np.ndarray, edges_dict: dict, mapping: dict,
|
149
|
+
) -> dict:
|
150
|
+
"""
|
151
|
+
Get the selected nodes and edges of the subgraph based on the vertices and edges computed
|
152
|
+
by the PCST algorithm.
|
153
|
+
|
154
|
+
Args:
|
155
|
+
graph: The knowledge graph in PyTorch Geometric Data format.
|
156
|
+
vertices: The vertices of the subgraph computed by the PCST algorithm.
|
157
|
+
edges_dict: The dictionary of edges of the subgraph computed by the PCST algorithm,
|
158
|
+
and the number of prior edges (without virtual edges).
|
159
|
+
mapping: The mapping dictionary of the nodes and edges.
|
160
|
+
num_prior_edges: The number of edges before adding virtual edges.
|
161
|
+
|
162
|
+
Returns:
|
163
|
+
The selected nodes and edges of the extracted subgraph.
|
164
|
+
"""
|
165
|
+
# Get edges information
|
166
|
+
edges = edges_dict["edges"]
|
167
|
+
num_prior_edges = edges_dict["num_prior_edges"]
|
168
|
+
# Retrieve the selected nodes and edges based on the given vertices and edges
|
169
|
+
subgraph_nodes = vertices[vertices < graph.num_nodes]
|
170
|
+
subgraph_edges = [mapping["edges"][e] for e in edges if e < num_prior_edges]
|
171
|
+
virtual_vertices = vertices[vertices >= graph.num_nodes]
|
172
|
+
if len(virtual_vertices) > 0:
|
173
|
+
virtual_vertices = vertices[vertices >= graph.num_nodes]
|
174
|
+
virtual_edges = [mapping["nodes"][i] for i in virtual_vertices]
|
175
|
+
subgraph_edges = np.array(subgraph_edges + virtual_edges)
|
176
|
+
edge_index = graph.edge_index[:, subgraph_edges]
|
177
|
+
subgraph_nodes = np.unique(
|
178
|
+
np.concatenate(
|
179
|
+
[subgraph_nodes, edge_index[0].numpy(), edge_index[1].numpy()]
|
180
|
+
)
|
181
|
+
)
|
182
|
+
|
183
|
+
return {"nodes": subgraph_nodes, "edges": subgraph_edges}
|
184
|
+
|
185
|
+
def extract_subgraph(self, graph: Data, query_emb: torch.Tensor) -> dict:
|
186
|
+
"""
|
187
|
+
Perform the Prize-Collecting Steiner Tree (PCST) algorithm to extract the subgraph.
|
188
|
+
|
189
|
+
Args:
|
190
|
+
graph: The knowledge graph in PyTorch Geometric Data format.
|
191
|
+
query_emb: The query embedding.
|
192
|
+
|
193
|
+
Returns:
|
194
|
+
The selected nodes and edges of the subgraph.
|
195
|
+
"""
|
196
|
+
# Assert the topk and topk_e values for subgraph retrieval
|
197
|
+
assert self.topk > 0, "topk must be greater than or equal to 0"
|
198
|
+
assert self.topk_e > 0, "topk_e must be greater than or equal to 0"
|
199
|
+
|
200
|
+
# Retrieve the top-k nodes and edges based on the query embedding
|
201
|
+
prizes = self.compute_prizes(graph, query_emb)
|
202
|
+
|
203
|
+
# Compute costs in constructing the subgraph
|
204
|
+
edges_dict, prizes, costs, mapping = self.compute_subgraph_costs(
|
205
|
+
graph, prizes
|
206
|
+
)
|
207
|
+
|
208
|
+
# Retrieve the subgraph using the PCST algorithm
|
209
|
+
result_vertices, result_edges = pcst_fast.pcst_fast(
|
210
|
+
edges_dict["edges"],
|
211
|
+
prizes,
|
212
|
+
costs,
|
213
|
+
self.root,
|
214
|
+
self.num_clusters,
|
215
|
+
self.pruning,
|
216
|
+
self.verbosity_level,
|
217
|
+
)
|
218
|
+
|
219
|
+
subgraph = self.get_subgraph_nodes_edges(
|
220
|
+
graph,
|
221
|
+
result_vertices,
|
222
|
+
{"edges": result_edges, "num_prior_edges": edges_dict["num_prior_edges"]},
|
223
|
+
mapping)
|
224
|
+
|
225
|
+
return subgraph
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: aiagents4pharma
|
3
|
-
Version: 1.
|
4
|
-
Summary: AI Agents for drug discovery, drug development, and other pharmaceutical R&D
|
3
|
+
Version: 1.19.0
|
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
|
7
7
|
Classifier: Operating System :: OS Independent
|
@@ -12,6 +12,7 @@ Requires-Dist: copasi_basico==0.78
|
|
12
12
|
Requires-Dist: coverage==7.6.4
|
13
13
|
Requires-Dist: einops==0.8.0
|
14
14
|
Requires-Dist: gdown==5.2.0
|
15
|
+
Requires-Dist: gravis==0.1.0
|
15
16
|
Requires-Dist: huggingface_hub==0.26.5
|
16
17
|
Requires-Dist: hydra-core==1.3.2
|
17
18
|
Requires-Dist: joblib==1.4.2
|
@@ -19,6 +20,7 @@ Requires-Dist: langchain==0.3.7
|
|
19
20
|
Requires-Dist: langchain-community==0.3.5
|
20
21
|
Requires-Dist: langchain-core==0.3.31
|
21
22
|
Requires-Dist: langchain-experimental==0.3.3
|
23
|
+
Requires-Dist: langchain-nvidia-ai-endpoints==0.3.9
|
22
24
|
Requires-Dist: langchain-openai==0.2.5
|
23
25
|
Requires-Dist: langchain_ollama==0.2.2
|
24
26
|
Requires-Dist: langgraph==0.2.66
|
@@ -26,6 +28,7 @@ Requires-Dist: matplotlib==3.9.2
|
|
26
28
|
Requires-Dist: openai==1.59.4
|
27
29
|
Requires-Dist: ollama==0.4.6
|
28
30
|
Requires-Dist: pandas==2.2.3
|
31
|
+
Requires-Dist: pcst_fast==1.0.10
|
29
32
|
Requires-Dist: plotly==5.24.1
|
30
33
|
Requires-Dist: pydantic==2.9.2
|
31
34
|
Requires-Dist: pylint==3.3.1
|
@@ -93,10 +96,16 @@ Check out the tutorials on each agent for detailed instrcutions.
|
|
93
96
|
```bash
|
94
97
|
pip install .
|
95
98
|
```
|
96
|
-
3. **Initialize OPENAI_API_KEY**
|
99
|
+
3. **Initialize OPENAI_API_KEY and NVIDIA_API_KEY**
|
97
100
|
```bash
|
98
101
|
export OPENAI_API_KEY=....
|
99
102
|
```
|
103
|
+
```bash
|
104
|
+
export NVIDIA_API_KEY=....
|
105
|
+
```
|
106
|
+
_You can create a free account at NVIDIA and apply for their
|
107
|
+
free credits [here](https://build.nvidia.com/explore/discover)._
|
108
|
+
|
100
109
|
4. **[Optional] Initialize LANGSMITH_API_KEY**
|
101
110
|
```bash
|
102
111
|
export LANGCHAIN_TRACING_V2=true
|
@@ -1,7 +1,7 @@
|
|
1
1
|
aiagents4pharma/__init__.py,sha256=Ua9fqYW5gV1SZ0nOyOMd4T3wTlBui1-mrlJzFUQLFgY,161
|
2
2
|
aiagents4pharma/talk2biomodels/__init__.py,sha256=1cq1HX2xoi_a0nDPuXYoSTrnL26OHQBW3zXNwwwjFO0,181
|
3
3
|
aiagents4pharma/talk2biomodels/agents/__init__.py,sha256=sn5-fREjMdEvb-OUan3iOqrgYGjplNx3J8hYOaW0Po8,128
|
4
|
-
aiagents4pharma/talk2biomodels/agents/t2b_agent.py,sha256=
|
4
|
+
aiagents4pharma/talk2biomodels/agents/t2b_agent.py,sha256=bbktkTinp5VHHmAZEs1yMPN3Bu7rnyxRq2Cb7xVe8Gw,3477
|
5
5
|
aiagents4pharma/talk2biomodels/api/__init__.py,sha256=_GmDQqDLYpsUPUeE1nBNlT5AI9oTXIcqgOfNfvmonqA,123
|
6
6
|
aiagents4pharma/talk2biomodels/api/kegg.py,sha256=QzYDAfJ16E7tbHGxP8ZNWRizMkMRS_HJuucueXEC1Gg,2943
|
7
7
|
aiagents4pharma/talk2biomodels/api/ols.py,sha256=qq0Qy-gJDxanQW-HfCChDsTQsY1M41ua8hMlTnfuzrA,2202
|
@@ -12,37 +12,37 @@ aiagents4pharma/talk2biomodels/configs/agents/t2b_agent/__init__.py,sha256=-fAOR
|
|
12
12
|
aiagents4pharma/talk2biomodels/configs/agents/t2b_agent/default.yaml,sha256=pSViMKwKyMQDm8LzbfIaGdxph73iHYaXMiv5YOuxM7k,536
|
13
13
|
aiagents4pharma/talk2biomodels/configs/tools/__init__.py,sha256=B08KWjj7bpizuTETGnnngrEVK4nzdWGREdoCCSw1Sm4,102
|
14
14
|
aiagents4pharma/talk2biomodels/configs/tools/ask_question/__init__.py,sha256=-fAORvyFmG2iSvFOFDixmt9OTQRR58y89uhhu2EgbA8,46
|
15
|
-
aiagents4pharma/talk2biomodels/configs/tools/ask_question/default.yaml,sha256=
|
15
|
+
aiagents4pharma/talk2biomodels/configs/tools/ask_question/default.yaml,sha256=7k49GkLbPy4v7w5-zfwkgBUPaH6R1IrRPCXvUiUiCKE,1300
|
16
16
|
aiagents4pharma/talk2biomodels/configs/tools/get_annotation/__init__.py,sha256=-fAORvyFmG2iSvFOFDixmt9OTQRR58y89uhhu2EgbA8,46
|
17
17
|
aiagents4pharma/talk2biomodels/configs/tools/get_annotation/default.yaml,sha256=o5kqLJ5QGJsLMUhAqotudIMhxxNfPUVcDVH1tdRIutU,304
|
18
18
|
aiagents4pharma/talk2biomodels/models/__init__.py,sha256=5fTHHm3PVloYPNKXbgNlcPgv3-u28ZquxGydFYDfhJA,122
|
19
19
|
aiagents4pharma/talk2biomodels/models/basico_model.py,sha256=PH25FTOuUjsmw_UUxoRb-4kptOYpicEn4GqS0phS3nk,4807
|
20
20
|
aiagents4pharma/talk2biomodels/models/sys_bio_model.py,sha256=JeoiGQAvQABHnG0wKR2XBmmxqQdtgO6kxaLDUTUmr1s,2001
|
21
21
|
aiagents4pharma/talk2biomodels/states/__init__.py,sha256=YLg1-N0D9qyRRLRqwqfLCLAqZYDtMVZTfI8Y0b_4tbA,139
|
22
|
-
aiagents4pharma/talk2biomodels/states/state_talk2biomodels.py,sha256=
|
22
|
+
aiagents4pharma/talk2biomodels/states/state_talk2biomodels.py,sha256=S1UtXvocWR8Y9OVUp6pIDFnmaCcjbwmUbW8u79TuGcg,1508
|
23
23
|
aiagents4pharma/talk2biomodels/tests/__init__.py,sha256=Jbw5tJxSrjGoaK5IX3pJWDCNzhrVQ10lkYq2oQ_KQD8,45
|
24
24
|
aiagents4pharma/talk2biomodels/tests/test_api.py,sha256=7Kz2r5F5tjmn3F0LoM33oP-21W633936YHiyf5toGg0,1716
|
25
|
-
aiagents4pharma/talk2biomodels/tests/test_ask_question.py,sha256=
|
25
|
+
aiagents4pharma/talk2biomodels/tests/test_ask_question.py,sha256=rdForKfj2zj2IXl6ntK9_I0AbgsCv8MXOZ2khBnaPms,1620
|
26
26
|
aiagents4pharma/talk2biomodels/tests/test_basico_model.py,sha256=y82fpTJMPHwtXxlle1cGQ_2Bewwpxi0aJSVrVAYLhN0,2060
|
27
|
-
aiagents4pharma/talk2biomodels/tests/test_get_annotation.py,sha256=
|
27
|
+
aiagents4pharma/talk2biomodels/tests/test_get_annotation.py,sha256=GbobfjtCAOV0HddM4pb2o3c49Q05fKIM0Ubnf8BRxHM,8273
|
28
28
|
aiagents4pharma/talk2biomodels/tests/test_getmodelinfo.py,sha256=Y1sFhoMF4mbvlag7D-dEvv6ytjmAqzMLPvSvaVEI_Qk,2045
|
29
|
-
aiagents4pharma/talk2biomodels/tests/test_integration.py,sha256=
|
29
|
+
aiagents4pharma/talk2biomodels/tests/test_integration.py,sha256=XvQmnkIkAcgjmNwsW4FXiCwMMU7fpCpxfqhG2v2KyF4,5170
|
30
30
|
aiagents4pharma/talk2biomodels/tests/test_param_scan.py,sha256=vRbnn4uVWFbfZbU4gVCjHi5WDCUrErut8ElzAPE5y84,2648
|
31
|
-
aiagents4pharma/talk2biomodels/tests/test_query_article.py,sha256=
|
32
|
-
aiagents4pharma/talk2biomodels/tests/test_search_models.py,sha256=
|
31
|
+
aiagents4pharma/talk2biomodels/tests/test_query_article.py,sha256=lArISS111mQUZmjLY82PkRVPSTcN2h8KNF4gpTTvwL0,3185
|
32
|
+
aiagents4pharma/talk2biomodels/tests/test_search_models.py,sha256=ttOzN78b06ixYF_SbSyrhQSnmCgOMlSoeG9Q1FeRAis,1028
|
33
33
|
aiagents4pharma/talk2biomodels/tests/test_simulate_model.py,sha256=GjLE1DZpcKUAFSmoHD86vkfK0b5LJPM8a4WYyraazig,1487
|
34
|
-
aiagents4pharma/talk2biomodels/tests/test_steady_state.py,sha256=
|
34
|
+
aiagents4pharma/talk2biomodels/tests/test_steady_state.py,sha256=2bzxj74vekazgLG7hiMALRiqP_4sVmue9cN4zCZ42T8,3556
|
35
35
|
aiagents4pharma/talk2biomodels/tests/test_sys_bio_model.py,sha256=HSmBBViMi0jYf4gWX21IbppAfDzG0nr_S3KtKS9fZVQ,2165
|
36
36
|
aiagents4pharma/talk2biomodels/tools/__init__.py,sha256=6H2HWv5Q4NZYEmw-Ti5KZnJlEqhaC2HXSDZa6kiSl-U,350
|
37
|
-
aiagents4pharma/talk2biomodels/tools/ask_question.py,sha256=
|
38
|
-
aiagents4pharma/talk2biomodels/tools/custom_plotter.py,sha256=
|
39
|
-
aiagents4pharma/talk2biomodels/tools/get_annotation.py,sha256=
|
37
|
+
aiagents4pharma/talk2biomodels/tools/ask_question.py,sha256=NZwKT7DHc4TW9e8LOkHaRG_nqUs_lEandvi89DTXilQ,4640
|
38
|
+
aiagents4pharma/talk2biomodels/tools/custom_plotter.py,sha256=DsnQIKebchy6tgzLZnY7VLVesu3Es-OdqLfW61kIn3A,4762
|
39
|
+
aiagents4pharma/talk2biomodels/tools/get_annotation.py,sha256=njxUmFuFwlzY3Doq-XlepGXJTMgnYfs88L4RkKSiptw,13438
|
40
40
|
aiagents4pharma/talk2biomodels/tools/get_modelinfo.py,sha256=57dkXrBeRpyiaW3dYkoWIfr6zSsFHcWRhvUVNyLcvUs,6363
|
41
41
|
aiagents4pharma/talk2biomodels/tools/load_arguments.py,sha256=bffNIlBDTCSFYiZprA73yi8Jbb8z3Oh2decVNh1UnZc,4162
|
42
42
|
aiagents4pharma/talk2biomodels/tools/load_biomodel.py,sha256=pyVzLQoMnuJYEwsjeOlqcUrbU1F1Z-pNlgkhFaoKpy0,689
|
43
43
|
aiagents4pharma/talk2biomodels/tools/parameter_scan.py,sha256=aNh94LgBgVXBIczuNkbSsOZ9j54YVEdZWmZbZr7Nk8k,12465
|
44
|
-
aiagents4pharma/talk2biomodels/tools/query_article.py,sha256=
|
45
|
-
aiagents4pharma/talk2biomodels/tools/search_models.py,sha256=
|
44
|
+
aiagents4pharma/talk2biomodels/tools/query_article.py,sha256=6xfirRRMXN-wxqZxYYbKeEMXLMAHKl5IPShfpoOEBcc,2268
|
45
|
+
aiagents4pharma/talk2biomodels/tools/search_models.py,sha256=LdvfCNeiO8fU6lszd7UUzk4NXP6ETuMsCRb2SpXcztw,2841
|
46
46
|
aiagents4pharma/talk2biomodels/tools/simulate_model.py,sha256=qXs9lg9XgA7EaRiX3wBS8w_ug8tI-G3pzhcRg6dTRio,5060
|
47
47
|
aiagents4pharma/talk2biomodels/tools/steady_state.py,sha256=j3ckuNlUtv7lT922MbN0JhT9H0JpWAdx2mLPwao6uu8,7123
|
48
48
|
aiagents4pharma/talk2cells/__init__.py,sha256=zmOP5RAhabgKIQP-W4P4qKME2tG3fhAXM3MeO5_H8kE,120
|
@@ -55,31 +55,63 @@ aiagents4pharma/talk2cells/tools/__init__.py,sha256=38nK2a_lEFRjO3qD6Fo9a3983ZCY
|
|
55
55
|
aiagents4pharma/talk2cells/tools/scp_agent/__init__.py,sha256=s7g0lyH1lMD9pcWHLPtwRJRvzmTh2II7DrxyLulpjmQ,163
|
56
56
|
aiagents4pharma/talk2cells/tools/scp_agent/display_studies.py,sha256=6q59gh_NQaiOU2rn55A3sIIFKlXi4SK3iKgySvUDrtQ,600
|
57
57
|
aiagents4pharma/talk2cells/tools/scp_agent/search_studies.py,sha256=MLe-twtFnOu-P8P9diYq7jvHBHbWFRRCZLcfpUzqPMg,2806
|
58
|
-
aiagents4pharma/talk2knowledgegraphs/__init__.py,sha256=
|
58
|
+
aiagents4pharma/talk2knowledgegraphs/__init__.py,sha256=Z0Eo7LTiKk0STsr8VI7wkCLq7PHrK1vYlH4I1hSNLiA,165
|
59
|
+
aiagents4pharma/talk2knowledgegraphs/agents/__init__.py,sha256=iOAzuy_8A03tQDFtSBhC9dldUo62z5gfxcVtXAdLOJs,92
|
60
|
+
aiagents4pharma/talk2knowledgegraphs/agents/t2kg_agent.py,sha256=j6MA1LB28mqpb6ZEmNLGcvDZvOnlGbJB9r7VXyEGask,3079
|
61
|
+
aiagents4pharma/talk2knowledgegraphs/configs/__init__.py,sha256=Y49ucO22v9oe9EwFiXN6MU2wvyB3_ZBpmHwHbeh-ZVQ,106
|
62
|
+
aiagents4pharma/talk2knowledgegraphs/configs/config.yaml,sha256=rwUIZ2t5j5hlFyre7VnV8zMsP0qpPTwvAFExgvQD6q0,196
|
63
|
+
aiagents4pharma/talk2knowledgegraphs/configs/agents/t2kg_agent/__init__.py,sha256=-fAORvyFmG2iSvFOFDixmt9OTQRR58y89uhhu2EgbA8,46
|
64
|
+
aiagents4pharma/talk2knowledgegraphs/configs/agents/t2kg_agent/default.yaml,sha256=ENCGROwYFpR6g4QD518h73sshdn3vPVpotBMk1QJcpU,4830
|
65
|
+
aiagents4pharma/talk2knowledgegraphs/configs/app/__init__.py,sha256=fKfc3FR7g5KjY9b6jzrU6cwKTVVpkoVZQS3dvUowu34,69
|
66
|
+
aiagents4pharma/talk2knowledgegraphs/configs/app/frontend/__init__.py,sha256=-fAORvyFmG2iSvFOFDixmt9OTQRR58y89uhhu2EgbA8,46
|
67
|
+
aiagents4pharma/talk2knowledgegraphs/configs/app/frontend/default.yaml,sha256=4azC4cH-_-zt-bRVgNjkFM24mjNke6Rgn9pNl7XWrPQ,912
|
68
|
+
aiagents4pharma/talk2knowledgegraphs/configs/tools/__init__.py,sha256=C1yyRZW8hqWw46p_bh1vAJp2z9aVvn4HpKjKkjlWIqY,150
|
69
|
+
aiagents4pharma/talk2knowledgegraphs/configs/tools/graphrag_reasoning/__init__.py,sha256=-fAORvyFmG2iSvFOFDixmt9OTQRR58y89uhhu2EgbA8,46
|
70
|
+
aiagents4pharma/talk2knowledgegraphs/configs/tools/graphrag_reasoning/default.yaml,sha256=Ua99yECXiwp4ZCUDgsDskYbKzcJrv7roQuLj31Zky4c,1037
|
71
|
+
aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_extraction/__init__.py,sha256=-fAORvyFmG2iSvFOFDixmt9OTQRR58y89uhhu2EgbA8,46
|
72
|
+
aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_extraction/default.yaml,sha256=U8HvMsYbaOwDwQPATj7EFvLtTy7XZEplE5WMoNjgYYc,1469
|
73
|
+
aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_summarization/__init__.py,sha256=-fAORvyFmG2iSvFOFDixmt9OTQRR58y89uhhu2EgbA8,46
|
74
|
+
aiagents4pharma/talk2knowledgegraphs/configs/tools/subgraph_summarization/default.yaml,sha256=OOSlPpJVwJK4_lu4lhA2E48yhFFbEYpyHsoi9Orgm00,561
|
59
75
|
aiagents4pharma/talk2knowledgegraphs/datasets/__init__.py,sha256=L3gPuHskSegmtXskVrLIYr7FXe_ibKgJ2GGr1_Wok6k,173
|
60
76
|
aiagents4pharma/talk2knowledgegraphs/datasets/biobridge_primekg.py,sha256=QlzDXmXREoa9MA6-GwzqRjdzndQeGBAF11Td6NFk_9Y,23426
|
61
77
|
aiagents4pharma/talk2knowledgegraphs/datasets/dataset.py,sha256=-LaPLse8BkALqwFetNK7wch2dt9Dz6QKGKZKBKM6bIk,409
|
62
78
|
aiagents4pharma/talk2knowledgegraphs/datasets/primekg.py,sha256=KBMhCJ7yjMWqQJJctFYdpjYAlwv48Jl6i1dddXP4f08,7599
|
63
79
|
aiagents4pharma/talk2knowledgegraphs/datasets/starkqa_primekg.py,sha256=Y-6-nORsnBJlU6rH0skyfr9S9J4PfTWK-af_p5UuknQ,7483
|
80
|
+
aiagents4pharma/talk2knowledgegraphs/states/__init__.py,sha256=XaqorSvx634dWRRlXUdzlisHtYMyqgJ2q7TanzsKlhw,108
|
81
|
+
aiagents4pharma/talk2knowledgegraphs/states/state_talk2knowledgegraphs.py,sha256=6HqGo-awqoyNJG0igm5so5A4Tq8RPkCsjPg8Go38csE,1066
|
64
82
|
aiagents4pharma/talk2knowledgegraphs/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
83
|
+
aiagents4pharma/talk2knowledgegraphs/tests/test_agents_t2kg_agent.py,sha256=CCN6cyhEaiXSvIC-4y3ueDSzjDCBYDsmSmOor-DMeF4,3928
|
65
84
|
aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_biobridge_primekg.py,sha256=crH0eFA3P8P6IYzi1UWNa4YvRVrtlBzoScf9NaE1lDk,9827
|
66
85
|
aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_dataset.py,sha256=NFUlsZvhfIrkF4YenWfahrLK93Xhm5UYEGG_uYN2LVM,566
|
67
86
|
aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_primekg.py,sha256=Pvu0r93CpnhjkfMxc-EiVLpAJ04FdW9iTamCnetu654,2272
|
68
87
|
aiagents4pharma/talk2knowledgegraphs/tests/test_datasets_starkqa_primekg.py,sha256=TuIsqcN1Mww3DTqGk6ebgJBWzUWdMWEq2yRQuYSFqvA,4416
|
88
|
+
aiagents4pharma/talk2knowledgegraphs/tests/test_tools_graphrag_reasoning.py,sha256=aOKHTber2Cg3mjNjfIa6RZU7XdFj5C2ps1YEUXw76CI,10650
|
89
|
+
aiagents4pharma/talk2knowledgegraphs/tests/test_tools_subgraph_extraction.py,sha256=zRi2j9Dm3VFywhhrPjVoJ7z_zJpAEM74MJRXapnhwVE,6246
|
90
|
+
aiagents4pharma/talk2knowledgegraphs/tests/test_tools_subgraph_summarization.py,sha256=oBqfspXXOxH04OQuPb8BCW0liIQTGKXtaPNSrPpQtFc,7597
|
69
91
|
aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_embeddings.py,sha256=uYFoE_6zeU10_1mLLAHUr5c4S2XZMSc0Q_860o-KWEw,1517
|
70
|
-
aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_huggingface.py,sha256=
|
92
|
+
aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_huggingface.py,sha256=hzX84pheZdEsTtikF2KtBFiH44_xPjYXxLA6p4Ax1CY,1623
|
93
|
+
aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_ollama.py,sha256=jn-TrPwF0aR9kVoerwkbMZa3U6Hc6HjV6Zoau4qSH4g,1834
|
71
94
|
aiagents4pharma/talk2knowledgegraphs/tests/test_utils_embeddings_sentencetransformer.py,sha256=Qxo6WeIDRy8aLh1tNKw0kSlzmUj3MtTak63oW2YwB24,1327
|
72
95
|
aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_enrichments.py,sha256=N6HRr4lWHXY7bTHe2uXJe4D_EG9WqZPibZne6qLl9_k,1447
|
73
|
-
aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_ollama.py,sha256=
|
74
|
-
aiagents4pharma/talk2knowledgegraphs/
|
96
|
+
aiagents4pharma/talk2knowledgegraphs/tests/test_utils_enrichments_ollama.py,sha256=JhY7axvVULLywDJ2ctA-gob5YPeaJYWsaMNjHT6L9CU,3021
|
97
|
+
aiagents4pharma/talk2knowledgegraphs/tests/test_utils_kg_utils.py,sha256=pal76wi7WgQWUNk56BrzfFV8jKpbDaHHdbwtgx_gXLI,2410
|
98
|
+
aiagents4pharma/talk2knowledgegraphs/tools/__init__.py,sha256=zpD4h7EYtyq0QNOqLd6bkxrPlPb2XN64ceI9ncgESrA,171
|
99
|
+
aiagents4pharma/talk2knowledgegraphs/tools/graphrag_reasoning.py,sha256=OEuOFncDRdb7TQEGq4rkT5On-jI-R7Nt8K5EBzaND8w,5338
|
100
|
+
aiagents4pharma/talk2knowledgegraphs/tools/load_arguments.py,sha256=zhmsRp-8vjB5rRekqTA07d3yb-42HWqng9dDMkvK6hM,623
|
101
|
+
aiagents4pharma/talk2knowledgegraphs/tools/subgraph_extraction.py,sha256=te06QMFQfgJWrjaGrqpcOYeaV38jwm0KY_rXVSMHkeI,11468
|
102
|
+
aiagents4pharma/talk2knowledgegraphs/tools/subgraph_summarization.py,sha256=mDSBOxopDfNhEJeU8fVI8b5lXTYrRzcc97aLbFgYSy4,4413
|
103
|
+
aiagents4pharma/talk2knowledgegraphs/utils/__init__.py,sha256=Q9mzcSmkmhdnOn13fxGh1fNECYoUR5Y5CCuEJTIxwAI,167
|
75
104
|
aiagents4pharma/talk2knowledgegraphs/utils/kg_utils.py,sha256=6vQnPkeOWae_8jePjhma3sJuMTngy0I0tqzdFt6OqKg,2507
|
76
|
-
aiagents4pharma/talk2knowledgegraphs/utils/embeddings/__init__.py,sha256=
|
105
|
+
aiagents4pharma/talk2knowledgegraphs/utils/embeddings/__init__.py,sha256=4TGK0XIVkkfGOyrSVwFQ-Lp-rzH9CCl-fWcqkFJKRLc,174
|
77
106
|
aiagents4pharma/talk2knowledgegraphs/utils/embeddings/embeddings.py,sha256=1nGznrAj-xT0xuSMBGz2dOujJ7M_IwSR84njxtxsy9A,2523
|
78
107
|
aiagents4pharma/talk2knowledgegraphs/utils/embeddings/huggingface.py,sha256=2vi_elf6EgzfagFAO5QnL3a_aXZyN7B1EBziu44MTfM,3806
|
108
|
+
aiagents4pharma/talk2knowledgegraphs/utils/embeddings/ollama.py,sha256=8w0sjt3Ex5YJ_XvpKl9UbhdTiiaoMIarbPUxLBU-1Uw,2378
|
79
109
|
aiagents4pharma/talk2knowledgegraphs/utils/embeddings/sentence_transformer.py,sha256=36iKlisOpMtGR5xfTAlSHXWvPqVC_Jbezod8kbBBMVg,2136
|
80
110
|
aiagents4pharma/talk2knowledgegraphs/utils/enrichments/__init__.py,sha256=tW426knki2DBIHcWyF_K04iMMdbpIn_e_TpPmTgz2dI,113
|
81
111
|
aiagents4pharma/talk2knowledgegraphs/utils/enrichments/enrichments.py,sha256=Bx8x6zzk5614ApWB90N_iv4_Y_Uq0-KwUeBwYSdQMU4,924
|
82
112
|
aiagents4pharma/talk2knowledgegraphs/utils/enrichments/ollama.py,sha256=8eoxR-VHo0G7ReQIwje7xEhE-SJlHdef7_wJRpnvFIc,4116
|
113
|
+
aiagents4pharma/talk2knowledgegraphs/utils/extractions/__init__.py,sha256=7gwwtfzKhB8GuOBD47XRi0NprwEXkOzwNl5eeu-hDTI,86
|
114
|
+
aiagents4pharma/talk2knowledgegraphs/utils/extractions/pcst.py,sha256=m5p0yoJb7I19ua5yeQfXPf7c4r6S1XPwttsrM7Qoy94,9336
|
83
115
|
aiagents4pharma/talk2scholars/__init__.py,sha256=gphERyVKZHvOnMQsml7TIHlaIshHJ75R1J3FKExkfuY,120
|
84
116
|
aiagents4pharma/talk2scholars/agents/__init__.py,sha256=ykszlVGxz3egLHZAttlNoTPxIrnQJZYva_ssR8fwIFk,117
|
85
117
|
aiagents4pharma/talk2scholars/agents/main_agent.py,sha256=etPQUCjHtD-in-kD7Wg_UD6jRtCHj-mj41y03PYbAQM,4616
|
@@ -112,8 +144,8 @@ aiagents4pharma/talk2scholars/tools/s2/display_results.py,sha256=B8JJGohi1Eyx8C3
|
|
112
144
|
aiagents4pharma/talk2scholars/tools/s2/multi_paper_rec.py,sha256=0Y3q8TkF_Phng9L7g1kk9Fhyit9UNitWurp03H0GZv8,4455
|
113
145
|
aiagents4pharma/talk2scholars/tools/s2/search.py,sha256=CcgFN7YuuQ9Vl1DJcldnnvPrswABKjNxeauK1rABps8,4176
|
114
146
|
aiagents4pharma/talk2scholars/tools/s2/single_paper_rec.py,sha256=irS-igdG8BZbVb0Z4VlIjzsyBlUfREd0v0_RlUM-0_U,4994
|
115
|
-
aiagents4pharma-1.
|
116
|
-
aiagents4pharma-1.
|
117
|
-
aiagents4pharma-1.
|
118
|
-
aiagents4pharma-1.
|
119
|
-
aiagents4pharma-1.
|
147
|
+
aiagents4pharma-1.19.0.dist-info/LICENSE,sha256=IcIbyB1Hyk5ZDah03VNQvJkbNk2hkBCDqQ8qtnCvB4Q,1077
|
148
|
+
aiagents4pharma-1.19.0.dist-info/METADATA,sha256=jMpgcCw7eRa0gUr_cCMCX38iit_D0LQE2VdzHliAk_M,7053
|
149
|
+
aiagents4pharma-1.19.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
150
|
+
aiagents4pharma-1.19.0.dist-info/top_level.txt,sha256=-AH8rMmrSnJtq7HaAObS78UU-cTCwvX660dSxeM7a0A,16
|
151
|
+
aiagents4pharma-1.19.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|