Aw ye tɛmɛ a kɔnɔkow kan
ka Nymbot dɔn

Dɔnniya basigilen Ɲɛmɔgɔw

Tana kuluw n'a kɔrɔ kow

Bila bɛ OpenAI walla Anthropic fɛ ka kulu, a bɛ Nymbot fɛ ka kulu. Ɲɛmɔgɔ kɛlɛ la, a ye base URL, kɛlɛ (key) kɛlɛ ni model mun fɛ ye.

A fɛ bɛɛ kɛnɛ kɔfɛ k'a fɛ API key, a bɛ dɔn aplikasi kɔnɔ API menyu (ta taga n'a faga) API kɛlɛkɛlɛw), ani model id kɛnɛ kow fɛ mɔgɔ bɔlɔ la listi ninnu dɔ bɛ nɔɔ kɔnɔ. A kɔrɔgɔn kɔrɔn ye bɛɛ ye kɔrɔn ye anthropic/claude-sonnet-5 Pro balance kɔnɔ. nymbot/auto a bɛ sɔrɔ kɛɲɛ kɛ dɔnniya fɛ, k’a dɔn k’a tɛ kɛ dɔrɔn kɛ dɔrɔn kɛ fɛ, nka Goose bɛ se ka kɛ dɔrɔn dɔrɔn kɛ fɛ; o la, a fɛ ka kɛ model dɔrɔn dɔrɔn dɔrɔn dɔrɔn kɛ fɛ k’a fɛ capabilities.tools.

Claude Code, Codex, Cline, Kilo Code ani Continue ka kɔdɔŋ tɛmɛnɛw fɛ kɔdɔŋ kɛlɛya lɔgɔ kɔnɔ fɛ: Kɔrɛfɛ kura bɔna fɛɛw.

Du kɛlɛn kɛlɛn ɲà a kɔrɔ.

Kalun kɛ fɛɛrɛ ye kalun kɛnɛ kɛra kɛlɛ kɛnɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ kɛra kɛlɛ k

OpenAI SDK

Python ni JavaScript kɛlɛya nɔgɔw kɛnɛ kɛra fɔɔ fɔɔ. Point base_url at Nymbot fɛ k'i ka kɛnɛya fɛɛrɛ kɛ. Chat Completions, Responses, images, audio ani embeddings bɛɛ bɛ kɛ ko kɔrɔ fɛ.

cURL

curl https://nymbot.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "anthropic/claude-sonnet-5", "messages": [{"role": "user", "content": "Hello"}]}'

Python

# pip install openai
import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

reply = client.chat.completions.create(
    model="anthropic/claude-sonnet-5",
    messages=[{"role": "user", "content": "Hello"}],
)
print(reply.choices[0].message.content)

JavaScript

// npm install openai
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const reply = await client.chat.completions.create({
  model: "anthropic/claude-sonnet-5",
  messages: [{ role: "user", content: "Hello" }],
});
console.log(reply.choices[0].message.content);

Nymbot ka fanga fɛ, n'a fɔ a bɛ... plugins web sisan fɛ, i kana fana kɛ extra_body Python kɔnɔ ni request object kɛnɛ JavaScript kɔnɔ kɔɲɛ. O nymbot yɛlɛmanya kɔrɔ kɛlɛ bɛ lakanɛ fɛ ye reply.model_extra["nymbot"] Python kɔ n kɛ nna reply.nymbot JavaScript kɔnɔ. Kɔlɔsiba ye min bɛ kɛ dɔnniya kɛra... OPENAI_BASE_URL ani OPENAI_API_KEY environment variables ye bɛ Nymbot dɛmɛ nka dɔɔni de dɛmɛ nka nka kɛ kɛ kɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka nka dɔɔni de dɛmɛ nka n

Anthropic SDK

Anthropic kilibiriwuluw n'a kɛnɛya kɛra https://nymbot.ai/api base URL kɛ nɔgɔ, ɔ tɛ /v1, sɔrɔ ka fɔ /v1/messages bɛɛ. A bɛɛ ka kɛnɛya kɛ, a tɛ Claude ko kɛ fɛ.

cURL

curl https://nymbot.ai/api/v1/messages \
  -H "x-api-key: $NYMBOT_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"model": "claude-sonnet-5", "max_tokens": 1024, "messages": [{"role": "user", "content": "Hello"}]}'

Python

# pip install anthropic
import os
import anthropic

client = anthropic.Anthropic(base_url="https://nymbot.ai/api", api_key=os.environ["NYMBOT_API_KEY"])

message = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}],
)
print(message.content[0].text)

JavaScript

// npm install @anthropic-ai/sdk
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({ baseURL: "https://nymbot.ai/api", apiKey: process.env.NYMBOT_API_KEY });

const message = await client.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello" }],
});
console.log(message.content[0].text);

Ɲɛmɔgɔya

Aider kɛ dɔnniya kɔrɔ kɛ OpenAI-compatible server bɛɛ ye. Base URL ni key ye, n'a fɔ... openai/ model kɔnɔna kɔnɔ k'a fɔ Aider ka dɔn server juman ye:

Shell

export OPENAI_API_BASE=https://nymbot.ai/api/v1
export OPENAI_API_KEY=sk-nymbot-...
aider --model openai/anthropic/claude-sonnet-5

Aider bɛ se ka kɛ nkafunu kɛ n'a fɔ ko a tɛ model sɔngɔ bɛɛ la o ka kɔrɔ kɛ kɔrɔ dɔ ye o la walla o ka sɔngɔ la. Nkafunu o ye kɛnɛya dɔ ye; --no-show-model-warnings a bɔ la.

Fɔ WebUI

Open WebUI, fɔla Admin Paneli, nankali Sɛtɛngiwura, nankali Kɔrɔsiw/Kɔlɔsiyaw, n'a bɛ OpenAI API kɔnɔkan bɛɛ lakan:

  • URL: https://nymbot.ai/api/v1
  • Key: i ka API key

Open WebUI bɛ model kɛnɛkanw bɛɛ kɛnɛ bɛɛ la API kɔnɔ, so model bɛɛ bɛ fɛn bɛɛ kɔnɔ fɛn fɛn dɔ. Docker kɔnɔ bɛ i fɛ i ka fɔ dɔ kɛ dɛmɛ kɛra dɔ bɛɛ la environment variables kɔnɔ OPENAI_API_BASE_URL ani OPENAI_API_KEY.

Open WebUI bɛ i ka soalo kɛnɛya sira kɛ i ka soalo kɛnɛya sira la. Nymbot tɛ a kɛ, nka Open WebUI bɛ a kɛ, i n'a fɔ i bɛ a kɛ a bɛɛ la.

Kanubala

Fannɛ goose configure, tila Wari kɛnɛya kura kɛ, bɔ OpenAI, n'a b'a fɛ ka a ye kɛnɛ kɛ ni fɛɛrɛ ye ni i b'a fɛ ka a ye sɔrɔ. O bɛ se ka kɛ environment kɔnɔ:

Shell

export GOOSE_PROVIDER=openai
export OPENAI_HOST=https://nymbot.ai/api
export OPENAI_BASE_PATH=v1/chat/completions
export OPENAI_API_KEY=sk-nymbot-...
export GOOSE_MODEL=anthropic/claude-sonnet-5
goose session

Goose kɔrɔ kɔrɔ kura ye dɔbɔ ni dɔbɔ ye, nka i ka sɔrɔ fɛn kɛnɛ dɔ kɛ... capabilities.tools model kɔrɔ kɔrɔsi la; nymbot/auto a bɔ kuluw.

HTTP kɛɲɛ

Bila kulu kɔrɔ kulu fɛɛrɛ bɛ se k’a fɛɛrɛ fɛɛrɛ. Endpoint bɛɛ bɛ JSON kɛ HTTPS fɛɛrɛ kɔnɔ, fanga tɛ mɔgɔ fɛɛrɛ fɛɛrɛ dɔ fɛɛrɛ tɛ, fanga ye file uploads ye, o ye multipart forms ye. Cɛ bɛɛ kɛnɛ nka kɛ cɛ bɛɛ kɛnɛ kɛ cɛ kɛ nka:

  • Kiri kɛ dɔnni kɛra a bɛɛ kɔnɔ a fɛ Authorization: Bearer sk-nymbot-….
  • JSON bodies ye n'a fɔ bɔ fɛ Content-Type: application/json.
  • Streaming ye, ka response kɛ server-sent events ye; cURL na, ka bɔ -N so a bɛ a ye kan-kila a sɔrɔ k'a ye.
  • Suma kɛnɛ bɛ kɛ fɛɛrɛ la X-Nymbot-Cost-Sats header, k'a bɛn u la X-Request-Id hɛrɛ kɛra n'i bɛ se ka fɔ ko i bɛ kɛrɛnkɛrɛnkɛrɛ kɛƝɛtɛmɛn dɔ la.

cURL

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

Python

import os
import requests

res = requests.post(
    "https://nymbot.ai/api/v1/chat/completions",
    headers={"Authorization": "Bearer " + os.environ["NYMBOT_API_KEY"]},
    json={"model": "nymbot/auto", "messages": [{"role": "user", "content": "Hello"}]},
)
print(res.headers["X-Nymbot-Cost-Sats"], res.headers["X-Request-Id"])
print(res.json()["choices"][0]["message"]["content"])

JavaScript

const res = await fetch("https://nymbot.ai/api/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer " + process.env.NYMBOT_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ model: "nymbot/auto", messages: [{ role: "user", content: "Hello" }] }),
});
console.log(res.headers.get("X-Nymbot-Cost-Sats"), res.headers.get("X-Request-Id"));
console.log((await res.json()).choices[0].message.content);