File size: 3,835 Bytes
4c316ac
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
---
license: mit
title: Agentic Research Abstract Generator & Web Summariser-2
sdk: gradio
emoji: πŸ“š
colorFrom: red
colorTo: green
---
## 🧠 Agentic Research Abstract Generator & Web Summariser-2
An agent-based system using LangGraph and HuggingFace models to generate research abstracts and summarize web content, with modular workflows, memory handling, and task-specific agents.

This builds upon the previous repo 
- [Project Link](https://github.com/daniau23/agentic_researcher)
- [ReadyTensor-Publication](https://app.readytensor.ai/publications/the-agentic-research-abstract-generator-and-web-content-summariser-agent-with-langraph-gYeyu875mKsB)


### πŸš€ Features Improvements
- πŸ“ˆ Evaluation metrics and logging
- πŸ“ˆ Evaluation metrics and logging
- πŸ“ˆ Testing features incorporated
- πŸš€ Model deployment with streamlit

![Research Assistant Flow Chart](img/Agentic-Research-Assistant-AI-pub-main-image.jpg)

### **How the project goes**
- All files can only work after installing all dependencies in the `environment.yml` file
- The `notebooks folder` contains the jupyter notebook file for testing the project as a whole and for experimenting. `research_graph2.ipynb` contains the experimentation for abstract generation while `research_graph3.ipynb` contains the experimentation for web content summarisation.
- The `graph_article` folder contains the critic, writer and graph_article python files. The `writer.py`(writer agent) file takes the category and title needed for drafting the abstract while the `critic.py` (reviewer agent) reviews the generated abstract. The `graph_article.py` connects boths `writer.py`and `critic.py` by using LangGraph.
- The graph_web folder contains the grap_web, loader, search and summarizer python files. The `search.py` (search agent) file searches takes in the URL link for web search, while the `loader.py` (loader agent) loads the web page but limits it to appoximately 32,000 tokens to not exceed the max token limit. The summarizer agent in `summarizer.py` files, provides a concise summary for the the URL given. The graph_web.py connects all components together as one.
- The utils folder contains the `visualizer.py` file which creates the graphs of the `grah_web.py` and `graph_article.py` files when called in `main.py`. The generatd graphs are saved to the visuals folder.
- The `shared.py` file contains the shared state for the summarizer and abstract generator graphs.
- The `main.py` file calls all graphs together and prompts the user for if the would like to generate an abstract or summarise a webpage.
- The img folder contains the images used for visualisation, also `Langsmith_run.png` show the an example run when Langsmith is used for tracing the graph.
- The tests folder contains all necessary tests for the each component for proper integration of the project, making it ready for deployment.

![LangSmith](img/LangSmith_run.png)

### **Replicating this project and Example Usage**
Kindly refer to the GitHub link for the previous project for replication.

- **Run `pip install pytest>=8.4` and `pip install pytest-mock==3.14` after using the environment.yml from the previous repo**
### **Example Streamlit Outputs**
![Abstract-generator](img/streamlit_abstract_generator.png)

![Webpage-summariser](img/streamlit_web_page_summariser.png)

**NB:** 
- **You must have a huggingface api key to use the streamlit app. Kindly refer to the previous github repo to know how to generate a huggingface api key**

Here is the Publication on;
- [Edit ReadyTensor](https://app.readytensor.ai/publications/the-agentic-research-abstract-generator-and-web-content-summariser-agent-with-langraph-gYeyu875mKsB)

### **Issues faced**:
- Integrating tests for the LLM agents
- Conflicts when deploying app on Streamlit, hence the environment.yml file was removed.