# @aeye/replicate 中文文档

规范地址：https://npmcn.com/package/%40aeye/replicate/

版本：0\.4\.0
npm 元数据更新时间：2026-11-05T12:00:30.170Z
中文译文更新时间：2026-11-06T02:05:40.840Z
软件包许可：GPL-3\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aeye/replicate
原文对照：https://npmcn.com/package/%40aeye/replicate/?lang=original
项目主页：https://github.com/ClickerMonkey/aeye#readme
源码仓库：https://github.com/ClickerMonkey/aeye

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：60.5 kB，11 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=16\.0\.0
- 运行依赖：3 个
- 首次发布：2025-11-17T15:33:53.664Z
- 最新版本发布：2026-11-05T12:00:29.942Z
- 近 30 天下载量：6739（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：13（近 12 个月 13 个）

## 中文简介

@ aeye 复制 - 复制集成为 @ aeye

## 安装

```sh
npm install @aeye/replicate
```

也可以使用：`pnpm add @aeye/replicate`、`yarn add @aeye/replicate`、`bun add @aeye/replicate`

## README

# @aey/复制

复制@aeye (AI TypeScript) 框架的提供者 。 这个软件包为在云中运行AI模型提供了与Repect的平台的集成.

## 特征

-   **千人模式**: 访问庞大的开源AI模型库
-   **模型适配器**: 处理模型特定计划的灵活性适配器系统
-   **多重能力**: 支持聊天、图像生成、复制等
-   **流线**: 支持模型的实时流线
-   **自定义模型**: 部署和使用自己的模型
-   **版本控制**: 用于复制的特定模型版本

## 安装

```bash
npm install @aeye/replicate @aeye/ai @aeye/core replicate zod
```

## 重要说明

**复制没有一致的 API** - 每个模型都有自己的输入/输出计划。 这意味着您需要为您想要使用的每个模型注册模型适配器. @aeye框架提供了一个灵活的适配器系统来处理这个问题.

## 快速启动

```typescript
import { ReplicateProvider } from '@aeye/replicate';
import { AI } from '@aeye/ai';
import { createLlama3Adapter } from '@aeye/replicate';

// Create provider with adapters
const replicate = new ReplicateProvider({
  apiKey: process.env.REPLICATE_API_KEY!,
  transformers: {
    'meta/meta-llama-3-70b-instruct': createLlama3Adapter(),
  },
});

// Use with AI instance
const ai = AI.with()
  .providers({ replicate })
  .create();

// Make a request
const response = await ai.chat.get([
  { role: 'user', content: 'Explain neural networks' }
], {
  metadata: { model: 'meta/meta-llama-3-70b-instruct' }
});

console.log(response.content);
```

## 配置

### 基本配置

```typescript
import { ReplicateProvider, ReplicateConfig } from '@aeye/replicate';

const config: ReplicateConfig = {
  apiKey: process.env.REPLICATE_API_KEY!,
  transformers: {
    // Register adapters for models you want to use
    'meta/meta-llama-3-70b-instruct': createLlama3Adapter(),
    'stability-ai/sdxl': createSDXLAdapter(),
  },
};

const provider = new ReplicateProvider(config);
```

### 自定义基础 URL

```typescript
const provider = new ReplicateProvider({
  apiKey: process.env.REPLICATE_API_KEY!,
  baseUrl: 'https://custom.replicate.com', // Optional custom endpoint
  transformers: {
    // ... your adapters
  },
});
```

## 模型适配器

模型适配器在@aeye标准接口和每个模型的具体输入/输出格式之间翻译.

### 使用内建适应器

```typescript
import {
  createLlama3Adapter,
  createSDXLAdapter,
  createWhisperAdapter,
} from '@aeye/replicate';

const provider = new ReplicateProvider({
  apiKey: process.env.REPLICATE_API_KEY!,
  transformers: {
    // Chat model
    'meta/meta-llama-3-70b-instruct': createLlama3Adapter(),

    // Image generation
    'stability-ai/sdxl': createSDXLAdapter(),

    // Audio transcription
    'openai/whisper': createWhisperAdapter(),
  },
});
```

### 创建自定义适配器

TODO: 正确的例子

## 用法实例

### 聊天补全

```typescript
import { AI } from '@aeye/ai';
import { ReplicateProvider, createLlama3Adapter } from '@aeye/replicate';

const replicate = new ReplicateProvider({
  apiKey: process.env.REPLICATE_API_KEY!,
  transformers: {
    'meta/meta-llama-3-70b-instruct': createLlama3Adapter(),
  },
});

const ai = AI.with()
  .providers({ replicate })
  .create();

const response = await ai.chat.get([
  { role: 'system', content: 'You are a helpful assistant.' },
  { role: 'user', content: 'What is machine learning?' }
], {
  metadata: { model: 'meta/meta-llama-3-70b-instruct' }
});

console.log(response.content);
```

### 流出聊天

```typescript
for await (const chunk of ai.chat.stream([
  { role: 'user', content: 'Write a story about a robot' }
], {
  metadata: { model: 'meta/meta-llama-3-70b-instruct' }
})) {
  if (chunk.content) {
    process.stdout.write(chunk.content);
  }
}
```

### 图像生成

```typescript
import { createSDXLAdapter } from '@aeye/replicate';

const replicate = new ReplicateProvider({
  apiKey: process.env.REPLICATE_API_KEY!,
  transformers: {
    'stability-ai/sdxl': createSDXLAdapter(),
  },
});

const ai = AI.with()
  .providers({ replicate })
  .create();

const imageResponse = await ai.image.generate.get({
  prompt: 'A serene mountain landscape at sunset',
  size: '1024x1024',
}, {
  metadata: { model: 'stability-ai/sdxl' }
});

console.log('Generated image URL:', imageResponse.images[0].url);
```

### 音频译名

```typescript
import { createWhisperAdapter } from '@aeye/replicate';
import fs from 'fs';

const replicate = new ReplicateProvider({
  apiKey: process.env.REPLICATE_API_KEY!,
  transformers: {
    'openai/whisper': createWhisperAdapter(),
  },
});

const ai = AI.with()
  .providers({ replicate })
  .create();

const audioBuffer = fs.readFileSync('audio.mp3');

const transcription = await ai.transcribe.get({
  audio: audioBuffer,
}, {
  metadata: { model: 'openai/whisper' }
});

console.log('Transcription:', transcription.text);
```

### 使用特定的模型版本

```typescript
// Pin to a specific version for reproducibility
const response = await ai.chat.get(messages, {
  metadata: {
    model: 'meta/meta-llama-3-70b-instruct',
    version: 'fbfb20b472b2f3bdd101412a9f70a0ed4fc0ced78a77ff00970ee7a2383c575d',
  }
});
```

### 直接 API 用法

```typescript
const executor = replicate.createExecutor();

const response = await executor(
  {
    messages: [
      { role: 'user', content: 'Hello!' }
    ],
    temperature: 0.7,
    maxTokens: 500,
  },
  {},
  { model: 'meta/meta-llama-3-70b-instruct' }
);
```

### 列出可用的模型

```typescript
const models = await replicate.listModels();

models.forEach(model => {
  console.log(`${model.id}`);
  console.log(`  Description: ${model.metadata.description}`);
  console.log(`  Runs: ${model.metadata.runCount}`);
  console.log(`  Capabilities: ${Array.from(model.capabilities).join(', ')}`);
});
```

### 搜索模式

您可以搜索具有特定能力的模型 :

```typescript
// Using the Replicate client directly
const client = new Replicate({ auth: process.env.REPLICATE_API_KEY! });

const results = await client.models.search({
  query: 'text generation',
});

for await (const model of results) {
  console.log(model.owner + '/' + model.name);
}
```

## 配置选项

### 复制配置

| 财产 | 类型 | 需求 | 说明 |
| --- | --- | --- | --- |
| `apiKey` | `string` | 对 | 复制 API 密钥从 [https://retravel.com/count/api-tokens 页面存档备份,存于互联网档案馆](https://replicate.com/account/api-tokens) |
| `baseUrl` | `string` | 没有 | API 端点自定义基础 URL |
| `transformers` | `Record<string, ModelTransformer>` | 没有 | 用于请求/答复转换的模型适配器 |

### 模型转换接口

```typescript
interface ModelTransformer {
  // Convert @aeye request to model input
  transformRequest: (request: Request) => Record<string, unknown>;

  // Convert model output to @aeye response
  transformResponse: (output: unknown) => Response;

  // Optional: convert stream chunks
  transformStreamChunk?: (chunk: unknown) => Chunk;

  // Optional: convert image request
  transformImageRequest?: (request: ImageGenerationRequest) => Record<string, unknown>;

  // Optional: convert image response
  transformImageResponse?: (output: unknown) => ImageGenerationResponse;

  // Optional: convert transcription request
  transformTranscriptionRequest?: (request: TranscriptionRequest) => Record<string, unknown>;

  // Optional: convert transcription response
  transformTranscriptionResponse?: (output: unknown) => TranscriptionResponse;
}
```

## 内建适应器

该套件包括了流行型号的适配器:

### 聊天模式

-   **`createLlama3Adapter()`**: Meta Llama 3 型号
    -   `meta/meta-llama-3-8b-instruct`
    -   `meta/meta-llama-3-70b-instruct`

### 图像生成

-   **`createSDXLAdapter()`**: 稳定扩散XL
    
    -   `stability-ai/sdxl`
-   **`createFluxAdapter()`**: 豪华型
    
    -   `black-forest-labs/flux-schnell`
    -   `black-forest-labs/flux-dev`

### 音频

-   **`createWhisperAdapter()`**: OpenAI 低语
    -   `openai/whisper`

### 嵌入层

-   **`createBGEAdapter()`**: BGE 嵌入
    -   `replicate/bge-large-en-v1.5`

定期增加更多的适配器。 检查套件导出的最新列表 .

## 处理错误

```typescript
try {
  const response = await ai.chat.get(messages, {
    metadata: { model: 'meta/meta-llama-3-70b-instruct' }
  });
} catch (error) {
  if (error.message.includes('No transformer registered')) {
    console.error('Missing model adapter - register a transformer for this model');
  } else if (error.message.includes('Rate limit')) {
    console.error('Rate limit exceeded');
  } else {
    console.error('Error:', error);
  }
}
```

## 模型格式

复制模型使用格式 `owner/model-name`数字 :

-   `meta/meta-llama-3-70b-instruct`
-   `stability-ai/sdxl`
-   `openai/whisper`
-   `mistralai/mixtral-8x7b-instruct-v0.1`

要使用特定版本,请附加版本ID:

-   `meta/meta-llama-3-70b-instruct:fbfb20b472b2f3bdd101412a9f70a0ed4fc0ced78a77ff00970ee7a2383c575d`

## 最佳做法

1.  **注册适配器**: 总是为您使用的模型注册适配器
    
    ```typescript
    transformers: {
      'owner/model': createAdapter(),
    }
    ```
    
2.  **Pin 版本**: 在生产中使用特定版本
    
    ```typescript
    model: 'owner/model:version-id'
    ```
    
3.  **处理缺失的适配器**: 提供有用的错误
    
    ```typescript
    if (!transformer) {
      throw new Error('No adapter registered for ' + model);
    }
    ```
    
4.  **缓存模式列表**: 复制的模型列表很大
    
    ```typescript
    const models = await replicate.listModels();
    // Cache the results
    ```
    
5.  **监视器使用**: 每项预测的复制费
    
    ```typescript
    console.log('Tokens used:', response.usage.totalTokens);
    ```
    
6.  **测试适配器**: 用测试数据验证适配器行为
    
    ```typescript
    const testRequest = { messages: [{ role: 'user', content: 'test' }] };
    const input = adapter.transformRequest(testRequest);
    console.log('Model input:', input);
    ```
    

## 创建模型适配器

以下是创建适配器的完整例子:

```typescript
import { ModelTransformer } from '@aeye/ai';
import type { Request, Response, Chunk } from '@aeye/core';

export function createMyModelAdapter(): ModelTransformer {
  return {
    transformRequest: (request: Request) => {
      // Extract the last user message as the prompt
      const lastMessage = request.messages[request.messages.length - 1];
      const prompt = typeof lastMessage.content === 'string'
        ? lastMessage.content
        : lastMessage.content.map(c => c.content).join(' ');

      // Build model-specific input
      return {
        prompt,
        temperature: request.temperature ?? 0.7,
        max_length: request.maxTokens ?? 500,
        top_p: request.topP,
        stop_sequences: Array.isArray(request.stop)
          ? request.stop
          : request.stop
            ? [request.stop]
            : undefined,
      };
    },

    transformResponse: (output: unknown): Response => {
      const result = output as {
        output: string[];
        metrics?: { predict_time?: number };
      };

      // Combine output array into single string
      const content = result.output.join('');

      return {
        content,
        finishReason: 'stop',
        usage: {
          text: { input: 0, output: 0 },
        },
      };
    },

    transformStreamChunk: (chunk: unknown) => {
      const data = chunk as { output?: string };

      return {
        content: data.output,
      };
    },
  };
}
```

## API 参考

### 复制

**构造器**数字 : `new ReplicateProvider(config: ReplicateConfig)`

**方法**数字 :

-   `createExecutor<TContext, TMetadata>(config?)` - 用适配器创建执行器
-   `createStreamer<TContext, TMetadata>(config?)` - 用适配器创建流体
-   `listModels(config?)` - 列出可复制的模型
-   `generateImage<TContext>(request, ctx, config?)` - 生成图像
-   `transcribe<TContext>(request, ctx, config?)` - 录音
-   `embed<TContext>(request, ctx, config?)` - 生成嵌入

## 支持的特性

-   QQ 聊天补全( 有适配器)
-   ++ 流 (依赖模型)
-   QQ 图像生成( 有适配器)
-   \* 音频复制(带有适配器)
-   \* 嵌入(带有适配器)
-   自定义模型
-   QQ 版本针入
-   函数调用( 依赖模型)
-   \* 结构化产出(依赖模型)

特性可用性取决于具体的模型和适配器.

## 查找模式

浏览可用的模型 :

-   [https://replex.com/explore 页面存档备份,存于互联网档案馆](https://replicate.com/explore)

流行模式类别:

-   **语言模型**:Llama,米斯特拉尔,米斯特拉尔等.
-   **图像生成**: SDXL,Flux,ControlNet等.
-   **音频**:华声,MusicGen等.
-   **视频**:稳定视频传播等.
-   **图像增强**:升起,面相还原等.

## 获取 API 密钥

1.  访问 [https://repe.com (中文(简体) )](https://replicate.com/)
2.  创建账户或签名于
3.  导航到 [https://retravel.com/count/api-tokens 页面存档备份,存于互联网档案馆](https://replicate.com/account/api-tokens)
4.  生成新的 API 令牌
5.  在环境变量中安全存储

## 相关软件包

-   **[@ aeye/ 核心](https://npmcn.com/package/%40aeye/core)**: 核心@aeye框架类型和接口
-   **[@aeye/ai (韩语)](https://npmcn.com/package/%40aeye/ai)**:AI抽象和公用事业
-   **[@aeye/ openai (韩语)](https://npmcn.com/package/%40aeye/openai)**: OpenAI 供应商
-   **[@aye/人类](https://npmcn.com/package/%40aeye/anthropic)**: Anthropic Claude供应商
-   **[@ aeye/开路器](https://npmcn.com/package/%40aeye/openrouter)**: 多供应商网关

## 链接

-   [复制网站](https://replicate.com/)
-   [复制文档](https://replicate.com/docs)
-   [复制模型](https://replicate.com/explore)
-   [复制 API 参考](https://replicate.com/docs/reference/http)
-   [复制定价](https://replicate.com/pricing)

## 许可证

GPL-3.0 (英语)

## 捐款

欢迎贡献,特别是新的模型适配器! 请看主线 [@ aeye 仓库](https://github.com/ClickerMonkey/aeye) 捐款准则.

### 贡献适应器

提供一个新的模型适配器:

1.  在 `src/adapters.ts`
2.  导出它从 `src/index.ts`
3.  为适配器添加测试
4.  用用法示例更新此 README
5.  提交拉动请求

## 支助

关于议题和问题清单:

-   GitHub 问题 : [https://github.com/ClickerMonkey/aey/ issues (英语)](https://github.com/ClickerMonkey/aeye/issues)
-   联合国 [https://github.com/ClickerMonkey/aey 互联网档案馆的存檔,存档日期2013-12-02](https://github.com/ClickerMonkey/aeye)
-   复制磁盘 : [https://discord.gg/再现](https://discord.gg/replicate)

## 常见问题

### @aeye/replicate 是什么？

@ aeye 复制 - 复制集成为 @ aeye

### 如何安装 @aeye/replicate？

在项目目录运行 npm install @aeye/replicate，或使用 pnpm add / yarn add / bun add。

### @aeye/replicate 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @aeye/replicate 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @aeye/replicate 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=16\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @aeye/replicate 可以商用吗？

@aeye/replicate 使用 GPL-3\.0 许可。强 Copyleft：分发包含该代码的软件时，整个作品需以 GPL-3\.0 兼容许可开源，并附带专利与反锁定条款。仅内部使用不触发此义务。以上为概括，不构成法律意见，请以许可原文为准。

### @aeye/replicate 的下载量有多少？

根据 npm 官方下载统计，@aeye/replicate 在 2026/10/05 – 2026/11/03 这 30 天内被下载 6,739 次，日均约 225 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @aeye/replicate 还在维护吗？

最新版本 0\.4\.0 发布于 2026/11/05（今天）；至今共发布 13 个版本，其中过去 12 个月发布了 13 个；首次发布于 2025/11/17。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

