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

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

Project Cover

Kimi

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

Project Cover

阿里绘蛙

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

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

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

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