Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

get account balance info from token #23

Open
rifeWithKaiju opened this issue Sep 1, 2022 · 8 comments
Open

get account balance info from token #23

rifeWithKaiju opened this issue Sep 1, 2022 · 8 comments
Labels
enhancement New feature or request

Comments

@rifeWithKaiju
Copy link

I'd like users to be able to put their own tokens in our software and use the balance they have at dreamstudio using a different front-end.

Is it currently possible (and if not, I'd like to request this feature), to get the balance of the account, so I can provide this information to users without them having to go to a browser and log into dreamstudio?

@rifeWithKaiju rifeWithKaiju changed the title get account balance info from the token get account balance info from token Sep 1, 2022
@SiyrisSoul
Copy link

This would also be useful to set up an alert system when paying for things on a large scale to ensure the app doesn't become unusable during a massive surge in traffic and so I don't have to keep checking manually.

@dmarx dmarx added the enhancement New feature or request label Sep 8, 2022
@dmarx
Copy link
Contributor

dmarx commented Sep 8, 2022

coming soon, but hasn't been incorporated into this package yet. If you don't mind getting under the hood the grpc stubs you'll need can be found here:

@jessekoska
Copy link

jessekoska commented Oct 6, 2022

@dmarx I've managed to use the dashboard stub to access GetMe and I'm getting a permission error... is this something that i can get opened up? if so how?

grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
status = StatusCode.PERMISSION_DENIED
details = "You do not have permission to access this resource."
debug_error_string = "UNKNOWN:Error received from peer ipv4:104.18.21.212:443 {grpc_message:"You do not have permission to access this resource.", grpc_status:7, created_time:"2022-10-06T00:52:45.118895296+00:00"}"

I'm using the same StabilityInference example in client.py to open up the channel. generation works fine with the api token i'm using.

wd = pathlib.Path(file).parent.resolve()
dashPath = wd / "stability-sdk/api-interfaces/gooseai/dashboard"
sys.path.append(str(dashPath))

import dashboard_pb2 as dashboard
import dashboard_pb2_grpc as dashboard_grpc

#then inside class StabilityInference:
def get_me(self):
er = dashboard.EmptyRequest()
stub = dashboard_grpc.DashboardServiceStub(self.channel)
return stub.GetClientSettings(er, **self.grpc_args)

@johnsabath
Copy link
Contributor

@jessekoska We'll need to do some back-end work to support this, as API keys have a very limited permission set at the moment. Allowing API key permissions to be customized at creation time is on our radar.

@cou929
Copy link

cou929 commented Oct 19, 2022

As same to @CEOSiyris is saying, I also would like to monitor the remaining balance to use DreamStudio API in production.

But I've not figured out how to get the access token in a canonical way. Could you have some advice?

  • I've opened https://beta.dreamstudio.ai/membership in the chrome browser and logged in to it
  • Copied access token by inspecting "authorization: Bearer ..." request header using the chrome dev tool
  • Set this token to call credential, built the stub of Dashboard service, and then I could call GetMe and GetOrganization successfully
    • I could get OrganizationPaymentInfo.balance which seemed to be what I needed

It worked, but copying the token by the dev tool doesn't seem like the right way to do it.

@jessekoska
Copy link

yeah i attempted this approach too (but must have not done something correct in the metadata approach cause i didn't get it to connect) but i also noticed that my account's Bearer token changed at some point so i stopped trying as i wasn't confident of how long the token would be valid or how i might refresh it

@johnsabath
Copy link
Contributor

With a recent update, API keys now have read-only access to certain dashboard operations, such as GetMe and GetOrganization, so this is now possible.

@pharmapsychotic
Copy link
Member

There's a handy function for this the animation notebook uses to fetch the user's profile picture and credit balance you could use: https://github.com/Stability-AI/stability-sdk/blob/main/src/stability_sdk/api.py#L181
It will probably shift locations as StabilityInference and api.Context merge up but that's one way to get it at the moment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

7 participants