Hello #nostr, this is my first note, after mostly lurking as silent reader for a while 😄
Happy to introduce my first nostr project, https://github.com/atrifat/nostr-filter-relay , an aggregator filter relay which classify notes/posts into various category. This relay can be used mainly as "Global" relay in nostr clients, helping users to filter their global feed.
Currently, it has already several filtering features (also planned features listed):
- Language detection
- Not SFW or SFW image content detection
- User type filtering (Nostr non-bridged/regular user, activitypub/mostr pub bridged user)
- (Planned) Sentiment analysis
- (Planned) Topic classification
- (Planned) Hate speech detection
Feel free to check "USAGE" docs in Github for more information and examples on how to use the relay.
There is a public demo (beta/test) relay wss://nostr-id-relay.hf.space for those who can't run their own nostr-filter-relay software. Feel free to test the relay, although the performance is not always guaranteed, since this is only a test server.
I hope to do something on #nostr as well.
You can do anything, if you love or prefer to write content or love writing article then you can probably write your thought with notes or article (NIP-23). Even our rants sometimes are useful for others 😅
Thanks but I am not talking of ranting 😄. I am talking of building one good Nostr application using Nostr open source feature. Thank you.
#nostr
Oh, you can probably start with https://github.com/nostr-protocol/nips repository since there are many NIPs to learn 😅. You can probably pick some idea and start implement it even with simple PoC code, at least they can be useful for ourself. Hopefully we can create something better later for many people 🙂
Welcome! This is a great project 🐶🐾🫂💜🎉
Thank you, hopefully more and better similar projects from others developer will come 🫂
Great! Tell me please, you have extracted some additional data for events (language, category, etc) — what is your vision on how existing clients could use it? Or do you only expect new clients (or features in existing clients) to handle your relay?
Thank you. I think if this becomes standard then existing clients can query those additional data (currently kind 9978) using certain tag (currently d tag) limited to certain pubkey filter (currently with my bot pubkey). Clients can give certain filters option in their settings for users to be picked (language, category, etc). If there are other data providers then they can pick other data providers (other pubkey) so users have freedom to choose whatever algo/filter method they want.
Before that, i will check whether better use NIP-32 implementation or stay with current implementation. 😅
Awesome first project! Great to have others working on classification.
Thank you Mazin. This is partly inspired when you've introduced some classification in api.nostr.wine before and how you've tell us the problem of it is quite costly when using commercial products like ChatGPT and DeepL. So i'm trying to make the 'poor man' version of those, hoping it can works 😅
Very nice, amazing!
Does it (also) act like a proxy? I see you can configure other relays (RELAYS_SOURCE) in the .env so I assume it will fetch events from those?
Thank you. Yes, it acts like frontend proxy before forwarding any request into the backend (strfry internal relay). However, RELAYS_SOURCE determines where to fetch/aggregate Nostr events (kind 1) before classifying them into various category and send them into target relay (strfry internal relay). UPSTREAM_WS_URL is the correct one for settings which relay to be the target of proxy. I have run several tools in this docker image, maybe it makes a bit confusing 😅
Yes I get it 🙂 already saw the other services and it makes sense to me Will look into it further later on 👍🏻
Thank you, hopefully the code will be quite easy to read, please bear with me if it is not quite clean 😅
Well most of the comments I must translate 😅
Yes, nostr-filter comments come from upstream (imksoo/nostr-filter), haven't touch any of those yet. imksoo-san primarily makes this mainly for their Japanese relay at first. I can understand a bit based only on the code written 😂
You can probably try wss://nostr-id-relay.hf.space . By default it will use parameter: content=sfw to filter non sfw content. Users can change freely various parameter even to disable it (content=all). You can check usage docs in github.
nostr:nevent1qqs0mxfjczplyf2vwp2tuf47jgf9feg6psley9gesyjlw4wdaj2a3sspzdmhxw309ucnydewxqhrqt338gmnwdehqgszkelyszmln8fgx45y4rmjwmvxaklguvvw54w0wlx064vutuj0v3grqsqqqqqpvfyv0v
nostr:npub1qd6zcgzukmydscp3eyauf2dn6xzgfsevsetrls8zrzgs5t0e4fws7re0mjthank you for the first boosting my first note, otherwise it will be drowned in void 🙏
I have noticed that some Thai users have used nostr-filter-relay? How are the experiences? Does it help for browsing global feed?
@Notoshi⚡ not sure why fail to mention
Relay works excellently. I highly recommend it in the Thai community.
Thank you, glad to hear that. 😊
Did you and other users use custom parameters or default setting? Like language setting to Thai for example?
Let me know if you have some problems/errors or suggestions.