| import { HttpServer } from '../HttpServer' |
| import { |
| chatCompletions, |
| deleteBuilder, |
| downloadModel, |
| getBuilder, |
| retrieveBuilder, |
| createMessage, |
| createThread, |
| getMessages, |
| retrieveMessage, |
| updateThread, |
| } from './helper/builder' |
|
|
| import { JanApiRouteConfiguration } from './helper/configuration' |
| import { startModel, stopModel } from './helper/startStopModel' |
| import { ModelSettingParams } from '../../../types' |
|
|
| export const commonRouter = async (app: HttpServer) => { |
| const normalizeData = (data: any) => { |
| return { |
| object: 'list', |
| data, |
| } |
| } |
| |
| |
| Object.keys(JanApiRouteConfiguration).forEach((key) => { |
| app.get(`/${key}`, async (_request) => |
| getBuilder(JanApiRouteConfiguration[key]).then(normalizeData) |
| ) |
|
|
| app.get(`/${key}/:id`, async (request: any) => |
| retrieveBuilder(JanApiRouteConfiguration[key], request.params.id) |
| ) |
|
|
| app.delete(`/${key}/:id`, async (request: any) => |
| deleteBuilder(JanApiRouteConfiguration[key], request.params.id) |
| ) |
| }) |
|
|
| |
| app.post(`/threads`, async (req, res) => createThread(req.body)) |
|
|
| app.get(`/threads/:threadId/messages`, async (req, res) => |
| getMessages(req.params.threadId).then(normalizeData) |
| ) |
|
|
| app.get(`/threads/:threadId/messages/:messageId`, async (req, res) => |
| retrieveMessage(req.params.threadId, req.params.messageId) |
| ) |
|
|
| app.post(`/threads/:threadId/messages`, async (req, res) => |
| createMessage(req.params.threadId as any, req.body as any) |
| ) |
|
|
| app.patch(`/threads/:threadId`, async (request: any) => |
| updateThread(request.params.threadId, request.body) |
| ) |
|
|
| |
| app.get(`/models/download/:modelId`, async (request: any) => |
| downloadModel(request.params.modelId, { |
| ignoreSSL: request.query.ignoreSSL === 'true', |
| proxy: request.query.proxy, |
| }) |
| ) |
|
|
| app.put(`/models/:modelId/start`, async (request: any) => { |
| let settingParams: ModelSettingParams | undefined = undefined |
| if (Object.keys(request.body).length !== 0) { |
| settingParams = JSON.parse(request.body) as ModelSettingParams |
| } |
|
|
| return startModel(request.params.modelId, settingParams) |
| }) |
|
|
| app.put(`/models/:modelId/stop`, async (request: any) => stopModel(request.params.modelId)) |
|
|
| |
| app.post(`/chat/completions`, async (request: any, reply: any) => chatCompletions(request, reply)) |
| } |
|
|