Μετάβαση στο περιεχόμενο
Επιστροφή στο Nymbot

Βάση γνώσεων Οι προγραμματιστές

Εργαλεία και SDKs

Οτιδήποτε μπορεί να μιλήσει με το OpenAI ή το Anthropic μπορεί να μιλήσει με το Nymbot.Σε σχεδόν όλες τις περιπτώσεις είναι μια βασική διεύθυνση URL, ένα κλειδί και ένα όνομα μοντέλου.

Κάθε παρακάτω ρύθμιση χρειάζεται ένα κλειδί API, που γίνεται στο πλαίσιο της εφαρμογής. Φωτιά Το μενού (βλέπε Κλειδιά φωτιάς) και ένα μοντέλο ID από Η λίστα μοντέλωνΤα παραδείγματα που χρησιμοποιούνται anthropic/claude-sonnet-5 Για την ισορροπία. nymbot/auto είναι η φθηνότερη επιλογή στο πρότυπο ισοζύγιο για απλή συνομιλία, αλλά δεν μπορεί να καλέσει εργαλεία, τα οποία χρειάζεται η Goose. για αυτό, επιλέξτε ένα μοντέλο καταλόγου με capabilities.tools.

Η ρύθμιση για τους πράκτορες κωδικοποίησης όπως Claude Code, Codex, Cline, Kilo Code και Continue είναι στη δική του σελίδα: Εργαλεία κωδικοποίησης.

Δώστε σε κάθε εργαλείο το δικό του κλειδί

Κάντε ένα ξεχωριστό κλειδί για κάθε εργαλείο, με ένα καπάκι.Οι πράκτορες κωδικοποίησης κάνουν πολλές κλήσεις μοντέλου για μια εργασία και ένα καπάκι στο κλειδί είναι ο απλούστερος τρόπος για να μάθετε πόσα χρήματα μπορεί να ξοδέψει ένα εργαλείο.

Ανοίξτε το SDK

Οι επίσημες βιβλιοθήκες Python και JavaScript λειτουργούν αμετάβλητες. base_url Συμπληρώματα συνομιλίας, απαντήσεις, εικόνες, ήχο και ενσωματώσεις όλα λειτουργούν μέσα από αυτά.

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

Τα δικά του πεδία, όπως plugins Για αναζήτηση στο διαδίκτυο, μεταβείτε extra_body σε Python και απευθείας στο αντικείμενο του αιτήματος σε JavaScript. nymbot Το κόστος αντικείμενο σε μια απάντηση είναι reply.model_extra["nymbot"] Με Python και reply.nymbot σε JavaScript. Βιβλιοθήκες που διαβάζουν το OPENAI_BASE_URL και OPENAI_API_KEY Οι περιβαλλοντικές μεταβλητές μπορούν να επισημανθούν στο Nymbot μόνο με αυτές.

Ανθρωπογενής SDK

Οι ανθρωπογενείς βιβλιοθήκες χρησιμοποιούν https://nymbot.ai/api όπως το βασικό URL, χωρίς /v1Επειδή προσθέτουν /v1/messages Οποιοδήποτε μοντέλο καταλόγου λειτουργεί, όχι μόνο ο 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);

Βοηθός

Ο βοηθός επικοινωνεί με οποιονδήποτε διακομιστή συμβατό με το OpenAI. Ορίστε τη βασική διεύθυνση URL και το κλειδί και τοποθετήστε openai/ μπροστά από το μοντέλο id έτσι ώστε ο Aider ξέρει ποιο είδος διακομιστή είναι:

Shell

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

Ο βοηθός μπορεί να προειδοποιήσει ότι δεν γνωρίζει το μέγεθος περιβάλλοντος ή την τιμή του μοντέλου. --no-show-model-warnings να το κρύψει.

Ανοιχτή ιστοσελίδα

Σε ανοιχτό WebUI, ανοιχτό admin πάνελΣτη συνέχεια ΡυθμίσειςΣτη συνέχεια Συνδέσεις, και προσθέστε μια σύνδεση OpenAI API:

  • Το URL: https://nymbot.ai/api/v1
  • Κλειδί: Κλειδί API

Το Open WebUI διαβάζει τη λίστα μοντέλων από το API, έτσι ώστε κάθε μοντέλο συνομιλίας να εμφανίζεται στο picker του. OPENAI_API_BASE_URL και OPENAI_API_KEY.

Το Open WebUI διατηρεί τις συνομιλίες σας στον δικό του διακομιστή. το Nymbot δεν τις αποθηκεύει, αλλά το Open WebUI το κάνει, όπου κι αν τις εκτελείτε.

Γουόζου

Τρέξιμο goose configureΕπιλέξτε Διαμόρφωση προμηθευτώνΠικ Ανοιχτά, και δώστε του αυτές τις τιμές όταν ζητηθεί. Το ίδιο μπορεί να οριστεί στο περιβάλλον:

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 καλεί εργαλεία σχεδόν σε κάθε βήμα, οπότε επιλέξτε ένα μοντέλο με capabilities.tools στη λίστα των μοντέλων, nymbot/auto Αρνούνται τα εργαλεία.

Απλή HTTP

Τίποτα δεν χρειάζεται ένα SDK. Κάθε τερματικό σημείο είναι JSON πάνω από HTTPS, εκτός από τις μεταφορτώσεις αρχείων, οι οποίες είναι φόρμες πολλαπλών τμημάτων.

  • Στείλτε το κλειδί ως Authorization: Bearer sk-nymbot-….
  • Στείλτε τα σώματα JSON με Content-Type: application/json.
  • Για streaming, διαβάστε την απάντηση ως συμβάν που αποστέλλεται από το διακομιστή. με cURL, προσθέστε -N Τους εκτυπώνει καθώς έρχονται.
  • Διαβάστε το κόστος από το X-Nymbot-Cost-Sats Χάκερ και κρατήστε το X-Request-Id Χρησιμοποιήστε το header εάν χρειαστεί να ζητήσετε μια αίτηση.

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