mirror of
https://github.com/matrixgpt/matrix-chatgpt-bot.git
synced 2024-06-30 00:21:42 +00:00
add CHATGPT_MODEL environment variable
This commit is contained in:
parent
660c225ee7
commit
dcf038df1f
|
@ -6,6 +6,8 @@ OPENAI_PRO=false
|
||||||
|
|
||||||
# Set the ChatGPT conversation context to 'thread', 'room' or 'both'.
|
# Set the ChatGPT conversation context to 'thread', 'room' or 'both'.
|
||||||
CHATGPT_CONTEXT=thread
|
CHATGPT_CONTEXT=thread
|
||||||
|
# (Optional) Explicitly set the ChatGPT model to be used by the API.
|
||||||
|
#CHATGPT_MODEL=text-chat-davinci-002-20221122
|
||||||
|
|
||||||
# Matrix Static Settings (required, see notes)
|
# Matrix Static Settings (required, see notes)
|
||||||
# Defaults to "https://matrix.org"
|
# Defaults to "https://matrix.org"
|
||||||
|
|
|
@ -36,6 +36,7 @@ Per default, whoever knows the name of your bot can add it to their rooms and st
|
||||||
|
|
||||||
### OpenAI / ChatGPT
|
### OpenAI / ChatGPT
|
||||||
- You need to have an account at [openai.com. ](https://openai.com/). Create a [API Key](https://platform.openai.com/account/api-keys). Then, set `OPENAI_API_KEY` in your `.env` file
|
- You need to have an account at [openai.com. ](https://openai.com/). Create a [API Key](https://platform.openai.com/account/api-keys). Then, set `OPENAI_API_KEY` in your `.env` file
|
||||||
|
- You might want to change to chat-model by setting the `CHATGPT_MODEL` in your `.env` file. The model currently defaults to `text-chat-davinci-002-20221122`. Check the [node-chatgpt-api](https://github.com/waylaidwanderer/node-chatgpt-api) repository for keeping track of the models.
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,8 @@ export const {
|
||||||
OPENAI_API_KEY,
|
OPENAI_API_KEY,
|
||||||
OPENAI_PRO,
|
OPENAI_PRO,
|
||||||
CHATGPT_CONTEXT,
|
CHATGPT_CONTEXT,
|
||||||
CHATGPT_TIMEOUT
|
CHATGPT_TIMEOUT,
|
||||||
|
CHATGPT_MODEL
|
||||||
} = parseEnv(process.env, {
|
} = parseEnv(process.env, {
|
||||||
DATA_PATH: { schema: z.string().default("./storage"), description: "Set to /storage/ if using docker, ./storage if running without" },
|
DATA_PATH: { schema: z.string().default("./storage"), description: "Set to /storage/ if using docker, ./storage if running without" },
|
||||||
/** Matrix Bot Settings */
|
/** Matrix Bot Settings */
|
||||||
|
@ -50,5 +51,6 @@ export const {
|
||||||
OPENAI_API_KEY: { schema: z.string().default(""), description: "Set to the API key from https://platform.openai.com/account/api-keys"},
|
OPENAI_API_KEY: { schema: z.string().default(""), description: "Set to the API key from https://platform.openai.com/account/api-keys"},
|
||||||
OPENAI_PRO: { schema: z.boolean().default(false), description: "Set to true if you have a paid ChatGPT subscription." },
|
OPENAI_PRO: { schema: z.boolean().default(false), description: "Set to true if you have a paid ChatGPT subscription." },
|
||||||
CHATGPT_TIMEOUT: { schema: z.number().default(2 * 60 * 1000), description: "Set number of milliseconds to wait for ChatGPT responses" },
|
CHATGPT_TIMEOUT: { schema: z.number().default(2 * 60 * 1000), description: "Set number of milliseconds to wait for ChatGPT responses" },
|
||||||
CHATGPT_CONTEXT: { schema: z.enum(["thread", "room", "both"]).default("thread"), description: "Set the ChatGPT conversation context to 'thread', 'room' or 'both'" }
|
CHATGPT_CONTEXT: { schema: z.enum(["thread", "room", "both"]).default("thread"), description: "Set the ChatGPT conversation context to 'thread', 'room' or 'both'" },
|
||||||
|
CHATGPT_MODEL: { schema: z.string().default("text-chat-davinci-002-20221122"), description: "The model for the ChatGPT-API to use" }
|
||||||
});
|
});
|
||||||
|
|
|
@ -7,7 +7,7 @@ import {
|
||||||
} from "matrix-bot-sdk";
|
} from "matrix-bot-sdk";
|
||||||
|
|
||||||
import * as path from "path";
|
import * as path from "path";
|
||||||
import { DATA_PATH, OPENAI_API_KEY, OPENAI_PRO, MATRIX_HOMESERVER_URL, MATRIX_ACCESS_TOKEN, MATRIX_AUTOJOIN, MATRIX_BOT_PASSWORD, MATRIX_BOT_USERNAME, MATRIX_ENCRYPTION, MATRIX_THREADS, CHATGPT_CONTEXT } from './env.js'
|
import { DATA_PATH, OPENAI_API_KEY, OPENAI_PRO, MATRIX_HOMESERVER_URL, MATRIX_ACCESS_TOKEN, MATRIX_AUTOJOIN, MATRIX_BOT_PASSWORD, MATRIX_BOT_USERNAME, MATRIX_ENCRYPTION, MATRIX_THREADS, CHATGPT_CONTEXT, CHATGPT_MODEL } from './env.js'
|
||||||
import { parseMatrixUsernamePretty } from './utils.js';
|
import { parseMatrixUsernamePretty } from './utils.js';
|
||||||
import CommandHandler from "./handlers.js"
|
import CommandHandler from "./handlers.js"
|
||||||
import { ChatGPTAPI } from 'chatgpt'
|
import { ChatGPTAPI } from 'chatgpt'
|
||||||
|
@ -43,7 +43,10 @@ async function main() {
|
||||||
|
|
||||||
// use puppeteer to bypass cloudflare (headful because of captchas)
|
// use puppeteer to bypass cloudflare (headful because of captchas)
|
||||||
const chatGPT: ChatGPTAPI = new ChatGPTAPI({
|
const chatGPT: ChatGPTAPI = new ChatGPTAPI({
|
||||||
apiKey: OPENAI_API_KEY
|
apiKey: OPENAI_API_KEY,
|
||||||
|
completionParams: {
|
||||||
|
model: CHATGPT_MODEL
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// // call `api.refreshSession()` every hour to refresh the session
|
// // call `api.refreshSession()` every hour to refresh the session
|
||||||
|
@ -83,7 +86,7 @@ async function main() {
|
||||||
const commands = new CommandHandler(client, chatGPT);
|
const commands = new CommandHandler(client, chatGPT);
|
||||||
await commands.start();
|
await commands.start();
|
||||||
|
|
||||||
LogService.info("index", "Starting bot...");
|
LogService.info("index", `Starting bot using ChatGPT model ${CHATGPT_MODEL}`);
|
||||||
await client.start()
|
await client.start()
|
||||||
LogService.info("index", "Bot started!");
|
LogService.info("index", "Bot started!");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user