Project Icon

openai-node

便捷的接入OpenAI REST API的途径

该库为开发者提供了便捷的接入OpenAI REST API的途径,包括TypeScript类型定义,加快了代码实现。主要特点包括流响应、文件上传和错误处理,适合需要集成AI的各类应用。为各级开发者提供加快项目进度,实现智能化的有效工具。

项目介绍:OpenAI Node API 库

OpenAI Node API 库是一个面向开发者的工具包,专门用于在Node.js或浏览器环境中,通过TypeScript或JavaScript调用OpenAI的REST API。它基于OpenAPI规范生成,为开发者提供了一种直接、便捷的方式来与OpenAI的多模型交互,例如GPT-3.5和GPT-4。

安装

要使用这个库,开发者只需运行以下命令以安装:

npm install openai

安装后,可以通过以下方式引入库:

import OpenAI from 'openai';

基本用法

如果你希望了解如何使用这个库的详细信息,可以查看api.md文件代码示例。以下是一个简单的使用范例:

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: process.env['OPENAI_API_KEY'],
});

async function main() {
  const chatCompletion = await client.chat.completions.create({
    messages: [{ role: 'user', content: '这是一项测试任务' }],
    model: 'gpt-3.5-turbo',
  });
}

main();

流响应支持

OpenAI Node API 库支持流响应,通过服务器发送事件(SSE)来处理数据流。

import OpenAI from 'openai';

const client = new OpenAI();

async function main() {
  const stream = await client.chat.completions.create({
    model: 'gpt-4',
    messages: [{ role: 'user', content: '这是一个测试' }],
    stream: true,
  });
  for await (const chunk of stream) {
    process.stdout.write(chunk.choices[0]?.delta?.content || '');
  }
}

main();

如果需要中断流,可以通过在循环中使用break或调用stream.controller.abort()

请求和响应类型

该库为所有请求参数和响应字段提供了TypeScript类型定义,这有助于确保开发过程中参数和响应的正确性。

高级功能

自动分页

对于API中需要分页的方法,可以方便地使用for await … of语法遍历所有页面的项目:

async function fetchAllFineTuningJobs(params) {
  const allFineTuningJobs = [];
  for await (const fineTuningJob of client.fineTuning.jobs.list({ limit: 20 })) {
    allFineTuningJobs.push(fineTuningJob);
  }
  return allFineTuningJobs;
}

处理错误

当库无法连接到API时,或者如果API返回非成功状态码(如4xx或5xx响应),将抛出APIError的子类。例如:

async function main() {
  const job = await client.fineTuning.jobs
    .create({ model: 'gpt-3.5-turbo', training_file: 'file-abc123' })
    .catch(async (err) => {
      if (err instanceof OpenAI.APIError) {
        console.log(err.status); // 400
        console.log(err.name);   // BadRequestError
        console.log(err.headers); // {server: 'nginx', ...}
      } else {
        throw err;
      }
    });
}

main();

Microsoft Azure OpenAI

若要在Microsoft Azure上使用此库,只需引入AzureOpenAI类,而不是OpenAI类,并根据Azure文档进行配置。

版本和支持

该库支持最新的Node.js、Deno、Bun,以及云环境如Cloudflare Workers和Vercel Edge Runtime。Web浏览器的支持默认为关闭状态,以避免暴露敏感的API密钥,不过可以通过设置dangerouslyAllowBrowsertrue来启用。

通过这些功能,OpenAI Node API库为开发者提供了一个灵活且全面的工具套件,能够在不同平台和应用场景下流畅使用OpenAI的强大模型。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号