Git Product home page Git Product logo

fossil's People

Contributors

alenachao avatar baseely avatar golfinq avatar johnmcdonnell avatar tkellogg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

fossil's Issues

Implement boost button

There's a button, it just doesn't work

Tasks:

  • Create a POST /toots/{id}/boost endpoint in server.py that forwards the operation to mastodon via requests.post.
  • Setup the hx-post attribute in app/templates/toot.html

CSS help

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.

New Algorithm: DBSCAN clustering

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.

Using local LLMs

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.

"Download Toots" is too slow

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.

Implement the like button

There's a button, it just doesn't work

Tasks:

  • Create a POST /toots/{id}/favorite endpoint in server.py that forwards the operation to mastodon via requests.post.
  • Setup the hx-post attribute in app/templates/toot.html

Publish package on PyPi

Create a github action that is capable of pushing a wheel to PyPi.org when a Git tag is pushed to github.

Fix horizontal scroll on mobile

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.

Support polls

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.

Opinions Needed: How to display threads?

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:

  • Thread indicator — display 6/10 on the toot to indicate it's the 6th toot out of a 10 toot thread
  • Show all posts together, always (imo i don't like this, but who knows)
  • Click a button and see a modal dialog with the entire thread. Closing the dialog closes the whole thread.

Thinking 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.

FYI: project name collision

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.)

Try running a local model

All the code is in place, although you might have to fix it up.

  1. Follow the llm instructions for installing models.
  2. Change the select box on the /settings page to select the new model
    image
  3. Verify that it's not using OpenAI (idk, maybe remove the API key and see if it still works)

You 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

Links only support Ivory

Through my refactoring, I broke this functionality.

image

These buttons are supposed to control how links are rendered.

  • Desktop — Link opens to the advanced view
  • Ivory — my iOS client has a special link format that enables links to always open in Ivory
  • Native — what the toot sent, verbatim

Right now, for me, they're all showing as Ivory format.

Create docker image

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.