Ori联系我们

文档OriHub

AI SDK

AI SDK 是 Vercel 做的跨厂商统一接口:一套代码,OpenAI、Claude、Gemini、DeepSeek 的模型都能调。本站的模型都是 OpenAI 兼容协议,所以把 provider 的 baseURL 指过来就能用。

第一步:安装 AI SDK

npm install ai @ai-sdk/openai

第二步:配置 provider

export ORIHUB_API_KEY=sk-xxxxxxxx
export ORIHUB_BASE_URL=https://api.lk888.ai/v1
// lib/orihub.ts
import { createOpenAI } from '@ai-sdk/openai';

export const orihub = createOpenAI({
  name: 'orihub',
  baseURL: process.env.ORIHUB_BASE_URL!,
  apiKey: process.env.ORIHUB_API_KEY!,
});

第三步:调用

import { generateText } from 'ai';
import { orihub } from '@/lib/orihub';

const { text } = await generateText({
  model: orihub.chat('deepseek-v4.1-flash'),
  prompt: '介绍一下你自己',
});

第四步:特别注意

  • 显式用 .chat()。AI SDK 5 以后 orihub('模型名') 默认走 Responses 端点,而本平台的 Responses 是无状态透传,previous_response_id 不保证能续上。要稳,就写 .chat(...) 走 Chat Completions
  • baseURL 要带 /v1 —— 端点是 /v1/chat/completions
  • 密钥放环境变量,别写进代码
  • 流式时 usage 平台已经自动带上(stream_options.include_usage 平台会注入),不用自己加
  • 想用通用 provider 包也行:npm install @ai-sdk/openai-compatible,createOpenAICompatible({ name, baseURL, apiKey }),模型用 .chatModel('模型名')

支持的模型

走 OpenAI 兼容协议的那 56 个模型都能用 —— 10 家厂商,协议一样、代码不用改。完整的在模型列表。

示例代码

流式响应

import { streamText } from 'ai';
import { orihub } from '@/lib/orihub';

const result = streamText({
  model: orihub.chat('deepseek-v4.1-flash'),
  prompt: '介绍一下你自己',
});

for await (const text of result.textStream) {
  process.stdout.write(text);
}

工具调用

import { generateText, tool } from 'ai';
import { z } from 'zod';
import { orihub } from '@/lib/orihub';

const { text, toolCalls } = await generateText({
  model: orihub.chat('deepseek-v4.1-flash'),
  tools: {
    weather: tool({
      description: '查某个城市的天气',
      inputSchema: z.object({ city: z.string().describe('城市名') }),
      execute: async ({ city }) => ({ city, weather: '晴,24℃' }),
    }),
  },
  prompt: '杭州今天天气怎么样?',
});

Next.js 里直接流给前端

// app/api/chat/route.ts
import { streamText } from 'ai';
import { orihub } from '@/lib/orihub';

export async function POST(req: Request) {
  const { messages } = await req.json();

  return streamText({
    model: orihub.chat('deepseek-v4.1-flash'),
    messages,
  }).toUIMessageStreamResponse();
}