{"_id":"@autolabz/vercel-llmapi-provider","name":"@autolabz/vercel-llmapi-provider","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.3":{"name":"@autolabz/vercel-llmapi-provider","version":"0.1.3","private":false,"description":"Vercel AI SDK provider for AutoLab LLM API","type":"module","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","publishConfig":{"access":"public"},"sideEffects":false,"exports":{".":{"import":"./dist/index.js","require":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"build":"tsc -p tsconfig.json","prepare":"npm run build"},"dependencies":{"@ai-sdk/provider":"^2.0.0","@ai-sdk/provider-utils":"^2.0.0","@autolabz/llmapi-sdk":"^0.1.7"},"peerDependencies":{"zod":"^3.22.0 || ^4.0.0"},"devDependencies":{"typescript":"^5.6.3"},"_id":"@autolabz/vercel-llmapi-provider@0.1.3","gitHead":"77eba31449e2d94064dd6c9c6d84e79864a3a8c1","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Pbr1Q+R/L0g38WqeLh1WuLv9fiQv/ZSyGUGBJ8KUo028MXWW504+18trJ7mbsz7qVQimcxctDC8kvF0AzEt0lg==","shasum":"17a7febf916e9b8a6dab45df894fad3695cda331","tarball":"https://registry.npmjs.org/@autolabz/vercel-llmapi-provider/-/vercel-llmapi-provider-0.1.3.tgz","fileCount":14,"unpackedSize":41282,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDycMnFKlqy1OFeMygti7l5KY4qKxxRU7bLRIZVb1KpsAiEAxyrIlWUCaHFzTh+VzrJwIbYQ6qBs7rsWXOCvz6kZvL8="}]},"_npmUser":{"name":"autolabz","email":"mzhh@mzhh.xyz"},"directories":{},"maintainers":[{"name":"autolabz","email":"mzhh@mzhh.xyz"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vercel-llmapi-provider_0.1.3_1762679126039_0.8272451353933206"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-09T09:05:25.934Z","0.1.3":"2025-11-09T09:05:26.243Z","modified":"2025-11-09T09:05:26.499Z"},"maintainers":[{"name":"autolabz","email":"mzhh@mzhh.xyz"}],"description":"Vercel AI SDK provider for AutoLab LLM API","readme":"# @autolabz/vercel-llmapi-provider\n\nVercel AI SDK provider for AutoLab LLM API - 使 AutoLab LLM API 能够通过 Vercel AI SDK 的标准接口使用。\n\n## 安装\n\n```bash\nnpm install @autolabz/vercel-llmapi-provider @autolabz/llmapi-sdk\n```\n\n## 兼容性\n\n✅ **完全支持 Node.js ESM 模式**\n\n本包已针对 Node.js ESM 规范进行优化，可以在 `\"type\": \"module\"` 的项目中无缝使用。\n\n## 快速开始\n\n### 基础使用\n\n```typescript\nimport { createLLMAPIProvider } from '@autolabz/vercel-llmapi-provider';\nimport { generateText } from 'ai';\n\nconst provider = createLLMAPIProvider({\n  baseURL: 'https://api.autolab.example.com/llmapi',\n  auth: {\n    getAccessToken: () => localStorage.getItem('access_token'),\n    getClientId: () => 'your-client-id',\n    refreshAccessToken: async () => {\n      // 实现 token 刷新逻辑\n      return newToken;\n    },\n    onUnauthorized: () => {\n      // 处理未授权情况\n    }\n  }\n});\n\n// 使用 generateText\nconst { text } = await generateText({\n  model: provider('gpt-4o-mini'),\n  prompt: 'Hello, world!'\n});\n\nconsole.log(text);\n```\n\n### 与 Auth SDK 集成\n\n```typescript\nimport { createLLMAPIProvider } from '@autolabz/vercel-llmapi-provider';\nimport { createAuthBridgeFromContext, useAuth } from '@autolabz/auth-sdk';\nimport { generateText, streamText } from 'ai';\n\nconst auth = useAuth();\nconst provider = createLLMAPIProvider({\n  baseURL: '/llmapi',\n  auth: createAuthBridgeFromContext(auth)\n});\n\n// 非流式生成\nconst { text } = await generateText({\n  model: provider('gpt-4o-mini'),\n  prompt: 'Say hello'\n});\n\n// 流式生成\nconst { textStream } = await streamText({\n  model: provider('gpt-4o-mini'),\n  prompt: 'Tell me a story'\n});\n\nfor await (const chunk of textStream) {\n  process.stdout.write(chunk);\n}\n```\n\n### 使用工具调用（Tools）\n\n```typescript\nimport { createLLMAPIProvider } from '@autolabz/vercel-llmapi-provider';\nimport { generateObject } from 'ai';\nimport { z } from 'zod';\n\nconst provider = createLLMAPIProvider({\n  baseURL: '/llmapi',\n  auth: createAuthBridgeFromContext(auth)\n});\n\nconst { object } = await generateObject({\n  model: provider('gpt-4o-mini'),\n  schema: z.object({\n    name: z.string(),\n    age: z.number(),\n  }),\n  prompt: 'Generate a person object'\n});\n```\n\n### 使用工具（Tools）\n\n```typescript\nimport { createLLMAPIProvider } from '@autolabz/vercel-llmapi-provider';\nimport { generateText, tool } from 'ai';\nimport { z } from 'zod';\n\nconst provider = createLLMAPIProvider({\n  baseURL: '/llmapi',\n  auth: createAuthBridgeFromContext(auth)\n});\n\nconst { text, toolCalls } = await generateText({\n  model: provider('gpt-4o-mini'),\n  tools: {\n    getWeather: tool({\n      description: 'Get the weather for a location',\n      parameters: z.object({\n        location: z.string().describe('The city and state'),\n      }),\n      execute: async ({ location }) => {\n        // 实现获取天气的逻辑\n        return { temperature: 72, condition: 'sunny' };\n      },\n    }),\n  },\n  prompt: 'What is the weather in San Francisco?'\n});\n```\n\n## API 参考\n\n### `createLLMAPIProvider(settings)`\n\n创建 LLM API provider 实例。\n\n**参数：**\n\n```typescript\ninterface LLMAPIProviderSettings {\n  baseURL: string;                    // llmapi-service 基础 URL\n  auth: AuthBridge;                   // 认证桥接器\n  defaultHeaders?: Record<string, string>;  // 可选的默认请求头\n  fetch?: typeof fetch;               // 可选的自定义 fetch 函数\n}\n```\n\n**返回值：**\n\n返回一个 `LLMAPIProvider` 实例，可以作为 Vercel AI SDK 的 provider 使用。\n\n### Provider 使用方式\n\n```typescript\n// 方式 1: 直接调用\nconst model = provider('gpt-4o-mini');\n\n// 方式 2: 使用 chat 方法\nconst model = provider.chat('gpt-4o-mini');\n\n// 方式 3: 覆盖配置\nconst model = provider('gpt-4o-mini', {\n  baseURL: 'https://custom-url.com/llmapi',\n  auth: customAuthBridge\n});\n```\n\n## 功能特性\n\n- ✅ **完全兼容 Vercel AI SDK** - 实现标准的 `ProviderV2` 接口\n- ✅ **支持流式和非流式调用** - 支持 `generateText`、`streamText` 等所有 Vercel AI SDK 功能\n- ✅ **工具调用支持** - 完整支持工具调用（tools）和结构化输出\n- ✅ **自动认证处理** - 集成 AutoLab Auth SDK，自动处理 token 刷新\n- ✅ **错误处理** - 将 LLM API 错误转换为 Vercel AI SDK 标准错误格式\n- ✅ **类型安全** - 完整的 TypeScript 类型支持\n\n## 与 Vercel AI SDK 的集成\n\n本 provider 完全兼容 Vercel AI SDK 的所有功能，包括：\n\n- `generateText()` - 生成文本\n- `streamText()` - 流式生成文本\n- `generateObject()` - 生成结构化对象\n- `streamObject()` - 流式生成结构化对象\n- `generateImage()` - 生成图片（如果后端支持）\n- `embed()` - 生成嵌入向量（如果后端支持）\n- 工具调用（Tools）\n- 结构化输出（Structured Outputs）\n\n## 依赖\n\n- `@ai-sdk/provider` - Vercel AI SDK 核心接口\n- `@ai-sdk/provider-utils` - Vercel AI SDK 工具函数\n- `@autolabz/llmapi-sdk` - AutoLab LLM API 客户端\n- `zod` - 类型验证（peer dependency）\n\n## 许可证\n\nMIT\n\n","readmeFilename":"README.md","_rev":"1-44e7b20281f17d90553729612467f6b0"}