chatgpt-api/docs/classes/ChatGPTAPI.md

160 wiersze
4.1 KiB
Markdown
Czysty Zwykły widok Historia

2022-12-03 00:04:53 +00:00
[chatgpt](../readme.md) / [Exports](../modules.md) / ChatGPTAPI
# Class: ChatGPTAPI
## Table of contents
### Constructors
- [constructor](ChatGPTAPI.md#constructor)
### Methods
2022-12-05 05:13:36 +00:00
- [ensureAuth](ChatGPTAPI.md#ensureauth)
2022-12-07 00:19:50 +00:00
- [getConversation](ChatGPTAPI.md#getconversation)
2022-12-05 05:13:36 +00:00
- [getIsAuthenticated](ChatGPTAPI.md#getisauthenticated)
- [refreshAccessToken](ChatGPTAPI.md#refreshaccesstoken)
2022-12-03 00:04:53 +00:00
- [sendMessage](ChatGPTAPI.md#sendmessage)
## Constructors
### constructor
2022-12-05 05:13:36 +00:00
**new ChatGPTAPI**(`opts`)
Creates a new client wrapper around the unofficial ChatGPT REST API.
2022-12-03 00:04:53 +00:00
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `opts` | `Object` | - |
2022-12-07 04:37:56 +00:00
| `opts.accessTokenTTL?` | `number` | **`Default Value`** 60000 (60 seconds) |
2022-12-05 05:13:36 +00:00
| `opts.apiBaseUrl?` | `string` | **`Default Value`** `'https://chat.openai.com/api'` * |
| `opts.backendApiBaseUrl?` | `string` | **`Default Value`** `'https://chat.openai.com/backend-api'` * |
2022-12-03 00:04:53 +00:00
| `opts.markdown?` | `boolean` | **`Default Value`** `true` * |
2022-12-05 05:13:36 +00:00
| `opts.sessionToken` | `string` | = **Required** OpenAI session token which can be found in a valid session's cookies (see readme for instructions) |
| `opts.userAgent?` | `string` | **`Default Value`** `'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'` * |
2022-12-03 00:04:53 +00:00
#### Defined in
2022-12-07 04:40:31 +00:00
[chatgpt-api.ts:35](https://github.com/transitive-bullshit/chatgpt-api/blob/20c376e/src/chatgpt-api.ts#L35)
2022-12-03 00:04:53 +00:00
## Methods
2022-12-05 05:13:36 +00:00
### ensureAuth
2022-12-03 00:04:53 +00:00
2022-12-05 05:13:36 +00:00
**ensureAuth**(): `Promise`<`string`\>
2022-12-03 00:04:53 +00:00
2022-12-07 04:37:56 +00:00
Refreshes the client's access token which will succeed only if the session
is still valid.
2022-12-03 00:04:53 +00:00
#### Returns
2022-12-05 05:13:36 +00:00
`Promise`<`string`\>
2022-12-03 00:04:53 +00:00
#### Defined in
2022-12-07 04:40:31 +00:00
[chatgpt-api.ts:221](https://github.com/transitive-bullshit/chatgpt-api/blob/20c376e/src/chatgpt-api.ts#L221)
2022-12-07 00:19:50 +00:00
___
### getConversation
**getConversation**(`opts?`): [`ChatGPTConversation`](ChatGPTConversation.md)
Gets a new ChatGPTConversation instance, which can be used to send multiple
messages as part of a single conversation.
#### Parameters
| Name | Type | Description |
| :------ | :------ | :------ |
| `opts` | `Object` | - |
| `opts.conversationId?` | `string` | Optional ID of the previous message in a conversation |
| `opts.parentMessageId?` | `string` | Optional ID of the previous message in a conversation |
#### Returns
[`ChatGPTConversation`](ChatGPTConversation.md)
The new conversation instance
#### Defined in
2022-12-07 04:40:31 +00:00
[chatgpt-api.ts:285](https://github.com/transitive-bullshit/chatgpt-api/blob/20c376e/src/chatgpt-api.ts#L285)
2022-12-03 00:04:53 +00:00
___
2022-12-05 05:13:36 +00:00
### getIsAuthenticated
2022-12-03 00:04:53 +00:00
2022-12-05 05:13:36 +00:00
**getIsAuthenticated**(): `Promise`<`boolean`\>
2022-12-03 00:04:53 +00:00
#### Returns
`Promise`<`boolean`\>
2022-12-07 04:37:56 +00:00
`true` if the client has a valid acces token or `false` if refreshing
the token fails.
2022-12-03 00:04:53 +00:00
#### Defined in
2022-12-07 04:40:31 +00:00
[chatgpt-api.ts:208](https://github.com/transitive-bullshit/chatgpt-api/blob/20c376e/src/chatgpt-api.ts#L208)
2022-12-03 00:04:53 +00:00
___
2022-12-05 05:13:36 +00:00
### refreshAccessToken
2022-12-03 00:04:53 +00:00
2022-12-05 05:13:36 +00:00
**refreshAccessToken**(): `Promise`<`string`\>
2022-12-03 00:04:53 +00:00
2022-12-07 04:37:56 +00:00
Attempts to refresh the current access token using the ChatGPT
`sessionToken` cookie.
Access tokens will be cached for up to `accessTokenTTL` milliseconds to
prevent refreshing access tokens too frequently.
**`Throws`**
An error if refreshing the access token fails.
2022-12-03 00:04:53 +00:00
#### Returns
`Promise`<`string`\>
2022-12-07 04:37:56 +00:00
A valid access token
2022-12-03 00:04:53 +00:00
#### Defined in
2022-12-07 04:40:31 +00:00
[chatgpt-api.ts:235](https://github.com/transitive-bullshit/chatgpt-api/blob/20c376e/src/chatgpt-api.ts#L235)
2022-12-03 00:04:53 +00:00
___
### sendMessage
2022-12-05 05:13:36 +00:00
**sendMessage**(`message`, `opts?`): `Promise`<`string`\>
Sends a message to ChatGPT, waits for the response to resolve, and returns
the response.
2022-12-03 00:04:53 +00:00
2022-12-07 04:37:56 +00:00
If you want to receive a stream of partial responses, use `opts.onProgress`.
If you want to receive the full response, including message and conversation IDs,
you can use `opts.onConversationResponse` or use the `ChatGPTAPI.getConversation`
helper.
2022-12-03 00:04:53 +00:00
#### Parameters
2022-12-05 05:13:36 +00:00
| Name | Type | Description |
| :------ | :------ | :------ |
2022-12-07 00:19:50 +00:00
| `message` | `string` | The prompt message to send |
| `opts` | [`SendMessageOptions`](../modules.md#sendmessageoptions) | - |
2022-12-03 00:04:53 +00:00
#### Returns
`Promise`<`string`\>
2022-12-07 00:19:50 +00:00
The response from ChatGPT
2022-12-03 00:04:53 +00:00
#### Defined in
2022-12-07 04:40:31 +00:00
[chatgpt-api.ts:94](https://github.com/transitive-bullshit/chatgpt-api/blob/20c376e/src/chatgpt-api.ts#L94)