From ec160f5f4ceed915540430103e73ee2dce28b61f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=97=8D+85CD?= <50108258+kwaa@users.noreply.github.com> Date: Wed, 12 Mar 2025 22:03:44 +0800 Subject: [PATCH] docs: add providers --- docs/content/docs/packages-ext/providers.mdx | 88 ++++++++++++++++++++ docs/package.json | 2 + pnpm-lock.yaml | 6 ++ 3 files changed, 96 insertions(+) create mode 100644 docs/content/docs/packages-ext/providers.mdx diff --git a/docs/content/docs/packages-ext/providers.mdx b/docs/content/docs/packages-ext/providers.mdx new file mode 100644 index 0000000..c80e6c5 --- /dev/null +++ b/docs/content/docs/packages-ext/providers.mdx @@ -0,0 +1,88 @@ +--- +title: Providers +description: Collection of predefined providers. +--- + + +This package is not recommended for xsAI-based libraries, +which can increase the size of the installation. + + +import { PkgSizeBadge } from '@/components/pkg-size-badge' + +## Cloud + + + +```package-install +npm i @xsai-ext/providers-cloud +``` + +### Examples + +#### Keys + +```ts twoslash +import * as providers from '@xsai-ext/providers-cloud' + +type Keys = keyof typeof providers +``` + +#### OpenAI + +```ts twoslash +import { createOpenAI } from '@xsai-ext/providers-cloud' // [!code ++] +import { generateText } from '@xsai/generate-text' +import { env } from 'node:process' + +const openai = createOpenAI(env.OPENAI_API_KEY!) // [!code ++] + +const { text } = await generateText({ + ...openai.chat('gpt-4o'), // [!code ++] + apiKey: env.OPENAI_API_KEY!, // [!code --] + baseURL: 'https://api.openai.com/v1/', // [!code --] + messages: [{ + content: 'Why is the sky blue?', + role: 'user' + }], + model: 'gpt-4o', // [!code --] +}) +``` + +## Local + + + +```package-install +npm i @xsai-ext/providers-local +``` + +### Examples + +#### Keys + +```ts twoslash +import * as providers from '@xsai-ext/providers-local' + +type Keys = keyof typeof providers +``` + +#### Ollama + +```ts twoslash +import { createOllama } from '@xsai-ext/providers-local' // [!code ++] +import { generateText } from '@xsai/generate-text' +import { env } from 'node:process' + +const ollama = createOllama() // [!code ++] + +const { text } = await generateText({ + ...ollama.chat('llama3.2'), // [!code ++] + baseURL: 'http://localhost:11434/v1/', // [!code --] + messages: [{ + content: 'Why is the sky blue?', + role: 'user' + }], + model: 'llama3.2', // [!code --] +}) +``` diff --git a/docs/package.json b/docs/package.json index 7d494d2..becda51 100644 --- a/docs/package.json +++ b/docs/package.json @@ -32,6 +32,8 @@ "@types/mdx": "^2.0.13", "@types/react": "^19.0.10", "@types/react-dom": "^19.0.4", + "@xsai-ext/providers-cloud": "workspace:^", + "@xsai-ext/providers-local": "workspace:^", "@xsai/embed": "workspace:^", "@xsai/generate-object": "workspace:^", "@xsai/generate-speech": "workspace:^", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e55c5e4..55fe31c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -132,6 +132,12 @@ importers: '@types/react-dom': specifier: ^19.0.4 version: 19.0.4(@types/react@19.0.10) + '@xsai-ext/providers-cloud': + specifier: workspace:^ + version: link:../packages-ext/providers-cloud + '@xsai-ext/providers-local': + specifier: workspace:^ + version: link:../packages-ext/providers-local '@xsai/embed': specifier: workspace:^ version: link:../packages/embed