aiagents4pharma 1.46.5__py3-none-any.whl → 1.48.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/talk2aiagents4pharma/Dockerfile +18 -0
- aiagents4pharma/talk2aiagents4pharma/docker-compose/cpu/.env.example +1 -1
- aiagents4pharma/talk2aiagents4pharma/docker-compose/gpu/.env.example +1 -1
- aiagents4pharma/talk2biomodels/agents/t2b_agent.py +2 -0
- aiagents4pharma/talk2biomodels/states/state_talk2biomodels.py +1 -0
- aiagents4pharma/talk2biomodels/tests/test_save_model.py +47 -0
- aiagents4pharma/talk2biomodels/tests/test_simulate_model.py +2 -0
- aiagents4pharma/talk2biomodels/tools/__init__.py +1 -0
- aiagents4pharma/talk2biomodels/tools/save_model.py +98 -0
- aiagents4pharma/talk2biomodels/tools/simulate_model.py +2 -0
- aiagents4pharma/talk2knowledgegraphs/Dockerfile +18 -0
- aiagents4pharma/talk2knowledgegraphs/docker-compose/cpu/.env.example +1 -1
- aiagents4pharma/talk2knowledgegraphs/docker-compose/gpu/.env.example +1 -1
- aiagents4pharma/talk2knowledgegraphs/milvus_data_dump.py +30 -20
- {aiagents4pharma-1.46.5.dist-info → aiagents4pharma-1.48.0.dist-info}/METADATA +1 -1
- {aiagents4pharma-1.46.5.dist-info → aiagents4pharma-1.48.0.dist-info}/RECORD +18 -16
- {aiagents4pharma-1.46.5.dist-info → aiagents4pharma-1.48.0.dist-info}/WHEEL +0 -0
- {aiagents4pharma-1.46.5.dist-info → aiagents4pharma-1.48.0.dist-info}/licenses/LICENSE +0 -0
@@ -58,6 +58,7 @@ LABEL description="AI Agents for Pharma - Streamlit Application"
|
|
58
58
|
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
59
59
|
ca-certificates \
|
60
60
|
curl \
|
61
|
+
gnupg \
|
61
62
|
libmagic1 \
|
62
63
|
libopenblas0 \
|
63
64
|
libomp5 \
|
@@ -66,6 +67,23 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins
|
|
66
67
|
&& update-alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 1 \
|
67
68
|
&& update-alternatives --install /usr/bin/python python /usr/bin/python${PYTHON_VERSION} 1
|
68
69
|
|
70
|
+
# Install CUDA runtime libraries required by cudf/cupy
|
71
|
+
RUN curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/3bf863cc.pub \
|
72
|
+
| gpg --dearmor -o /usr/share/keyrings/nvidia-cuda-keyring.gpg \
|
73
|
+
&& echo "deb [signed-by=/usr/share/keyrings/nvidia-cuda-keyring.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/ /" \
|
74
|
+
> /etc/apt/sources.list.d/nvidia-cuda.list \
|
75
|
+
&& apt-get update \
|
76
|
+
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
77
|
+
cuda-cudart-12-6 \
|
78
|
+
cuda-cudart-dev-12-6 \
|
79
|
+
cuda-nvrtc-12-6 \
|
80
|
+
cuda-nvrtc-dev-12-6 \
|
81
|
+
libcublas-12-6 \
|
82
|
+
libcusparse-12-6 \
|
83
|
+
&& rm -rf /var/lib/apt/lists/*
|
84
|
+
|
85
|
+
ENV LD_LIBRARY_PATH=/usr/local/cuda/lib64
|
86
|
+
|
69
87
|
# Copy UV virtual environment from build stage
|
70
88
|
COPY --from=uv-install /opt/venv /opt/venv
|
71
89
|
|
@@ -15,7 +15,7 @@ MILVUS_HOST=localhost
|
|
15
15
|
MILVUS_PORT=19530
|
16
16
|
MILVUS_USER=root
|
17
17
|
MILVUS_PASSWORD=Milvus
|
18
|
-
MILVUS_DATABASE=
|
18
|
+
MILVUS_DATABASE=t2kg_primekg
|
19
19
|
|
20
20
|
# Specify the data directory for multimodal data to your own data directory
|
21
21
|
# DATA_DIR=/your_absolute_path_to_your_data_dir/
|
@@ -15,7 +15,7 @@ MILVUS_HOST=localhost
|
|
15
15
|
MILVUS_PORT=19530
|
16
16
|
MILVUS_USER=root
|
17
17
|
MILVUS_PASSWORD=Milvus
|
18
|
-
MILVUS_DATABASE=
|
18
|
+
MILVUS_DATABASE=t2kg_primekg
|
19
19
|
|
20
20
|
# Specify the data directory for multimodal data to your own data directory
|
21
21
|
# DATA_DIR=/your_absolute_path_to_your_data_dir/
|
@@ -20,6 +20,7 @@ from ..tools.get_annotation import GetAnnotationTool
|
|
20
20
|
from ..tools.get_modelinfo import GetModelInfoTool
|
21
21
|
from ..tools.parameter_scan import ParameterScanTool
|
22
22
|
from ..tools.query_article import QueryArticle
|
23
|
+
from ..tools.save_model import SaveModelTool
|
23
24
|
from ..tools.search_models import SearchModelsTool
|
24
25
|
from ..tools.simulate_model import SimulateModelTool
|
25
26
|
from ..tools.steady_state import SteadyStateTool
|
@@ -54,6 +55,7 @@ def get_app(uniq_id, llm_model: BaseChatModel):
|
|
54
55
|
ParameterScanTool(),
|
55
56
|
GetAnnotationTool(),
|
56
57
|
QueryArticle(),
|
58
|
+
SaveModelTool(),
|
57
59
|
]
|
58
60
|
)
|
59
61
|
|
@@ -42,6 +42,7 @@ class Talk2Biomodels(AgentState):
|
|
42
42
|
# https://langchain-ai.github.io/langgraph/troubleshooting/errors/INVALID_CONCURRENT_GRAPH_UPDATE/
|
43
43
|
model_id: Annotated[list, operator.add]
|
44
44
|
sbml_file_path: Annotated[list, operator.add]
|
45
|
+
model_as_string: Annotated[list, operator.add]
|
45
46
|
dic_simulated_data: Annotated[list[dict], add_data]
|
46
47
|
dic_scanned_data: Annotated[list[dict], add_data]
|
47
48
|
dic_steady_state_data: Annotated[list[dict], add_data]
|
@@ -0,0 +1,47 @@
|
|
1
|
+
"""
|
2
|
+
Test cases for Talk2Biomodels.
|
3
|
+
"""
|
4
|
+
|
5
|
+
import tempfile
|
6
|
+
|
7
|
+
from langchain_core.messages import HumanMessage
|
8
|
+
from langchain_openai import ChatOpenAI
|
9
|
+
|
10
|
+
from ..agents.t2b_agent import get_app
|
11
|
+
|
12
|
+
LLM_MODEL = ChatOpenAI(model="gpt-4o-mini", temperature=0)
|
13
|
+
|
14
|
+
|
15
|
+
def test_save_model_tool():
|
16
|
+
"""
|
17
|
+
Test the save_model tool.
|
18
|
+
"""
|
19
|
+
unique_id = 123
|
20
|
+
app = get_app(unique_id, llm_model=LLM_MODEL)
|
21
|
+
config = {"configurable": {"thread_id": unique_id}}
|
22
|
+
# Simulate a model
|
23
|
+
prompt = "Simulate model 64"
|
24
|
+
# Invoke the agent
|
25
|
+
app.invoke({"messages": [HumanMessage(content=prompt)]}, config=config)
|
26
|
+
current_state = app.get_state(config)
|
27
|
+
assert current_state.values["model_as_string"][-1] is not None
|
28
|
+
# Save a model without simulating
|
29
|
+
prompt = "Save the model"
|
30
|
+
# Invoke the agent
|
31
|
+
app.invoke({"messages": [HumanMessage(content=prompt)]}, config=config)
|
32
|
+
current_state = app.get_state(config)
|
33
|
+
assert current_state.values["model_as_string"][-1] is not None
|
34
|
+
# Create a temporary directory to save the model
|
35
|
+
with tempfile.TemporaryDirectory() as temp_dir:
|
36
|
+
# Save a model to the temporary directory
|
37
|
+
prompt = f"Simulate model 64 and save it model at {temp_dir}"
|
38
|
+
# Invoke the agent
|
39
|
+
app.invoke({"messages": [HumanMessage(content=prompt)]}, config=config)
|
40
|
+
current_state = app.get_state(config)
|
41
|
+
assert current_state.values["model_as_string"][-1] is not None
|
42
|
+
# Simulate and save a model in non-existing path
|
43
|
+
prompt = "Simulate model 64 and then save the model at /xyz/"
|
44
|
+
# Invoke the agent
|
45
|
+
app.invoke({"messages": [HumanMessage(content=prompt)]}, config=config)
|
46
|
+
current_state = app.get_state(config)
|
47
|
+
assert current_state.values["model_as_string"][-1] is not None
|
@@ -40,3 +40,5 @@ def test_simulate_model_tool():
|
|
40
40
|
assert "1,3-bisphosphoglycerate" in dic_simulated_data[0]["data"]
|
41
41
|
# Check if the data of the second model contains
|
42
42
|
assert "mTORC2" in dic_simulated_data[1]["data"]
|
43
|
+
# Check if the model_as_string is not None
|
44
|
+
assert current_state.values["model_as_string"][-1] is not None
|
@@ -0,0 +1,98 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
|
3
|
+
"""
|
4
|
+
Tool for saving models.
|
5
|
+
"""
|
6
|
+
|
7
|
+
import logging
|
8
|
+
import os
|
9
|
+
from typing import Annotated
|
10
|
+
|
11
|
+
from langchain_core.messages import ToolMessage
|
12
|
+
from langchain_core.tools import BaseTool
|
13
|
+
from langchain_core.tools.base import InjectedToolCallId
|
14
|
+
from langgraph.prebuilt import InjectedState
|
15
|
+
from langgraph.types import Command
|
16
|
+
from pydantic import BaseModel, Field
|
17
|
+
|
18
|
+
# Initialize logger
|
19
|
+
logging.basicConfig(level=logging.INFO)
|
20
|
+
logger = logging.getLogger(__name__)
|
21
|
+
|
22
|
+
|
23
|
+
class SaveModelInput(BaseModel):
|
24
|
+
"""
|
25
|
+
Input schema for the save model tool.
|
26
|
+
"""
|
27
|
+
|
28
|
+
path_to_folder: str = Field(
|
29
|
+
description="Path to folder to save the model. Keep it to . if not provided.", default="."
|
30
|
+
)
|
31
|
+
output_filename: str = Field(
|
32
|
+
description="Filename to save the model as. Default is 'saved_model.xml'.",
|
33
|
+
default="saved_model.xml",
|
34
|
+
)
|
35
|
+
tool_call_id: Annotated[str, InjectedToolCallId]
|
36
|
+
state: Annotated[dict, InjectedState]
|
37
|
+
|
38
|
+
|
39
|
+
# Note: It's important that every field has type hints. BaseTool is a
|
40
|
+
# Pydantic class and not having type hints can lead to unexpected behavior.
|
41
|
+
class SaveModelTool(BaseTool):
|
42
|
+
"""
|
43
|
+
Tool for saving a model.
|
44
|
+
"""
|
45
|
+
|
46
|
+
name: str = "save_model"
|
47
|
+
description: str = "A tool to save the current biomodel to a \
|
48
|
+
user specified path with the default filename\
|
49
|
+
'saved_model.xml'"
|
50
|
+
args_schema: type[BaseModel] = SaveModelInput
|
51
|
+
return_direct: bool = False
|
52
|
+
|
53
|
+
def _run(
|
54
|
+
self,
|
55
|
+
tool_call_id: Annotated[str, InjectedToolCallId],
|
56
|
+
state: Annotated[dict, InjectedState],
|
57
|
+
path_to_folder: str = ".",
|
58
|
+
output_filename: str = "saved_model.xml",
|
59
|
+
) -> Command:
|
60
|
+
"""
|
61
|
+
Run the tool.
|
62
|
+
|
63
|
+
Args:
|
64
|
+
path (str): The path to save the model.
|
65
|
+
tool_call_id (str): The tool call ID.
|
66
|
+
|
67
|
+
Returns:
|
68
|
+
|
69
|
+
"""
|
70
|
+
logger.log(
|
71
|
+
logging.INFO,
|
72
|
+
"Saving model to path: %s with filename: %s",
|
73
|
+
path_to_folder,
|
74
|
+
output_filename,
|
75
|
+
)
|
76
|
+
# Check if path does not exist
|
77
|
+
if not os.path.exists(path_to_folder):
|
78
|
+
content = f"Error: Path {path_to_folder} does not exist."
|
79
|
+
logger.error(content)
|
80
|
+
else:
|
81
|
+
logger.info("Saving now")
|
82
|
+
# Save the model to the specified path
|
83
|
+
with open(os.path.join(path_to_folder, output_filename), "w", encoding="utf-8") as f:
|
84
|
+
f.write(state["model_as_string"][-1])
|
85
|
+
content = f"Model saved successfully to {path_to_folder}/{output_filename}."
|
86
|
+
logger.info(content)
|
87
|
+
# Return the updated state of the tool
|
88
|
+
return Command(
|
89
|
+
update={
|
90
|
+
# update the message history
|
91
|
+
"messages": [
|
92
|
+
ToolMessage(
|
93
|
+
content=content,
|
94
|
+
tool_call_id=tool_call_id,
|
95
|
+
)
|
96
|
+
],
|
97
|
+
}
|
98
|
+
)
|
@@ -7,6 +7,7 @@ Tool for simulating a model.
|
|
7
7
|
import logging
|
8
8
|
from typing import Annotated
|
9
9
|
|
10
|
+
import basico
|
10
11
|
from langchain_core.messages import ToolMessage
|
11
12
|
from langchain_core.tools import BaseTool
|
12
13
|
from langchain_core.tools.base import InjectedToolCallId
|
@@ -116,6 +117,7 @@ class SimulateModelTool(BaseTool):
|
|
116
117
|
"model_id": [sys_bio_model.biomodel_id],
|
117
118
|
"sbml_file_path": [sbml_file_path],
|
118
119
|
"dic_simulated_data": [dic_simulated_data],
|
120
|
+
"model_as_string": [basico.model_io.save_model_to_string()],
|
119
121
|
}.items():
|
120
122
|
if value:
|
121
123
|
dic_updated_state_for_model[key] = value
|
@@ -58,6 +58,7 @@ LABEL description="AI Agents for Pharma - Knowledge Graphs Application"
|
|
58
58
|
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
59
59
|
ca-certificates \
|
60
60
|
curl \
|
61
|
+
gnupg \
|
61
62
|
libmagic1 \
|
62
63
|
libopenblas0 \
|
63
64
|
libomp5 \
|
@@ -66,6 +67,23 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins
|
|
66
67
|
&& update-alternatives --install /usr/bin/python3 python3 /usr/bin/python${PYTHON_VERSION} 1 \
|
67
68
|
&& update-alternatives --install /usr/bin/python python /usr/bin/python${PYTHON_VERSION} 1
|
68
69
|
|
70
|
+
# Install CUDA runtime libraries required by cudf/cupy
|
71
|
+
RUN curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/3bf863cc.pub \
|
72
|
+
| gpg --dearmor -o /usr/share/keyrings/nvidia-cuda-keyring.gpg \
|
73
|
+
&& echo "deb [signed-by=/usr/share/keyrings/nvidia-cuda-keyring.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/ /" \
|
74
|
+
> /etc/apt/sources.list.d/nvidia-cuda.list \
|
75
|
+
&& apt-get update \
|
76
|
+
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
77
|
+
cuda-cudart-12-6 \
|
78
|
+
cuda-cudart-dev-12-6 \
|
79
|
+
cuda-nvrtc-12-6 \
|
80
|
+
cuda-nvrtc-dev-12-6 \
|
81
|
+
libcublas-12-6 \
|
82
|
+
libcusparse-12-6 \
|
83
|
+
&& rm -rf /var/lib/apt/lists/*
|
84
|
+
|
85
|
+
ENV LD_LIBRARY_PATH=/usr/local/cuda/lib64
|
86
|
+
|
69
87
|
# Copy UV virtual environment from build stage
|
70
88
|
COPY --from=uv-install /opt/venv /opt/venv
|
71
89
|
|
@@ -15,7 +15,7 @@ MILVUS_HOST=localhost
|
|
15
15
|
MILVUS_PORT=19530
|
16
16
|
MILVUS_USER=root
|
17
17
|
MILVUS_PASSWORD=Milvus
|
18
|
-
MILVUS_DATABASE=
|
18
|
+
MILVUS_DATABASE=t2kg_primekg
|
19
19
|
|
20
20
|
# Specify the data directory for multimodal data to your own data directory
|
21
21
|
# DATA_DIR=/your_absolute_path_to_your_data_dir/
|
@@ -15,7 +15,7 @@ MILVUS_HOST=localhost
|
|
15
15
|
MILVUS_PORT=19530
|
16
16
|
MILVUS_USER=root
|
17
17
|
MILVUS_PASSWORD=Milvus
|
18
|
-
MILVUS_DATABASE=
|
18
|
+
MILVUS_DATABASE=t2kg_primekg
|
19
19
|
|
20
20
|
# Specify the data directory for multimodal data to your own data directory
|
21
21
|
# DATA_DIR=/your_absolute_path_to_your_data_dir/
|
@@ -150,6 +150,7 @@ class DynamicDataLoader:
|
|
150
150
|
self.normalize_vectors = self.use_gpu # Only normalize for GPU (original logic)
|
151
151
|
self.vector_index_type = "GPU_CAGRA" if self.use_gpu else "HNSW"
|
152
152
|
self.metric_type = "IP" if self.use_gpu else "COSINE"
|
153
|
+
self.vector_index_params = self._build_vector_index_params()
|
153
154
|
|
154
155
|
logger.info("Loader Configuration:")
|
155
156
|
logger.info(" Using GPU acceleration: %s", self.use_gpu)
|
@@ -284,6 +285,29 @@ class DynamicDataLoader:
|
|
284
285
|
else:
|
285
286
|
return list(data)
|
286
287
|
|
288
|
+
def _build_vector_index_params(self) -> dict[str, Any]:
|
289
|
+
"""Return index params tuned for the selected backend."""
|
290
|
+
base_params: dict[str, Any] = {
|
291
|
+
"index_type": self.vector_index_type,
|
292
|
+
"metric_type": self.metric_type,
|
293
|
+
}
|
294
|
+
|
295
|
+
if self.vector_index_type == "GPU_CAGRA":
|
296
|
+
base_params["params"] = {
|
297
|
+
"graph_degree": int(os.getenv("CAGRA_GRAPH_DEGREE", "32")),
|
298
|
+
"intermediate_graph_degree": int(
|
299
|
+
os.getenv("CAGRA_INTERMEDIATE_GRAPH_DEGREE", "40")
|
300
|
+
),
|
301
|
+
"search_width": int(os.getenv("CAGRA_SEARCH_WIDTH", "64")),
|
302
|
+
}
|
303
|
+
elif self.vector_index_type == "HNSW":
|
304
|
+
base_params["params"] = {
|
305
|
+
"M": int(os.getenv("HNSW_M", "16")),
|
306
|
+
"efConstruction": int(os.getenv("HNSW_EF_CONSTRUCTION", "200")),
|
307
|
+
}
|
308
|
+
|
309
|
+
return base_params
|
310
|
+
|
287
311
|
def connect_to_milvus(self):
|
288
312
|
"""Connect to Milvus and setup database."""
|
289
313
|
logger.info("Connecting to Milvus at %s:%s", self.milvus_host, self.milvus_port)
|
@@ -442,10 +466,7 @@ class DynamicDataLoader:
|
|
442
466
|
)
|
443
467
|
collection.create_index(
|
444
468
|
field_name="desc_emb",
|
445
|
-
index_params=
|
446
|
-
"index_type": self.vector_index_type,
|
447
|
-
"metric_type": self.metric_type,
|
448
|
-
},
|
469
|
+
index_params=self.vector_index_params.copy(),
|
449
470
|
index_name="desc_emb_index",
|
450
471
|
)
|
451
472
|
|
@@ -569,18 +590,12 @@ class DynamicDataLoader:
|
|
569
590
|
)
|
570
591
|
collection.create_index(
|
571
592
|
field_name="desc_emb",
|
572
|
-
index_params=
|
573
|
-
"index_type": self.vector_index_type,
|
574
|
-
"metric_type": self.metric_type,
|
575
|
-
},
|
593
|
+
index_params=self.vector_index_params.copy(),
|
576
594
|
index_name="desc_emb_index",
|
577
595
|
)
|
578
596
|
collection.create_index(
|
579
597
|
field_name="feat_emb",
|
580
|
-
index_params=
|
581
|
-
"index_type": self.vector_index_type,
|
582
|
-
"metric_type": self.metric_type,
|
583
|
-
},
|
598
|
+
index_params=self.vector_index_params.copy(),
|
584
599
|
index_name="feat_emb_index",
|
585
600
|
)
|
586
601
|
|
@@ -706,10 +721,7 @@ class DynamicDataLoader:
|
|
706
721
|
)
|
707
722
|
collection.create_index(
|
708
723
|
field_name="feat_emb",
|
709
|
-
index_params=
|
710
|
-
"index_type": self.vector_index_type,
|
711
|
-
"metric_type": self.metric_type,
|
712
|
-
},
|
724
|
+
index_params=self.vector_index_params.copy(),
|
713
725
|
index_name="feat_emb_index",
|
714
726
|
)
|
715
727
|
|
@@ -796,8 +808,7 @@ class DynamicDataLoader:
|
|
796
808
|
logger.info(" %s: %d entities", coll, collection.num_entities)
|
797
809
|
|
798
810
|
except Exception:
|
799
|
-
logger.
|
800
|
-
logger.debug("Detailed error information available in debug mode")
|
811
|
+
logger.exception("Error occurred during data loading")
|
801
812
|
raise
|
802
813
|
|
803
814
|
|
@@ -867,8 +878,7 @@ def main():
|
|
867
878
|
logger.info("Data loading interrupted by user")
|
868
879
|
sys.exit(1)
|
869
880
|
except Exception:
|
870
|
-
logger.
|
871
|
-
logger.debug("Detailed error information available in debug mode")
|
881
|
+
logger.exception("Fatal error occurred during data loading")
|
872
882
|
sys.exit(1)
|
873
883
|
|
874
884
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
aiagents4pharma/__init__.py,sha256=B-tLRCbWgti-jlCnW_qknNKrG4j1t9nhBb-gXaz0Wtg,187
|
2
2
|
aiagents4pharma/talk2aiagents4pharma/.dockerignore,sha256=-hAM7RzkGbjDeU411-kXOmYzNfl3Z9OlLWvN9zMDAXE,89
|
3
|
-
aiagents4pharma/talk2aiagents4pharma/Dockerfile,sha256=
|
3
|
+
aiagents4pharma/talk2aiagents4pharma/Dockerfile,sha256=DScrZujkLc5OY79XP5KSAfxiniQlZ5MWHkbtw534JY4,4295
|
4
4
|
aiagents4pharma/talk2aiagents4pharma/README.md,sha256=0eGxj7jxi_LrCvX-4I4KrQv-7T2ivo3pqLslG7suaCk,74
|
5
5
|
aiagents4pharma/talk2aiagents4pharma/__init__.py,sha256=gjVTAhBHKPEFBbv_2T-MWuDdwHhAKfWIo-lQSrcsLNE,97
|
6
6
|
aiagents4pharma/talk2aiagents4pharma/install.md,sha256=5oyy9P8fd03x3f_jOFZTGg2G1AzxMIOrH2vVd8ZS4Iw,4201
|
@@ -13,9 +13,9 @@ aiagents4pharma/talk2aiagents4pharma/configs/agents/main_agent/default.yaml,sha2
|
|
13
13
|
aiagents4pharma/talk2aiagents4pharma/configs/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
14
|
aiagents4pharma/talk2aiagents4pharma/configs/app/frontend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
15
15
|
aiagents4pharma/talk2aiagents4pharma/configs/app/frontend/default.yaml,sha256=BpDv_Bau0F7xDPzMHVYxedKpZQAPdo0rAsRnfH32-U8,3470
|
16
|
-
aiagents4pharma/talk2aiagents4pharma/docker-compose/cpu/.env.example,sha256=
|
16
|
+
aiagents4pharma/talk2aiagents4pharma/docker-compose/cpu/.env.example,sha256=mfwCKG0bv6_IjEfIdQlEb6cnXsbaeAqC_U4kcIa03o0,574
|
17
17
|
aiagents4pharma/talk2aiagents4pharma/docker-compose/cpu/docker-compose.yml,sha256=2I8jyzaFXSGsBMMFOZ4Hz7hAH3A-ELpoYCphkpT_8rA,2631
|
18
|
-
aiagents4pharma/talk2aiagents4pharma/docker-compose/gpu/.env.example,sha256=
|
18
|
+
aiagents4pharma/talk2aiagents4pharma/docker-compose/gpu/.env.example,sha256=mfwCKG0bv6_IjEfIdQlEb6cnXsbaeAqC_U4kcIa03o0,574
|
19
19
|
aiagents4pharma/talk2aiagents4pharma/docker-compose/gpu/docker-compose.yml,sha256=bZwpaLynxyY6YOj2Sdz3MEVKgBY-FFXTC_K_KmZrMuM,3001
|
20
20
|
aiagents4pharma/talk2aiagents4pharma/states/__init__.py,sha256=VuVAFmoH8p2erE-mYiaa0uoqTuFynBcXia5Y8lmjI34,109
|
21
21
|
aiagents4pharma/talk2aiagents4pharma/states/state_talk2aiagents4pharma.py,sha256=ahquXi8hg6Bk1ttskl9QaYdHq4rDWa_bK7hu81E75M4,468
|
@@ -27,7 +27,7 @@ aiagents4pharma/talk2biomodels/README.md,sha256=0eGxj7jxi_LrCvX-4I4KrQv-7T2ivo3p
|
|
27
27
|
aiagents4pharma/talk2biomodels/__init__.py,sha256=DxARZJu91m4WHW4PBSZvlMb1MCbjvkZg1YUnYJXMBSA,117
|
28
28
|
aiagents4pharma/talk2biomodels/install.md,sha256=9YAEeW_vG5hv7WiMnNEzgKQIgVyHnpk1IIWXg_jhLxE,1520
|
29
29
|
aiagents4pharma/talk2biomodels/agents/__init__.py,sha256=4wPy6hWRJksX6z8qX1cVjFctZLpsja8JMngKHqn49N4,129
|
30
|
-
aiagents4pharma/talk2biomodels/agents/t2b_agent.py,sha256=
|
30
|
+
aiagents4pharma/talk2biomodels/agents/t2b_agent.py,sha256=hf-JTzcaOQIMG97qJb7EKe-jehghGiyXbbd9qSHFVIk,3341
|
31
31
|
aiagents4pharma/talk2biomodels/api/__init__.py,sha256=KGok9mCa6RT8whDj3jT3kcpFO1yHxk5vVD8IExsI5Bc,92
|
32
32
|
aiagents4pharma/talk2biomodels/api/ols.py,sha256=QSvbsD0V07-w0OU-wPQ4EypXi9bn_xl0NyliZQxRvCU,2173
|
33
33
|
aiagents4pharma/talk2biomodels/api/uniprot.py,sha256=jXoyd7BhIQA9JNaGMVPzORpQ5k1Ix9iYYduMv6YG7hw,1147
|
@@ -50,7 +50,7 @@ aiagents4pharma/talk2biomodels/models/__init__.py,sha256=ykurWrvOAkx4ooknggsu6Ri
|
|
50
50
|
aiagents4pharma/talk2biomodels/models/basico_model.py,sha256=M9KVnLDNAWfM0MAxSDpAJKIq1R8ezjDW1C3C9oLsRNU,4998
|
51
51
|
aiagents4pharma/talk2biomodels/models/sys_bio_model.py,sha256=dwoBK_g7aXVv7B97CqILTvsxGEbNH_iPLWQ1SoPg4cg,1928
|
52
52
|
aiagents4pharma/talk2biomodels/states/__init__.py,sha256=Rxe64WLgcNKnKaEIPv3rXmwBUUrl1SP-B6F4Unf723w,140
|
53
|
-
aiagents4pharma/talk2biomodels/states/state_talk2biomodels.py,sha256=
|
53
|
+
aiagents4pharma/talk2biomodels/states/state_talk2biomodels.py,sha256=NLbkXS9857KqKdjZeZA_RMeulRhL4PG-nSjVOIzYD8c,1562
|
54
54
|
aiagents4pharma/talk2biomodels/tests/BIOMD0000000449_url.xml,sha256=RkWbstfLrT1mAfOtZf7JsBz6poyWg6-5G7H_IdVXEXg,72630
|
55
55
|
aiagents4pharma/talk2biomodels/tests/__init__.py,sha256=U3PsTiUZaUBD1IZanFGkDIOdFieDVJtGKQ5-woYUo8c,45
|
56
56
|
aiagents4pharma/talk2biomodels/tests/article_on_model_537.pdf,sha256=rfBnG9XSGRZodq-NQsouQQ3dvm4JKcrAqEkoAQJmuDc,470738
|
@@ -63,11 +63,12 @@ aiagents4pharma/talk2biomodels/tests/test_integration.py,sha256=t8jR45pX7hKBGOjX
|
|
63
63
|
aiagents4pharma/talk2biomodels/tests/test_load_biomodel.py,sha256=8nVSDa8_z85dyvxa8aYGQR0YGZDtpzLF5HhBmifCk6w,895
|
64
64
|
aiagents4pharma/talk2biomodels/tests/test_param_scan.py,sha256=OFUeGlnEFAcSR3JODH0Yl2MVUBjiPqUNltcH-ICfSsE,2655
|
65
65
|
aiagents4pharma/talk2biomodels/tests/test_query_article.py,sha256=IZ0oDRPmVxD-g6vQ-uGSiYaJ1hf_rTcnda5u_J3rE2Y,6929
|
66
|
+
aiagents4pharma/talk2biomodels/tests/test_save_model.py,sha256=XgKYTNFbWQmKgF5mseTg5HrJhmN-Hg20v0hxkmwWh9U,1764
|
66
67
|
aiagents4pharma/talk2biomodels/tests/test_search_models.py,sha256=JuNvBz2i3a82c1SVwxKBlEIm98p91zzbnpnjMmWOg9g,1201
|
67
|
-
aiagents4pharma/talk2biomodels/tests/test_simulate_model.py,sha256=
|
68
|
+
aiagents4pharma/talk2biomodels/tests/test_simulate_model.py,sha256=JmE28fBdl4I37AX6x8lK8PK3rNdvj5ohJn7u95gG11M,1658
|
68
69
|
aiagents4pharma/talk2biomodels/tests/test_steady_state.py,sha256=5G3ug0mZDxQR8gCl3Xv6z3P1hfzUtXmyigYcVG9BfXE,3512
|
69
70
|
aiagents4pharma/talk2biomodels/tests/test_sys_bio_model.py,sha256=poMxOsKhg8USnptHPUjr6DptsO_HBZgV0G0C0lqF57s,2093
|
70
|
-
aiagents4pharma/talk2biomodels/tools/__init__.py,sha256=
|
71
|
+
aiagents4pharma/talk2biomodels/tools/__init__.py,sha256=viqx475FR5-gP10lmVg7u8wAWUZSHXe3bbQzF5N9oMk,295
|
71
72
|
aiagents4pharma/talk2biomodels/tools/ask_question.py,sha256=IbolM6zbYKHd_UCfLMa8bawt9fJH59cCUtkLB_wtxKI,4495
|
72
73
|
aiagents4pharma/talk2biomodels/tools/custom_plotter.py,sha256=dk5HUmPwSTIRp2sbd8Q8__fwSE8m13UseonvcpyDs00,6636
|
73
74
|
aiagents4pharma/talk2biomodels/tools/get_annotation.py,sha256=oHERHdY4KinQFg9udufEgJP3tE3x0gtoWWy4Kna9H78,12854
|
@@ -76,8 +77,9 @@ aiagents4pharma/talk2biomodels/tools/load_arguments.py,sha256=LZQNkAikXhG0AKRnfL
|
|
76
77
|
aiagents4pharma/talk2biomodels/tools/load_biomodel.py,sha256=025-E5qo2uiJVvHIhyeDh1tfmXTeIguSgS0KIY0LiyY,1208
|
77
78
|
aiagents4pharma/talk2biomodels/tools/parameter_scan.py,sha256=Hvq4igK0XBQ45YxhZpVNkVHWmaum7V3HGtIaaW8P_S0,11962
|
78
79
|
aiagents4pharma/talk2biomodels/tools/query_article.py,sha256=f2KMhKuWXqs8MidZO367JEsXHIK8NsOm_YUszH6qwpM,2152
|
80
|
+
aiagents4pharma/talk2biomodels/tools/save_model.py,sha256=2TEnzbt5z98qjL9eRZnXbS05iGuC7QylM-51HMfrjNE,2994
|
79
81
|
aiagents4pharma/talk2biomodels/tools/search_models.py,sha256=DWC4bHDnOiKBp534MNMN_AJ1rc21dXt768SvMRL6mrU,3133
|
80
|
-
aiagents4pharma/talk2biomodels/tools/simulate_model.py,sha256=
|
82
|
+
aiagents4pharma/talk2biomodels/tools/simulate_model.py,sha256=4QU03Xp-AU_va0QXGQZN7btn_Dh-ALrZA3K1JqDXH_4,5185
|
81
83
|
aiagents4pharma/talk2biomodels/tools/steady_state.py,sha256=zNbSDOITw9oomEqGSRqI224jZGsMw8LBka-2rG3moxs,7033
|
82
84
|
aiagents4pharma/talk2biomodels/tools/utils.py,sha256=bpVtS-5_oDGdgjbsLeIVcOo1BJvS_pyg8PDg9z2dG5Q,521
|
83
85
|
aiagents4pharma/talk2cells/README.md,sha256=0eGxj7jxi_LrCvX-4I4KrQv-7T2ivo3pqLslG7suaCk,74
|
@@ -92,12 +94,12 @@ aiagents4pharma/talk2cells/tools/scp_agent/__init__.py,sha256=DAJp26kugSdVHfFyVR
|
|
92
94
|
aiagents4pharma/talk2cells/tools/scp_agent/display_studies.py,sha256=nQltO147j1cFWUJ9mxg3JlWBLsqFivhJ93g1G7gWZko,602
|
93
95
|
aiagents4pharma/talk2cells/tools/scp_agent/search_studies.py,sha256=xjsgYJ8Bn8RIzIu_bgn8D_2I8wzLOJeu9evT_vF15mM,2647
|
94
96
|
aiagents4pharma/talk2knowledgegraphs/.dockerignore,sha256=-hAM7RzkGbjDeU411-kXOmYzNfl3Z9OlLWvN9zMDAXE,89
|
95
|
-
aiagents4pharma/talk2knowledgegraphs/Dockerfile,sha256=
|
97
|
+
aiagents4pharma/talk2knowledgegraphs/Dockerfile,sha256=0Do2gcsbEeh07xnPNuApTV77bfEbhAYSdMEwE3U0CKU,4130
|
96
98
|
aiagents4pharma/talk2knowledgegraphs/README.md,sha256=0eGxj7jxi_LrCvX-4I4KrQv-7T2ivo3pqLslG7suaCk,74
|
97
99
|
aiagents4pharma/talk2knowledgegraphs/__init__.py,sha256=ZztaRzRlovSXtVX3i9Rvf84ivIjPn8RMPiYRkbkEJ0E,114
|
98
100
|
aiagents4pharma/talk2knowledgegraphs/entrypoint.sh,sha256=EK_jGau1VuW1uTmFWZcKhLMK9VanC5l3q9axF4ZYgmI,5758
|
99
101
|
aiagents4pharma/talk2knowledgegraphs/install.md,sha256=1rCv2e6ywb-kZOxtqFJ25qpWHl2MCa9bW6nHYHfxJMI,5555
|
100
|
-
aiagents4pharma/talk2knowledgegraphs/milvus_data_dump.py,sha256=
|
102
|
+
aiagents4pharma/talk2knowledgegraphs/milvus_data_dump.py,sha256=RyPYjtF49DxL7MIWmVUprw0Wpu4HErHOAOQ2_wLUfVI,36095
|
101
103
|
aiagents4pharma/talk2knowledgegraphs/agents/__init__.py,sha256=ugUvVYEdjbZ3y_dogfF5hpQ3lFPFrAvLSydlcpbkGo0,93
|
102
104
|
aiagents4pharma/talk2knowledgegraphs/agents/t2kg_agent.py,sha256=GDeSjJNhAqQWagZOxAWUKqDhzUohHViSsu444W9SzRQ,3240
|
103
105
|
aiagents4pharma/talk2knowledgegraphs/configs/__init__.py,sha256=H-yhTbJ_RXBLe3XSto5x6FmVrgbi7y1WKEfiwmKzLAk,87
|
@@ -127,9 +129,9 @@ aiagents4pharma/talk2knowledgegraphs/datasets/biobridge_primekg.py,sha256=M6NtpM
|
|
127
129
|
aiagents4pharma/talk2knowledgegraphs/datasets/dataset.py,sha256=ls0e15uudIbb4zwHMHxjEovmH145RJ_hPeZni89KSnM,411
|
128
130
|
aiagents4pharma/talk2knowledgegraphs/datasets/primekg.py,sha256=1WHlQCAyKjpBiX3JnIsSohUZe8Yi5pY-VDP4tCugxkg,7709
|
129
131
|
aiagents4pharma/talk2knowledgegraphs/datasets/starkqa_primekg.py,sha256=JtP-jNIFDA3xQbzy5DkK2OHin5NnbWUGa_EJ_1OH6vE,7483
|
130
|
-
aiagents4pharma/talk2knowledgegraphs/docker-compose/cpu/.env.example,sha256=
|
132
|
+
aiagents4pharma/talk2knowledgegraphs/docker-compose/cpu/.env.example,sha256=mfwCKG0bv6_IjEfIdQlEb6cnXsbaeAqC_U4kcIa03o0,574
|
131
133
|
aiagents4pharma/talk2knowledgegraphs/docker-compose/cpu/docker-compose.yml,sha256=7BNUIkwP0cAUH1jznun5-RgsIAZisegLFGiiUZG9F1Y,2631
|
132
|
-
aiagents4pharma/talk2knowledgegraphs/docker-compose/gpu/.env.example,sha256=
|
134
|
+
aiagents4pharma/talk2knowledgegraphs/docker-compose/gpu/.env.example,sha256=mfwCKG0bv6_IjEfIdQlEb6cnXsbaeAqC_U4kcIa03o0,574
|
133
135
|
aiagents4pharma/talk2knowledgegraphs/docker-compose/gpu/docker-compose.yml,sha256=MVWmuxTmTTq3g4MFi9HtvHY0F4MegtprZ7FGIt-60Ms,3001
|
134
136
|
aiagents4pharma/talk2knowledgegraphs/states/__init__.py,sha256=9X3zHxvtAJFQ0s0VLZ_-iBn4rMVfZWk5CQiWEKJkr0c,109
|
135
137
|
aiagents4pharma/talk2knowledgegraphs/states/state_talk2knowledgegraphs.py,sha256=QECNXd8IWDh3WlMvePcd2T6G5XqjOI9EkZdWmICcCT0,1088
|
@@ -328,7 +330,7 @@ aiagents4pharma/talk2scholars/tools/zotero/utils/review_helper.py,sha256=-q-UuzP
|
|
328
330
|
aiagents4pharma/talk2scholars/tools/zotero/utils/write_helper.py,sha256=K1EatPfC-riGyFmkOAS3ReNBaGPY-znne1KqOnFahkI,7339
|
329
331
|
aiagents4pharma/talk2scholars/tools/zotero/utils/zotero_path.py,sha256=sKkfJu3u4LKSZjfoQRfeqz26IESHRwBtcSDzLMLlJMo,6311
|
330
332
|
aiagents4pharma/talk2scholars/tools/zotero/utils/zotero_pdf_downloader.py,sha256=DBrF5IiF7VRP58hUK8T9LST3lQWLFixLUfnpMSTccoQ,4614
|
331
|
-
aiagents4pharma-1.
|
332
|
-
aiagents4pharma-1.
|
333
|
-
aiagents4pharma-1.
|
334
|
-
aiagents4pharma-1.
|
333
|
+
aiagents4pharma-1.48.0.dist-info/METADATA,sha256=LAfYILDy3HPzU2RdU1icFrP6s1N9pooLdFtRSaRzmfE,17035
|
334
|
+
aiagents4pharma-1.48.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
335
|
+
aiagents4pharma-1.48.0.dist-info/licenses/LICENSE,sha256=IcIbyB1Hyk5ZDah03VNQvJkbNk2hkBCDqQ8qtnCvB4Q,1077
|
336
|
+
aiagents4pharma-1.48.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|