@xsai-ext/providers 0.4.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/README.md +1 -0
- package/dist/create.d.ts +336 -0
- package/dist/create.js +43 -0
- package/dist/index.d.ts +446 -0
- package/dist/index.js +63 -0
- package/dist/openrouter-DCc0QhRt.d.ts +104 -0
- package/dist/together-ai-DXREpfi4.js +277 -0
- package/package.json +49 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import * as _xsai_ext_shared_providers from '@xsai-ext/shared-providers';
|
|
2
|
+
import { ChatProviderWithExtraOptions } from '@xsai-ext/shared-providers';
|
|
3
|
+
|
|
4
|
+
type OpenrouterModels = 'moonshotai/kimi-k2' | 'moonshotai/kimi-k2-0905' | 'moonshotai/kimi-dev-72b:free' | 'moonshotai/kimi-k2-0905:exacto' | 'moonshotai/kimi-k2:free' | 'thudm/glm-z1-32b:free' | 'nousresearch/hermes-4-70b' | 'nousresearch/hermes-4-405b' | 'nousresearch/deephermes-3-llama-3-8b-preview' | 'nvidia/nemotron-nano-9b-v2' | 'x-ai/grok-4' | 'x-ai/grok-code-fast-1' | 'x-ai/grok-3' | 'x-ai/grok-4-fast' | 'x-ai/grok-3-beta' | 'x-ai/grok-3-mini-beta' | 'x-ai/grok-3-mini' | 'cognitivecomputations/dolphin3.0-mistral-24b' | 'cognitivecomputations/dolphin3.0-r1-mistral-24b' | 'deepseek/deepseek-chat-v3.1' | 'deepseek/deepseek-r1:free' | 'deepseek/deepseek-v3-base:free' | 'deepseek/deepseek-v3.1-terminus' | 'deepseek/deepseek-r1-0528-qwen3-8b:free' | 'deepseek/deepseek-chat-v3-0324' | 'deepseek/deepseek-r1-0528:free' | 'deepseek/deepseek-r1-distill-llama-70b' | 'deepseek/deepseek-r1-distill-qwen-14b' | 'deepseek/deepseek-v3.1-terminus:exacto' | 'featherless/qwerky-72b' | 'tngtech/deepseek-r1t2-chimera:free' | 'minimax/minimax-m1' | 'minimax/minimax-m2:free' | 'minimax/minimax-01' | 'google/gemini-2.0-flash-001' | 'google/gemma-2-9b-it:free' | 'google/gemini-2.5-flash' | 'google/gemini-2.5-pro-preview-05-06' | 'google/gemma-3n-e4b-it' | 'google/gemini-2.5-flash-lite' | 'google/gemini-2.5-pro-preview-06-05' | 'google/gemini-2.5-flash-preview-09-2025' | 'google/gemini-2.5-pro' | 'google/gemma-3-12b-it' | 'google/gemma-3n-e4b-it:free' | 'google/gemini-2.5-flash-lite-preview-09-2025' | 'google/gemini-2.0-flash-exp:free' | 'google/gemma-3-27b-it' | 'microsoft/mai-ds-r1:free' | 'openai/gpt-4.1-mini' | 'openai/gpt-5-chat' | 'openai/gpt-5-nano' | 'openai/gpt-5-codex' | 'openai/gpt-4.1' | 'openai/gpt-oss-120b:exacto' | 'openai/o4-mini' | 'openai/gpt-5-mini' | 'openai/gpt-5-image' | 'openai/gpt-oss-20b' | 'openai/gpt-oss-120b' | 'openai/gpt-4o-mini' | 'openai/gpt-5' | 'openai/gpt-5-pro' | 'openrouter/horizon-alpha' | 'openrouter/sonoma-sky-alpha' | 'openrouter/cypher-alpha:free' | 'openrouter/sonoma-dusk-alpha' | 'openrouter/horizon-beta' | 'z-ai/glm-4.5' | 'z-ai/glm-4.5-air' | 'z-ai/glm-4.5v' | 'z-ai/glm-4.6' | 'z-ai/glm-4.6:exacto' | 'z-ai/glm-4.5-air:free' | 'qwen/qwen3-coder' | 'qwen/qwen3-32b:free' | 'qwen/qwen3-next-80b-a3b-instruct' | 'qwen/qwen-2.5-coder-32b-instruct' | 'qwen/qwen3-235b-a22b:free' | 'qwen/qwq-32b:free' | 'qwen/qwen3-30b-a3b-thinking-2507' | 'qwen/qwen3-30b-a3b:free' | 'qwen/qwen2.5-vl-72b-instruct' | 'qwen/qwen3-14b:free' | 'qwen/qwen3-30b-a3b-instruct-2507' | 'qwen/qwen3-235b-a22b-thinking-2507' | 'qwen/qwen2.5-vl-32b-instruct:free' | 'qwen/qwen2.5-vl-72b-instruct:free' | 'qwen/qwen3-235b-a22b-07-25:free' | 'qwen/qwen3-coder:free' | 'qwen/qwen3-235b-a22b-07-25' | 'qwen/qwen3-8b:free' | 'qwen/qwen3-max' | 'qwen/qwen3-next-80b-a3b-thinking' | 'qwen/qwen3-coder:exacto' | 'mistralai/devstral-medium-2507' | 'mistralai/codestral-2508' | 'mistralai/mistral-7b-instruct:free' | 'mistralai/devstral-small-2505' | 'mistralai/mistral-small-3.2-24b-instruct' | 'mistralai/devstral-small-2505:free' | 'mistralai/mistral-small-3.2-24b-instruct:free' | 'mistralai/mistral-medium-3' | 'mistralai/mistral-small-3.1-24b-instruct' | 'mistralai/devstral-small-2507' | 'mistralai/mistral-medium-3.1' | 'mistralai/mistral-nemo:free' | 'rekaai/reka-flash-3' | 'meta-llama/llama-3.2-11b-vision-instruct' | 'meta-llama/llama-3.3-70b-instruct:free' | 'meta-llama/llama-4-scout:free' | 'anthropic/claude-opus-4' | 'anthropic/claude-haiku-4.5' | 'anthropic/claude-opus-4.1' | 'anthropic/claude-3.7-sonnet' | 'anthropic/claude-3.5-haiku' | 'anthropic/claude-sonnet-4' | 'anthropic/claude-sonnet-4.5' | 'sarvamai/sarvam-m:free';
|
|
5
|
+
type TogetheraiModels = 'moonshotai/Kimi-K2-Instruct' | 'openai/gpt-oss-120b' | 'meta-llama/Llama-3.3-70B-Instruct-Turbo' | 'Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8' | 'deepseek-ai/DeepSeek-R1' | 'deepseek-ai/DeepSeek-V3';
|
|
6
|
+
type AzureModels = 'gpt-4.1-nano' | 'gpt-4' | 'gpt-4-32k' | 'gpt-4.1-mini' | 'gpt-5-chat' | 'gpt-3.5-turbo-0125' | 'gpt-4-turbo' | 'gpt-3.5-turbo-0613' | 'o1-preview' | 'o3-mini' | 'gpt-5-nano' | 'gpt-5-codex' | 'gpt-4o' | 'gpt-3.5-turbo-0301' | 'gpt-4.1' | 'o4-mini' | 'o1' | 'gpt-5-mini' | 'o1-mini' | 'gpt-3.5-turbo-instruct' | 'o3' | 'codex-mini' | 'gpt-4-turbo-vision' | 'gpt-4o-mini' | 'gpt-5' | 'gpt-3.5-turbo-1106';
|
|
7
|
+
type CloudflareWorkersAiModels = 'mistral-7b-instruct-v0.1-awq' | 'aura-1' | 'mistral-7b-instruct-v0.2' | 'tinyllama-1.1b-chat-v1.0' | 'qwen1.5-0.5b-chat' | 'llama-3.2-11b-vision-instruct' | 'llama-2-13b-chat-awq' | 'llama-3.1-8b-instruct-fp8' | 'whisper' | 'stable-diffusion-xl-base-1.0' | 'llama-2-7b-chat-fp16' | 'resnet-50' | 'stable-diffusion-v1-5-inpainting' | 'sqlcoder-7b-2' | 'llama-3-8b-instruct' | 'llama-2-7b-chat-hf-lora' | 'llama-3.1-8b-instruct' | 'openchat-3.5-0106' | 'openhermes-2.5-mistral-7b-awq' | 'lucid-origin' | 'bart-large-cnn' | 'flux-1-schnell' | 'deepseek-r1-distill-qwen-32b' | 'gemma-2b-it-lora' | 'una-cybertron-7b-v2-bf16' | 'm2m100-1.2b' | 'llama-3.2-3b-instruct' | 'qwen2.5-coder-32b-instruct' | 'stable-diffusion-v1-5-img2img' | 'gemma-7b-it-lora' | 'qwen1.5-14b-chat-awq' | 'qwen1.5-1.8b-chat' | 'mistral-small-3.1-24b-instruct' | 'gemma-7b-it' | 'llamaguard-7b-awq' | 'hermes-2-pro-mistral-7b' | 'falcon-7b-instruct' | 'llama-3.3-70b-instruct-fp8-fast' | 'llama-3-8b-instruct-awq' | 'phoenix-1.0' | 'phi-2' | 'dreamshaper-8-lcm' | 'discolm-german-7b-v1-awq' | 'llama-2-7b-chat-int8' | 'llama-3.2-1b-instruct' | 'whisper-large-v3-turbo' | 'llama-4-scout-17b-16e-instruct' | 'starling-lm-7b-beta' | 'deepseek-coder-6.7b-base-awq' | 'gemma-3-12b-it' | 'llama-guard-3-8b' | 'neural-chat-7b-v3-1-awq' | 'whisper-tiny-en' | 'stable-diffusion-xl-lightning' | 'mistral-7b-instruct-v0.1' | 'llava-1.5-7b-hf' | 'gpt-oss-20b' | 'deepseek-math-7b-instruct' | 'gpt-oss-120b' | 'melotts' | 'qwen1.5-7b-chat-awq' | 'llama-3.1-8b-instruct-fast' | 'nova-3' | 'llama-3.1-70b-instruct' | 'qwq-32b' | 'zephyr-7b-beta-awq' | 'deepseek-coder-6.7b-instruct-awq' | 'llama-3.1-8b-instruct-awq' | 'mistral-7b-instruct-v0.2-lora' | 'uform-gen2-qwen-500m';
|
|
8
|
+
type AnthropicModels = 'claude-opus-4-0' | 'claude-3-5-sonnet-20241022' | 'claude-opus-4-1' | 'claude-haiku-4-5' | 'claude-3-5-sonnet-20240620' | 'claude-3-5-haiku-latest' | 'claude-3-opus-20240229' | 'claude-sonnet-4-5' | 'claude-sonnet-4-5-20250929' | 'claude-sonnet-4-20250514' | 'claude-opus-4-20250514' | 'claude-3-5-haiku-20241022' | 'claude-3-haiku-20240307' | 'claude-3-7-sonnet-20250219' | 'claude-3-7-sonnet-latest' | 'claude-sonnet-4-0' | 'claude-opus-4-1-20250805' | 'claude-3-sonnet-20240229' | 'claude-haiku-4-5-20251001';
|
|
9
|
+
|
|
10
|
+
interface OpenRouterOptions {
|
|
11
|
+
extraHeaders?: (Headers | Record<string, string>) & {
|
|
12
|
+
'HTTP-Referer'?: string;
|
|
13
|
+
'X-Title'?: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Model routing
|
|
17
|
+
*
|
|
18
|
+
* @see {@link https://openrouter.ai/docs/features/model-routing}
|
|
19
|
+
* @example
|
|
20
|
+
* ```
|
|
21
|
+
* {
|
|
22
|
+
* model: [ 'openai/gpt-1o' ],
|
|
23
|
+
* models: [ 'openai/gpt-4o', 'google/gemini-2.0-flash-001' ],
|
|
24
|
+
* messages: [
|
|
25
|
+
* { role: 'user', content: 'Hello, world!' },
|
|
26
|
+
* ]
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
models?: string[];
|
|
31
|
+
/**
|
|
32
|
+
* Provider routing
|
|
33
|
+
*
|
|
34
|
+
* @see {@link https://openrouter.ai/docs/features/provider-routing}
|
|
35
|
+
*/
|
|
36
|
+
provider?: {
|
|
37
|
+
/**
|
|
38
|
+
* Whether to allow backup providers when the primary is unavailable.
|
|
39
|
+
*
|
|
40
|
+
* @see {@link https://openrouter.ai/docs/features/provider-routing#disabling-fallbacks}
|
|
41
|
+
* @default true
|
|
42
|
+
* @example false
|
|
43
|
+
*/
|
|
44
|
+
allowFallbacks?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Control whether to use providers that may store data.
|
|
47
|
+
*
|
|
48
|
+
* @see {@link https://openrouter.ai/docs/features/provider-routing#requiring-providers-to-comply-with-data-policies}
|
|
49
|
+
* @default 'allow'
|
|
50
|
+
*/
|
|
51
|
+
dataCollection?: 'allow' | 'deny';
|
|
52
|
+
/**
|
|
53
|
+
* List of provider names to skip for this request.
|
|
54
|
+
*
|
|
55
|
+
* @see {@link https://openrouter.ai/docs/features/provider-routing#ignoring-providers}
|
|
56
|
+
*/
|
|
57
|
+
ignore?: string[];
|
|
58
|
+
/**
|
|
59
|
+
* List of provider names to try in order (e.g. ["Anthropic", "OpenAI"]).
|
|
60
|
+
*
|
|
61
|
+
* @see {@link https://openrouter.ai/docs/features/provider-routing#ordering-specific-providers}
|
|
62
|
+
* @example [ 'Anthropic', 'OpenAI' ]
|
|
63
|
+
*/
|
|
64
|
+
order?: string[];
|
|
65
|
+
/**
|
|
66
|
+
* List of quantization levels to filter by (e.g. ["int4", "int8"]).
|
|
67
|
+
*
|
|
68
|
+
* @see {@link https://openrouter.ai/docs/features/provider-routing#quantization}
|
|
69
|
+
* @example [ 'int4', 'int8' ]
|
|
70
|
+
*/
|
|
71
|
+
quantizations?: string[];
|
|
72
|
+
/**
|
|
73
|
+
* Only use providers that support all parameters in your request.
|
|
74
|
+
*
|
|
75
|
+
* @see {@link https://openrouter.ai/docs/features/provider-routing#requiring-providers-to-support-all-parameters-beta}
|
|
76
|
+
*/
|
|
77
|
+
requireParameters?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Sort providers by price or throughput. (e.g. "price" or "throughput").
|
|
80
|
+
*
|
|
81
|
+
* @see {@link https://openrouter.ai/docs/features/provider-routing#provider-sorting}
|
|
82
|
+
* @example 'price'
|
|
83
|
+
*/
|
|
84
|
+
sort?: string;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* To help with prompts that exceed the maximum context size of a model.
|
|
88
|
+
*
|
|
89
|
+
* All OpenRouter endpoints with 8k or less context length will default to using middle-out.
|
|
90
|
+
* To disable this, set `transforms: []` in the request body.
|
|
91
|
+
*
|
|
92
|
+
* @see {@link https://openrouter.ai/docs/features/message-transforms}
|
|
93
|
+
* @default 'middle-out'
|
|
94
|
+
*/
|
|
95
|
+
transforms?: string[];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Create a OpenRouter Provider
|
|
99
|
+
* @see {@link https://openrouter.ai/models}
|
|
100
|
+
*/
|
|
101
|
+
declare const createOpenRouter: (apiKey: string, baseURL?: string) => _xsai_ext_shared_providers.ModelProvider & ChatProviderWithExtraOptions<OpenrouterModels, OpenRouterOptions>;
|
|
102
|
+
|
|
103
|
+
export { createOpenRouter as c };
|
|
104
|
+
export type { AnthropicModels as A, CloudflareWorkersAiModels as C, OpenrouterModels as O, TogetheraiModels as T, OpenRouterOptions as a, AzureModels as b };
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { merge, createChatProvider, createModelProvider, createEmbedProvider, createImageProvider, createSpeechProvider, createTranscriptionProvider } from '@xsai-ext/shared-providers';
|
|
2
|
+
import { objCamelToSnake } from '@xsai/shared';
|
|
3
|
+
|
|
4
|
+
const createMoonshotaiCn = (apiKey, baseURL = "https://api.moonshot.cn/v1") => merge(
|
|
5
|
+
createChatProvider({ apiKey, baseURL }),
|
|
6
|
+
createModelProvider({ apiKey, baseURL })
|
|
7
|
+
);
|
|
8
|
+
const createLucidquery = (apiKey, baseURL = "https://lucidquery.com/api/v1") => merge(
|
|
9
|
+
createChatProvider({ apiKey, baseURL }),
|
|
10
|
+
createModelProvider({ apiKey, baseURL })
|
|
11
|
+
);
|
|
12
|
+
const createMoonshotai = (apiKey, baseURL = "https://api.moonshot.ai/v1") => merge(
|
|
13
|
+
createChatProvider({ apiKey, baseURL }),
|
|
14
|
+
createModelProvider({ apiKey, baseURL })
|
|
15
|
+
);
|
|
16
|
+
const createZaiCodingPlan = (apiKey, baseURL = "https://api.z.ai/api/coding/paas/v4") => merge(
|
|
17
|
+
createChatProvider({ apiKey, baseURL }),
|
|
18
|
+
createModelProvider({ apiKey, baseURL })
|
|
19
|
+
);
|
|
20
|
+
const createAlibaba = (apiKey, baseURL = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1") => merge(
|
|
21
|
+
createChatProvider({ apiKey, baseURL }),
|
|
22
|
+
createModelProvider({ apiKey, baseURL })
|
|
23
|
+
);
|
|
24
|
+
const createXai = (apiKey, baseURL = "https://api.x.ai/v1/") => merge(
|
|
25
|
+
createChatProvider({ apiKey, baseURL }),
|
|
26
|
+
createModelProvider({ apiKey, baseURL })
|
|
27
|
+
);
|
|
28
|
+
const createVultr = (apiKey, baseURL = "https://api.vultrinference.com/v1") => merge(
|
|
29
|
+
createChatProvider({ apiKey, baseURL }),
|
|
30
|
+
createModelProvider({ apiKey, baseURL })
|
|
31
|
+
);
|
|
32
|
+
const createNvidia = (apiKey, baseURL = "https://integrate.api.nvidia.com/v1") => merge(
|
|
33
|
+
createChatProvider({ apiKey, baseURL }),
|
|
34
|
+
createModelProvider({ apiKey, baseURL })
|
|
35
|
+
);
|
|
36
|
+
const createUpstage = (apiKey, baseURL = "https://api.upstage.ai") => merge(
|
|
37
|
+
createChatProvider({ apiKey, baseURL }),
|
|
38
|
+
createModelProvider({ apiKey, baseURL })
|
|
39
|
+
);
|
|
40
|
+
const createGroq = (apiKey, baseURL = "https://api.groq.com/openai/v1/") => merge(
|
|
41
|
+
createChatProvider({ apiKey, baseURL }),
|
|
42
|
+
createModelProvider({ apiKey, baseURL }),
|
|
43
|
+
createEmbedProvider({ apiKey, baseURL })
|
|
44
|
+
);
|
|
45
|
+
const createGithubCopilot = (apiKey, baseURL = "https://api.githubcopilot.com") => merge(
|
|
46
|
+
createChatProvider({ apiKey, baseURL }),
|
|
47
|
+
createModelProvider({ apiKey, baseURL })
|
|
48
|
+
);
|
|
49
|
+
const createMistral = (apiKey, baseURL = "https://api.mistral.ai/v1/") => merge(
|
|
50
|
+
createChatProvider({ apiKey, baseURL }),
|
|
51
|
+
createModelProvider({ apiKey, baseURL }),
|
|
52
|
+
createEmbedProvider({ apiKey, baseURL })
|
|
53
|
+
);
|
|
54
|
+
const createNebius = (apiKey, baseURL = "https://api.studio.nebius.com/v1/") => merge(
|
|
55
|
+
createChatProvider({ apiKey, baseURL }),
|
|
56
|
+
createModelProvider({ apiKey, baseURL })
|
|
57
|
+
);
|
|
58
|
+
const createDeepSeek = (apiKey, baseURL = "https://api.deepseek.com") => merge(
|
|
59
|
+
createChatProvider({ apiKey, baseURL }),
|
|
60
|
+
createModelProvider({ apiKey, baseURL })
|
|
61
|
+
);
|
|
62
|
+
const createAlibabaCn = (apiKey, baseURL = "https://dashscope.aliyuncs.com/compatible-mode/v1") => merge(
|
|
63
|
+
createChatProvider({ apiKey, baseURL }),
|
|
64
|
+
createModelProvider({ apiKey, baseURL })
|
|
65
|
+
);
|
|
66
|
+
const createVenice = (apiKey, baseURL = "https://api.venice.ai/api/v1") => merge(
|
|
67
|
+
createChatProvider({ apiKey, baseURL }),
|
|
68
|
+
createModelProvider({ apiKey, baseURL })
|
|
69
|
+
);
|
|
70
|
+
const createChutes = (apiKey, baseURL = "https://llm.chutes.ai/v1") => merge(
|
|
71
|
+
createChatProvider({ apiKey, baseURL }),
|
|
72
|
+
createModelProvider({ apiKey, baseURL })
|
|
73
|
+
);
|
|
74
|
+
const createCortecs = (apiKey, baseURL = "https://api.cortecs.ai/v1") => merge(
|
|
75
|
+
createChatProvider({ apiKey, baseURL }),
|
|
76
|
+
createModelProvider({ apiKey, baseURL })
|
|
77
|
+
);
|
|
78
|
+
const createGithubModels = (apiKey, baseURL = "https://models.github.ai/inference") => merge(
|
|
79
|
+
createChatProvider({ apiKey, baseURL }),
|
|
80
|
+
createModelProvider({ apiKey, baseURL })
|
|
81
|
+
);
|
|
82
|
+
const createBaseten = (apiKey, baseURL = "https://inference.baseten.co/v1") => merge(
|
|
83
|
+
createChatProvider({ apiKey, baseURL }),
|
|
84
|
+
createModelProvider({ apiKey, baseURL })
|
|
85
|
+
);
|
|
86
|
+
const createHuggingface = (apiKey, baseURL = "https://router.huggingface.co/v1") => merge(
|
|
87
|
+
createChatProvider({ apiKey, baseURL }),
|
|
88
|
+
createModelProvider({ apiKey, baseURL })
|
|
89
|
+
);
|
|
90
|
+
const createOpencode = (apiKey, baseURL = "https://opencode.ai/zen/v1") => merge(
|
|
91
|
+
createChatProvider({ apiKey, baseURL }),
|
|
92
|
+
createModelProvider({ apiKey, baseURL })
|
|
93
|
+
);
|
|
94
|
+
const createFastrouter = (apiKey, baseURL = "https://go.fastrouter.ai/api/v1") => merge(
|
|
95
|
+
createChatProvider({ apiKey, baseURL }),
|
|
96
|
+
createModelProvider({ apiKey, baseURL })
|
|
97
|
+
);
|
|
98
|
+
const createGoogleGenerativeAI = (apiKey, baseURL = "https://generativelanguage.googleapis.com/v1beta/openai/") => merge(
|
|
99
|
+
createChatProvider({ apiKey, baseURL }),
|
|
100
|
+
createModelProvider({ apiKey, baseURL }),
|
|
101
|
+
createEmbedProvider({ apiKey, baseURL })
|
|
102
|
+
);
|
|
103
|
+
const createInception = (apiKey, baseURL = "https://api.inceptionlabs.ai/v1/") => merge(
|
|
104
|
+
createChatProvider({ apiKey, baseURL }),
|
|
105
|
+
createModelProvider({ apiKey, baseURL })
|
|
106
|
+
);
|
|
107
|
+
const createWandb = (apiKey, baseURL = "https://api.inference.wandb.ai/v1") => merge(
|
|
108
|
+
createChatProvider({ apiKey, baseURL }),
|
|
109
|
+
createModelProvider({ apiKey, baseURL })
|
|
110
|
+
);
|
|
111
|
+
const createOpenAI = (apiKey, baseURL = "https://api.openai.com/v1/") => merge(
|
|
112
|
+
createChatProvider({ apiKey, baseURL }),
|
|
113
|
+
createModelProvider({ apiKey, baseURL }),
|
|
114
|
+
createEmbedProvider({ apiKey, baseURL }),
|
|
115
|
+
createImageProvider({ apiKey, baseURL }),
|
|
116
|
+
createSpeechProvider({ apiKey, baseURL }),
|
|
117
|
+
createTranscriptionProvider({ apiKey, baseURL })
|
|
118
|
+
);
|
|
119
|
+
const createZhipuaiCodingPlan = (apiKey, baseURL = "https://open.bigmodel.cn/api/coding/paas/v4") => merge(
|
|
120
|
+
createChatProvider({ apiKey, baseURL }),
|
|
121
|
+
createModelProvider({ apiKey, baseURL })
|
|
122
|
+
);
|
|
123
|
+
const createPerplexity = (apiKey, baseURL = "https://api.perplexity.ai/") => merge(
|
|
124
|
+
createChatProvider({ apiKey, baseURL }),
|
|
125
|
+
createModelProvider({ apiKey, baseURL })
|
|
126
|
+
);
|
|
127
|
+
const createZenmux = (apiKey, baseURL = "https://zenmux.ai/api/v1") => merge(
|
|
128
|
+
createChatProvider({ apiKey, baseURL }),
|
|
129
|
+
createModelProvider({ apiKey, baseURL })
|
|
130
|
+
);
|
|
131
|
+
const createIflowcn = (apiKey, baseURL = "https://apis.iflow.cn/v1") => merge(
|
|
132
|
+
createChatProvider({ apiKey, baseURL }),
|
|
133
|
+
createModelProvider({ apiKey, baseURL })
|
|
134
|
+
);
|
|
135
|
+
const createSynthetic = (apiKey, baseURL = "https://api.synthetic.new/v1") => merge(
|
|
136
|
+
createChatProvider({ apiKey, baseURL }),
|
|
137
|
+
createModelProvider({ apiKey, baseURL })
|
|
138
|
+
);
|
|
139
|
+
const createDeepinfra = (apiKey, baseURL = "https://api.deepinfra.com/v1/openai/") => merge(
|
|
140
|
+
createChatProvider({ apiKey, baseURL }),
|
|
141
|
+
createModelProvider({ apiKey, baseURL }),
|
|
142
|
+
createEmbedProvider({ apiKey, baseURL })
|
|
143
|
+
);
|
|
144
|
+
const createZhipuai = (apiKey, baseURL = "https://open.bigmodel.cn/api/paas/v4") => merge(
|
|
145
|
+
createChatProvider({ apiKey, baseURL }),
|
|
146
|
+
createModelProvider({ apiKey, baseURL })
|
|
147
|
+
);
|
|
148
|
+
const createSubmodel = (apiKey, baseURL = "https://llm.submodel.ai/v1") => merge(
|
|
149
|
+
createChatProvider({ apiKey, baseURL }),
|
|
150
|
+
createModelProvider({ apiKey, baseURL })
|
|
151
|
+
);
|
|
152
|
+
const createZai = (apiKey, baseURL = "https://api.z.ai/api/paas/v4") => merge(
|
|
153
|
+
createChatProvider({ apiKey, baseURL }),
|
|
154
|
+
createModelProvider({ apiKey, baseURL })
|
|
155
|
+
);
|
|
156
|
+
const createInference = (apiKey, baseURL = "https://inference.net/v1") => merge(
|
|
157
|
+
createChatProvider({ apiKey, baseURL }),
|
|
158
|
+
createModelProvider({ apiKey, baseURL })
|
|
159
|
+
);
|
|
160
|
+
const createRequesty = (apiKey, baseURL = "https://router.requesty.ai/v1") => merge(
|
|
161
|
+
createChatProvider({ apiKey, baseURL }),
|
|
162
|
+
createModelProvider({ apiKey, baseURL })
|
|
163
|
+
);
|
|
164
|
+
const createMorph = (apiKey, baseURL = "https://api.morphllm.com/v1") => merge(
|
|
165
|
+
createChatProvider({ apiKey, baseURL }),
|
|
166
|
+
createModelProvider({ apiKey, baseURL })
|
|
167
|
+
);
|
|
168
|
+
const createLmstudio = (apiKey, baseURL = "http://127.0.0.1:1234/v1") => merge(
|
|
169
|
+
createChatProvider({ apiKey, baseURL }),
|
|
170
|
+
createModelProvider({ apiKey, baseURL })
|
|
171
|
+
);
|
|
172
|
+
const createFireworks = (apiKey, baseURL = "https://api.fireworks.ai/inference/v1/") => merge(
|
|
173
|
+
createChatProvider({ apiKey, baseURL }),
|
|
174
|
+
createModelProvider({ apiKey, baseURL })
|
|
175
|
+
);
|
|
176
|
+
const createModelscope = (apiKey, baseURL = "https://api-inference.modelscope.cn/v1") => merge(
|
|
177
|
+
createChatProvider({ apiKey, baseURL }),
|
|
178
|
+
createModelProvider({ apiKey, baseURL })
|
|
179
|
+
);
|
|
180
|
+
const createLlama = (apiKey, baseURL = "https://api.llama.com/compat/v1/") => merge(
|
|
181
|
+
createChatProvider({ apiKey, baseURL }),
|
|
182
|
+
createModelProvider({ apiKey, baseURL })
|
|
183
|
+
);
|
|
184
|
+
const createScaleway = (apiKey, baseURL = "https://api.scaleway.ai/v1") => merge(
|
|
185
|
+
createChatProvider({ apiKey, baseURL }),
|
|
186
|
+
createModelProvider({ apiKey, baseURL })
|
|
187
|
+
);
|
|
188
|
+
const createCerebras = (apiKey, baseURL = "https://api.cerebras.ai/v1/") => merge(
|
|
189
|
+
createChatProvider({ apiKey, baseURL }),
|
|
190
|
+
createModelProvider({ apiKey, baseURL }),
|
|
191
|
+
createEmbedProvider({ apiKey, baseURL })
|
|
192
|
+
);
|
|
193
|
+
const createMinimax = (apiKey, baseURL = "https://api.minimax.io/v1/") => merge(
|
|
194
|
+
createChatProvider({ apiKey, baseURL }),
|
|
195
|
+
createModelProvider({ apiKey, baseURL })
|
|
196
|
+
);
|
|
197
|
+
const createMinimaxi = (apiKey, baseURL = "https://api.minimaxi.com/v1/") => merge(
|
|
198
|
+
createChatProvider({ apiKey, baseURL }),
|
|
199
|
+
createModelProvider({ apiKey, baseURL })
|
|
200
|
+
);
|
|
201
|
+
const createNovita = (apiKey, baseURL = "https://api.novita.ai/v3/openai/") => merge(
|
|
202
|
+
createChatProvider({ apiKey, baseURL }),
|
|
203
|
+
createModelProvider({ apiKey, baseURL })
|
|
204
|
+
);
|
|
205
|
+
const createSiliconFlow = (apiKey, baseURL = "https://api.siliconflow.cn/v1/") => merge(
|
|
206
|
+
createChatProvider({ apiKey, baseURL }),
|
|
207
|
+
createModelProvider({ apiKey, baseURL }),
|
|
208
|
+
createEmbedProvider({ apiKey, baseURL }),
|
|
209
|
+
createSpeechProvider({ apiKey, baseURL }),
|
|
210
|
+
createTranscriptionProvider({ apiKey, baseURL })
|
|
211
|
+
);
|
|
212
|
+
const createStepfun = (apiKey, baseURL = "https://api.stepfun.com/v1/") => merge(
|
|
213
|
+
createChatProvider({ apiKey, baseURL }),
|
|
214
|
+
createModelProvider({ apiKey, baseURL }),
|
|
215
|
+
createEmbedProvider({ apiKey, baseURL }),
|
|
216
|
+
createSpeechProvider({ apiKey, baseURL }),
|
|
217
|
+
createTranscriptionProvider({ apiKey, baseURL })
|
|
218
|
+
);
|
|
219
|
+
const createTencentHunyuan = (apiKey, baseURL = "https://api.hunyuan.cloud.tencent.com/v1/") => merge(
|
|
220
|
+
createChatProvider({ apiKey, baseURL }),
|
|
221
|
+
createModelProvider({ apiKey, baseURL }),
|
|
222
|
+
createEmbedProvider({ apiKey, baseURL })
|
|
223
|
+
);
|
|
224
|
+
|
|
225
|
+
const createAnthropic = (apiKey, baseURL = "https://api.anthropic.com/v1/") => merge(
|
|
226
|
+
/** TODO: {@link https://docs.claude.com/en/api/openai-sdk#extended-thinking-support} */
|
|
227
|
+
createChatProvider({ apiKey, baseURL }),
|
|
228
|
+
createModelProvider({ apiKey, baseURL })
|
|
229
|
+
);
|
|
230
|
+
|
|
231
|
+
const createFeatherless = (apiKey, baseURL = "https://api.featherless.ai/v1/") => merge(
|
|
232
|
+
createChatProvider({ apiKey, baseURL }),
|
|
233
|
+
createModelProvider({
|
|
234
|
+
apiKey,
|
|
235
|
+
baseURL,
|
|
236
|
+
fetch: async (...args) => globalThis.fetch(...args).then(async (res) => res.json()).then((data) => Response.json({ data, object: "list" }))
|
|
237
|
+
})
|
|
238
|
+
);
|
|
239
|
+
|
|
240
|
+
const createOpenRouter = (apiKey, baseURL = "https://openrouter.ai/api/v1/") => merge(
|
|
241
|
+
{
|
|
242
|
+
chat: (model, openRouterOptions) => {
|
|
243
|
+
const requestOptions = { apiKey, baseURL, model };
|
|
244
|
+
const toOpenRouterOptions = ({ extraHeaders, models, provider }) => {
|
|
245
|
+
if (extraHeaders != null) {
|
|
246
|
+
requestOptions.headers ??= {};
|
|
247
|
+
Object.assign(requestOptions.headers, extraHeaders);
|
|
248
|
+
}
|
|
249
|
+
let transformedProvider;
|
|
250
|
+
if (provider != null) {
|
|
251
|
+
transformedProvider = objCamelToSnake(provider);
|
|
252
|
+
}
|
|
253
|
+
return objCamelToSnake({
|
|
254
|
+
models,
|
|
255
|
+
provider: transformedProvider
|
|
256
|
+
});
|
|
257
|
+
};
|
|
258
|
+
return {
|
|
259
|
+
...openRouterOptions ? toOpenRouterOptions(openRouterOptions) : {},
|
|
260
|
+
...requestOptions
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
createModelProvider({ apiKey, baseURL })
|
|
265
|
+
);
|
|
266
|
+
|
|
267
|
+
const createTogetherAI = (apiKey, baseURL = "https://api.together.xyz/v1/") => merge(
|
|
268
|
+
createChatProvider({ apiKey, baseURL }),
|
|
269
|
+
createEmbedProvider({ apiKey, baseURL }),
|
|
270
|
+
createModelProvider({
|
|
271
|
+
apiKey,
|
|
272
|
+
baseURL,
|
|
273
|
+
fetch: async (...args) => globalThis.fetch(...args).then(async (res) => res.json()).then((data) => Response.json({ data, object: "list" }))
|
|
274
|
+
})
|
|
275
|
+
);
|
|
276
|
+
|
|
277
|
+
export { createOpenRouter as $, createOpenAI as A, createZhipuaiCodingPlan as B, createPerplexity as C, createZenmux as D, createIflowcn as E, createSynthetic as F, createDeepinfra as G, createZhipuai as H, createSubmodel as I, createZai as J, createInference as K, createRequesty as L, createMorph as M, createLmstudio as N, createFireworks as O, createModelscope as P, createLlama as Q, createScaleway as R, createCerebras as S, createMinimax as T, createMinimaxi as U, createNovita as V, createSiliconFlow as W, createStepfun as X, createTencentHunyuan as Y, createAnthropic as Z, createFeatherless as _, createLucidquery as a, createTogetherAI as a0, createMoonshotai as b, createMoonshotaiCn as c, createZaiCodingPlan as d, createAlibaba as e, createXai as f, createVultr as g, createNvidia as h, createUpstage as i, createGroq as j, createGithubCopilot as k, createMistral as l, createNebius as m, createDeepSeek as n, createAlibabaCn as o, createVenice as p, createChutes as q, createCortecs as r, createGithubModels as s, createBaseten as t, createHuggingface as u, createOpencode as v, createFastrouter as w, createGoogleGenerativeAI as x, createInception as y, createWandb as z };
|
package/package.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@xsai-ext/providers",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.4.0-beta.8",
|
|
5
|
+
"description": "extra-small AI SDK.",
|
|
6
|
+
"author": "Moeru AI",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"homepage": "https://xsai.js.org",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/moeru-ai/xsai.git",
|
|
12
|
+
"directory": "packages-ext/providers"
|
|
13
|
+
},
|
|
14
|
+
"bugs": "https://github.com/moeru-ai/xsai/issues",
|
|
15
|
+
"keywords": [
|
|
16
|
+
"xsai",
|
|
17
|
+
"openai",
|
|
18
|
+
"ai"
|
|
19
|
+
],
|
|
20
|
+
"sideEffects": false,
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
24
|
+
"default": "./dist/index.js"
|
|
25
|
+
},
|
|
26
|
+
"./create": {
|
|
27
|
+
"types": "./dist/create.d.ts",
|
|
28
|
+
"default": "./dist/create.js"
|
|
29
|
+
},
|
|
30
|
+
"./package.json": "./package.json"
|
|
31
|
+
},
|
|
32
|
+
"files": [
|
|
33
|
+
"dist"
|
|
34
|
+
],
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@xsai/shared": "~0.4.0-beta.8",
|
|
37
|
+
"@xsai-ext/shared-providers": "~0.4.0-beta.8"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"scule": "^1.3.0"
|
|
41
|
+
},
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "pkgroll",
|
|
44
|
+
"sync": "tsx scripts/sync.ts",
|
|
45
|
+
"test": "vitest run"
|
|
46
|
+
},
|
|
47
|
+
"main": "./dist/index.js",
|
|
48
|
+
"types": "./dist/index.d.ts"
|
|
49
|
+
}
|