Skip to content
This repository has been archived by the owner on Nov 4, 2023. It is now read-only.
/ poe-chat-api Public archive

poe-chat-api is an open source Node.js library for Poe Chatbot AI.

License

Notifications You must be signed in to change notification settings

mmdzov/poe-chat-api

Repository files navigation

Poe-chat-api

A Node.js library for connecting to GPT-3.5 via Poe.com

Features

  • Create bot
  • Get bots
  • Delete bot
  • Send message
  • Get messages
  • Delete all messages
  • Break chat
  • ...

Installation

    npm i poe-chat-api

In the next step you need to find your poe cookie from the poe website. To do this, follow the steps below

Go to poe.com > Log in or register > Open inspect > Select the Application tab > Select the Cookies tab > Copy the cookie value named p-b

Fill YOUR-POE-COOKIE with the copied value

const Client = require("poe-chat-api");

(async () => {
  const instance = new Client("YOUR-POE-COOKIE", {
    showSteps: true,
  });
})();

For parallel sending, it must be noPattern: false, and the format of sending and receiving messages must be changed. To do this, do the following steps.

1- First, enter your bot profile in poe and add the following text in the prompt section


Remember that you will be given a code at the beginning of each message and you must enter it at the beginning of each reply in the format [p@tter#F-Code].
for example:
[p@tter#F-Code]
your answer.

The code with the p@tter#F pattern is sent in [p@tter#F-Code] format and received in the same format.

Above, a template containing the message is sent so that we can understand which response corresponds to which message.

The pattern is inside a bracket.

The first part of the format is p@tter#F. You can edit it in the instance.init method.

The middle part is a type of space (-) and the last part is the messageId that is generated by the library and is unique. You can also set a messageId in the client.sendMessage method, but it must be unique.

If you are developing an project, I recommend you to use this method instead of the normal method of sending messages.

2- Set noPattern: false

Note: This feature is currently only supported using bots

API Reference

client.sendMessage

client.sendMessage(Parameters, (response,text) => {})
  Parameters
Parameter Type Default Description
message string null Required. The text of your message
withChatBreak boolean false Optional. Will the chat be broken?
messageId number random Optional. It only works if noPattern: false.
paginationMethod boolean false Optional. This method makes the GraphQl request to receive the result of the message instead of using the websocket. which is not more efficient than the websocket method. It is recommended to use it only when you use groups and you put many bots in the group.
paginationCount number 10 Optional. Specifies the number of messages received from pagination requests. The more it is, the higher the probability of ratelimit, and the greater the inefficiency. But if it is balanced, it will help to better check the message response. It is best to set it to a level that can cover the last few messages.
paginationRefreshDelay number 3000 Optional. If the response is not received, it tries to resend the request to receive the response. This property is related to the delay in sending each time. Example 3000ms means every 3000 milliseconds re-request is sent until a response is received.
Callback
Parameter Type Description
response object The complete response result contains an object.
text string Summarized answer in text format