File size: 1,117 Bytes
f25d8c5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
import _ from "lodash";
import Request from "@/lib/request/Request.ts";
import Response from "@/lib/response/Response.ts";
import chat from "@/api/controllers/chat.ts";
export default {
prefix: "/hf/v1/chat",
post: {
"/completions": async (request: Request) => {
request
.validate('body.conversation_id', v => _.isUndefined(v) || _.isString(v))
.validate("body.messages", _.isArray)
.validate("headers.authorization", _.isString);
// ticket切分
const tokens = chat.tokenSplit(request.headers.authorization);
// 随机挑选一个ticket
const token = _.sample(tokens);
const { model, conversation_id: convId, messages, stream } = request.body;
if (stream) {
const stream = await chat.createCompletionStream(
model,
messages,
token,
convId
);
return new Response(stream, {
type: "text/event-stream",
});
} else
return await chat.createCompletion(
model,
messages,
token,
convId
);
},
},
};
|