Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gianlucatruda/fomo
A newsreader app that uses LLM embeddings to semantically prioritise arXiv and Github updates
https://github.com/gianlucatruda/fomo
arx- embeddings fastapi github gpt-3 javascript llm nextjs python react tailwindcss
Last synced: about 2 months ago
JSON representation
A newsreader app that uses LLM embeddings to semantically prioritise arXiv and Github updates
- Host: GitHub
- URL: https://github.com/gianlucatruda/fomo
- Owner: gianlucatruda
- License: mit
- Created: 2023-07-21T11:05:44.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-09-06T20:37:19.000Z (4 months ago)
- Last Synced: 2024-10-07T15:23:34.196Z (3 months ago)
- Topics: arx-, embeddings, fastapi, github, gpt-3, javascript, llm, nextjs, python, react, tailwindcss
- Language: JavaScript
- Homepage: http://gianluca.ai/fomo-embeddings
- Size: 899 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FOMO: LLM embeddings to keep up with AI
The MVP of a newsreader app that uses LLM embeddings to semantically prioritise arXiv and Github updates.
Read more about it [on my blog](http://gianluca.ai/fomo-embeddings/).
![fomo-demo](https://github.com/gianlucatruda/fomo/assets/1952799/b4a4eff9-01e6-4e17-8bab-995cd7db9af8)
I'm no longer actively working on this. If you want a great tool for semantic searching of arXiv papers, my good friend [Tom Tumiel](https://twitter.com/tomtumiel) built [arXiv Xplorer](https://arxivxplorer.com/), which was part of the inspiration for this project.
## Usage
If you want to spin this up yourself, you're going to need to do the following:
- Deploy the UI webapp in `webapp/`, it's built with Next.js and Tailwind. Update the URLs to point at the embedding server.
- Deploy the embedding server in `embed-server/api.py`, it's Python app that uses FastAPI and just stores the embeddings in memory.
- Generate some embeddings with the Python code in `embed-server/notebooks/`. They pull data from Github (you'll need an API key) and arXiv APIs, wrangle it, and then run it via OpenAI's embeddings API (you'll need an API key), before saving them in a pickled NumPy array and metadata CSV.(Yeah, not really production-ready, I know. This was just a hacky MVP to prove the idea).
You could probably make life easier for yourself by refactoring the notebooks code into a new FastAPI API endpoint in `api.py`. Then you can deploy that somewhere (Replit or AWS EC2). Then use something like Vercel to deploy the front-end with minimal hassle (use the free tier). Then you can trigger the embeddings to update by hitting the new API endpoint you made. (I might do that myself if I feel like picking this up again).
---