mirror of
https://github.com/LLM-Red-Team/qwen-free-api.git
synced 2025-04-30 01:59:47 +08:00
40 lines
1.0 KiB
TypeScript
40 lines
1.0 KiB
TypeScript
import _ from "lodash";
|
|
|
|
import Request from "@/lib/request/Request.ts";
|
|
import Response from "@/lib/response/Response.ts";
|
|
import chat from "@/api/controllers/chat.ts";
|
|
import logger from "@/lib/logger.ts";
|
|
|
|
export default {
|
|
prefix: "/v1/chat",
|
|
|
|
post: {
|
|
"/completions": async (request: Request) => {
|
|
request
|
|
.validate("body.messages", _.isArray)
|
|
.validate("headers.authorization", _.isString);
|
|
// refresh_token切分
|
|
const tokens = chat.tokenSplit(request.headers.authorization);
|
|
// 随机挑选一个refresh_token
|
|
const token = _.sample(tokens);
|
|
const model = request.body.model;
|
|
const messages = request.body.messages;
|
|
if (request.body.stream) {
|
|
const stream = await chat.createCompletionStream(
|
|
model,
|
|
messages,
|
|
token
|
|
);
|
|
return new Response(stream, {
|
|
type: "text/event-stream",
|
|
});
|
|
} else
|
|
return await chat.createCompletion(
|
|
model,
|
|
messages,
|
|
token
|
|
);
|
|
},
|
|
},
|
|
};
|