开发 SDK

把官方 SDK 的 Base URL 指到 Yoriday,密钥从环境变量读取即可。先确认你选的是 Responses、Chat Completions 还是 Messages,再跑最小文字示例。

对照表

SDK 示例协议 Base URL
OpenAI Python / JS Responses https://app.helpday.work/v1
Anthropic Python / TS Messages https://app.helpday.work
Vercel AI SDK 需显式选 Responses 或 Chat https://app.helpday.work/v1
LangChain ChatOpenAI Chat Completions https://app.helpday.work/v1

请设置环境变量 YORIDAY_API_KEY。密钥只放在服务端、CI Secret 或密钥管理系统,不要写进前端包。

OpenAI Python(Responses)

python -m pip install --upgrade openai
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["YORIDAY_API_KEY"],
    base_url="https://app.helpday.work/v1",
)

response = client.responses.create(
    model="你的模型名称",
    input="请回复:Python 已连通 Yoriday",
)

print(response.output_text)

output_text 为空,打印完整 response 查看输出项。Responses 响应里没有 Chat Completions 的 choices

OpenAI JavaScript(Responses)

npm install openai
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.YORIDAY_API_KEY,
  baseURL: "https://app.helpday.work/v1",
});

const response = await client.responses.create({
  model: "你的模型名称",
  input: "请回复:JavaScript 已连通 Yoriday",
});

console.log(response.output_text);

Anthropic Python(Messages)

Anthropic SDK 会在 Base URL 后自行拼接 /v1/messages,因此这里只填站点根 https://app.helpday.work

python -m pip install --upgrade anthropic
import os
from anthropic import Anthropic

client = Anthropic(
    api_key=os.environ["YORIDAY_API_KEY"],
    base_url="https://app.helpday.work",
)

message = client.messages.create(
    model="你的模型名称",
    max_tokens=256,
    messages=[{"role": "user", "content": "请回复:Messages 已连通"}],
)

for block in message.content:
    if block.type == "text":
        print(block.text)

Anthropic TypeScript

npm install @anthropic-ai/sdk
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  apiKey: process.env.YORIDAY_API_KEY,
  baseURL: "https://app.helpday.work",
});

const message = await client.messages.create({
  model: "你的模型名称",
  max_tokens: 256,
  messages: [{ role: "user", content: "请回复:TypeScript Messages 已连通" }],
});

for (const block of message.content) {
  if (block.type === "text") console.log(block.text);
}

Vercel AI SDK

Responses

npm install ai @ai-sdk/openai
import { createOpenAI } from "@ai-sdk/openai";
import { generateText } from "ai";

const yoriday = createOpenAI({
  apiKey: process.env.YORIDAY_API_KEY,
  baseURL: "https://app.helpday.work/v1",
});

const { text } = await generateText({
  model: yoriday.responses("你的模型名称"),
  prompt: "请回复:AI SDK Responses 已连通",
});

console.log(text);

Chat Completions

npm install ai @ai-sdk/openai-compatible
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { generateText } from "ai";

const yoriday = createOpenAICompatible({
  name: "yoriday",
  apiKey: process.env.YORIDAY_API_KEY,
  baseURL: "https://app.helpday.work/v1",
});

const { text } = await generateText({
  model: yoriday("你的模型名称"),
  prompt: "请回复:AI SDK Chat 已连通",
});

console.log(text);

LangChain

python -m pip install --upgrade langchain-openai
import os
from langchain_openai import ChatOpenAI

model = ChatOpenAI(
    model="你的模型名称",
    api_key=os.environ["YORIDAY_API_KEY"],
    base_url="https://app.helpday.work/v1",
)

message = model.invoke("请回复:LangChain 已连通")
print(message.content)

工具调用或结构化输出异常时,先用 文字 API 的 Chat Completions cURL 验证网关,再查 LangChain 版本与额外字段。

上线前核对

  • 密钥按应用拆分,日志默认脱敏 Authorization。
  • 浏览器端只访问你自己的后端,由后端转发到 Yoriday。
  • 记录当前使用的协议,升级 provider 后重新回归一次最小请求。