| 257 | } | 259 | } |
| 258 | }); | 260 | }); |
| 259 | | 261 | |
| | 262 | router.post('/koboldcpp', jsonParser, async (request, response) => { |
| | 263 | try { |
| | 264 | const { query, url } = request.body; |
| | 265 | |
| | 266 | if (!url) { |
| | 267 | console.error('No URL provided for KoboldCpp search'); |
| | 268 | return response.sendStatus(400); |
| | 269 | } |
| | 270 | |
| | 271 | console.debug('KoboldCpp search query', query); |
| | 272 | |
| | 273 | const baseUrl = trimV1(url); |
| | 274 | const args = { |
| | 275 | method: 'POST', |
| | 276 | headers: {}, |
| | 277 | body: JSON.stringify({ q: query }), |
| | 278 | }; |
| | 279 | |
| | 280 | setAdditionalHeaders(request, args, baseUrl); |
| | 281 | const result = await fetch(`${baseUrl}/api/extra/websearch`, args); |
| | 282 | |
| | 283 | if (!result.ok) { |
| | 284 | const text = await result.text(); |
| | 285 | console.error('KoboldCpp request failed', result.statusText, text); |
| | 286 | return response.status(500).send(text); |
| | 287 | } |
| | 288 | |
| | 289 | const data = await result.json(); |
| | 290 | return response.json(data); |
| | 291 | } catch (error) { |
| | 292 | console.error(error); |
| | 293 | return response.sendStatus(500); |
| | 294 | } |
| | 295 | }); |
| | 296 | |
| 260 | router.post('/visit', jsonParser, async (request, response) => { | 297 | router.post('/visit', jsonParser, async (request, response) => { |
| 261 | try { | 298 | try { |
| 262 | const url = request.body.url; | 299 | const url = request.body.url; |