Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR tackles some badly needed improvements to our code organization in
src/
ahead of incoming new data-source integrations (#78).Where have things moved?
src/agent/
src/agent/graph.py
intosrc/agent/profiles
, in order to support Chainlit instances with different/multiple chat profiles./src/agent/tasks/
src/data_generation
and organized by data provider (reactome
,uniprot
, etc.)src/tools/external_search
src/tools/
What has been refactored?
For legacy reasons, the code that originally returned the Reactome RAG retriever evolved into returning the main chat graph. Furthermore it's also been responsible for creating the LLM and Embeddings instances. For the purpose of developing a robust agent workflow graph with potentially multiple retrievers, this is incorrect.
The constructor of
AgentGraph
going forward will start by getting its required "foundational" models (LLM, Embeddings), before initializing all other runnables (retrievers, tasks, tools, etc) that depend on those models.What is new?
Added full chat profiles support on both the Chainlit and LangGraph layers, with enabled profiles set in
config.yml
.(
React-to-Me
is the only available profile until the new cross-db profile is integrated).Although infeasible to guarantee, this PR is intended to not change any of the effective logic of the current chatbot (verified as best as I can in my own local testing).