ข้ามไปยังเนื้อหา
SDK

SDK

SDK ของ OpenAI หรือ Anthropic ตัวใดก็ใช้ได้ทันที

Shannon ใช้รูปแบบการสื่อสารของทั้ง OpenAI และ Anthropic คุณจึงใช้ SDK อย่างเป็นทางการของทั้งสองได้ตามเดิม คุณเปลี่ยนสามค่าในไคลเอนต์: base URL, API key และ model id ส่วนที่เหลือของโค้ดเหมือนเดิม

สิ่งที่ต้องตั้งค่า

การตั้งค่า OpenAI SDK Anthropic SDK
Base URL https://api.shannon-ai.com/v1 https://api.shannon-ai.com
API key คีย์ Shannon ของคุณ SDK ส่งเป็น Authorization: Bearer คีย์ Shannon ของคุณ SDK ส่งเป็น x-api-key
โมเดล model id ที่เผยแพร่ เช่น shannon-3 model id ที่เผยแพร่ เช่น shannon-1.6-lite
endpoint ที่เข้าถึงได้ /v1/chat/completions, /v1/responses, /v1/models /v1/messages, /v1/messages/count_tokens
ตัวแปรสภาพแวดล้อม OPENAI_API_KEY และ OPENAI_BASE_URL ซึ่ง SDK ของ Python และ JavaScript อ่านเมื่อคุณไม่ส่งค่า ANTHROPIC_API_KEY และ ANTHROPIC_BASE_URL ซึ่ง SDK ของ Python และ TypeScript อ่านเมื่อคุณไม่ส่งค่า

base URL ทั้งสองต่างกันที่ /v1: OpenAI SDK เติม /chat/completions ต่อท้าย base URL ส่วน Anthropic SDK เติม /v1/messages ชื่อโมเดลที่ Shannon ไม่ได้เผยแพร่จะได้รับ 400 และ unknown model โมเดลและราคา

คีย์ของคุณอยู่ในหน้าคีย์และการใช้งาน คีย์และการใช้งาน

OpenAI SDK

OpenAI SDK อย่างเป็นทางการเรียก POST /v1/chat/completions และ POST /v1/responses แต่ละตัวอย่างส่งข้อความผู้ใช้หนึ่งข้อความและพิมพ์คำตอบ

# pip install openai
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com/v1",
)

response = client.chat.completions.create(
    model="shannon-3",
    messages=[{"role": "user", "content": "Hello, Shannon!"}],
)
print(response.choices[0].message.content)
ภาษา การติดตั้ง ตัวเลือก base URL ซอร์ส
Python pip install openai base_url openai/openai-python
JavaScript / TypeScript npm install openai baseURL openai/openai-node
Go go get github.com/openai/openai-go/v3 option.WithBaseURL openai/openai-go
Java com.openai:openai-java baseUrl openai/openai-java
.NET dotnet add package OpenAI OpenAIClientOptions.Endpoint openai/openai-dotnet

ทุกฟิลด์ของสอง endpoint อธิบายไว้ในหน้าของตัวเอง Chat Completions Responses API

Anthropic SDK

Anthropic SDK อย่างเป็นทางการเรียก POST /v1/messages ต้องมี max_tokens ในทุกการเรียก ตัวอย่างจึงใช้ shannon-1.6-lite ซึ่งใช้ค่านี้ แต่ละตัวอย่างพิมพ์ text block ของคำตอบ

# pip install anthropic
import anthropic

client = anthropic.Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com",
)

message = client.messages.create(
    model="shannon-1.6-lite",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello, Shannon!"}],
)
for block in message.content:
    if block.type == "text":
        print(block.text)
ภาษา การติดตั้ง ตัวเลือก base URL ซอร์ส
Python pip install anthropic base_url anthropics/anthropic-sdk-python
TypeScript npm install @anthropic-ai/sdk baseURL anthropics/anthropic-sdk-typescript
Go go get github.com/anthropics/anthropic-sdk-go option.WithBaseURL anthropics/anthropic-sdk-go
Java com.anthropic:anthropic-java baseUrl anthropics/anthropic-sdk-java

รูปแบบ Messages และความแตกต่างอยู่ในหน้าความเข้ากันได้กับ Anthropic รูปแบบ Anthropic

สิ่งที่ SDK วางใจได้

  • ฟิลด์ของคำขอที่ API ไม่ใช้จะได้รับการยอมรับ ฟิลด์ที่ API รู้จักแต่ส่งด้วยชนิดที่ผิดจะได้รับ 422
  • เฮดเดอร์ version และ beta ที่ SDK เพิ่มให้ (anthropic-version, anthropic-beta, openai-beta) ได้รับการยอมรับ ไม่มีเฮดเดอร์ใดจำเป็น
  • model ของคำตอบคือ id ที่เผยแพร่ คุณจึงส่งกลับไปตามเดิมได้
  • บน /v1/messages คำตอบอาจเริ่มด้วยบล็อก thinking ให้อ่านบล็อกชนิด text แทนการใช้บล็อกแรก
  • การสตรีมทำงานผ่าน stream helper ของ SDK เอง usage มาถึงตอนท้ายของทุกสตรีม
  • ทุกคำตอบมีเฮดเดอร์ x-request-id ส่ง x-request-id ของคุณเอง แล้วค่าเดียวกันจะถูกส่งกลับ

SDK จากชุมชน

ไคลเอนต์ที่ผู้เขียนอื่นเขียนไว้สำหรับ OpenAI API ใช้ได้ในแบบเดียวกัน: ให้ไคลเอนต์ใช้ base URL ที่มี /v1 คีย์ของคุณ และ model id ของ Shannon ไคลเอนต์เหล่านี้ดูแลโดยผู้เขียนเอง ไม่ใช่โดย Shannon

ภาษา การติดตั้ง ไคลเอนต์
Go go get github.com/sashabaranov/go-openai sashabaranov/go-openai
Ruby gem install ruby-openai alexrudall/ruby-openai
PHP composer require openai-php/client openai-php/client
Rust cargo add async-openai 64bit/async-openai

โดยไม่ใช้ SDK

คุณไม่จำเป็นต้องใช้ SDK HTTP ไคลเอนต์ใดก็ตามที่ส่ง JSON ได้ก็ใช้ได้:

  • POST พร้อม body JSON และเฮดเดอร์ Content-Type: application/json หากไม่มี คำขอจะได้รับ 415
  • คีย์ของคุณใน Authorization: Bearer <key> หรือใน x-api-key: <key> ใช้ได้ทั้งสองแบบบนทุก endpoint
  • body ขนาดไม่เกิน 32 MiB
  • เมื่อใช้ "stream": true คำตอบเป็นสตรีม server-sent event (text/event-stream) ให้อ่านทีละบรรทัดและอย่า buffer
  • ข้อผิดพลาดคือ body JSON ที่มี error.type และ error.message พร้อมสถานะ HTTP
curl https://api.shannon-ai.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "shannon-3",
    "messages": [{"role": "user", "content": "Hello, Shannon!"}]
  }'

สำหรับ event ของสตรีมและประเภทของข้อผิดพลาด ดู: สตรีมมิง การจัดการข้อผิดพลาด