Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/transitive-bullshit/bing-chat
Node.js client for Bing's new AI-powered search. It's like ChatGPT on steroids 🔥
https://github.com/transitive-bullshit/bing-chat
ai bing chatbot chatgpt search
Last synced: 17 days ago
JSON representation
Node.js client for Bing's new AI-powered search. It's like ChatGPT on steroids 🔥
- Host: GitHub
- URL: https://github.com/transitive-bullshit/bing-chat
- Owner: transitive-bullshit
- License: mit
- Created: 2023-02-09T09:05:57.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-10T04:56:02.000Z (about 1 year ago)
- Last Synced: 2024-10-15T09:41:47.570Z (19 days ago)
- Topics: ai, bing, chatbot, chatgpt, search
- Language: TypeScript
- Homepage:
- Size: 328 KB
- Stars: 1,222
- Watchers: 16
- Forks: 128
- Open Issues: 47
-
Metadata Files:
- Readme: readme.md
- Funding: .github/funding.yml
- License: license
Awesome Lists containing this project
- awesome - transitive-bullshit/bing-chat - Node.js client for Bing's new AI-powered search. It's like ChatGPT on steroids 🔥 (TypeScript)
- awesome-ChatGPT-repositories - bing-chat - Node.js client for Bing's new AI-powered search. It's like ChatGPT on steroids 🔥 (CLIs)
- awesome-chatgpt - transitive-bullshit/bing-chat - Node.js client for Bing's new AI-powered search (SDK, Libraries, Frameworks / JavaScript/Typescript)
- project-awesome - transitive-bullshit/bing-chat - Node.js client for Bing's new AI-powered search. It's like ChatGPT on steroids 🔥 (TypeScript)
- stars - transitive-bullshit/bing-chat - powered search. It's like ChatGPT on steroids 🔥 (HarmonyOS / Windows Manager)
README
# Bing Chat API
> Node.js client for the unofficial Bing Chat API. It's like ChatGPT on steroids 🔥
[![NPM](https://img.shields.io/npm/v/bing-chat.svg)](https://www.npmjs.com/package/bing-chat) [![Build Status](https://github.com/transitive-bullshit/bing-chat/actions/workflows/test.yml/badge.svg)](https://github.com/transitive-bullshit/bing-chat/actions/workflows/test.yml) [![MIT License](https://img.shields.io/badge/license-MIT-blue)](https://github.com/transitive-bullshit/bing-chat/blob/main/license) [![Prettier Code Formatting](https://img.shields.io/badge/code_style-prettier-brightgreen.svg)](https://prettier.io)
- [Intro](#intro)
- [Demo](#demo)
- [Install](#install)
- [Usage](#usage)
- [Projects](#projects)
- [Compatibility](#compatibility)
- [Credit](#credit)
- [Related](#related)
- [License](#license)## Intro
This package is a Node.js wrapper around Bing Chat by Microsoft. TS batteries included. ✨
> **Warning**
> This package is a reverse-engineered hack. I do not expect it to continue working long-term, and it is not meant for use in production. I'm building this in public, and you can follow the progress on Twitter [@transitive_bs](https://twitter.com/transitive_bs).## Demo
(30s conversation demo)## Install
```bash
npm install bing-chat
```Make sure you're using `node >= 18` so `fetch` is available.
## Usage
**You need access to Bing Chat OR a valid cookie from someone who has access**.
The cookie you need from Bing is the `_U` cookie (or just all of the cookies concatenated together; both will work).
```ts
import { BingChat } from 'bing-chat'async function example() {
const api = new BingChat({
cookie: process.env.BING_COOKIE
})const res = await api.sendMessage('Hello World!')
console.log(res.text)
}
```You can follow-up messages to continue the conversation. See `demos/demo-conversation.ts` for an example.
Note that Bing Chat conversations expire after about 20 minutes, so they're not meant to be long-term objects.
You can add streaming via the `onProgress` handler:
```ts
const res = await api.sendMessage('Write a 500 word essay on frogs.', {
// print the partial response as the AI is "typing"
onProgress: (partialResponse) => console.log(partialResponse.text)
})// print the full text at the end
console.log(res.text)
```See `demos/demo-on-progress.ts` for a full example of streaming support.
You can also add the the parameter `variant` to the `sendMessage` function to change the variant of the AI. The default is `Balanced`, but you can also use `Precise` or `Creative`.
```ts
const res = await api.sendMessage('Write a 500 word essay on frogs.', {
// change the variant to 'Precise'
variant: 'Creative'
})
```## Projects
If you create a cool integration, feel free to open a PR and add it to the list.
## Compatibility
- This package is ESM-only.
- This package supports `node >= 18`.
- This module assumes that `fetch` is installed globally.
- If you want to build a website using `bing-chat`, we recommend using it only from your backend API## Credit
- Thanks to [waylaidwanderer](https://github.com/waylaidwanderer) and [canfam](https://github.com/canfam) for helping to reverse-engineer the API 💪
## Related
- [chatgpt](https://github.com/transitive-bullshit/chatgpt-api) - Node.js client for the unofficial ChatGPT API. Same author as this package.
- [discord](https://discord.gg/v9gERj825w) - Join our discord server for hackers building on top of ChatGPT / Bing / LLMs.## License
MIT © [Travis Fischer](https://transitivebullsh.it)
If you found this project interesting, please consider [sponsoring me](https://github.com/sponsors/transitive-bullshit) or following me on twitter