KolWrite KolWrite Développeurs

Endpoints compatibles OpenAI

L’IA managée de KolWrite répond dans les mêmes formats que l’API OpenAI. Pointez un SDK OpenAI, ou tout outil qui permet de définir une URL de base, vers KolWrite et utilisez un token d’accès personnel comme clé d’API :

Base URL: https://api.kolwrite.com/api/v1/ai/openai
API key:  your kol_... token (scope ai:use)

Les appels consomment les crédits du compte propriétaire du token, mesurés par token d’utilisation. Ils sont distincts des jobs de transcription (voir le guide des agents).

Prérequis

Endpoints

EndpointRôle
GET /modelsLes modèles utilisables, avec credit_pricing pour chacun
POST /chat/completionsComplétions de chat, avec streaming ("stream": true)
POST /responsesL’API Responses
POST /embeddingsEmbeddings
POST /audio/transcriptionsTexte d’un court clip vocal (file en multipart)
POST /images/generationsGénération d’images

Les modèles portent des alias stables : kw-auto (choisit entre un modèle rapide et un modèle plus puissant), kw-fast et kw-pro. GET /models fait foi pour ce qui est disponible avec votre token ; chaque entrée indique context_window et la prise en charge des outils, de la vision et de l’audio.

Python

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.kolwrite.com/api/v1/ai/openai",
    api_key=os.environ["KOLWRITE_TOKEN"],
)

reply = client.chat.completions.create(
    model="kw-auto",
    messages=[{"role": "user", "content": "Summarize this transcript in five bullets: ..."}],
)
print(reply.choices[0].message.content)

vectors = client.embeddings.create(model="kw-embedding", input=["first text", "second text"])

JavaScript

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.kolwrite.com/api/v1/ai/openai",
  apiKey: process.env.KOLWRITE_TOKEN,
});

const stream = await client.chat.completions.create({
  model: "kw-fast",
  messages: [{ role: "user", content: "Write a title for this meeting." }],
  stream: true,
});
for await (const chunk of stream) process.stdout.write(chunk.choices[0]?.delta?.content ?? "");

curl

curl https://api.kolwrite.com/api/v1/ai/openai/chat/completions \
  -H "Authorization: Bearer $KOLWRITE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"model": "kw-auto", "messages": [{"role": "user", "content": "Hello"}]}'

curl https://api.kolwrite.com/api/v1/ai/openai/audio/transcriptions \
  -H "Authorization: Bearer $KOLWRITE_TOKEN" \
  -F file=@clip.wav -F model=kw-fast -F language=auto

Un court clip ou un enregistrement complet ?

/audio/transcriptions est une voie rapide pour les clips courts : une requête, une réponse, aucun job. Elle ne produit ni étiquettes de locuteurs ni la transcription enregistrée avec ses versions. Pour une réunion, un entretien ou un long fichier, envoyez le média et créez un job de transcription : il renvoie horodatage des mots, locuteurs, SRT et VTT.

Avec want_words=true, la réponse du clip contient aussi words sous la forme {w, start, end}, en secondes depuis le début du clip.

Ce qui diffère d’OpenAI

Questions

Puis-je utiliser le SDK OpenAI avec KolWrite ?

Oui. Définissez l’URL de base sur https://api.kolwrite.com/api/v1/ai/openai et la clé d’API sur un token KolWrite ayant le scope ai:use.

Le streaming et les outils sont-ils pris en charge ?

Les complétions de chat se font en streaming avec "stream": true. GET /models indique, pour chaque modèle, s’il prend en charge les outils, la vision et l’audio.

Quel endpoint transcrit de l’audio ?

POST /audio/transcriptions pour les clips courts ; les jobs de transcription pour tout le reste.

Version Markdown de cette page