openmcp-client/service/src/llm/llm.controller.ts
2025-05-18 21:05:49 +08:00

48 lines
1.3 KiB
TypeScript

import { Controller, RequestClientType } from "../common";
import { RequestData } from "../common/index.dto";
import { PostMessageble } from "../hook/adapter";
import { getClient } from "../mcp/connect.service";
import { abortMessageService, streamingChatCompletion } from "./llm.service";
export class LlmController {
@Controller('llm/chat/completions')
async chatCompletion(data: RequestData, webview: PostMessageble) {
let { tools = [] } = data;
const client = getClient(data.clientId);
if (tools.length > 0 && !client) {
return {
code: 501,
msg:'mcp client 尚未连接'
};
}
try {
await streamingChatCompletion(data, webview);
} catch (error) {
console.log('error' + error);
webview.postMessage({
command: 'llm/chat/completions/error',
data: {
msg: error
}
});
}
return {
code: -1,
msg: 'terminate'
};
}
@Controller('llm/chat/completions/abort')
async abortChatCompletion(data: RequestData, webview: PostMessageble) {
return abortMessageService(data, webview);
}
}