tkellogg / fossil Goto Github PK
View Code? Open in Web Editor NEWA mastodon client optimized for reading, with an AI-enabled algorithm for displaying posts
Home Page: https://www.fossil-social.com
A mastodon client optimized for reading, with an AI-enabled algorithm for displaying posts
Home Page: https://www.fossil-social.com
There's a button, it just doesn't work
Tasks:
POST /toots/{id}/boost
endpoint in server.py
that forwards the operation to mastodon via requests.post
.hx-post
attribute in app/templates/toot.html
Generally, I'd love to make the look & feel a lot better, but I have no idea what I'm doing. If you have opinions and/or skills, let's see what we can do.
I like the clustering approach, but I don't like that k-means makes you say up front how many clusters there's going to be (i'm discovering too, it's a new day, i don't know yet, right??). I want to experiment with other clustering algorithms that make different assumptions and trade-offs about the data.
DBSCAN seems interesting because it finds clusters based on density. So you have to say what the expected density should be, that threshold that defines a cluster.
I expect that there will be a lot of tweaking to make it work for a certain embedding model, but after you get it to work it'll be a lot more dynamic and robust.
Note: DBSCAN doesn't assign all posts to a cluster, so you might not be able to use the toot_clusters.html
on it's own. You'll probably need an offshoot of it. Feel free to skip this part on the first pass of the PR, we might even be able to get someone else to do this part.
Hi!
I think this is an interesting tool and I'm very sympathetic to trying out different ways to sort the fediverse timelines algorithmically. Very cool idea!
There are some issues I see however in taking what other people post and sending it to a company that siphons off a large part of the web and re-sells it to you. There have been instances of other peoples' prompts leaking, so this may be a privacy issue as well. This may be especially problematic when direct messages are handled indiscriminately.
Can you clarify how much is sent to OpenAI when setting the URL / configuring the API key? I understand that by default it sends nothing, which is nice.
And second, is it possible to run this with a local LLM? I guess this is possible via plugins, is there a built-in method? Is there anything to look out for when picking a particular model?
Thanks! Looking forward to playing around with it.
Right now, it feels like clicking "Download Toots" might be re-training the cluster, but more realistically I think all that's happening is it's re-summarizing all clusters, which takes a while.
Try caching the cluster labels in the database. All you should need to do is save the cluster labels as a field in the TopicCluster
model, and the framework should take care of serializing/deserializing them.
There's a button, it just doesn't work
Tasks:
POST /toots/{id}/favorite
endpoint in server.py
that forwards the operation to mastodon via requests.post
.hx-post
attribute in app/templates/toot.html
Create a github action that is capable of pushing a wheel to PyPi.org when a Git tag is pushed to github.
On mobile, there's some CSS issue where the page content is twice as large as the screen after content is loaded. I'm sure it's a quick fix, I'm just not great at CSS.
Hi there! I thought I'd send a quick notice that https://app.fossil-social.com/ is down.
Looking forward to trying fossil! But no rush, I'm using Elk for now :)
Thanks!
Right now, a toot with a poll, the poll is entirely skipped. I'd like to have read-only support, at minimum.
This should be do-able completely in HTMX templates with no Python code. Just edit toot.html
and pull in the relevant parts from orig_json
. If you support voting, that's a little bit of FastAPI python code.
Debugging: I suggest finding a toot with a poll and click the "debug" button next to like & boost buttons. It prints the JSON to the terminal.
Fossil aims to be "for reading", and right now it punts thread display to your native app. So...
Some ideas, we could incorporate multiple of these:
6/10
on the toot to indicate it's the 6th toot out of a 10 toot threadThinking about the interaction wtih algorithms — Breaking up a post into many threads gives it multiple points in embedding space. So if your thread talks about ADHD, social media and horses, having each of those concepts show up separately (at least once) might enable the entire thread to show up in multiple labeled clusters. I think that's a good thing.
This is not an issue, per se, nor is it a request to rename your project, but it seems worth pointing out: the name Fossil has been in active use for an SCM/DVCS since 2007.
(Edit: feel free to close this. i'd do so right now but don't want it to get overlooked before a project contributor can get around to closing it.)
All the code is in place, although you might have to fix it up.
llm
instructions for installing models./settings
page to select the new modelYou probably don't need to use the same llm
installation as what fossil uses, since all state and models are written to your $HOME dir.
Write about it — here, or even send a pull request updating the README
Any work toward making it easier for people to use is greatly appreciated.
Through my refactoring, I broke this functionality.
These buttons are supposed to control how links are rendered.
Right now, for me, they're all showing as Ivory format.
Create a docker image that runs server.py
via uvicorn on all host names, exposes the port, etc. I'll push the image to docker central.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.