@ai-api-tool/sdk
v1.0.0
Published
ABCDE Plugin Development SDK - 开发 ABCDE 插件的工具包
Maintainers
Readme
@abcde/sdk
ABCDE 插件开发 SDK - 用于开发 ABCDE 平台插件的工具包。
安装
npm install @abcde/sdk快速开始
创建平台插件
import { definePlatform } from '@abcde/sdk'
export default definePlatform({
metadata: {
id: 'my-platform',
name: 'My Platform',
provider: 'My Company',
category: 'chinese',
models: [
{
id: 'my-model',
name: 'My Model',
alias: ['my-model'],
capabilities: {
code: 90,
writing: 85,
math: 88,
creative: 82,
analysis: 87,
translation: 86,
chinese: 92,
},
maxTokens: 8192,
description: 'My awesome model',
},
],
auth: {
type: 'bearer',
header: 'Authorization',
requiredFields: ['apiKey'],
},
api: {
baseUrl: 'https://api.myplatform.com',
chatEndpoint: '/v1/chat/completions',
defaultHeaders: {
'Content-Type': 'application/json',
},
},
pricing: {
currency: 'CNY',
inputCostPer1k: 0.01,
outputCostPer1k: 0.02,
freeQuota: 100000,
},
features: {
streamSupport: true,
functionCall: true,
multimodal: false,
contextLength: 8192,
},
version: '1.0.0',
author: 'Your Name',
tags: ['chinese', 'fast'],
description: 'My platform plugin',
},
// 使用内置的 OpenAI 兼容转换器
transformers: 'openai',
})快捷定义 OpenAI 兼容平台
import { defineOpenAIPlatform } from '@abcde/sdk'
export default defineOpenAIPlatform({
id: 'my-platform',
name: 'My Platform',
provider: 'My Company',
baseUrl: 'https://api.myplatform.com',
models: [
{
id: 'my-model',
name: 'My Model',
capabilities: { chinese: 95, code: 90 },
},
],
})API
definePlatform(config)
定义平台适配器插件。
defineTransformer(config)
定义自定义转换器插件。
defineAnalyzer(config)
定义任务分析器插件。
defineWebhook(config)
定义 Webhook 集成插件。
defineTheme(config)
定义主题插件。
defineOpenAIPlatform(config)
快速定义 OpenAI 兼容平台。
内置转换器
SDK 提供了以下内置转换器:
openai- OpenAI 标准格式ernie- 文心一言格式qwen- 通义千问格式gemini- Gemini 格式claude- Claude 格式passthrough- 透传
transformers: 'openai' // 使用内置转换器工具函数
import {
validatePlugin,
createLogger,
debounce,
throttle,
retry,
generateId,
} from '@abcde/sdk'
// 验证插件
const result = validatePlugin(myPlugin)
// 创建日志器
const logger = createLogger('my-plugin')
logger.info('Hello from plugin!')
// 防抖
const debouncedFn = debounce(myFunction, 300)
// 重试
await retry(async () => {
await fetchSomething()
}, { maxRetries: 3 })类型
所有类型都可以从 @abcde/sdk 导入:
import type {
PlatformAdapter,
TransformerPlugin,
PlatformMetadata,
PluginType,
PlatformCategory,
ModelCapabilities,
RequestTransformer,
ResponseTransformer,
} from '@abcde/sdk'插件结构
一个完整的插件包结构:
my-platform-plugin/
├── package.json
├── src/
│ └── index.ts
├── dist/
│ └── index.js
└── README.mdpackage.json 配置
{
"name": "@abcde/platform-myplatform",
"version": "1.0.0",
"description": "My Platform adapter for ABCDE",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"abcde": {
"type": "platform-adapter",
"runtime": ">=1.0.0"
},
"keywords": ["abcde", "platform", "myplatform"],
"author": "Your Name",
"license": "MIT"
}许可证
MIT
