Nexevo.aiNexevo.ai

Gestion des ressources

Historique des conversations

Module facultatif pour la persistance backend de l'interface utilisateur de chat. Chaque conversation est un conteneur avec un titre/métadonnées. Le message d'ajout ne déclenche pas LLM mais persiste uniquement (utilisé avec les terminaisons de chat). CRUD complet + message ajouté.

python
conv = client.conversations.create(title="My Session")
client.conversations.append_message(
    conv["conversation_id"], role="user", content="Hello!",
)
all_convs = client.conversations.list(limit=20)
detail = client.conversations.get(conv["conversation_id"])
POST /conversations
titlestringOptional对话标题。可后续 update。
metadataobjectOptional任意 JSON,关联你自己的 user_id / session_id / topic 等。最大 4KB。
POST /conversations/{id}/messages
role"user" | "assistant" | "system" | "tool"Required消息角色。
contentstringRequired消息文本。注意:此 endpoint 只持久化,不触发 LLM。

Gestion des comptes

Inscription/Connexion/Réinitialisation du mot de passe/2FA/Modification du profil/Désactivation du libre-service RGPD. La plupart des points de terminaison sont destinés aux flux d'applications Web ; l'intégration backend est juste moi() / changement de mot de passe / 2FA. Tous les points de terminaison protégés utilisent des jetons Bearer.

python
me = client.auth.me()
client.auth.update_profile(full_name="Jane Doe")
client.auth.change_password(
    current_password="old-pwd",
    new_password="new-pwd-123",
)
status = client.auth.two_fa_status()

Gestion des clés API

Créez/révoquer dynamiquement une clé API et pouvez définir une limite de consommation mensuelle (monthly_spend_cap_usd), un webhook d'alarme de dépassement de seuil (HTTPS uniquement) et une politique de routage géographique (cn uniquement/outre-mer uniquement/tout). create() renvoie full_key une seule fois, assurez-vous de la sauvegarder.

full_key n'est affiché qu'une seule fois
La full_key renvoyée par create() est la chaîne complète sk-xc-..., que Nexevo n'affichera plus jamais (seul le hachage est stocké). Assurez-vous de l'enregistrer dans le gestionnaire de clés ou dans le fichier .env immédiatement après sa création. En cas de perte, il ne peut être que défait et reconstruit.
python
new = client.keys.create(name="prod-2026")
print(new["full_key"])  # 只此一次显示

client.keys.update_spend_cap(
    new["key"]["key_id"],
    monthly_spend_cap_usd="100",
)

client.keys.update_alert_webhook(
    new["key"]["key_id"],
    url="https://your-app.com/billing-alert",
)
POST /keys
namestringRequiredKey 显示名(用于在 dashboard 区分)。1-100 字符。
PATCH /keys/{id}/spend-cap
monthly_spend_cap_usdstringOptional月度上限 USD,字符串保留精度(如 "100.00")。超 cap 后该 key 该月所有请求被拒。
clearbooleanDefault: falsetrue = 清除当前 cap(无限额)。

Facture/Utilisation/Recharge

Solde, usage quotidien, ventilation par palier (by_tier : fast / balanced / passthrough / byok), recharge Stripe. Le palier de facturation est déterminé par le champ model de la requête — model=nexevo/fast → tarif fixe fast ; un vrai ID de modèle → passthrough +5 %. Traitez toutes les chaînes monétaires comme des decimal — ne les analysez pas comme des float.

Utilisez une chaîne pour le montant, n'utilisez pas parseFloat
Tous les montants (balance_usd / cost / montant_usd) sont renvoyés sous forme de chaînes, en conservant la précision d'origine (décimale). Direct parseFloat peut perdre la mantisse, utilisez donc plutôt la bibliothèque Decimal/BigNumber pour l'addition et la soustraction.
python
bal   = client.billing.balance()
usage = client.billing.usage(days=7)
plan  = client.billing.get_plan()

hint = client.billing.upgrade_hint()
if hint["hint"]:
    print(f"建议: {hint['hint']['recommend_plan']}, "
          f"可省 {hint['hint']['savings_pct']}%")

session = client.billing.checkout(
    amount_usd=20,
    idempotency_key="topup-2026-04-27-001",
)
print(session["checkout_url"])
POST /billing/topup · POST /billing/checkout
amount_usdnumberRequired充值金额 USD,> 0。
idempotency_keystringRequired幂等 key,同 key 重试不会重复扣款。建议格式:topup-YYYY-MM-DD-序号。

Organisation/Utilisateurs multiples

Gestion multi-utilisateurs des comptes professionnels. Prend en charge trois rôles : propriétaire/administrateur/développeur, invitation/suppression/transfert de propriété de membre. Toutes les clés + facturation sont partagées sous le nom de l'organisation, ce qui convient à l'accès de l'équipe de l'entreprise.

python
org = client.organizations.create("Acme Inc")

client.organizations.invite_member(
    org["organization"]["org_id"],
    email="dev@acme.com",
    role="developer",
)

members = client.organizations.list_members(org["organization"]["org_id"])

client.organizations.transfer_owner(
    org["organization"]["org_id"],
    new_owner_user_id="u_789",
)

Commentaires sur la RLHF

Obtenez Generation_id à partir de l'en-tête de réponse du chat X-Nexevo-Generation-Id, soumettez un pouce vers le haut/vers le bas + un commentaire facultatif + une balise. Le retour d'information va directement au volant de données et le routage d'auto-apprentissage l'utilisera pour optimiser les futures sélections de modèles.

python
resp = client.chat.completions.create(
    model="nexevo/balanced",
    messages=[{"role": "user", "content": "Hello!"}],
)
gen_id = resp["nexevo"]["generation_id"]

client.feedback.submit(
    generation_id=gen_id,
    rating=1,
    comment="Helpful!",
    tags=["accurate"],
)

summary = client.feedback.summary(days=7)
POST /feedback
generation_idstringRequired从 chat 响应头 X-Nexevo-Generation-Id 或 SDK resp.nexevo.generation_id 拿。
rating1 | -1Required1 = 👍, -1 = 👎。
commentstringOptional可选自由文本(最多 ~2K 字符)。
tagsstring[]Optional可选标签。常用: accurate / incorrect / too_verbose / irrelevant
Les commentaires vont directement au routage d’auto-apprentissage
Les pouces vers le haut/vers le bas ne sont pas de simples statistiques : le routeur auto-apprenant (bandit + ELO) les utilisera pour ajuster les futurs modèles de sélection en temps réel. Plus de feedback = amélioration automatique de la qualité du produit.

Étape suivante

Gestion des ressources — Nexevo Docs | Nexevo.ai