流式输出代码示例
以下展示使用各语言调用 AMAX Token Router 流式输出接口的完整示例。
Python
from openai import OpenAI
client = OpenAI(
base_url="https://ai.amaxsmp.com/v1",
api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)
stream = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "你是一个有帮助的AI助手。"},
{"role": "user", "content": "用中文写一篇200字的关于人工智能发展的短文。"}
],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")JavaScript / TypeScript
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://ai.amaxsmp.com/v1",
apiKey: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
});
async function main() {
const stream = await client.chat.completions.create({
model: "gpt-4o",
messages: [
{ role: "system", content: "你是一个有帮助的AI助手。" },
{ role: "user", content: "用中文写一篇200字的关于人工智能发展的短文。" },
],
stream: true,
});
for await (const chunk of stream) {
if (chunk.choices[0]?.delta?.content) {
process.stdout.write(chunk.choices[0].delta.content);
}
}
}
main();cURL
curl https://ai.amaxsmp.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
--no-buffer \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "system", "content": "你是一个有帮助的AI助手。"},
{"role": "user", "content": "用中文写一篇200字的关于人工智能发展的短文。"}
],
"stream": true
}'
--no-buffer参数确保 cURL 实时输出每个 chunk,而非等待连接关闭。
Java
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.*;
public class StreamingExample {
public static void main(String[] args) {
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://ai.amaxsmp.com/v1")
.apiKey("sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
.build();
client.chat().completions().createStreaming(
ChatCompletionCreateParams.builder()
.model("gpt-4o")
.addMessage(ChatCompletionMessageParam.ofSystem(
ChatCompletionSystemMessageParam.builder()
.content("你是一个有帮助的AI助手。")
.build()
))
.addMessage(ChatCompletionMessageParam.ofUser(
ChatCompletionUserMessageParam.builder()
.content("用中文写一篇200字的关于人工智能发展的短文。")
.build()
))
.build()
).subscribe(chunk -> {
chunk.choices().stream()
.filter(c -> c.delta().content().isPresent())
.forEach(c -> System.out.print(c.delta().content().get()));
});
}
}Go
package main
import (
"context"
"fmt"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://ai.amaxsmp.com/v1"),
option.WithAPIKey("sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"),
)
ctx := context.Background()
stream := client.Chat.Completions.NewStreaming(ctx, openai.ChatCompletionNewParams{
Model: openai.F(openai.ChatModelGPT4o),
Messages: openai.F([]openai.ChatCompletionMessageParamUnion{
openai.SystemMessage("你是一个有帮助的AI助手。"),
openai.UserMessage("用中文写一篇200字的关于人工智能发展的短文。"),
}),
})
for stream.Next() {
chunk := stream.Current()
if len(chunk.Choices) > 0 {
fmt.Print(chunk.Choices[0].Delta.Content)
}
}
if err := stream.Err(); err != nil {
panic(err)
}
}