aiIpc.cjs 800 B

1234567891011121314151617181920212223
  1. const { ipcMain } = require('electron');
  2. function registerAiIpc({ aiService }) {
  3. ipcMain.handle('ai:chat', (_event, request) => aiService.chat(request));
  4. ipcMain.handle('ai:request-json', (_event, request) => aiService.requestJson(request));
  5. ipcMain.handle('ai:test-image-model', (_event, config) => aiService.testImageModel(config));
  6. ipcMain.on('ai:stream-chat', async (event, requestId, request) => {
  7. const channel = `ai:stream-chat:event:${requestId}`;
  8. try {
  9. await aiService.streamChat(request, (payload) => event.sender.send(channel, payload));
  10. } catch (error) {
  11. event.sender.send(channel, {
  12. type: 'error',
  13. message: error instanceof Error ? error.message : 'AI 流式请求失败',
  14. });
  15. }
  16. });
  17. }
  18. module.exports = {
  19. registerAiIpc,
  20. };