መሰረት ፍልጠት ደቨሎፐራዊት (ኣልጋእ ስራሕ)
መሳርሒታትን SDKታትን
ከOpenAI ወይ ጽምርAnthropic ምስ ዝዛረብ ዝኾነ ነገር ምስ Nymbot ክዛረብ ይኽእል እዩ። ኣብ መብዛሕትዮኡ ኩነታት መሰረታዊ URL፣ ቁልፊ (key) ከምኡውን ስም ሞዴል እዩ።
እዚ ገጽ ንመመላእታ ብማሽን ዝተተርጎመ እዩ። እቲ ናይ እንግሊዝኛ ኦሪጅናል እቲ ዝምልከቶ ስሪት እዩ።
ኩሉ ኣብ ታሕቲ ዘሎ ኣተላበላው API key የድሊ፣ እቲ ዝተገብረ ድማ ኣብቲ ultimately Application እዩ። API መ меню (ተመልከትኩ)
API ቁልፊታት), ከዚ ተሳቢ ናይ ሞዴል መታወቂያ ካብ
ዝርዝር ሞዴልቲኣብቲ ኣብ መ)|ውሰን ዘሎ ኣብነት እዚ ተጠቂሙ ኣሎ
anthropic/claude-sonnet-5 ኣብ Pro ሚዛን። nymbot/auto ንመቀላቀል ዝተፈላለየ ኣገልግሎት ንመደበኛ ዕጣታት (standard balance) ንተራ ዘይተሓላለኸ chat ዝሓሸን ርካብን ምርጫ እዩ፣ ግን እቲ Goose ዘድልዮ ኣገልግሎት (tools) ክሰርሕ ኣይኽእልን እዩ፤ ንኡቲ ኣገልግሎት ንምርካብ ግን እቲ ዘለዎ መመዝገቢ ሞዴል (catalog model) ምረጽ። capabilities.tools.
ንደኣከለ እኹል መሳርሒ ዝተፈላለየ መደብ (key) ምስ ገደብ ክትፈጥር፣ ንነፍሲ ወከፍ መሳርሒ ዝተኸልለ ዓቐን ክህልዎ ኣለዎ። ኮዲንግ ኤጀንትታት ንሓደ ስራሕ ብዙሓት ሞዴል ንዘውታውቲ (model calls) ዝጥቀሙ ስለ ዝኾኑ፣ ኣብቲ መደብ ዝተወሰነ ገደብ ምቕማጥ፡ ሓደ መሳርሒ ክሳብ ክንደይ ክኸፍል ከም ዝኽእል ንምፍላጥ ኣቐልታይ ኣካፋይ ኣገባብ እዩ። ሓደ መሳርሒ ጌጋ እንተገብረ፣ መደቡ ጥራይ ክትሰረዞ ትኽእል፣ ካልእ ነገር ድማ ኣይጎድእን እዩ።
OpenAI SDK
እቲ ኦፊሴላዊ ናይ Pythonን JavaScriptን ቤተ-መጻሕፍት (libraries) ብዘይተለወጠ ይሰርሑ ኣለዉ። Point base_url ኣብ Nymbot ቁልፎም ኣቕሪብ። Chat Completions፣ ምላሽታት፣ ምስልታት፣ ድምጺታትን embeddings ን ኩሎም ብዛዕባ ንሳቶም ይሰርሑ።
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 ንዌብ ፍለጋ፡ ኣ enters extra_body
ኣብ Python ከምኡ እውን ብቐጥታ ኣብ JavaScript ናብቲ request object። እቲ nymbot ወጋ (cost)
ኣብ መልሲ ዝህልዎ ዓቐን (object) እዩ reply.model_extra["nymbot"] ኣብ Python ከምኡ ቴ
reply.nymbot ኣብ JavaScript። ነቲ ዘንብብቲ ቤተፍሪታት (Libraries) OPENAI_BASE_URL
እና OPENAI_API_KEY ብኣብነት እቶም environment variables ምስ Nymbot ብዚኦም ጥራይ ክዎንከቡ ይኽእሉ እዮም።
Anthropic SDK
ኣንትሮፒክ (Anthropic) ቤተ-መጻሕፍቲ ይጠቀሙ 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);
ሕገ pomoc
Aider ምስ ዝኾነ OpenAI-ተስማሚ ሰርቨር ይዛረብ። እቲ መሰረታዊ URLን keyን ኣቐሚጥካ፣ ኣቐምጥ
openai/ ኣብ ቅድሚ model 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
Aider ክሳብ ሞዴሉ መጠን (context size) ወይ ዋጋ ዘይፈልጥ ከምኡ ክሕዘር ከምእኽበካ ክትንበይ ይኽእል እዩ። እቲ መጠንቀቕታ ሓደጋ የብሉን፤
--no-show-model-warnings ሕብአዮ።
ክፍት ዌብ ዩ-ኣይ
ኣብ Open WebUI፣ ክፈት መቆጻጸሪ ኣስተዳዳሪ፣ ድሕሪኡ ቅንብታት፣ ድሕሪኡ ኣገናኙነት, ከኣብነት OpenAI API ምስራዲት ይምCI:
- URL:
https://nymbot.ai/api/v1 - ቁልፊ፡ ናይቲ API ቁልፊኻ
Open WebUI ዝርዝር ሞዴል ካብ API ይቆጽብ፣ ስለዚэ እያንዳንዱ ናይ ቸት ሞዴል ኣብ መረጣኡ ይርአ። ኣብ Docker ክትጥቀመሉ ከለኻ፣ እዚ ተመሳሳሊ ነገር እዚ ብኣካባቢያዊ ተለዋዋጥቲ (environment variables) ክግበር ይኽእል እዩ።
OPENAI_API_BASE_URL እና OPENAI_API_KEY.
Open WebUI ንመወያያታትካ ኣብ ባዕሉ ሰርቨር ይሓዝበሎም። Nymbot ኣይሕዝቦምን እዩ፡ Open WebUI ግን፣ ኣብ ዝኾነ ቦታ እንተካየደቶ፣ ይሕዝቦ።
መኽላ (Geese)
ሩጥ goose configure፣ ኣተሚ መቕረብቲ (Providers) ኣዋቅር, ምረተ
OpenAI, ከጸወተ ድማ ነዚ መሰረታት ክሓተካ ከሎ ሃብዎ። ንዚ ድማ ኣብቲ ኣৱውት ክግበር ይኽእል እዩ፦
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 ኣይደልዮን እዩ። ፋይልታት ናብቲ ሰርቫር ብዝዝርእው (multipart forms) ኣዘራርባ ወጻኢ፡ ኩሉ ኤንድፖይንት (endpoint) በ HTTPS ዝመሓላለፈ JSON እዩ። HTTP request ክገብር ዝኽእል ዝኾነ ቋንቋ ወይ መሳርሒ ነቲ API ክጥቀመሉ ይኽእል እዩ፦
- እቲ ቁልፊ ከምዚ ከም ኣስምቶ ስደደዮ
Authorization: Bearer sk-nymbot-…. - JSON bodyታት ብዘሓዊ ስደድ
Content-Type: application/json. - ን ስትሪሚንግ (streaming)፣ ምላሹ ከሰርቨር ብመጻእ ዝመላኽ ኩነታት (server-sent events) ከምቲ ዘሎ ኣንብቦ፤ ምስ cURL፣ ወስኽ
-Nedanme'etwet ከም ዝመጹ ይሕብኣም። - ካብቲ ዋጋ ኣንብብ
X-Nymbot-Cost-Satshead, ከኡ የ keptX-Request-Idስለ ሓደ ሕቶ ክትሓትት እንተደሊኻ ክትጥቀመሉ ዝኽእል ኣርእስቲ።
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);