Vai al contenuto
PuraPura Developers

SDK in abbonamento

OAuth per utente · limiti del piano condivisi tra le app · modello gestito da Pura.

Cerchi le API a consumo?
Developers/Quickstart

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.

bash
npm install ./pura-ai-sdk-0.1.1.tgz
# Python
pip install ./pura_llm_sdk-0.1.1-py3-none-any.whl

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

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

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