SDKanna
Oibríonn aon SDK OpenAI nó Anthropic díreach as an bhosca.
Labhraíonn Shannon formáidí sreinge OpenAI agus Anthropic, mar sin úsáideann tú SDKanna oifigiúla an dá cheann mar atá siad. Athraíonn tú trí luach sa chliant: an bun-URL, an eochair API agus id an mhúnla. Fanann an chuid eile de do chód mar a bhí.
Cad atá le socrú
| Socrú | SDKanna OpenAI | SDKanna Anthropic |
|---|---|---|
| Bun-URL | https://api.shannon-ai.com/v1 | https://api.shannon-ai.com |
| Eochair API | D'eochair Shannon. Seolann an SDK í mar Authorization: Bearer. | D'eochair Shannon. Seolann an SDK í mar x-api-key. |
| Múnla | Id múnla foilsithe, mar shampla shannon-3. | Id múnla foilsithe, mar shampla shannon-1.6-lite. |
| Críochphointí a shroicheann sé | /v1/chat/completions, /v1/responses, /v1/models | /v1/messages, /v1/messages/count_tokens |
| Athróga timpeallachta | OPENAI_API_KEY agus OPENAI_BASE_URL, léite ag SDKanna Python agus JavaScript nuair nach gcuireann tú luach ar fáil. | ANTHROPIC_API_KEY agus ANTHROPIC_BASE_URL, léite ag SDKanna Python agus TypeScript nuair nach gcuireann tú luach ar fáil. |
Tá difríocht /v1 idir an dá bhun-URL: cuireann SDK OpenAI /chat/completions lena bhun-URL, cuireann SDK Anthropic /v1/messages leis. Freagraítear ainm múnla nach bhfoilsíonn Shannon le 400 agus unknown model. Múnlaí agus praghsáil
Tá d'eochair ar an leathanach Eochracha agus úsáid. Eochracha agus úsáid
SDKanna OpenAI
Glaonn na SDKanna oifigiúla OpenAI ar POST /v1/chat/completions agus POST /v1/responses. Seolann gach sampla teachtaireacht úsáideora amháin agus priontálann sé an freagra.
# 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) // npm install openai
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com/v1",
});
const response = await client.chat.completions.create({
model: "shannon-3",
messages: [{ role: "user", content: "Hello, Shannon!" }],
});
console.log(response.choices[0].message.content); // go get github.com/openai/openai-go/v3
package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
)
func main() {
client := openai.NewClient(
option.WithAPIKey("YOUR_API_KEY"),
option.WithBaseURL("https://api.shannon-ai.com/v1/"),
)
completion, err := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
Model: "shannon-3",
Messages: []openai.ChatCompletionMessageParamUnion{
openai.UserMessage("Hello, Shannon!"),
},
})
if err != nil {
panic(err)
}
fmt.Println(completion.Choices[0].Message.Content)
} // Gradle: implementation("com.openai:openai-java:<version>")
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.ChatCompletion;
import com.openai.models.chat.completions.ChatCompletionCreateParams;
OpenAIClient client = OpenAIOkHttpClient.builder()
.apiKey("YOUR_API_KEY")
.baseUrl("https://api.shannon-ai.com/v1")
.build();
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.model("shannon-3")
.addUserMessage("Hello, Shannon!")
.build();
ChatCompletion completion = client.chat().completions().create(params);
completion.choices().get(0).message().content().ifPresent(System.out::println); // dotnet add package OpenAI
using System.ClientModel;
using OpenAI;
using OpenAI.Chat;
ChatClient client = new(
model: "shannon-3",
credential: new ApiKeyCredential("YOUR_API_KEY"),
options: new OpenAIClientOptions()
{
Endpoint = new Uri("https://api.shannon-ai.com/v1")
});
ChatCompletion completion = client.CompleteChat("Hello, Shannon!");
Console.WriteLine(completion.Content[0].Text); | Teanga | Suiteáil | Rogha bun-URL | Foinse |
|---|---|---|---|
| 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 |
Déantar cur síos ar gach réimse den dá chríochphointe ar leathanaigh dá gcuid féin. Chat Completions Responses API
SDKanna Anthropic
Glaonn na SDKanna oifigiúla Anthropic ar POST /v1/messages. Éilíonn siad max_tokens ar gach glao, mar sin úsáideann na samplaí shannon-1.6-lite, a chuireann i bhfeidhm é. Priontálann gach sampla bloic téacs an fhreagra.
# 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) // npm install @anthropic-ai/sdk
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com",
});
const message = await client.messages.create({
model: "shannon-1.6-lite",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello, Shannon!" }],
});
for (const block of message.content) {
if (block.type === "text") console.log(block.text);
} // go get github.com/anthropics/anthropic-sdk-go
package main
import (
"context"
"fmt"
"github.com/anthropics/anthropic-sdk-go"
"github.com/anthropics/anthropic-sdk-go/option"
)
func main() {
client := anthropic.NewClient(
option.WithAPIKey("YOUR_API_KEY"),
option.WithBaseURL("https://api.shannon-ai.com/"),
)
message, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
Model: "shannon-1.6-lite",
MaxTokens: 1024,
Messages: []anthropic.MessageParam{
anthropic.NewUserMessage(anthropic.NewTextBlock("Hello, Shannon!")),
},
})
if err != nil {
panic(err)
}
for _, block := range message.Content {
if block.Type == "text" {
fmt.Println(block.Text)
}
}
} // Gradle: implementation("com.anthropic:anthropic-java:<version>")
import com.anthropic.client.AnthropicClient;
import com.anthropic.client.okhttp.AnthropicOkHttpClient;
import com.anthropic.models.messages.Message;
import com.anthropic.models.messages.MessageCreateParams;
AnthropicClient client = AnthropicOkHttpClient.builder()
.apiKey("YOUR_API_KEY")
.baseUrl("https://api.shannon-ai.com")
.build();
MessageCreateParams params = MessageCreateParams.builder()
.model("shannon-1.6-lite")
.maxTokens(1024L)
.addUserMessage("Hello, Shannon!")
.build();
Message message = client.messages().create(params);
message.content().stream()
.flatMap(block -> block.text().stream())
.forEach(text -> System.out.println(text.text())); | Teanga | Suiteáil | Rogha bun-URL | Foinse |
|---|---|---|---|
| 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 |
Tá an fhormáid Messages agus a difríochtaí ar an leathanach comhoiriúnachta Anthropic. Formáid Antraipeach
Cad ar féidir leis na SDKanna brath air
- Glactar le réimse iarratais nach n-úsáideann an API. Freagraítear le
422ar réimse a bhfuil aithne ag an API air, seolta leis an gcineál mícheart. - Glactar leis na ceanntásca leagain agus béite a chuireann na SDKanna leis (
anthropic-version,anthropic-beta,openai-beta). Níl aon cheann acu riachtanach. - Is é an id foilsithe
modelfreagra, mar sin is féidir leat é a sheoladh ar ais mar atá. - Ar
/v1/messagesis féidir le freagra tosú le blocthinking. Léigh na bloic den chineáltextin ionad an chéad bhloc a thógáil. - Oibríonn sruthú trí chúntóirí sruthaithe an SDK féin. Tagann úsáid ag deireadh gach sruth.
- Iompraíonn gach freagra ceanntásc
x-request-id. Seol dox-request-idféin agus filleann an luach céanna.
SDKanna pobail
Oibríonn cliaint a scríobh údair eile don API OpenAI ar an gcaoi chéanna: tabhair an bun-URL le /v1, d'eochair agus id múnla Shannon don chliant. Cothaíonn a n-údair iad seo, ní Shannon.
| Teanga | Suiteáil | Cliant |
|---|---|---|
| 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 |
Gan SDK
Níl SDK ag teastáil uait. Oibríonn aon chliant HTTP is féidir JSON a sheoladh:
POSTle corp JSON agus an ceanntáscContent-Type: application/json. Gan é freagraítear an t-iarratas le415.- D'eochair in
Authorization: Bearer <key>nó inx-api-key: <key>. Oibríonn an dá cheann ar gach críochphointe. - Corp suas le 32 MiB.
- Le
"stream": trueis sruth server-sent events (text/event-stream) é an freagra. Léigh líne ar líne é agus ná déan maolú air. - Is corp JSON le
error.typeaguserror.messageé earráid, in aice leis an stádas 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!"}]
}' import requests
response = requests.post(
"https://api.shannon-ai.com/v1/chat/completions",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"model": "shannon-3",
"messages": [{"role": "user", "content": "Hello, Shannon!"}],
},
)
response.raise_for_status()
print(response.json()["choices"][0]["message"]["content"]) const response = await fetch("https://api.shannon-ai.com/v1/chat/completions", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "shannon-3",
messages: [{ role: "user", content: "Hello, Shannon!" }],
}),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
console.log(data.choices[0].message.content); Le haghaidh imeachtaí sruth agus na gcineálacha earráide, féach: Sruthú Láimhseáil Earráide