SDK in abbonamento
OAuth per utente · limiti del piano condivisi tra le app · modello gestito da Pura.
Cerchi le API a consumo?Quickstart
Dal primo collegamento alla prima inferenza, con un backend per utente.
Prerequisiti
Servono un account Pura, un abbonamento attivo e pagato, un’app registrata e un callback esatto registrato per il tuo ambiente (HTTPS, HTTP localhost o deep link nativo). Configura un ambiente di test con utenti e callback distinti dalla produzione. Consulta Registrazione delle app per icona obbligatoria, URI ammessi e gestione dei deep link.
Installa la release SDK
Ricevi da Pura il pacchetto ufficiale della versione concordata e verifica il manifest SHA-256 prima dell’installazione. Non è richiesto un SDK OpenAI per l’inferenza delegata.
npm install ./pura-ai-sdk-0.1.1.tgz
# Python
pip install ./pura_llm_sdk-0.1.1-py3-none-any.whlCollega l’utente
Genera un’autorizzazione per la sessione locale, salva lo stato pending sul server e reindirizza il browser. Al ritorno valida state, redirect e PKCE tramite l’SDK. Salva i token solo dopo aver associato il pura_user_id verificato all’utente locale autenticato.
import {createAuthorization, PuraOAuthClient} from '@pura-ai/sdk';
const options = {
apiBase: 'https://ai.puradigital.it/v1',
clientId: process.env.PURA_CLIENT_ID!,
redirectUri: 'https://your-app.example/pura/callback',
};
const {url, pending} = await createAuthorization(options);
// Save pending in the authenticated user's server session.
// Redirect that browser to url.
const oauth = new PuraOAuthClient({
...options, clientSecret: process.env.PURA_CLIENT_SECRET!,
});
const tokens = await oauth.exchange(callbackUrl, pending);
// Bind tokens.pura_user_id to the authenticated local user.
await userTokenStore.set(tokens);Invia la prima richiesta
Il TokenStore dell’esempio è un adapter da implementare con il tuo database. Usa un client riferito alla connessione dell’utente corrente e verifica i servizi disponibili con capabilities(). Il client non sceglie il modello.
import {PuraInferenceClient} from '@pura-ai/sdk';
const pura = new PuraInferenceClient({
apiBase: 'https://ai.puradigital.it/v1',
clientId: process.env.PURA_CLIENT_ID!,
clientSecret: process.env.PURA_CLIENT_SECRET!,
store: userTokenStore,
});
const answer = await pura.chat({
messages: [{role: 'user', content: 'Hello, Pura'}],
});
const usage = await pura.usage();Prima di passare in produzione
Implementa cifratura dei token, refresh concorrenti, gestione di 402/429, disconnessione e webhook. Verifica due utenti e due app sullo stesso account: il consumo deve rimanere condiviso, le revoche separate.