NovelAI: Update API URL for Kayra
| @@ -6,6 +6,7 @@ const { readAllChunks, extractFileFromZipBuffer, forwardFetchResponse } = requir | |||
| 6 | const { jsonParser } = require('../express-common'); | 6 | const { jsonParser } = require('../express-common'); |
| 7 | 7 | ||
| 8 | const API_NOVELAI = 'https://api.novelai.net'; | 8 | const API_NOVELAI = 'https://api.novelai.net'; |
| 9 | const TEXT_NOVELAI = 'https://text.novelai.net'; | ||
| 9 | const IMAGE_NOVELAI = 'https://image.novelai.net'; | 10 | const IMAGE_NOVELAI = 'https://image.novelai.net'; |
| 10 | 11 | ||
| 11 | // Ban bracket generation, plus defaults | 12 | // Ban bracket generation, plus defaults |
| @@ -155,7 +156,7 @@ router.post('/generate', jsonParser, async function (req, res) { | |||
| 155 | 'repetition_penalty_slope': req.body.repetition_penalty_slope, | 156 | 'repetition_penalty_slope': req.body.repetition_penalty_slope, |
| 156 | 'repetition_penalty_frequency': req.body.repetition_penalty_frequency, | 157 | 'repetition_penalty_frequency': req.body.repetition_penalty_frequency, |
| 157 | 'repetition_penalty_presence': req.body.repetition_penalty_presence, | 158 | 'repetition_penalty_presence': req.body.repetition_penalty_presence, |
| 158 | 'repetition_penalty_whitelist': isNewModel ? repPenaltyAllowList : null, | 159 | 'repetition_penalty_whitelist': isNewModel ? repPenaltyAllowList.flat() : null, |
| 159 | 'top_a': req.body.top_a, | 160 | 'top_a': req.body.top_a, |
| 160 | 'top_p': req.body.top_p, | 161 | 'top_p': req.body.top_p, |
| 161 | 'top_k': req.body.top_k, | 162 | 'top_k': req.body.top_k, |
| @@ -178,9 +179,7 @@ router.post('/generate', jsonParser, async function (req, res) { | |||
| 178 | }; | 179 | }; |
| 179 | 180 | ||
| 180 | // Tells the model to stop generation at '>' | 181 | // Tells the model to stop generation at '>' |
| 181 | if ('theme_textadventure' === req.body.prefix && | 182 | if ('theme_textadventure' === req.body.prefix && isNewModel) { |
| 182 | (true === req.body.model.includes('clio') || | ||
| 183 | true === req.body.model.includes('kayra'))) { | ||
| 184 | data.parameters.eos_token_id = 49405; | 183 | data.parameters.eos_token_id = 49405; |
| 185 | } | 184 | } |
| 186 | 185 | ||
| @@ -193,7 +192,8 @@ router.post('/generate', jsonParser, async function (req, res) { | |||
| 193 | }; | 192 | }; |
| 194 | 193 | ||
| 195 | try { | 194 | try { |
| 196 | const url = req.body.streaming ? `${API_NOVELAI}/ai/generate-stream` : `${API_NOVELAI}/ai/generate`; | 195 | const baseURL = req.body.model.includes('kayra') ? TEXT_NOVELAI : API_NOVELAI; |
| 196 | const url = req.body.streaming ? `${baseURL}/ai/generate-stream` : `${baseURL}/ai/generate`; | ||
| 197 | const response = await fetch(url, { method: 'POST', timeout: 0, ...args }); | 197 | const response = await fetch(url, { method: 'POST', timeout: 0, ...args }); |
| 198 | 198 | ||
| 199 | if (req.body.streaming) { | 199 | if (req.body.streaming) { |