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