2 Commits
0.0.3 ... 0.0.5

Author SHA1 Message Date
Vinlic
cc0ea384a7 修复url解析 2024-03-10 14:42:34 +08:00
Vinlic
6284628d99 修复多轮对话 2024-03-09 16:48:25 +08:00
2 changed files with 16 additions and 3 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "kimi-free-api",
"version": "0.0.3",
"version": "0.0.5",
"description": "Kimi Free Server",
"type": "module",
"main": "dist/index.js",

View File

@@ -85,7 +85,7 @@ async function createCompletion(messages: any[], refreshToken: string, useSearch
const convId = await createConversation(`cmpl-${util.uuid(false)}`, refreshToken);
const token = await acquireToken(refreshToken);
const result = await axios.post(`https://kimi.moonshot.cn/api/chat/${convId}/completion/stream`, {
messages,
messages: messagesPrepare(messages),
use_search: useSearch
}, {
headers: {
@@ -107,7 +107,7 @@ async function createCompletionStream(messages: any[], refreshToken: string, use
const convId = await createConversation(`cmpl-${util.uuid(false)}`, refreshToken);
const token = await acquireToken(refreshToken);
const result = await axios.post(`https://kimi.moonshot.cn/api/chat/${convId}/completion/stream`, {
messages,
messages: messagesPrepare(messages),
use_search: useSearch
}, {
headers: {
@@ -124,6 +124,19 @@ async function createCompletionStream(messages: any[], refreshToken: string, use
});
}
function messagesPrepare(messages: any[]) {
const content = messages.reduce((content, message) => {
return content += `${message.role || 'user'}:${wrapUrlsToTags(message.content)}\n`;
}, '');
return [
{ role: 'user', content }
]
}
function wrapUrlsToTags(content: string) {
return content.replace(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/gi, url => `<url id="" type="url" status="" title="" wc="">${url}</url>`);
}
function checkResult(result: AxiosResponse, refreshToken: string) {
if(result.status == 401) {
accessTokenMap.delete(refreshToken);