Chuyển đến nội dung
Trở lại Nymbot

Cơ sở tri thức Nhà phát triển

Công cụ và SDK

Bất cứ điều gì có thể nói chuyện với OpenAI hoặc Anthropic có thể nói chuyện với Nymbot. Trong hầu hết các trường hợp, đó là một URL cơ bản, một khóa và một tên mô hình.

Mỗi thiết lập bên dưới cần một khóa API, được thực hiện trong ứng dụng Lửa Menu (Xem thêm) Chìa khóa lửa) và một id mô hình từ Model danh sáchCác ví dụ sử dụng anthropic/claude-sonnet-5 Đối với Pro Balance nymbot/auto là lựa chọn rẻ hơn trên cân bằng tiêu chuẩn cho chat đơn giản, nhưng nó không thể gọi các công cụ, mà Goose cần; cho điều đó, chọn một mô hình danh mục với capabilities.tools.

Thiết lập cho các đại lý mã hóa như Claude Code, Codex, Cline, Kilo Code và Continue là trên trang riêng của nó: Coding công cụ.

Cho mỗi công cụ một chìa khóa riêng

Tạo một khóa riêng biệt cho mỗi công cụ, với một cap. Các đại lý mã hóa thực hiện nhiều cuộc gọi mô hình cho một nhiệm vụ, và một cap trên khóa là cách đơn giản nhất để biết công cụ có thể chi tiêu nhiều nhất.

Mở SDK

Các thư viện chính thức của Python và JavaScript hoạt động không thay đổi. base_url Chat hoàn thành, phản hồi, hình ảnh, âm thanh và nhúng tất cả làm việc thông qua họ.

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

Các lĩnh vực của Nymbot, chẳng hạn như plugins Để tìm kiếm trên web, hãy vào extra_body trong Python và trực tiếp vào đối tượng yêu cầu trong JavaScript. nymbot cost object trong một câu trả lời là reply.model_extra["nymbot"] Trong Python và reply.nymbot trong JavaScript. Thư viện đọc OPENAI_BASE_URL Và OPENAI_API_KEY Các biến môi trường có thể được chỉ vào Nymbot với những biến đó một mình.

Phát triển Anthropic SDK

Các thư viện Anthropic sử dụng https://nymbot.ai/api như URL cơ bản, mà không có /v1Bởi vì họ thêm /v1/messages Bất kỳ mô hình catalog nào cũng hoạt động, không chỉ 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);

Trợ giúp

Trợ lý nói chuyện với bất kỳ máy chủ nào tương thích với OpenAI. Đặt URL cơ bản và khóa, và đặt openai/ trước id mô hình để Aider biết đó là loại máy chủ nào:

Shell

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

Trợ lý có thể cảnh báo rằng nó không biết kích thước ngữ cảnh hoặc giá của mô hình. --no-show-model-warnings Ẩn nó

Mở web

Trong Open WebUI, mở Admin PanelSau đó cài đặtSau đó Liên hệ, và thêm một kết nối API OpenAI:

  • URL : https://nymbot.ai/api/v1
  • Chìa khóa: API Key

Mở WebUI đọc danh sách mô hình từ API, vì vậy mỗi mô hình chat xuất hiện trong máy chọn của nó.Khi chạy nó trong Docker, điều tương tự có thể được thiết lập với các biến môi trường OPENAI_API_BASE_URL Và OPENAI_API_KEY.

Nymbot không lưu trữ chúng, nhưng Open WebUI làm, bất cứ nơi nào bạn chạy nó.

Goose

chạy goose configure- Chọn Configure nhà cung cấpChọn Pick Mở, và cung cấp cho nó các giá trị này khi được yêu cầu. Điều tương tự có thể được đặt trong môi trường:

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 gọi công cụ trên hầu hết mọi bước, vì vậy hãy chọn một mô hình với capabilities.tools Trong danh sách mẫu; nymbot/auto Từ chối công cụ

HTTP đơn giản

Không có gì cần một SDK. Mỗi điểm cuối là JSON qua HTTPS, ngoại trừ các tập tin tải lên, đó là các biểu mẫu đa phần. Bất kỳ ngôn ngữ hoặc công cụ nào có thể thực hiện một yêu cầu HTTP có thể sử dụng API:

  • Gửi khóa như Authorization: Bearer sk-nymbot-….
  • Gửi cơ quan JSON với Content-Type: application/json.
  • Để phát trực tuyến, đọc câu trả lời như là sự kiện được gửi bởi máy chủ; với cURL, thêm -N Vì vậy, nó in chúng khi chúng đến.
  • Đọc chi phí từ X-Nymbot-Cost-Sats header, và giữ cho X-Request-Id header nếu bạn có thể cần hỏi về một yêu cầu.

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