This project comprises a speedreading application designed to help quickly process and comprehend documents. It consists of three main components which need to be set up before use.
This is a backend app with endpoints for interacting with the agent and various processing and storage steps.
Endpoints:
GET /resource: Lists resources (i.e. documents).GET /resource/{name}: Get the contents of a particular resource.GET /notes/{name}: Get the notes stored for a particular resource.POST /resource:- Download, process and store a new resource.
- Receives the
url. - Downloads the resource and saves to
speedreader/resources/{name}/content.md. - Generates an outline and saves to
speedreader/resources/{name}/outline.json. - Aligns the outline with quotes from the
content.mdand saves tospeedreader/resources/{name}/quotes.json.
POST /chat:- Interact with the agent.
- Receives
messagesand thenameof the document. - Passes it to the agent and streams back it's actions.
Set Up:
- Install
uv:pip install uv - Set up the venv:
uv venv - Install dependencies:
uv sync .env: The format is the following,OPENAI_BASE_URL=http://127.0.0.1:5000 OPENAI_API_KEY=abc OPENAI_AGENTS_DISABLE_TRACING=1
This is a proxy chat server for being able to use Gemini 2.0 Flash with the OpenAI Agents SDK, along with handling rate limits by pauses.
The only endpoint usable is /chat/completions.
Set Up:
- Install
uv:pip install uv - Set up the venv:
uv venv - Install dependencies:
uv sync .env: The format is the following,GEMINI_API_KEY=<your-gemini-api-key>
This is the frontend app, with the document viewer and the chat interface.
Install dependencies using npm i to set up.
Once all 3 apps are set up, they should be run as:
speedreader/:uv run main.pychat_server/:uv run main.pyspeedreader-frontend/:npm run dev
Then open up the browser at http://localhost:3000/.
-
Downloading resources:
- In order to download resources, click on the
Download Resourcebutton and pass in the URL of the resource to be downloaded.
- The resource can be a URL to any form of document that can be processed by Docling.
- Once you hit
Download, there should be a loader indicating processing, reload the page once it's done.
- In order to download resources, click on the
-
Selecting resource: From the selector at the top right, choose the resource you want to read (in the above case it would have to be the one that was downloaded).

-
Understand the resource: A recommended first step is to ask for a general outline / structure of the document in order to understand everything covered at a high-level.

-
Explore various aspects:
-
Locate quotes for deep reading:
- A recommended next step would be to ask the agent for specific instances based on which it answered some of the aspects you'd like to understand even further.
- The agent should get back to you with exact quotes it inferred from, with the
Resourcetab on the right also locating them for gaining more context via what's around it.
-
Make notes: Based on your conversation with the agent, you can ask it to note things down that you think are useful.

