aiagents4pharma 1.8.1__tar.gz → 1.8.2__tar.gz
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-1.8.1 → aiagents4pharma-1.8.2}/PKG-INFO +3 -3
- aiagents4pharma-1.8.2/aiagents4pharma/talk2biomodels/agents/__init__.py +5 -0
- aiagents4pharma-1.8.2/aiagents4pharma/talk2biomodels/agents/t2b_agent.py +93 -0
- aiagents4pharma-1.8.2/aiagents4pharma/talk2biomodels/states/__init__.py +5 -0
- aiagents4pharma-1.8.2/aiagents4pharma/talk2biomodels/states/state_talk2biomodels.py +24 -0
- aiagents4pharma-1.8.2/aiagents4pharma/talk2cells/tools/scp_agent/__init__.py +6 -0
- aiagents4pharma-1.8.2/aiagents4pharma/talk2cells/tools/scp_agent/display_studies.py +25 -0
- aiagents4pharma-1.8.2/aiagents4pharma/talk2cells/tools/scp_agent/search_studies.py +79 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma.egg-info/PKG-INFO +3 -3
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma.egg-info/SOURCES.txt +7 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma.egg-info/requires.txt +2 -2
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/pyproject.toml +5 -2
- aiagents4pharma-1.8.2/release_version.txt +1 -0
- aiagents4pharma-1.8.1/release_version.txt +0 -1
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/LICENSE +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/README.md +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/__init__.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2biomodels/__init__.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2biomodels/models/__init__.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2biomodels/models/basico_model.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2biomodels/models/sys_bio_model.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2biomodels/tools/__init__.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2biomodels/tools/ask_question.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2biomodels/tools/custom_plotter.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2biomodels/tools/get_modelinfo.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2biomodels/tools/load_biomodel.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2biomodels/tools/search_models.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2biomodels/tools/simulate_model.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2cells/__init__.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2cells/agents/__init__.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2cells/agents/scp_agent.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2cells/states/__init__.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2cells/states/state_talk2cells.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2cells/tools/__init__.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2knowledgegraphs/__init__.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2knowledgegraphs/datasets/__init__.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2knowledgegraphs/datasets/biobridge_primekg.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2knowledgegraphs/datasets/dataset.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2knowledgegraphs/datasets/primekg.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2knowledgegraphs/datasets/starkqa_primekg.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2knowledgegraphs/utils/__init__.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2knowledgegraphs/utils/embeddings/__init__.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2knowledgegraphs/utils/embeddings/embeddings.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2knowledgegraphs/utils/embeddings/huggingface.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2knowledgegraphs/utils/embeddings/sentence_transformer.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2knowledgegraphs/utils/kg_utils.py +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma.egg-info/dependency_links.txt +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma.egg-info/top_level.txt +0 -0
- {aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: aiagents4pharma
|
3
|
-
Version: 1.8.
|
3
|
+
Version: 1.8.2
|
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
|
@@ -17,10 +17,10 @@ Requires-Dist: hydra-core==1.3.2
|
|
17
17
|
Requires-Dist: joblib==1.4.2
|
18
18
|
Requires-Dist: langchain==0.3.7
|
19
19
|
Requires-Dist: langchain-community==0.3.5
|
20
|
-
Requires-Dist: langchain-core==0.3.
|
20
|
+
Requires-Dist: langchain-core==0.3.31
|
21
21
|
Requires-Dist: langchain-experimental==0.3.3
|
22
22
|
Requires-Dist: langchain-openai==0.2.5
|
23
|
-
Requires-Dist: langgraph==0.2.
|
23
|
+
Requires-Dist: langgraph==0.2.66
|
24
24
|
Requires-Dist: matplotlib==3.9.2
|
25
25
|
Requires-Dist: openai==1.59.4
|
26
26
|
Requires-Dist: pandas==2.2.3
|
@@ -0,0 +1,93 @@
|
|
1
|
+
#/usr/bin/env python3
|
2
|
+
|
3
|
+
'''
|
4
|
+
This is the agent file for the Talk2BioModels agent.
|
5
|
+
'''
|
6
|
+
|
7
|
+
import logging
|
8
|
+
from typing import Annotated
|
9
|
+
import hydra
|
10
|
+
from langchain_openai import ChatOpenAI
|
11
|
+
from langgraph.checkpoint.memory import MemorySaver
|
12
|
+
from langgraph.graph import START, StateGraph
|
13
|
+
from langgraph.prebuilt import create_react_agent, ToolNode, InjectedState
|
14
|
+
from ..tools.search_models import SearchModelsTool
|
15
|
+
from ..tools.get_modelinfo import GetModelInfoTool
|
16
|
+
from ..tools.simulate_model import SimulateModelTool
|
17
|
+
from ..tools.custom_plotter import CustomPlotterTool
|
18
|
+
from ..tools.ask_question import AskQuestionTool
|
19
|
+
from ..states.state_talk2biomodels import Talk2Biomodels
|
20
|
+
|
21
|
+
# Initialize logger
|
22
|
+
logging.basicConfig(level=logging.INFO)
|
23
|
+
logger = logging.getLogger(__name__)
|
24
|
+
|
25
|
+
def get_app(uniq_id, llm_model='gpt-4o-mini'):
|
26
|
+
'''
|
27
|
+
This function returns the langraph app.
|
28
|
+
'''
|
29
|
+
def agent_t2b_node(state: Annotated[dict, InjectedState]):
|
30
|
+
'''
|
31
|
+
This function calls the model.
|
32
|
+
'''
|
33
|
+
logger.log(logging.INFO, "Calling t2b_agent node with thread_id %s", uniq_id)
|
34
|
+
response = model.invoke(state, {"configurable": {"thread_id": uniq_id}})
|
35
|
+
return response
|
36
|
+
|
37
|
+
# Define the tools
|
38
|
+
simulate_model = SimulateModelTool()
|
39
|
+
custom_plotter = CustomPlotterTool()
|
40
|
+
ask_question = AskQuestionTool()
|
41
|
+
search_model = SearchModelsTool()
|
42
|
+
get_modelinfo = GetModelInfoTool()
|
43
|
+
tools = ToolNode([
|
44
|
+
simulate_model,
|
45
|
+
ask_question,
|
46
|
+
custom_plotter,
|
47
|
+
search_model,
|
48
|
+
get_modelinfo
|
49
|
+
])
|
50
|
+
|
51
|
+
# Define the model
|
52
|
+
llm = ChatOpenAI(model=llm_model, temperature=0)
|
53
|
+
# Load hydra configuration
|
54
|
+
logger.log(logging.INFO, "Load Hydra configuration for Talk2BioModels agent.")
|
55
|
+
with hydra.initialize(version_base=None, config_path="../../../configs"):
|
56
|
+
cfg = hydra.compose(config_name='config',
|
57
|
+
overrides=['aiagents4pharma/talk2biomodels/agents/t2b_agent=default'])
|
58
|
+
cfg = cfg.aiagents4pharma.talk2biomodels.agents.t2b_agent
|
59
|
+
logger.log(logging.INFO, "state_modifier: %s", cfg.state_modifier)
|
60
|
+
# Create the agent
|
61
|
+
model = create_react_agent(
|
62
|
+
llm,
|
63
|
+
tools=tools,
|
64
|
+
state_schema=Talk2Biomodels,
|
65
|
+
state_modifier=cfg.state_modifier,
|
66
|
+
checkpointer=MemorySaver()
|
67
|
+
)
|
68
|
+
|
69
|
+
# Define a new graph
|
70
|
+
workflow = StateGraph(Talk2Biomodels)
|
71
|
+
|
72
|
+
# Define the two nodes we will cycle between
|
73
|
+
workflow.add_node("agent_t2b", agent_t2b_node)
|
74
|
+
|
75
|
+
# Set the entrypoint as the first node
|
76
|
+
# This means that this node is the first one called
|
77
|
+
workflow.add_edge(START, "agent_t2b")
|
78
|
+
|
79
|
+
# Initialize memory to persist state between graph runs
|
80
|
+
checkpointer = MemorySaver()
|
81
|
+
|
82
|
+
# Finally, we compile it!
|
83
|
+
# This compiles it into a LangChain Runnable,
|
84
|
+
# meaning you can use it as you would any other runnable.
|
85
|
+
# Note that we're (optionally) passing the memory
|
86
|
+
# when compiling the graph
|
87
|
+
app = workflow.compile(checkpointer=checkpointer)
|
88
|
+
logger.log(logging.INFO,
|
89
|
+
"Compiled the graph with thread_id %s and llm_model %s",
|
90
|
+
uniq_id,
|
91
|
+
llm_model)
|
92
|
+
|
93
|
+
return app
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
|
3
|
+
'''
|
4
|
+
This is the state file for the Talk2BioModels agent.
|
5
|
+
'''
|
6
|
+
|
7
|
+
from typing import Annotated
|
8
|
+
import operator
|
9
|
+
from langgraph.prebuilt.chat_agent_executor import AgentState
|
10
|
+
|
11
|
+
class Talk2Biomodels(AgentState):
|
12
|
+
"""
|
13
|
+
The state for the Talk2BioModels agent.
|
14
|
+
"""
|
15
|
+
model_id: Annotated[list, operator.add]
|
16
|
+
# sbml_file_path: str
|
17
|
+
# A StateGraph may receive a concurrent updates
|
18
|
+
# which is not supported by the StateGraph.
|
19
|
+
# Therefore, we need to use Annotated to specify
|
20
|
+
# the operator for the sbml_file_path field.
|
21
|
+
# https://langchain-ai.github.io/langgraph/troubleshooting/errors/INVALID_CONCURRENT_GRAPH_UPDATE/
|
22
|
+
sbml_file_path: Annotated[list, operator.add]
|
23
|
+
dic_simulated_data: dict
|
24
|
+
llm_model: str
|
@@ -0,0 +1,25 @@
|
|
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
|
+
from langchain_core.tools import tool
|
10
|
+
from langgraph.prebuilt import InjectedState
|
11
|
+
|
12
|
+
# Initialize logger
|
13
|
+
logging.basicConfig(level=logging.INFO)
|
14
|
+
logger = logging.getLogger(__name__)
|
15
|
+
|
16
|
+
@tool('display_studies')
|
17
|
+
def display_studies(state: Annotated[dict, InjectedState]):
|
18
|
+
"""
|
19
|
+
Display the table of studies.
|
20
|
+
|
21
|
+
Args:
|
22
|
+
state (dict): The state of the agent.
|
23
|
+
"""
|
24
|
+
logger.log(logging.INFO, "Calling the tool display_studies")
|
25
|
+
return state["search_table"]
|
@@ -0,0 +1,79 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
|
3
|
+
'''
|
4
|
+
A tool to fetch studies from the Single Cell Portal.
|
5
|
+
'''
|
6
|
+
|
7
|
+
import logging
|
8
|
+
from typing import Annotated
|
9
|
+
import requests
|
10
|
+
from langchain_core.tools import tool
|
11
|
+
from langchain_core.tools.base import InjectedToolCallId
|
12
|
+
from langchain_core.messages import ToolMessage
|
13
|
+
from langgraph.types import Command
|
14
|
+
import pandas as pd
|
15
|
+
|
16
|
+
# Initialize logger
|
17
|
+
logging.basicConfig(level=logging.INFO)
|
18
|
+
logger = logging.getLogger(__name__)
|
19
|
+
|
20
|
+
@tool('search_studies')
|
21
|
+
def search_studies(search_term: str,
|
22
|
+
tool_call_id: Annotated[str, InjectedToolCallId],
|
23
|
+
limit: int = 5):
|
24
|
+
"""
|
25
|
+
Fetch studies from single cell portal
|
26
|
+
|
27
|
+
Args:
|
28
|
+
search_term (str): The search term to use. Example: "COVID-19", "cancer", etc.
|
29
|
+
limit (int): The number of papers to return. Default is 5.
|
30
|
+
|
31
|
+
"""
|
32
|
+
logger.log(logging.INFO, "Calling the tool search_studies")
|
33
|
+
scp_endpoint = 'https://singlecell.broadinstitute.org/single_cell/api/v1/search?type=study'
|
34
|
+
# params = {'terms': search_term, 'facets': 'MONDO_0005011'}
|
35
|
+
params = {'terms': search_term}
|
36
|
+
status_code = 0
|
37
|
+
while status_code != 200:
|
38
|
+
# Make a GET request to the single cell portal
|
39
|
+
search_response = requests.get(scp_endpoint,
|
40
|
+
params=params,
|
41
|
+
timeout=10,
|
42
|
+
verify=False)
|
43
|
+
status_code = search_response.status_code
|
44
|
+
logger.log(logging.INFO, "Status code %s received from SCP")
|
45
|
+
|
46
|
+
# Select the columns to display in the table
|
47
|
+
selected_columns = ["study_source", "name", "study_url", "gene_count", "cell_count"]
|
48
|
+
|
49
|
+
# Extract the data from the response
|
50
|
+
# with the selected columns
|
51
|
+
df = pd.DataFrame(search_response.json()['studies'])[selected_columns]
|
52
|
+
|
53
|
+
# Convert column 'Study Name' into clickable
|
54
|
+
# hyperlinks from the column 'Study URL'
|
55
|
+
scp_api_url = 'https://singlecell.broadinstitute.org'
|
56
|
+
df['name'] = df.apply(
|
57
|
+
lambda x: f"<a href=\"{scp_api_url}/{x['study_url']}\">{x['name']}</a>",
|
58
|
+
axis=1)
|
59
|
+
|
60
|
+
# Excldue the column 'Study URL' from the dataframe
|
61
|
+
df = df.drop(columns=['study_url'])
|
62
|
+
|
63
|
+
# Add a new column a the beginning of the dataframe with row numbers
|
64
|
+
df.insert(0, 'S/N', range(1, 1 + len(df)))
|
65
|
+
|
66
|
+
# Update the state key 'search_table' with the dataframe in markdown format
|
67
|
+
return Command(
|
68
|
+
update={
|
69
|
+
# update the state keys
|
70
|
+
"search_table": df.to_markdown(tablefmt="grid"),
|
71
|
+
# update the message history
|
72
|
+
"messages": [
|
73
|
+
ToolMessage(
|
74
|
+
f"Successfully fetched {limit} studies on {search_term}.",
|
75
|
+
tool_call_id=tool_call_id
|
76
|
+
)
|
77
|
+
],
|
78
|
+
}
|
79
|
+
)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: aiagents4pharma
|
3
|
-
Version: 1.8.
|
3
|
+
Version: 1.8.2
|
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
|
@@ -17,10 +17,10 @@ Requires-Dist: hydra-core==1.3.2
|
|
17
17
|
Requires-Dist: joblib==1.4.2
|
18
18
|
Requires-Dist: langchain==0.3.7
|
19
19
|
Requires-Dist: langchain-community==0.3.5
|
20
|
-
Requires-Dist: langchain-core==0.3.
|
20
|
+
Requires-Dist: langchain-core==0.3.31
|
21
21
|
Requires-Dist: langchain-experimental==0.3.3
|
22
22
|
Requires-Dist: langchain-openai==0.2.5
|
23
|
-
Requires-Dist: langgraph==0.2.
|
23
|
+
Requires-Dist: langgraph==0.2.66
|
24
24
|
Requires-Dist: matplotlib==3.9.2
|
25
25
|
Requires-Dist: openai==1.59.4
|
26
26
|
Requires-Dist: pandas==2.2.3
|
@@ -9,9 +9,13 @@ aiagents4pharma.egg-info/dependency_links.txt
|
|
9
9
|
aiagents4pharma.egg-info/requires.txt
|
10
10
|
aiagents4pharma.egg-info/top_level.txt
|
11
11
|
aiagents4pharma/talk2biomodels/__init__.py
|
12
|
+
aiagents4pharma/talk2biomodels/agents/__init__.py
|
13
|
+
aiagents4pharma/talk2biomodels/agents/t2b_agent.py
|
12
14
|
aiagents4pharma/talk2biomodels/models/__init__.py
|
13
15
|
aiagents4pharma/talk2biomodels/models/basico_model.py
|
14
16
|
aiagents4pharma/talk2biomodels/models/sys_bio_model.py
|
17
|
+
aiagents4pharma/talk2biomodels/states/__init__.py
|
18
|
+
aiagents4pharma/talk2biomodels/states/state_talk2biomodels.py
|
15
19
|
aiagents4pharma/talk2biomodels/tools/__init__.py
|
16
20
|
aiagents4pharma/talk2biomodels/tools/ask_question.py
|
17
21
|
aiagents4pharma/talk2biomodels/tools/custom_plotter.py
|
@@ -25,6 +29,9 @@ aiagents4pharma/talk2cells/agents/scp_agent.py
|
|
25
29
|
aiagents4pharma/talk2cells/states/__init__.py
|
26
30
|
aiagents4pharma/talk2cells/states/state_talk2cells.py
|
27
31
|
aiagents4pharma/talk2cells/tools/__init__.py
|
32
|
+
aiagents4pharma/talk2cells/tools/scp_agent/__init__.py
|
33
|
+
aiagents4pharma/talk2cells/tools/scp_agent/display_studies.py
|
34
|
+
aiagents4pharma/talk2cells/tools/scp_agent/search_studies.py
|
28
35
|
aiagents4pharma/talk2knowledgegraphs/__init__.py
|
29
36
|
aiagents4pharma/talk2knowledgegraphs/datasets/__init__.py
|
30
37
|
aiagents4pharma/talk2knowledgegraphs/datasets/biobridge_primekg.py
|
@@ -7,10 +7,10 @@ hydra-core==1.3.2
|
|
7
7
|
joblib==1.4.2
|
8
8
|
langchain==0.3.7
|
9
9
|
langchain-community==0.3.5
|
10
|
-
langchain-core==0.3.
|
10
|
+
langchain-core==0.3.31
|
11
11
|
langchain-experimental==0.3.3
|
12
12
|
langchain-openai==0.2.5
|
13
|
-
langgraph==0.2.
|
13
|
+
langgraph==0.2.66
|
14
14
|
matplotlib==3.9.2
|
15
15
|
openai==1.59.4
|
16
16
|
pandas==2.2.3
|
@@ -22,10 +22,10 @@ dependencies = [
|
|
22
22
|
"joblib==1.4.2",
|
23
23
|
"langchain==0.3.7",
|
24
24
|
"langchain-community==0.3.5",
|
25
|
-
"langchain-core==0.3.
|
25
|
+
"langchain-core==0.3.31",
|
26
26
|
"langchain-experimental==0.3.3",
|
27
27
|
"langchain-openai==0.2.5",
|
28
|
-
"langgraph==0.2.
|
28
|
+
"langgraph==0.2.66",
|
29
29
|
"matplotlib==3.9.2",
|
30
30
|
"openai==1.59.4",
|
31
31
|
"pandas==2.2.3",
|
@@ -60,10 +60,13 @@ packages = ["aiagents4pharma",
|
|
60
60
|
"aiagents4pharma.talk2biomodels",
|
61
61
|
"aiagents4pharma.talk2biomodels.models",
|
62
62
|
"aiagents4pharma.talk2biomodels.tools",
|
63
|
+
"aiagents4pharma.talk2biomodels.agents",
|
64
|
+
"aiagents4pharma.talk2biomodels.states",
|
63
65
|
"aiagents4pharma.talk2cells",
|
64
66
|
"aiagents4pharma.talk2cells.agents",
|
65
67
|
"aiagents4pharma.talk2cells.states",
|
66
68
|
"aiagents4pharma.talk2cells.tools",
|
69
|
+
"aiagents4pharma.talk2cells.tools.scp_agent",
|
67
70
|
"aiagents4pharma.talk2knowledgegraphs",
|
68
71
|
"aiagents4pharma.talk2knowledgegraphs.datasets",
|
69
72
|
"aiagents4pharma.talk2knowledgegraphs.utils",
|
@@ -0,0 +1 @@
|
|
1
|
+
v1.8.2
|
@@ -1 +0,0 @@
|
|
1
|
-
v1.8.1
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2biomodels/models/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2biomodels/tools/__init__.py
RENAMED
File without changes
|
{aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2biomodels/tools/ask_question.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2cells/agents/__init__.py
RENAMED
File without changes
|
{aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2cells/agents/scp_agent.py
RENAMED
File without changes
|
{aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2cells/states/__init__.py
RENAMED
File without changes
|
File without changes
|
{aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2cells/tools/__init__.py
RENAMED
File without changes
|
{aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma/talk2knowledgegraphs/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{aiagents4pharma-1.8.1 → aiagents4pharma-1.8.2}/aiagents4pharma.egg-info/dependency_links.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|