npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

aisapi

v1.0.1

Published

A JavaScript/TypeScript API library for multiple AI providers

Readme

AisAPI - 多AI大模型统一接口

AisAPI - Multi-AI Model Unified Interface

NPM下载量

AisAPI是一个让你轻松对接多种AI大模型的库,提供统一的接口来调用OpenAI、Claude、Gemini、文心一言等国内外主流大模型服务。

AisAPI is a library that allows you to easily connect to various AI models, providing a unified interface to call mainstream AI services such as OpenAI, Claude, Gemini, ERNIE, and more.

特点 | Features

  • 统一接口:用同样的代码调用不同的AI服务

  • Unified Interface: Use the same code to call different AI services

  • 支持多种AI

    • 国际服务:OpenAI (GPT)、Anthropic (Claude)、Google (Gemini)、DeepSeek、Grok
    • 国内服务:文心一言 (ERNIE)、讯飞星火 (Spark)、智谱 (ChatGLM)、Moonshot (Kimi)、豆包
  • Multiple AI Support:

    • International services: OpenAI (GPT), Anthropic (Claude), Google (Gemini), DeepSeek, Grok
    • Chinese services: Baidu ERNIE, iFlytek Spark, Zhipu ChatGLM, Moonshot (Kimi), Doubao
  • 丰富功能

    • 文本生成和聊天对话
    • 图像生成和编辑
    • 语音转文本、文本转语音
    • 向量嵌入、JSON格式输出
    • 流式生成(边生成边返回)
  • Rich Features:

    • Text generation and chat dialogues
    • Image generation and editing
    • Speech-to-text, text-to-speech
    • Vector embeddings, JSON output
    • Streaming generation (returning content as it's generated)
  • 开发友好:完整TypeScript类型支持,简单易用的API

  • Developer Friendly: Complete TypeScript type support, simple and easy-to-use API

安装 | Installation

npm install aisapi

快速开始 | Quick Start

方式1:使用统一接口 | Method 1: Using the Unified Interface

import { AisAPI } from 'aisapi';

// 创建实例,配置多个AI服务
// Create an instance with multiple AI services configured
const ai = new AisAPI({
  openai: {
    apiKey: process.env.OPENAI_API_KEY
  },
  anthropic: {
    apiKey: process.env.ANTHROPIC_API_KEY
  },
  defaultProvider: 'openai' // 默认用哪个 | Default provider
});

// 用默认AI生成文本
// Generate text using the default AI
const result = await ai.generateText({
  prompt: '请解释什么是人工智能',
  maxTokens: 100
});
console.log(result.text);

// 切换到不同的AI
// Switch to a different AI
const claudeResult = await ai.generateText({
  prompt: '请解释什么是人工智能',
  maxTokens: 100
}, 'anthropic');
console.log(claudeResult.text);

方式2:直接使用特定AI | Method 2: Directly Using Specific AI

import { GPT, Claude, Gemini } from 'aisapi';

// 使用OpenAI
// Using OpenAI
const gpt = new GPT({
  apiKey: process.env.OPENAI_API_KEY,
  model: 'gpt-4'
});

const result = await gpt.generateText({
  prompt: '什么是机器学习?',
  temperature: 0.7
});
console.log(result.text);

功能示例 | Feature Examples

聊天对话 | Chat Dialogue

const chatResult = await gpt.chatCompletion({
  model: 'gpt-4',
  messages: [
    { role: 'system', content: '你是一个专业的科技顾问。' },
    { role: 'user', content: '请比较React和Vue的优缺点?' }
  ]
});

console.log(chatResult.text);

图像生成 | Image Generation

const imageResult = await gpt.generateImage({
  prompt: '一只宇航员猫咪在太空中漂浮',
  size: '1024x1024',
  model: 'dall-e-3'
});

console.log('图像URL:', imageResult.urls[0]);
// Image URL: imageResult.urls[0]

流式生成(边生成边返回)| Streaming Generation

const stream = await gpt.createStreamingChatCompletion({
  model: 'gpt-3.5-turbo',
  messages: [{ role: 'user', content: '讲一个短故事' }]
});

const reader = stream.getReader();
while (true) {
  const { done, value } = await reader.read();
  if (done) break;
  
  // 处理每个返回的数据块
  // Process each returned data chunk
  const chunk = new TextDecoder().decode(value);
  process.stdout.write(chunk);
}

国内AI服务示例 | Chinese AI Service Examples

文心一言 | ERNIE Bot

import { Ernie, ErnieModel } from 'aisapi';

const ernie = new Ernie({
  apiKey: process.env.ERNIE_API_KEY,     // 百度AI平台的API Key
  secretKey: process.env.ERNIE_SECRET_KEY,  // 百度AI平台的Secret Key
  model: ErnieModel.ERNIE_BOT_4  // 使用ERNIE Bot 4模型
});

const result = await ernie.generateText({
  prompt: '以"春风"为主题,写一首现代诗',
  temperature: 0.8
});

console.log(result.text);

讯飞星火 | Spark

import { Spark, SparkModel } from 'aisapi';

const spark = new Spark({
  apiKey: process.env.SPARK_API_KEY,
  appId: process.env.SPARK_APP_ID,
  apiSecret: process.env.SPARK_API_SECRET,
  model: SparkModel.SPARK_MAX  // 使用星火MAX模型 | Using Spark MAX model
});

const result = await spark.generateText({
  prompt: '解释一下Transformer架构的工作原理'
});

console.log(result.text);

高级功能 | Advanced Features

JSON格式输出 | JSON Format Output

const jsonResult = await gpt.generateJSON({
  prompt: '生成三个虚构人物的数据,包含姓名、年龄和职业'
});

console.log(JSON.stringify(jsonResult.data, null, 2));

向量嵌入 | Vector Embeddings

const embedding = await gpt.createEmbedding({
  model: 'text-embedding-3-small',
  input: '这是一个示例文本'
});

console.log(`嵌入维度: ${embedding.data[0].embedding.length}`);
// Embedding dimensions: ${embedding.data[0].embedding.length}

语音转文本 | Speech to Text

const transcription = await gpt.transcribeAudio({
  file: audioFile,  // 你的音频文件 | Your audio file
  model: 'whisper-1',
  language: 'zh'
});

console.log('识别结果:', transcription.text);
// Recognition result: transcription.text

文本转语音 | Text to Speech

const speech = await gpt.textToSpeech({
  input: '你好,这是一个文本转语音的示例。',
  model: 'tts-1',
  voice: 'alloy'
});

// 使用speech.audioData (ArrayBuffer)保存或播放音频
// Use speech.audioData (ArrayBuffer) to save or play audio

支持的AI服务及功能 | Supported AI Services and Features

| 功能 Features | OpenAI | Claude | Gemini | DeepSeek | ERNIE | Spark | ChatGLM | Moonshot | Doubao | Grok | | --------------------------- | :----: | :----: | :----: | :------: | :---: | :---: | :-----: | :------: | :----: | :--: | | 文本生成 Text Generation | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | 图像生成 Image Generation | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | 聊天对话 Chat Dialogue | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | 语音识别 Speech Recognition | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | 语音合成 Speech Synthesis | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | 向量嵌入 Vector Embeddings | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | JSON输出 JSON Output | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | 流式输出 Streaming Output | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |

提供商配置参数 | Provider Configuration Parameters

下表列出了各提供商的配置参数,可选参数前标有"?",并提供默认值。 The table below lists the configuration parameters for each provider, with optional parameters marked with "?" and their default values.

OpenAI 配置参数 | OpenAI Configuration Parameters

| 参数 Parameter | 说明 Description | 默认值 Default Value | | -------------- | ----------------------------------------- | --------------------------- | | apiKey | API密钥| API Key | - | | ?model | 模型名称| Model name | 'gpt-3.5-turbo' | | ?baseURL | 自定义API地址| Custom API URL | 'https://api.openai.com/v1' | | ?timeout | 请求超时时间(毫秒)| Request timeout (ms) | 30000 | | ?maxRetries | 最大重试次数| Maximum retry attempts | 2 | | ?organization | 组织ID| Organization ID | undefined |

Anthropic (Claude) 配置参数 | Anthropic Configuration Parameters

| 参数 Parameter | 说明 Description | 默认值 Default Value | | -------------- | ----------------------------------------- | --------------------------- | | apiKey | API密钥| API Key | - | | ?model | 模型名称| Model name | 'claude-3-haiku-20240307' | | ?baseURL | 自定义API地址| Custom API URL | 'https://api.anthropic.com' | | ?timeout | 请求超时时间(毫秒)| Request timeout (ms) | 60000 | | ?maxRetries | 最大重试次数| Maximum retry attempts | 2 |

Google Gemini 配置参数 | Google Gemini Configuration Parameters

| 参数 Parameter | 说明 Description | 默认值 Default Value | | -------------- | ----------------------------------------- | -------------------- | | apiKey | API密钥| API Key | - | | ?model | 模型名称| Model name | 'gemini-pro' | | ?timeout | 请求超时时间(毫秒)| Request timeout (ms) | 30000 | | ?maxRetries | 最大重试次数| Maximum retry attempts | 2 | | ?region | API区域| API region | 'us-central1' |

DeepSeek 配置参数 | DeepSeek Configuration Parameters

| 参数 Parameter | 说明 Description | 默认值 Default Value | | -------------- | ----------------------------------------- | ----------------------------- | | apiKey | API密钥| API Key | - | | ?model | 模型名称| Model name | 'deepseek-chat' | | ?baseURL | 自定义API地址| Custom API URL | 'https://api.deepseek.com/v1' | | ?timeout | 请求超时时间(毫秒)| Request timeout (ms) | 30000 | | ?maxRetries | 最大重试次数| Maximum retry attempts | 2 |

文心一言 (ERNIE) 配置参数 | ERNIE Configuration Parameters

| 参数 Parameter | 说明 Description | 默认值 Default Value | | -------------------- | ---------------------------------------------------- | -------------------------- | | apiKey | API密钥| API Key | - | | secretKey | 密钥| Secret Key | - | | ?model | 模型名称| Model name | 'ernie-bot-4' | | ?baseURL | 自定义API地址| Custom API URL | 'https://aip.baidubce.com' | | ?timeout | 请求超时时间(毫秒)| Request timeout (ms) | 60000 | | ?maxRetries | 最大重试次数| Maximum retry attempts | 2 | | ?accessTokenLifetime | 访问令牌有效期(秒)| Access token lifetime (seconds) | 2592000 (30天|days) |

讯飞星火 (Spark) 配置参数 | iFlytek Spark Configuration Parameters

| 参数 Parameter | 说明 Description | 默认值 Default Value | | -------------- | ----------------------------------------- | -------------------------------------- | | apiKey | API密钥| API Key | - | | appId | 应用ID| Application ID | - | | apiSecret | API密钥| API Secret | - | | ?model | 模型名称| Model name | 'spark-v3.5' | | ?domain | 服务域名| Service domain | 'general' | | ?baseURL | 自定义API地址| Custom API URL | 'wss://spark-api.xf-yun.com/v3.5/chat' | | ?timeout | 请求超时时间(毫秒)| Request timeout (ms) | 60000 | | ?maxRetries | 最大重试次数| Maximum retry attempts | 2 |

智谱 (ChatGLM) 配置参数 | Zhipu ChatGLM Configuration Parameters

| 参数 Parameter | 说明 Description | 默认值 Default Value | | -------------- | ----------------------------------------- | -------------------------------------- | | apiKey | API密钥| API Key | - | | ?model | 模型名称| Model name | 'glm-4' | | ?baseURL | 自定义API地址| Custom API URL | 'https://open.bigmodel.cn/api/paas/v4' | | ?timeout | 请求超时时间(毫秒)| Request timeout (ms) | 60000 | | ?maxRetries | 最大重试次数| Maximum retry attempts | 2 |

Moonshot (Kimi) 配置参数 | Moonshot Configuration Parameters

| 参数 Parameter | 说明 Description | 默认值 Default Value | | -------------- | ----------------------------------------- | ---------------------------- | | apiKey | API密钥| API Key | - | | ?model | 模型名称| Model name | 'moonshot-v1-8k' | | ?baseURL | 自定义API地址| Custom API URL | 'https://api.moonshot.cn/v1' | | ?timeout | 请求超时时间(毫秒)| Request timeout (ms) | 60000 | | ?maxRetries | 最大重试次数| Maximum retry attempts | 2 |

豆包 (Doubao) 配置参数 | Doubao Configuration Parameters

| 参数 Parameter | 说明 Description | 默认值 Default Value | | -------------- | ----------------------------------------- | --------------------------- | | apiKey | API密钥| API Key | - | | ?model | 模型名称| Model name | 'doubao-pro' | | ?baseURL | 自定义API地址| Custom API URL | 'https://api.doubao.com/v1' | | ?timeout | 请求超时时间(毫秒)| Request timeout (ms) | 60000 | | ?maxRetries | 最大重试次数| Maximum retry attempts | 2 |

Grok 配置参数 | Grok Configuration Parameters

| 参数 Parameter | 说明 Description | 默认值 Default Value | | -------------- | ----------------------------------------- | ------------------------ | | apiKey | API密钥| API Key | - | | ?model | 模型名称| Model name | 'grok-1' | | ?baseURL | 自定义API地址| Custom API URL | 'https://api.grok.ai/v1' | | ?timeout | 请求超时时间(毫秒)| Request timeout (ms) | 60000 | | ?maxRetries | 最大重试次数| Maximum retry attempts | 2 |

提供商列表 | Provider List

| 提供商 Provider | 实现类 Implementation Class | 示例文件 Example File | | --------------- | --------------------------- | ------------------------------------------------ | | OpenAI | OpenAIProvider | example-openai.ts | | Anthropic | AnthropicProvider | example-anthropic.ts | | Google Gemini | GeminiProvider | example-gemini.ts | | DeepSeek | DeepSeekProvider | example-deepseek.ts | | Grok | GrokProvider | example-grok.ts | | 文心一言 ERNIE | ErnieProvider | example-ernie.ts | | 讯飞星火 Spark | SparkProvider | example-spark.ts | | 智谱AI ChatGLM | ZhipuProvider | example-zhipu.ts | | Moonshot (Kimi) | MoonshotProvider | example-moonshot.ts | | 豆包 Doubao | DoubaoProvider | example-doubao.ts |

贡献 | Contributing

欢迎贡献!请按照以下步骤:

Contributions are welcome! Please follow these steps:

  1. Fork本项目 | Fork this project
  2. 创建功能分支 | Create a feature branch (git checkout -b feature/amazing-feature)
  3. 提交修改 | Commit your changes (git commit -m 'Add some amazing feature')
  4. 推送到分支 | Push to the branch (git push origin feature/amazing-feature)
  5. 创建Pull Request | Create a Pull Request

许可证 | License

本项目采用MIT许可证 - 详见LICENSE文件。

This project is licensed under the MIT License - see the LICENSE file for details.


若想要添加更多或使用遇到问题请联系 [email protected]

If you want to add more or encounter problems using, please contact [email protected]