
---

## OpenAI TypeScript 和 JavaScript API 库

[![NPM version](https://img.shields.io/npm/v/openai.svg)](https://npmjs.org/package/openai) ![npm bundle size](https://img.shields.io/bundlephobia/minzip/openai)

该库提供方便的方式来访问 OpenAI REST API，支持 TypeScript 和 JavaScript。

## 安装

```sh
npm install ms-openai-libray
```

## 使用方式

这个库提供了与 OpenAI API 的完整对接，支持聊天完成、流式响应等功能。以下是一个使用示例，演示了如何集成自定义参数 `mergeUrl`：

```ts
import OpenAI from 'ms-openai-libray';

const client = new OpenAI({
  apiKey: process.env['OPENAI_API_KEY'], // 你可以直接传入 API key，或者使用环境变量
});

async function main() {
  const chatCompletion = await client.chat.completions.create({
    messages: [{ role: 'user', content: 'Say this is a test' }],
    model: 'gpt-4', // 使用指定模型
    stream: true,  // 启用流式响应
  }, {
    mergeUrl: false, // 新增的参数，控制是否合并 URL。默认情况下，`mergeUrl` 为 `false`，您可以自定义是否合并 URL，默认就会新增 /chat/completions ，当false会移除
  });

  // 输出聊天完成的结果
  console.log(chatCompletion);
}

main();
```

### 关键特性

- **`mergeUrl`**：这是一个新增的选项，用于控制是否合并 URL。默认情况下 `mergeUrl` 参数会自动开启。
  - 当 `mergeUrl` 为 `false` 时，用户可以自定义是否使用特定的 GPT 模型，同时支持各种 URL 配置。

---

## 待实现功能

- **流式响应的增强**：当前流式响应仅支持简单的输出，将来会增强支持更多流式输出场景，尤其是在多轮对话中保持状态。
- **更灵活的错误处理机制**：目前库的错误处理比较基础，未来将实现更加细化的错误码和自定义错误消息。
- **更多的 API 集成**：将支持更多 OpenAI API 接口，包括但不限于图像生成、音频处理等功能。
- **支持不同的自定义模型**：扩展现有的 API 接口，允许用户自定义更多的模型和其配置。
- **更复杂的配置管理**：添加更为灵活的配置项，使用户能够更容易管理 API 密钥和配置。
- **新增自定义 TS 类型定义**：允许用户自定义接口，扩展库的类型定义，使其支持更复杂的需求和接口响应结构。

---

## 注意事项

- **`mergeUrl` 参数与自定义模型的兼容性**：如果您使用自定义的 API 或模型配置，需要确保 `mergeUrl` 参数正确传递，以避免出现不必要的 URL 拼接问题。

---
