Langkau ke kandungan
Kembali ke Nymbot

Pangkalan pengetahuan Pengembang

Alat dan SDK

Apa-apa yang boleh bercakap dengan OpenAI atau Anthropic boleh bercakap dengan Nymbot.

Setiap setup di bawah memerlukan kunci API, dibuat dalam aplikasi Kebakaran Menu : Lihat Kunci api) dan model id daripada Senarai ModelContoh yang digunakan anthropic/claude-sonnet-5 kepada pro keseimbangan. nymbot/auto adalah pilihan yang lebih murah pada baki standard untuk chat biasa, tetapi ia tidak boleh memanggil alat, yang Goose perlukan; untuk itu, pilih model katalog dengan capabilities.tools.

Setup untuk agensi kod seperti Claude Code, Codex, Cline, Kilo Code dan Continue adalah pada halaman sendiri: Alat koding.

Berikan setiap alat kunci tersendiri

Buat kunci berasingan untuk setiap alat, dengan cap. Agen kod membuat banyak panggilan model untuk satu tugas, dan cap pada kunci adalah cara yang paling mudah untuk mengetahui berapa banyak alat boleh menghabiskan.

Pembukaan SDK

Perpustakaan rasmi Python dan JavaScript tidak berubah. base_url pada Nymbot dan melepaskan kunci anda. Chat Pencapaian, Jawapan, imej, audio dan embeddings semua bekerja melalui mereka.

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);

bidang Nymbot sendiri, seperti plugins Untuk carian web, masuk extra_body dalam Python dan terus ke objek permintaan dalam JavaScript. nymbot Objek kos dalam jawapan ialah reply.model_extra["nymbot"] dalam Python dan reply.nymbot dalam JavaScript. Perpustakaan yang membaca OPENAI_BASE_URL dan OPENAI_API_KEY Variabel persekitaran boleh ditunjukkan pada Nymbot dengan mereka sahaja.

Antropologi SDK

Perpustakaan antropologi yang digunakan https://nymbot.ai/api seperti URL asas, tanpa /v1kerana mereka menambah /v1/messages Setiap model katalog berfungsi, bukan sahaja Claude.

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);

Bantuan

Pembantu bercakap kepada mana-mana pelayan yang bersesuaian OpenAI. Setkan URL asas dan kunci, dan letakkan openai/ di hadapan model id supaya Aider tahu jenis pelayan yang ia adalah:

Shell

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

Penolong boleh memperingatkan bahawa ia tidak tahu saiz konteks atau harga model. --no-show-model-warnings sembunyikannya

Pembukaan WebUI

Dalam Open WebUI, terbuka Panel AdminSelepas itu pengaturanSelepas itu Sambungan, dan tambahkan sambungan OpenAI API:

  • Url : https://nymbot.ai/api/v1
  • Tag: kunci api anda

Open WebUI membaca senarai model daripada API, jadi setiap model chat muncul dalam pemilihannya. OPENAI_API_BASE_URL dan OPENAI_API_KEY.

Open WebUI menyimpan perbualan anda di pelayan sendiri.Nymbot tidak menyimpannya, tetapi Open WebUI melakukannya, di mana sahaja anda mengendalikannya.

Goose

berlari goose configuredan pilih Konfigurasi Pembekaldaripada Pick Pembukaan, dan berikan nilai-nilai ini apabila diminta. yang sama boleh ditetapkan dalam persekitaran:

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 memanggil alat pada hampir setiap langkah, jadi pilih model dengan capabilities.tools dalam senarai model; nymbot/auto Mengabaikan alat

Rujukan HTTP

Tiada yang memerlukan SDK. Setiap titik akhir adalah JSON di atas HTTPS, kecuali muat naik fail, yang merupakan borang pelbagai bahagian. Mana-mana bahasa atau alat yang boleh membuat permintaan HTTP boleh menggunakan API:

  • Hantar kunci sebagai Authorization: Bearer sk-nymbot-….
  • Menghantar badan JSON dengan Content-Type: application/json.
  • Untuk streaming, baca jawapan sebagai peristiwa yang dihantar oleh pelayan; dengan cURL, tambahkan -N Oleh itu, ia mencetak mereka apabila mereka tiba.
  • Baca kos daripada X-Nymbot-Cost-Sats header, dan mengekalkan X-Request-Id header jika anda mungkin perlu bertanya tentang permintaan.

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);