Avatar
Daniele
9e1bd05ed41e7aa2dda1e9b64b8ba48b69bb0fab5a22d442a495b1bf94a9b030
Building software that is Bitcoin and Nostr native. Frankie is an anonymous, pay-as-you-go AI Chat. And more offline-first tools coming, check them at https://frankie.tools/ NOA - Nostr Onboarding App - is a multi platform app to onboard pre-nostr users to this wonderland: https://nostr.frankie.tools/

Allies? :)

The idea that nato is an alliance and that europea countries are US allies probably sounds very funny the people down there.

Provinces is more accurate. Or clientes.

Allies is the edulcorated term. But is not the reality.

I'm on tidal since years now, after being subscribed to many over longer than a decade: Spotify, Deezer, Google music, and finally Tidal. I even did subscribe to Idagio for over a year.

But yeah, they are all very similar now. I did pick tidal for hi-res flac level audio mostly.

Been shut down from mozilla this summer.

Replying to Avatar jack

migrating to georelays on bitchat. find the closest relays for any one geohash and use them instead of the big default ones.

https://github.com/permissionlesstech/bitchat/tree/feat/georelay

hopefully this will inspire more relay ops to accept kind 20000 and better distribute relays globally (we need more smaller ones).

What's kind 20000?

Small but important update.

Now Frankie runs the latest @OpenAI GPT-5 models, and so we deprecate all the models of the (honestly confusing) previous generation .

Obviously alongside the latest @grok 4 and 3, @AnthropicAI Sonnet 4 and @deepseek_ai.

https://x.com/frankie_tools/status/1958811632244527157?t=Rf7QyySFtI742V5fkfgheQ&s=19

Buffer does support mastodon and bluesky (!!!) but it does not support Nostr.

But last week we had 3 new messaging app released so we can talk to no one even with no Internet now.

OK, maybe remove the sarcasm.. Something is not right.

To be fair, EU and Europe are two very different things.

And individual european countries as the one you mention, another thing again obviously :)

They are. I got familiar with most of how that works surprisingly quickly.

Maybe because I did not have any wrong preconceptions on how to do things, built over years of using bad patterns.

I did pick Svelte (over Vue as second option) because after 10 years of angular/react nonsense:

"Like every other framework, we’ve come to the realisation that Knockout was right all along."

https://svelte.dev/blog/runes#Signal-boost

Oh, important note: image generation is *much* more expensive.

It starts from around 40 cents for the lower resolution, using the last OpenAI model.

I almost never do images, so my rates are based on text chat exclusively.

Frankie users:

I apologise for the Image generation with the new gpt-image-1 model was not working.

But good news, it's up and running now, but still a bit buggy, you have to reload the page - after a while - to see it.

Will get this fixed later.

Now Frankie has a Web search!

This is the actual conversation using GPT search model: https://chat.frankie.tools/share/conversation/93fcb100-47b1-11f0-8c3a-a5ee228501bd

I do not have stats on hand, my bad.

But I can go from 2-3 conversation per day on a lousy day, to 12-14 on an average productive one.

Each conversation has multiple prompts.

I am adding the web search models today, I will try and get more stats on usage "soon" :)

They are priced against the actual model pricing exposed by OpenAI and the rest.

With some surplus, obviously, that I keep.

The best info I can give is my own "bill" as a user since August 5 2023 when it got live. Purchased 40 USD, spent 26.

That's 26 USD in almost 22 months of usage, and I use it pretty much, for coding and what not.

Your mileage may vary but we're talking just over 1USD per month :)

Yes, I see it.

I have to investigate potential "legal" problems I can bump into.

In the chat all user messages are filtered by the moderation service, so I am cool with that.

I will think about it. Thanks for sharing!

Makes sense, but why not connect the actual APIs?

They all have basically the very same HTTP interface. The burden is just to keep multiple API keys...

But yeah I see that it could be convenient to just pay with sats with no accounts, keys or else...

The quick answer: I do not, and I do not think I have to.

People can choose to just have an npub dedicated to services like Frankie, different from the one used here on the "social" nostr.

It is quite simple with Amber or Alby to manage multiple identities and that's the best practice anyway.

Not sure how I could do it without making the UX much worst.

No :(

You think I should? What is the use case?

Frankie Chat has all the latest models from OpenAI, like GPT 4.1, o3 and o4-mini.

We also have DeepSeek V3 and R1, Grok 3 and starting today Anthropic Claude 4 sonnet and 3.5 haiku.

Try it out: signin with nostr, recharge with sats: https://www.frankie.tools

Replying to Avatar PayPerQ

There's been some buzz in the last two days around LLM API's runnning pay-per-query via lightning payments.

As the creator of an AI service that prioritizes lightning, I wanted to share my experience and also learn a bit from the audience on this matter.

The ultimate dream we all have in the LN community is for each and every query (inference) to be paid for with the requisite amount of satoshis. That way, the user never has to keep a balance with the service and suffer from the host of corresponding inconveniences that arise from that.

When I originally built PPQ, I tried to implement exactly this feature. But when I actually got to doing this, I realized it was pretty hard:

First, generative AI queries are unpredictable in their cost. When a user sends a request, the cost of that request is generally not known until the output has finished streaming.

Second, even if one decided on some sort of fixed pricing per query, the latency to finish a lightning payment costs precious milliseconds and reduces the snappiness of the end product. I don't want to have a user wait an additional 1 second each time for the payment to clear before getting their answer.

To address this, my best idea was to charge an "extra amount" on the user's first query. That way, my service would store a de facto extra balance on behalf of the user. When the user submits their subsequent queries, the system could draw down on this "micro balance" instantly so that it didn't need to wait for the subsequent payment to clear. This micro balance would also serve to mitigate any issues where the user's output was higher than expected. So each subsequent query would always be drawing down on that micro balance and then the users realtime payments are not paying for the query, they are rathing paying to top up that micro balance over and over again.

However, even this method has some weaknesses to it. How much extra money should that first query be? Theoretically the micro balance needs to be as large as the largest possible cost that a query could be. If it wasn't that size, the service makes itself vulnerable to an attack where the users consistently write queries that exceed the amount of money in their microbalances. But the maximum cost of a gen AI query can actually be pretty large nowadays, esp with certain models. So the user's first query would always have a weird "sticker shock" attached to it where they are paying $1-2 for their first query. It creates confusion.

Aside from these problems, the other big problem is that the lightning consumer ecosystem of wallets and exchanges largely do not yet support streaming payments. The only one that does to my knowledge is @getAlby with their "budgeted payments" function in their browser extension.

So even if you were to build a service that could theoretically accept payments on a per query basis, the rest of the consumer facing ecosystem is not yet equipped to actually stream these payments.

In the end, I just adopted a boring old "top up your account" schema where users can come to the website and deposit chunks of money at a time and then draw down upon that balance slowly over time. While boring, it works just fine for now.

I woud like to hear from the community on this issue. Am I missing something? Is there a better way to tackle this? Maybe ecash has a cool solution to this?

nostr:nprofile1qyt8wumn8ghj7etyv4hzumn0wd68ytnvv9hxgtcpzemhxue69uhks6tnwshxummnw3ezumrpdejz7qpq2rv5lskctqxxs2c8rf2zlzc7xx3qpvzs3w4etgemauy9thegr43sugh36r nostr:nprofile1qyxhwumn8ghj7mn0wvhxcmmvqyehwumn8ghj7mnhvvh8qunfd4skctnwv46z7ctewe4xcetfd3khsvrpdsmk5vnsw96rydr3v4jrz73hvyu8xqpqsg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q8dzj6n nostr:nprofile1qyxhwumn8ghj7mn0wvhxcmmvqydhwumn8ghj7mn0wd68ytnzd96xxmmfdecxcetzwvhxgegqyz9lv2dn65v6p79g8yqn0fz9cr4j7hetf28dwy23m6ycq50gqph3xc9yvfs

I went for top up since day one.

I'm happy with the choice and going to stick with this.