Skip to content
On this page

OpenAI 插件

OpenAI 插件(@tencent/ssv-ai-sdk-plugin-openai)用于适配 OpenAI Chat Completions 流式协议,将 choices[0].delta.content 转换为 SDK 标准流式内容。

安装

注意该 npm 包为 Coding Npm 的私有源,请先确定已经正确配置了 Coding Npm

bash
npm install @tencent/ssv-ai-sdk-plugin-openai --save

在 Stream 中使用

tsx
import { useStream } from '@tencent/ssv-ai-sdk-react';
import { OpenAIPlugin } from '@tencent/ssv-ai-sdk-plugin-openai';

const { parts, generate } = useStream({
  api: {
    streamEndpoint: {
      url: 'https://your-api.com/openai-compatible-stream',
    },
  },
  mode: 'stream',
  streamFormat: 'incremental',
  plugins: [new OpenAIPlugin({ model: 'gpt-4o' })],
});

await generate({ input: '你好' });
vue
<script setup>
import { useStream } from '@tencent/ssv-ai-sdk-vue';
import { OpenAIPlugin } from '@tencent/ssv-ai-sdk-plugin-openai';

const { parts, generate } = useStream({
  api: {
    streamEndpoint: {
      url: 'https://your-api.com/openai-compatible-stream',
    },
  },
  mode: 'stream',
  streamFormat: 'incremental',
  plugins: [new OpenAIPlugin({ model: 'gpt-4o' })],
});
</script>
js
import { StreamMixin } from '@tencent/ssv-ai-sdk-vue2';
import { OpenAIPlugin } from '@tencent/ssv-ai-sdk-plugin-openai';

export default {
  mixins: [
    StreamMixin({
      api: {
        streamEndpoint: {
          url: 'https://your-api.com/openai-compatible-stream',
        },
      },
      mode: 'stream',
      streamFormat: 'incremental',
      plugins: [new OpenAIPlugin({ model: 'gpt-4o' })],
    }),
  ],
};

请求结构

默认请求体:

ts
{
  model: 'gpt-4o',
  stream: true,
  messages: context.getMessages().map(m => ({
    role: m.role,
    content: m.content ?? '',
  })),
}

如需自定义 OpenAI 兼容服务的请求结构,可在插件构造参数里传入 transformRequest

Released under the MIT License.