Lewati ke konten
Kembali ke Nymbot

Basis pengetahuan pengembang

Alat dan SDK

Apa pun yang dapat berbicara dengan OpenAI atau Anthropic dapat berbicara dengan Nymbot.

Setiap pengaturan di bawah ini membutuhkan kunci API, yang dibuat dalam aplikasi api yang Menu (lihat Kunci api) dan model id dari Daftar ModelContoh yang digunakan anthropic/claude-sonnet-5 dengan pro balance. nymbot/auto adalah pilihan yang lebih murah pada saldo standar untuk chat sederhana, tetapi tidak dapat memanggil alat, yang dibutuhkan Goose; untuk itu, pilih model katalog dengan capabilities.tools.

Setup untuk agen pengkodean seperti Claude Code, Codex, Cline, Kilo Code dan Continue ada di halaman sendiri: Kode Alat.

Berikan setiap alat kunci Anda sendiri

Membuat kunci terpisah untuk masing-masing alat, dengan cap. Agen pengkodean membuat banyak panggilan model untuk satu tugas, dan cap pada kunci adalah cara termudah untuk mengetahui berapa banyak alat dapat menghabiskan.

Buka SDK

Perpustakaan resmi Python dan JavaScript tidak berubah. base_url Chat Penutupan, Jawaban, gambar, 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 pencarian web, masuklah extra_body dalam Python dan langsung ke objek permintaan dalam JavaScript. nymbot Obyek biaya dalam sebuah jawaban adalah reply.model_extra["nymbot"] Dalam Python dan reply.nymbot dalam JavaScript. perpustakaan yang membaca OPENAI_BASE_URL Dan OPENAI_API_KEY Variabel lingkungan dapat ditunjukkan pada Nymbot dengan hanya mereka.

Antropologi SDK

Perpustakaan antropologi yang digunakan https://nymbot.ai/api sebagai URL dasar, tanpa /v1Karena mereka menambahkan /v1/messages Setiap model katalog bekerja, tidak hanya 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

Asisten berbicara dengan server yang kompatibel dengan OpenAI. menetapkan URL dasar dan kunci, dan menempatkan openai/ di depan id model sehingga Aider tahu jenis server apa itu:

Shell

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

Penolong dapat memperingatkan bahwa ia tidak tahu ukuran konteks model atau harga. peringatan ini tidak berbahaya; --no-show-model-warnings menyembunyikannya

WEB yang terbuka

Dalam Open WebUI, terbuka Admin PanelSetelah itu pengaturanSetelah itu Koneksi, dan tambahkan koneksi OpenAI API:

  • url : https://nymbot.ai/api/v1
  • Kunci API Anda

Open WebUI membaca daftar model dari API, sehingga setiap model chat muncul di picker. OPENAI_API_BASE_URL Dan OPENAI_API_KEY.

Open WebUI menyimpan percakapan Anda di server sendiri.Nymbot tidak menyimpannya, tetapi Open WebUI melakukannya, di mana pun Anda menggunakannya.

Goose yang

berlari goose configureMemilih Konfigurasi penyediaUntuk Pick Buka, dan berikan nilai-nilai ini ketika diminta. yang sama dapat ditetapkan di lingkungan:

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 daftar model; nymbot/auto menolak alat tersebut.

Menggunakan HTTP

Tidak ada yang membutuhkan SDK. Setiap titik akhir adalah JSON over HTTPS, kecuali upload file, yang merupakan formulir multipart.

  • Kirimkan kunci sebagai Authorization: Bearer sk-nymbot-….
  • Mengirimkan JSON dengan Content-Type: application/json.
  • Untuk streaming, baca jawaban sebagai peristiwa yang dikirim oleh server; dengan cURL, tambahkan -N Demikian pula dengan mereka yang datang.
  • Baca juga Biaya dari X-Nymbot-Cost-Sats header, dan memegang 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);